본문 바로가기

전체 글

(142)
MutableStateFlow의 value와 update 차이 MutableStateFlow를 사용하다 보면 상태를 변경할 때 다음 두 방식 중 하나를 선택하게 된다.state.value = newValuestate.update { currentValue -> newValue} 두 방식 모두 thread-safe하지만, 해결하는 문제가 다르다. value 대입은 thread-safeMutableStateFlow.value에 값을 대입하는 작업 자체는 원자적으로 처리된다.state.value = Loading 여러 스레드에서 동시에 실행해도 값이 중간 상태로 깨지거나 메모리 손상이 발생하지 않는다.(참고: https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines..
GitHub에서 특정 Organization의 저장소에서만 push 실패할 때 개인 GitHub 저장소와 다른 Organization 저장소에서는 문제없이 Push할 수 있었는데, 특정 Organization 저장소에서만 Android Studio가 계속 GitHub 로그인을 요구하는 문제가 발생했다. 처음에는 GitHub PAT, SSH 키, macOS Keychain 문제를 의심했다. 하지만 최종 원인은 전혀 다른 곳에 있었다. 바로 GitHub Organization에서 JetBrains IDE Integration OAuth 앱의 접근 권한이 승인되지 않은 것이었다. 문제 상황 현재 프로젝트의 원격 저장소는 HTTPS 방식으로 연결되어 있었다.git remote -vorigin https://github.com/Nexters-Logit/logit-android.git (f..
Softeer 데브크루 사용 후기 평소 소프티어에서 이메일을 받아 보고 있는데 이런 메일이 왔다 무려 키크론 키보드가 경품으로 걸려 있다 최근 맥북에서 듀가드 키보드를 사용하면서 이슈가 좀 있었기에 솔깃했다 꼭 경품이 아니더라도 요즘 알고리즘 공부를 소홀히 했기 때문에 이 기회에 꾸준히 문제 푸는 습관을 다시 만들어 보면 좋겠다고 생각해서 참여하게 되었다 소프티어 홈페이지(https://softeer.ai/)에 방문하니 [개발자 크루]라는 탭이 새롭게 생겼다 크루 내의 게시판이나 문제집은 기본적으로 가입하지 않아도 목록은 볼 수 있다. (내용은 가입해야 열람 가능) 관심사에 맞는 크루인지는 각 크루의 게시글 목록을 통해서 판단할 수 있을 듯하다 소프티어 [개발자 크루]의 첫 인상은 백준의 [그룹]과 비슷하다는 느낌 제공하는 기능이나 사용..
듀가드 맥북에서 갑자기 안 될 때 듀가드를 작년에 구입해서 사용한지 1년 정도 됐는데 맥북에 연결해서 사용하다 보니 방금 전까지 잘 사용하다가도 갑자기 안 될 때가 몇 번 있었다 아무리 검색해봐도 해결 방법을 모르겠어서 충전 선 꽂아놓고 방치해뒀는데(아예 먹통이라 충전 표시 램프에 불도 안 들어옴..) 우연히 윈도우 노트북을 사용할 일이 있어서 오랜만에 꺼내서 사용했더니 듀가드 키보드에 다시 전원이 들어왔다! 윈도우 노트북에 듀가드 제우스 엔진이 설치돼 있는데 그걸 통해서 드라이버가 업데이트되거나 했나 보다 그냥 노트북을 켜기만 해도 되는 건지 키보드를 연결하고 듀가드 제우스 엔진까지 실행해야 되는 건지는 정확히 모르겠다 어쨋든 듀가드 제우스 엔진을 통해서 해결할 수 있음! 듀가드 제우스 엔진 다운로드 받는 곳 https://www.du..
Android Studio Extract Resource 리소스 추출 단축키 Android Studio에서 레이아웃 파일을 수정할 때 dp, string 등의 값을 dimens.xml이나 strings.xml에 리소스로 추출하려면 추출하려는 값에 커서를 올리고 [alt + enter]를 누르면 된다. 참고로 Kotlin/Java 코드를 수정할 때 [alt + enter]를 누르면 불필요한 import가 제거된다.
EA app 로그인 안되는 현상 기존에 Origin을 사용하다가 오랜만에 게임하려고 보니까 EA app을 통해서 게임을 설치하라고 한다. 설치하고 로그인하니까 EA 앱이 꺼지더니 무반응이다.. 구글링해서 여러 방법을 시도해봤는데도 안돼서 EA에 문의도 넣었는데 답변은 빨리 왔지만 도움이 안됐다. 해외 커뮤니티를 뒤져본 결과 [로그인 유지]를 체크 해제하면 앱이 안 튕긴다는 얘기가 있어서 해보니까 해결됐다..!
Github Secrets 사용 시 업스트림 Actions CI 에러 Fork한 레포지토리에서 같은 CI를 돌렸을 때는 정상적으로 빌드되어 통과됐는데 업스트림 레포지토리에서는 실패하는 일이 생겼다ㅠㅠ 분명히 업스트림 레포 Secrets에도 같은 값을 넣어줬는데도 그랬다. 열심히 삽질하다가 문득 Secrets 페이지에 들어가보니 이런 글이 보였다. 아래 문장을 읽어 보면 포크한 레포에서 보낸 PR로 트리거된 워크플로우에는 Secrets가 전달되지 않는다고 한다..! Github 가이드 문서를 보면 이런 내용도 있다. GITHUB_TOKEN 예외 때문이라고 한다. CI에서 계속 이런 에러가 떴던 게 이제 대충 이해가 된다. * What went wrong: Execution failed for task ':app:processDebugGoogleServices'. > Malf..
Firebase Realtime Database 업데이트 안되는 문제 Firebase Realtime Database가 업데이트되지 않을 때 Firebase Realtime Database 페이지에서 데이터베이스 위치가 기본값(미국)이 아니라면 상단의 URL을 코드에 추가해줘야 한다. Kotlin+KTX를 사용하는 경우 val database = Firebase.database("https://${프로젝트 이름}-default-rtdb.asia-southeast1.firebasedatabase.app/") val myRef = database.getReference("message") 그 외 경우 val database = Firebase.getInstance("https://${프로젝트 이름}-default-rtdb.asia-southeast1.firebasedataba..