본문 바로가기

CS/ETC

(8)
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에서 생성된 소켓도 관리해야 함. 최종적으로 멀티플렉싱을 지..
윈도우 시스템 종료 제한 윈도우키 + R [사용자 구성 - 관리 템플릿 - 시작 메뉴 및 작업 표시줄] 에서 우측에 "시스템 종료, 다시 시작 , 절전 모드 및 최대 절전 모드 명령 제거 및 액세스 방지" 항목을 사용으로 설정
IntelliJ Run Console이 지저분하게 나올 때 (Executing task....) 가끔 IntelliJ로 자바 프로젝트를 열면 이런식으로 지저분하게 나올때가 있다. 위와 같이 깔끔하게 사용하고 싶은 경우 Ctrl + Alt + S -> Build, Execution, Deployment -> Build Tools -> Gradle에서 Build and run using -> IntelliJ IDEA Run tests using -> IntelliJ IDEA 로 변경해주면 된다.
안드로이드 스튜디오 Kotlin Hint 설정 Ctrl + Alt + S -> Inlay Hints -> Kotlin -> Show hints for에서 원하는 힌트를 적용하면 된다.
AMD CPU에서 Android Studio 에뮬레이터 사용하기 이번에 데스크탑을 젠3로 업그레이드 했는데 안스의 에뮬레이터가 실행이 안되는 이슈가 있었다. 퀘이사존이랑 안드로이드 포럼쪽에서 찾아봤더니 바이오스에서 SMT를 설정하고 windows의 하이퍼바이저 플랫폼을 활성화시키면 된다길래 해보았다. 참고로 AMD의 SMT 기능이 불안정하다는 말들이 많았기 때문에 이전에 사용하던 바이오스 세팅을 저장하고 진행하는 것을 추천한다. 스크린샷의 메인보드와 윈도우는 긱바 어로스 B550 Pro Ac, Windows 10 Pro이다. SVM Mode를 활성화시키고 재부팅한다. 제어판에서 Windows 기능 켜기/끄기 클릭 Windows 하이퍼바이저 플랫폼 선택 후 재부팅하면 된다.