일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Compose
- 쿠링
- Codeforces
- architecture
- textfield
- Kotlin
- Coroutine
- pandas
- 코루틴
- 코드포스
- Python
- boj
- Rxjava
- GitHub
- Gradle
- Coroutines
- 프로그래머스
- 백준
- relay
- androidStudio
- livedata
- AWS
- android
- MyVoca
- MiTweet
- Hilt
- 암호학
- TEST
- ProGuard
- activity
- Today
- Total
목록전체 글 (378)
이동식 저장소
이전 글에서 Android Macrobenchmark를 활용하여 프레임 성능을 개선하는 과정을 설명한 적이 있다. Macrobenchmark로 프레임 성능 측정하기문제 상황온보딩 화면에서 기능 소개 탭을 스크롤할 때 프레임 드랍이 발생하는 문제가 있다.이 글에서는 Macrobenchmark를 활용하여 프레임 성능을 측정하고, 성능 문제를 해결하는 연습을 해 보겠thinking-face.tistory.com회사 세미나에서 이 경험을 공유했는데, 팀 선배 분들께서 공부 의욕이 뿜뿜하는 질문을 주셨다. 한번 공부해 보자.frameOverrunMs와 frameDurationCpuMs의 차이가 일정하지 않은 이유?개선하기 전의 성능 측정 결과를 보자. 두 수치의 P50은 13.4ms 정도 차이나지만, P99의 차..
#1에서 이어집니다.두 번의 시험1차면접은 평이했다. 쉬웠다는 말이 아니고, 언제나처럼 긴장 잔뜩 하고 버벅였다는 뜻이다. 그럼에도 불구하고 면접관 분들께서는 나를 한번 더 보고 싶으셨던 모양이다.겉모습에 편견을 가지지 않았던 면접관 분들에게 작은 감사를 표하며, 최종 면접을 준비했다. 사실 최종 면접으로 갈 수록 준비할 게 없어진다. CS 벼락치기 정도는 할 수 있겠지만, 지금까지 살아온 인생은 바뀌지 않기 때문. 새로운 무기를 준비하기보단 지금 갖고 있는 것들로 어떻게든 싸우는 수밖에 없다. 특히 최종 면접은 더더욱 그런 것 같다. 경험을 통해 삶의 방향과 의도를 면접관에게 설명하는 것. 당연히 양보다 질이다.7월 말, 최종 면접을 보러 남양연구소에 갔다. 갈수록 뜨거워지는 공기와 반대로 내 손은 점..
2024년 8월 9일, 세 명의 젊은이들이 동대문 카페에 모여 각자의 문제와 씨름하고 있었다. 한 명은 생전 처음 보는 플랫폼과 사투를 벌이고 있었고, 다른 한 명은 스터디 준비에 열을 올리고 있었다. 마지막 한 명은 사소해 보이는 웹 사이트 에러에 진땀을 흘리고 있었다. 모순된 두 가지 메시지가 그를 괴롭히고 있었기 때문이다.취업하고 싶습니다!대학에 입학했을 때부터 진로는 취업이라고 거의 정해 놨다. 창업은 내 능력으론 절대 못 한다는 걸 알고 있었고(^^), 대학원 공부는 솔직히 하고 싶지 않았기 때문이다. 이론보다는 응용을 좋아하는 편이라. 첫 취업 활동은 2022년 카카오였다. 생애 첫 코딩테스트를 통과했던 좋은 기억과 함께, 생애 첫 면접을 완벽하게 망쳐버린 슬픈 기억이 아직까지도 선명하다. 면..
``Parcealble``과 ``Bundle``을 사용하면 프로세스 내/외부에 데이터를 전달할 수 있다. 이 글에서는 ``Parceable``과 ``Bundle``을 사용하는 best practices를 알아보자.Activity 간 데이터 전송Activity는 ``Intent``를 통해 시작할 수 있다. 이때 ``Intent.putExtra()``를 활용하면 activity에 데이터를 보낼 수 있다.Intent(context, MainActivity::class.java).apply { putExtra("some key", "some data",)} 넣을 수 있는 데이터는 Java primitive 타입과 String, 이 타입들의 array, 그리고 ``Bundle``이다.``Intent``에 추..
모든 안드로이드 앱은 개별 리눅스 프로세스에서 실행된다. 앱이 실행되는 프로세스는 시스템에 의해 회수되기 전까지 계속 실행된다. 즉 프로세스의 생명주기를 앱이 아닌 시스템이 제어한다는 것. 프로세스 생명주기는 앱의 실행 여부, 사용자에게의 중요도, 메모리 상황 등 시스템의 많은 부분을 종합적으로 고려하여 결정된다. 따라서 우리 개발자들은 ``Activity``, ``Service``, ``BroadcastReceiver`` 등의 컴포넌트가 프로세스 생명주기에 어떻게 영향을 미치는 지 알아야 한다. 컴포넌트를 정확히 이해하지 못하면 중요한 로직이 실행되지 않을 수도 있고, 로직이 실행되는 도중에 프로세스가 종료될 수도 있다. 예를 들어 ``BroadcastReceiver``에서 ``Intent``를 받은..