Design Pattern: Chain of Responsibility
요청을 처리자들의 체인으로 흘려보내며 각자 처리하거나 다음으로 넘기는 책임 연쇄 패턴을 다룹니다. 안드로이드 개발자에게 가장 익숙한 OkHttp Interceptor를 중심으로, 이 패턴이 왜 체인을 중간에 끊을 수 있는 구조인지 살펴봅니다.
요청을 처리자들의 체인으로 흘려보내며 각자 처리하거나 다음으로 넘기는 책임 연쇄 패턴을 다룹니다. 안드로이드 개발자에게 가장 익숙한 OkHttp Interceptor를 중심으로, 이 패턴이 왜 체인을 중간에 끊을 수 있는 구조인지 살펴봅니다.
Wear OS에서 전력 효율과 정확도를 모두 잡기 위해 통합 위치 정보 제공자(FLP)와 건강 관리 서비스(WHS)를 어떻게 조합해야 하는지 정리합니다.
Navigation3을 활용해 Compose 환경에서 백스택을 완전히 제어하고 직관적인 상태 기반 라우팅을 설계하는 모범 패턴을 다룹니다.
구체적인 클래스에 의존하지 않고 연관된 타입들의 그룹을 일관성 있게 생성하는 추상 팩토리 패턴을 다룹니다. 객체 간 결합도를 낮추고 OCP를 준수하는 안정적인 설계 방법을 분석합니다.
테스트가 구현 세부 사항에 결합되면 리팩토링의 걸림돌이 됩니다. 명시적으로 권장되는 'Fakes'를 사용하여, 깨지기 쉬운 테스트를 견고한 'State-based Testing'으로 전환하는 방법을 다룹니다.'
기본 타입을 그대로 사용하면 성능은 좋지만 타입 안정성이 떨어지고, 객체로 감싸면 힙 메모리 할당 비용이 발생합니다. Value Class를 통해 해결하는 방법을 소개합니다.
Enum은 단순한 상태 식별자로는 훌륭하지만, 상태별로 서로 다른 데이터를 함께 표현하기에는 한계가 있습니다. Sealed Type을 사용하여 State와 Data를 안전하게 묶는 방법을 소개합니다.