본문 바로가기

분류 전체보기

(20)
[C#] Mac에서 VS Code로 문법 공부하기 연말이고 시간도 남고 해서 C# 문법 정도만 빠르게 익히려고 했는데 대부분이 윈도우 기반에서 설정하는 내용이 많더라. Visual Studio for Mac으로 하려다, 지원도 끊긴다고 해서 VS Code에 C# 확장해서 사용해보려 한다. 간단하게 정리하면 다음과 같다. VS Code 설치(brew install --cask visual-studio-code) .NET 설치(brew install dotnet) VS Code 에서 C# 설치 1, 2는 homebrew로 간단히 설치 가능하니 넘어가고. VS Code는 이미 설치가 되어 있어서 확장에서 C#을 설치하면 된다. 위까지 진행하면 문법 정도 익히는 환경은 셋업 된거다. 스터디할 폴더 만들고, "dotnet new console"하면 완료. VS ..
[adb] 안드로이드 기기에 설치되어 있는 apk 파일 추출하는 방법 apk 추출로 검색을 해보면, 안드로이드 기기에 설치되어 있는 apk 파일 추출하는데 있어서, 어떤 앱을 안드로이드 기기에 새로 설치를 하는 방법이 많이 나오는데... 나는 앱 설치고 뭐고 그냥 apk 추출을 하고 싶다. 나의 경우는, 개발용 폰을 따로 지원 받았는데 내 Google 계정 로그인 하기도 싫고(나도 쓰고, 남도 쓰고, 다 돌려쓰는 단말이기에)해서 알아 보았다. AOS 개발하는 사람들은 무조건 adb 설치되어 있을테니, 간단히 adb를 이용해서 추출하는 방법을 정리하고자 한다. 명령어는 아주 간단하게 다음과 같다. adb pull [apk 설치되어 있는 경로] [apk 추출할 경로] 문제는 안드로이드 기기에 "apk 설치되어 있는 경로"를 어떻게 아냐..인데 그건 다음 명령어를 이용하면 된다..
[git] 원격 저장소(github/gitlab)와 로컬 저장소 연결하는 방법 개발하는데 있어서 git은 땔래야 땔수 없는 사이다. 간단히 최초에 git 원격 저장소(remote repository) 생성하고, 로컬 저장소(local repository) 연결하는 방법을 정리하고자 한다.1. 원격 저장소 생성github, gitlab 이든 "create repository"를 통해서 원격 저장소를 생성한다. 생성할 때 "Add a README file" 체크하지 않도록 한다. 아무 파일도 없는 빈 repository를 만들기 위해서다. 생성이 되면 다음과 같은 화면이 나오고 Quick setup 내용이 표시된다. 여기서는 HTTPS or SSH 에 표시되어 있는 내용이 중요하다. 2. 로컬 저장소 생성원하는 위치에 폴더를 생성한다. 폴더 생성 후, "git init"을 통해 git..
Android Studio .gitignore 적용 안될 때 오늘은 몇년 전 작업하던 Project를 git으로부터 받아 왔는데, 빌드가 안된다. 여차저차해서 빌드까지 되게 만든 다음에 수정사항 commit 진행하려고 했는데 다음과 같은 상황이 발생했다. 굳이 추적하지 않아야할 파일 리스트들이 들어 있는 것을 발견했다. "아, .gitignore가 제대로 안되어 있나 보네"하고 살펴보니, 왠걸 .idea/ 항목이 잘 들어가 있는것 아닌가. 구글링하다 보니 다음과 같은 내용을 발견했다. 정리하면 나랑 완전히 동일한 상황인데, git에서 이미 변화를 감지한 다음에는 해당 cache를 지워야 한다고 한다. 다음 내용을 진행하기 전에 필요한 사항들은 반드시! commit 후에 진행할 것! git rm -rf --cached . git add . git commit -m ..
Android Studio 빌드 후 자동 실행 안될 때 좋은 Clean Architecture 예제(Device Layer까지 구현되어 있는)를 찾아서, 분석한 후에 깔끔한 코드로 정리 좀 해놓으려고 Android Studio에서 New Project로 작업을 진행했다. 일단 시작은, Android Studio > File > New > New Project > No Activity (결론이지만 이놈이 문제다) 그리고 나서, File > New > New Module > Android Library 계층 별로, domain, device 영역까지 추가한 뒤에, Hilt 이용해서 DI 작업까지 완료한 뒤에 빌드까지 완료했다. 그리고 Install 빌드 후에 인스톨까지 완료되고, Studio에 노티로 "Launch succeeded"라고 뜨지만 실제로 단말에서는..
컴퓨터 한대에 github 여러 계정 사용하는 방법 개발자라면 누구나 사용하고 있는 git. 개인적으로 github, gitlab 모두 사용하고 있는데 최근 문제가 발생했다. 나와 같은 문제 상황을 겪을 사람을 위해!서가 아니라, 내가 또 이런 경우가 발생하면 이것저것 삽질할 것으로 보여 이번에 처리한 내용을 따로 정리하고자 한다. 일단 상황을 간단히 정리하면 다음과 같다. git A 계정을 ssh key 등록해서 사용 중임. 새로운 git B 계정에 A 계정에서 사용하는 ssh key를 등록하려 했더니 오류 발생. 나는 계정 2개 또는 그 이상의 git 계정을 하나의 컴퓨터에서 사용하고 싶다! Key is already in use? 개인 git 계정(A 계정)만을 사용하고 있었으나, 다른 Project에 투입되면서 git 계정(B 계정)을 새로 생성해..
[AOS] 코틀린(Kotlin) 코루틴 채널(Channel) 코루틴 공식 페이지의 Channel 부분을 나름 번역하고 정리한 글이다. 소수 예제와 Ticker 관련 내용은 포함하지 않았다. 이후 Flow 사용하면 Channel을 따로 사용할까 싶어서인데, 이후 필요하면 내용 추가하려고 한다. 채널? 코루틴에서 채널은 BlockingQueue와 유사하다. 차이점은 Queue에서의 put 동작은 코루틴에서는 send. Queue에서의 take 동작은 코루틴에서는 receive라는 것이다. fun main() = runBlocking { val channel = Channel() launch { // this might be heavy CPU-consuming computation or async logic, we'll just send five squares for ..
[AOS] 코틀린(Kotlin) 코루틴 취소(Coroutines cancel) 코루틴이 기본적인 내용을 살펴봤으니, 이제는 코루틴 실행 취소의 타임아웃에 관해 살펴보고자 한다(이전 글). 코루틴 실행 취소 코루틴 로직 중에 어떤 작업을 하다 취소할 일이 생긴다면 어떻게 해야할까? 앞서 살펴본 launch 함수의 반환값인 Job을 이용해서 코루틴을 취소할 수 있다. fun main() = runBlocking { val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // delay a bit println("main: I'm tired of waiting!") job.cancel() // cancels the job job.join() // waits ..