@onseok
배움을 배포하기

책 『소프트웨어 엔지니어 가이드북』 후기

May 06, 2025

개발자로써 회사에서 일하다 보면 다양한 상황들을 마주하게 됩니다. 커리어 전환, 팀 간 협업 문제, 코드 리뷰 문화, 작업 소요 시간 추정... 이런 상황들 하나하나에서 정답이 없어 고민하곤 했는데, 이번에 읽게 된 『The Software Engineer's Guidebook』 (게르겔리 오로스 저)는 말 그대로 소프트웨어 엔지니어의 가이드북 그 자체였…


안드로이드의 DNS-over-HTTP/3

May 04, 2025

2022년 7월, Google은 안드로이드에 중요한 보안 업데이트를 발표했습니다. 바로 DNS-over-HTTP/3(DoH3) 지원인데요. 이는 사용자의 개인정보를 보호하면서 동시에 네트워크 성능을 개선하는 혁신적인 기술입니다. DNS 개인정보 문제 네트워크 연결의 대부분은 으로 시작됩니다. 우리가 웹사이트에 접속할 때 HTTPS를 통해 콘텐츠를 안전하게…


안드로이드 CI 파이프라인 최적화를 위한 테스트 샤딩

May 02, 2025

모바일 애플리케이션이 복잡해지고 테스트 중요성이 증가함에 따라, 테스트 실행 시간도 늘어나 개발 생산성에 부정적인 영향을 주고 있습니다. 특히 환경에서는 빠른 피드백을 통한 개발 주기 단축이 중요한데, 테스트 시간이 길어지면 이러한 목표 달성이 어려워집니다. 본 글에서는 이런 문제를 해결하기 위한 테스트 샤딩(Test Sharding) 기법에 대해 자세…


Lock-Free 알고리즘과 CAS 연산

April 27, 2025

멀티스레드 환경에서 특히 여러 스레드가 공유 자원에 접근할 때 발생하는 Race condition을 해결하는 방법 중 하나로 Lock-Free 알고리즘이 있습니다. 이번 글에서는 Lock-Free 알고리즘의 개념부터 CAS 연산에 대해서 살펴보겠습니다. Lock-Based vs Lock-Free Lock-Free 알고리즘이란, 공유 자원에 여러 스레드가 …


Android 프로세스 수명 주기 이해하기

March 30, 2025

Android 앱을 개발하다 보면 자연스럽게 나 의 수명 주기에 집중하게 됩니다. 하지만 더 중요하면서도 종종 간과되는 것이 앱 프로세스의 수명 주기입니다. 특히 미디어 앱처럼 백그라운드에서도 지속적인 작업이 필요한 앱을 개발할 때는 프로세스 수명 주기를 이해하는 것이 필수적입니다. 이 글에서는 Android 프로세스의 수명 주기, 중요도 계층, 그리고 …


안드로이드 개발자를 위한 MPEG-DASH

March 25, 2025

요즘 모바일 중심 시대에서 효율적인 동영상 스트리밍은 좋은 사용자 경험을 제공하기 위해 필수적인 기능이라고 생각합니다. MPEG-DASH(Dynamic Adaptive Streaming over HTTP)는 모바일 환경에서 발생하는 다양한 스트리밍 문제들을 해결해주는 주요 표준으로 자리잡았습니다. 안드로이드 개발자라면 MPEG-DASH를 제대로 이해하는 …


Roborazzi로 안드로이드 스크린샷 변경점 시각화 테스트 구축하기

March 09, 2025

안드로이드 앱 개발 시 UI 변경사항이 제대로 적용되었는지 확인하는 과정은 필수적입니다. 특히 다양한 화면 크기와 해상도를 지원해야 하는 안드로이드 환경에서는 더욱 중요합니다. 하지만 코드 리뷰만으로는 이러한 UI 변경사항을 정확히 파악하기 어렵고, 특히 팀 규모가 커질수록 의도치 않은 UI 변경을 놓치기 쉽습니다. 최근 저는 회사 프로젝트에서 이 문제를…


JUnit4 vs JUnit5 그리고 Robolectric 호환성 문제 해결하기

March 07, 2025

안드로이드 개발에서 테스팅은 애플리케이션의 품질을 보장하는 중요한 단계입니다. 특히 JUnit은 자바와 코틀린 환경에서 가장 널리 사용되는 테스팅 프레임워크이지만, JUnit4와 JUnit5 사이에는 상당한 차이가 있으며 이는 안드로이드 테스트 환경에서 여러 문제를 일으킬 수 있습니다. 이 글에서는 JUnit4와 JUnit5의 주요 차이점, Robolec…


안드로이드 개발자가 놓치기 쉬운 UX (feat. 피츠의 법칙)

March 04, 2025

안드로이드 앱을 개발하다 보면 UI는 완벽해 보여도(적어도 프로덕트 디자이너분들께서 요구하는 사항들을 전부 만족하더라도?), 사용자 경험(UX) 측면에서 사소하지만 치명적인 요소들을 간과하기 쉽습니다. 특히 피츠의 법칙(Fitts’ Law)을 이해하면 버튼 터치 영역, 제스처 동작 등에서 흔히 놓치는 UX 포인트를 개선할 수 있습니다. 이번 글에서는 피츠…


AWS Amplify Android 오픈소스 기여하기

February 25, 2025

AWS Amplify는 모바일 및 프런트엔드 개발자가 AWS에서 안전하고 확장 가능한 풀스택 애플리케이션을 구축하고 배포할 수 있도록 지원하는 제품입니다. 회사에서 서비스하고 있는 프로젝트에서 S3로 로그 파일을 주기적으로 업로드하는 기능을 구현하고 꾸준히 모니터링하였는데, 여러 Android 기기에서 java.lang.OutOfMemoryError 오류…