본문 바로가기

CS

(54)
mp3 손실 압축 무전기 플레이어를 만들면서 삽질기 10분 노트 (의식의 흐름 주의) 우선 mp3는 손실 압축이다. 손실 압축이기 때문에 org_wav -> mp3 -> dec_wav 로 변환했을때 dec_wav의 pcm 데이터가 압축이 되어 org_wav보다 dec_wav 파일의 크기가 당연히 작을 것이라 생각했다. ex) org_wav(1000kb) -> mp3(31kb) -> dec_wav(500kb) 막상 변환 작업을 해보니 두 파일 사이즈가 같지도 않고 유의미하게 사이즈가 다른 것도 아니었다.(대략 7kb정도 dec_wav가 컸음) 결과 값을 보니 파일 사이즈가 잘리면서 압축이 되는 건 아닌 것 같다. 바이트 숫자 값을 낮춰서 압축을 하는 건가? 이건 두 파일의 byte array를 sum해서 비교해보면 알 수 ..
무전기 개념 모음 보호되어 있는 글입니다.
APK가 만들어지는 과정 안드로이드 apk가 만들어지는 과정 안드로이드에서는 자바, d8, r8 컴파일러가 있음. 여기서 자바 컴파일러는 해당 .java 파일을 .class의 바이트 코드로 변환해줌. 하지만 .class 같은 경우 JVM에서만 사용가능하지 달빅머신에서는 사용할수없음. 따라서 바이트코드를 달빅머신에 맞는 바이트코드로 변경해주어야 하는데 이 과정을 D8 컴파일러가 해줌. R8은 프로가드 컴파일러라고 보면 됨. 프로가드는 개발자의 코드를 난독화 및 최적화 해주는 툴임. 예를 들어 Class Java { private String name = "JAVA"; } -> Class a{ private String b= "JAVA"; } 처럼 간결하게 코드를 최적화해줌.
Socket 내용 Socket 프로그래밍의 개념 요약 create : 소켓 생성 bind : IP와 포트번호가 중복되어 있는지 확인하는 역할 listen : 클라이언트의 접속 기다림 클라이언트가 접속 되었을 때 연결 요청에 대한 정보는 시스템 내부적으로 관리되는 큐에 쌓임. 이상태를 not entablished state(대기 상태) 라고함 대기 중인 연결 요청을 큐로부터 꺼내와서 연결을 완료하기 위해서는 accept() api를 호출 accept : 클라이언트의 연결 요청을 받아들여 소켓 간 연결을 수립, 이전에 생성한 socket이 아닌 accept에서 새로운 소켓이 생성된다. 해당 소켓을 통해 데이터 통신이 이루어짐 close : 서버 소켓에서는 accept에서 생성된 소켓도 관리해야 함. 최종적으로 멀티플렉싱을 지..
정보처리기사 암기 위주 정리 - 서버프로그램 구현 재사용 : 목표 시스템의 개발 시간 및 비용 절감을 위하여 검증된 기능을 파악하고 재구성하여 시스템에 응용하기 위한 최적화 작업이다. 재사용 형태 - 편의적 재사용(내부, 외부) - 계획적 재사용 재사용 방법 - 합성 중심 - 생성 중심 모듈 : 특정 기능을 처리할 수 있는 싱행 코드를 의미하며 자체적으로 컴파일 가능하고 다른 프로그램에서 재사용이 가능하다. 소프트웨어 취약점 1. 메모리 보안 침임 - 버퍼 오버플로 - 허상 포인터 2. 입력 확인 오류 - 포맷 스트링 버그 - SQL 인젝션 - 코드 인젝션 - 이메일 인젝션 - HTTP 헤더 인젝션 - HTTP 응답 분할 - 디렉토리 접근 공격 - XSS 3. 경쟁 상태 - 심볼릭 링크 경쟁 4. 권한 혼동 버그 - CSRF : 사용자가 자신의 의지와는..
정보처리기사 암기 위주 정리 - 프로그래밍언어 데이터 타입 자료형 C JAVA PYTHON int 4byte 4byte 제한없음 long 4byte 8byte X float 4byte 4byte 8byte 비트 연산자 & 비트곱(and) | 비트합(or) ^ 배타적 논리합(xor) ~ 비트 부정(not) 오른쪽 시프트 제어문자 \r 커서를 그 줄의 맨 앞으로 이동 \f 한 페이지를 넘긴다. \b BackSpace \t 커서를 그 줄의 탭만큼 이동 파이썬 컬렉션 리스트 [] , mutable 튜플 () , immutable 딕셔너리 {} , key : value 셋 {} , 집합
정보처리기사 암기 위주 정리 - 데이터 입출력 구현 레코드 : 파일을 엑세스할 때 실제로 읽고 쓰는 단위로서 사용되는 데이터 단위이다. 현실 세계에서 개체를 의미한다. 검색 - 선형 검색 - 이진 검색 - 인덱스 검색 - 해싱 검색 해싱 검색 - 해싱함수 : 해시 테이블의 주소를 생성해 내는 함수 - 버킷 : 하나의 주소를 갖는 파일의 한 구역 - 충돌 : 서로 다른 2개 이상의 레코드가 같은 주소를 갖는 현상 - 시노임 : 같은 주소를 갖는 레코드의 집합 해싱 함수 - 제산법 : 나머지 - 폴딩 : 키를 여러 부분으로 나눔 - 계수분석 : 숫자의 분포를 파악 - 제곱법 : 키 값을 제곱한 값의 중간 부분 값을 선택 - 기수 변환 : 다른 진법으로 변환 이진 트리 - 정이진 트리 - 포화 이진 트리 - 완전 이진 트리 - 편향 이진 트리 ORM : 객체 ..
정보처리기사 암기 위주 정리 - 데이터베이스 데이터베이스 정의 - 통합된 데이터 - 공용 데이터 - 저장 데이터 - 운영 데이터 데이터베이스 특징 - 계속적인 변화 - 내용에 의한 참조 - 동시 공용 - 실시간 접근 DBMS의 필수 기능 - 정의 - 조작 - 제어 데이터 사전 : 시스템 자신이 필요로 하는 여러가지 객체에 관한 정보를 포함하고 있는 시스템 데이터 베이스(시스템 카탈로그) 스키마 - 외부스키마 - 개념스키마 - 내부스키마 분산 데이터베이스 4대 목표 - 위치 투명성 - 중복 투명성 - 병행 투명성 - 장애 투명성 JOIN의 종류 - CROSS JOIN - INNER JOIN - OUTER JOIN - SELF JOIN SQL 수행순서 - FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER..