본문 바로가기

전체 글110

[Open Source] KoreanNumberFormatter 라이브러리 개발 동기 내부 라이브러리 클래스 중 PhoneNumberUtils가 존재하는데, 보통 번호 포맷을 적용하기 위해 쓰인다. 문제는 format 함수에 재난망 번호인 013 번호 체계가 존재하지 않아 포맷이 적용되지 않는 이슈가 있었다. 때문에 단말기의 지역이 한국인 경우 새로 만든 KoreanNumberFormatter 클래스를 이용해 번호를 반환해주기 위해 만들었다. 소개 Android Studio에서 Java를 이용해 제작했으며 번호 체계는 전기통신번호관리세칙, 대한민국의 전화번호 체계, 나무위키 전화번호 를 참고해 구현했다. 클래스는 KoreanNumbers, KoreanNumberFormatter, KoreanNumberEditText 총 3가지로 구성되어 있다. 먼저 KoreanNumbers는 .. 2023. 7. 20.
[Algorithm] [완전탐색] 최소직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때.. 2023. 7. 20.
[Algorithm] 2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기 문제 설명 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 지표 번호 성격 유형 1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다. 검사지에는 총 n개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다. 매우 비동의 비동의 약간 비동의 모르겠음 약간 동의 동의 매우 동의 각 질문은 1가지 지표로 성.. 2023. 7. 20.
[Open Source] AudioRecord PCM 파일로 녹음하기 시작 이전 게시물에서는 AudioRecord가 무엇 인지에 대해 정리했습니다. AudioRecord의 개념과 구현 방식, 장점 등에 대해 알아보았는데, 이번 포스팅에선 AudioRecord API를 이용해 pcm 확장자로 녹음하는 것에 대해 정리하려 합니다. 왜 하필 pcm 인가에 대해 궁금하실 수 있을 것 같아 말씀드리면 Andriod Developer에서 말하는 read 함수 모두 pcm 포맷을 파라미터로 넘기라고 되어 있으며 이것 때문인지 대다수의 예제 코드들이 pcm 확장자로 파일을 저장하는 것들이 였습니다. 따라서 기본기라고 생각하고 pcm 확장자 파일로 저장하는 포스팅을 한 후에 다른 확장자로 정의하는 것에 대해 정리할 예정입니다. 권한 요청 이번 포스팅에서는 오디오 데이터를 기록하고 기록된 .. 2023. 7. 20.
[Open Source] AudioRecord 소개 시작 제가 조사한 바에 따르면 안드로이드로 오디오를 녹음하는 방법에는 세 가지가 있습니다. 첫 번째는 MediaRecorder를 이용하는 것이며 두 번째는 AudioRecord를 마지막은 Native AudioRecord를 사용하여 녹음을 할 수 있습니다. 각 각의 API 마다 장점이 있지만 그 중 AudioRecord에 대해 정리한 글이며 Andriod Developer의 AudioRecord 페이지를 번역한 게시물입니다. 오역이 있을 수 있으니 원문이 필요하신 분들은 아래 링크를 이용해 주세요. AudioRecord | Android Developers developer.android.com AudioRecord란? AudioRecord는 Object 클래스를 상속 받고 있으며 AudioRouting.. 2023. 7. 20.
[Git] GitHub에 SSH 공개키를 등록했는데도 Permission denied가 발생하는 경우 2(git ssh authentication fails with ssh_askpass: posix_spawn: Unknown error) git ssh authentication fails with ssh_askpass: posix_spawn: Unknown error 에러 뜨면서 pull 또는 push가 안됨 찾아본 결과 OpenSSH의 버전이 낮아서 생긴 이슈였음 해결 방법은Linux의 경우OpenSSH를 특정 버전으로 맞춰 준다. OpenSSH Server | UbuntuUbuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.ubuntu.com Window의 경우Git을 삭제하고 다시 설치 또는 Linux처럼 bash에서 OpenSSH 버전을 맞춰 준다. 2023. 7. 19.
[Git] GitHub에 SSH 공개키를 등록했는데도 Permission denied가 발생하는 경우 1 2019년에 쓴 글입니다. 공개키를 분명히 GitHub 등록했는데, Permission denied가 뜨는 개 빡치는 상황이 발생 1. 학교에서 만든 프로젝트 파일을 Zip으로 압축해 집에 가져옴 2. 집에서 Zip 파일 풀고 일부 코드들을 수정해 Git에 올리려고 함 3. 이미 해당 프로젝트에 이전 기기에 Git이 깔려 있어 git 파일이 들어가 있었음 4. 그래서 git config --list 명령어를 통해 살펴보니 remote.origin.url이 이번에 remote 시킨 url과 일치 하지 않아 거부 당한거였음 5. remote url을 재설정 $ git remote set-url origin git@github.com:JunYou-Park/First.git 5-2. .git/config 파일을.. 2023. 7. 19.
[Git] 공개키 등록하기 git@github.com: Permission denied (publickey) Permission denied (publickey) GitHub에 올라간 Repository를 아무나 pull 또는 push를 하게 되면 큰 문제가 생길 수 있다. 때문에 해당 기능을 사용하기 위해선 유저에게 권한이 있는지 확인이 필요한데, 이때 필요한 것이 publickey이다. 해당 PC에서 생성된 키가 GitHub 계정에 등록된 경우에만 해당 기능을 사용할 수 있다. Public Key 생성하기 ssh-keygen -t rsa -b 4096 -C "jypjun12@gmail.com" 저장 경로를 물어보는 것이기 때문에 그냥 Enter를 입력 비밀번호를 입력 후 다시 재입력 이제 key가 만들어진 경로(home의 .ssh에 존재)로 이동해서 id_rsa.pub를 메모장으로 켠 뒤 모든 내용을 복사 .. 2023. 7. 19.
[Git] checkout, clean 수정된 파일 되돌리기 git 파일이 등록된 디렉토리에 파일 생성, 추가, 삭제, 변경 등이 일어나면 git에서 해당 사항들을 체크한다. 이때 tracked 과 untracked으로 변경된 사항이 나뉘는데, 차이는 다음과 같다. tracked(추적된 파일) git에 파일이 등록되어 있는 경우 추적된 파일로 판단한다. 파일 삭제, 변경 시 이 경우에 해당한다. untracked(추적되지 않은 파일) git에 등록되어 있지 않은 파일이 생성 또는 추가되는 경우 이것에 해당한다. tracked된 파일을 되돌리는 명령어 git checkout 수정된 파일 # 모든 변경사항을 되돌림 $ git checkout . # 특정 파일의 변경사항을 되돌림 $ git checkout app/src/main/java/com/cybertel/andr.. 2023. 7. 19.