본문 바로가기

전체 글140

[이펙티브 코틀린] 3장. 재사용성 1. Knowledge를 반복하여 사용하지 말라 2. 일반적인 알고리즘을 반복해서 구현하지 말라 3. 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라 4. 일반적인 알고리즘을 구현할 때 제네릭을 사용하라 5. 타입 파라미터의 섀도잉을 피하라 6. 제네릭 타입과 variance 한정자를 활용하라 7. 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라 1. Knowledge를 반복하여 사용하지 말라 (111p ~ ) "프로젝트에서 이미 있던 코드를 복사해서 붙여 넣고 있다면, 무언가가 잘못된 것이다" 책을 읽다보면 느끼는 건데 저자는 어떻게 내가 하는 짓거리(?)들을 이렇게 잘 아는 걸까 재사용성 챕터의 첫 부분에 나오는 이 문장을 읽으며 코드를 복붙 해서 사용하는 지난날의 내 모습들이 주마등처럼 스쳐 지.. 2022. 11. 18.
[번역] UI Layer - 안드로이드 앱 아키텍처 1. 왜 앱 아키텍처 설계를 해야 할까? 2. UI 레이어가 하는 일 3. UI 레이어를 구현하는 방법 3-1. UI 상태를 정의하는 방법 3-2. UI 상태의 생산을 관리하는 방법 3-3. UDF 원칙에 따라 관찰 가능한 데이터 유형으로 UI 상태를 노출하는 방법 3-4. 관찰 가능한 UI 상태를 소비하는 UI를 구현하는 방법 이 글은 안드로이드 공식문서 중 "앱 아키텍처 학습 과정" 페이지를 공부하며 작성한 글입니다. 개인적인 생각이나 의견이 포함되어 있음을 알려드립니다. 1. 왜 앱 아키텍처 설계를 해야 할까? 건물을 지을 때 설계도를 그려야 올바른 구조를 잡을 수 있다. 만약 올바른 구조가 없다면 건물이 무너질 수 있다. 앱도 마찬가지다. 올바른 구조가 없다면 앱도 무너지기 마련이다. 그렇다면 앱.. 2022. 11. 11.
[이펙티브 코틀린] 2장. 가독성 1. 가독성을 목표로 설계하라 2. Unit?을 리턴하지 말라 3. 변수 타입이 명확하지 않은 경우 확실하게 지정하라 4. 프로퍼티는 동작이 아니라 상태를 나타내야 한다 5. 이름 있는 아규먼트를 사용하라 1. 가독성을 목표로 설계하라 (71p ~ ) 이번 목차를 요약하자면 항상 가독성을 생각하며 코드를 작성하자는 것이다. 일반적이지 않고 굉장히 창의적인 구조는 변화에 유연하게 대응하지도 못하고 디버깅 도구의 지원조차 제대로 받지 못한다. // 구현 A if (person != null && person.isAdult) { view.showPerson(person) } else { view.showError() } // 구현 B person?.takeIf { it.isAdult } ?.let(view::.. 2022. 11. 9.
[이펙티브 코틀린] 1장. 안정성 1. 책을 열며 1-1. 책을 읽게 된 계기 1-2. 지은이의 말 2. 안정성 2-1. 가변성을 제한하라 2-2. 변수의 스코프를 최소화하라 2-3. 최대한 플랫폼 타입을 사용하지 말아라 2-4. 예외를 활용해 코드에 제한을 걸어라 2-5. 결과 부족이 발생할 경우 null과 Failure를 사용하라 2-6. 적절하게 null을 처리하라 1. 책을 열며 1-1. 책을 읽게 된 계기 회사에서 안드로이드 팀원분들과 스터디를 하기로 했다. (정확히는... 막내인 나를 위해 해 주시는 것 같다!) 컴포즈 스터디를 진행하게 될 뻔 했으나 기초에 먼저 충실하자는 의미로 코틀린을 먼저 스터디하게 되었다. 스터디하기로 한 책은 바로 이펙티브 코틀린! 1달~2달 정도안에 책을 다 읽고 매번 이렇게 정리해서 포스팅을 하기.. 2022. 11. 4.
[번역] 앱 아키텍처 가이드 - Android 공식 문서 1. 아키텍처 1-1. 아키텍처란 무엇일까? 1-2. 그렇다면 왜 아키텍처가 필요할까? 2. 아키텍처 설계 원칙 2-1. 관심사 분리 2-2. 데이터 모델에서 UI 도출하기 2-3. 단일 소스 저장소 2-4. 단방향 데이터 흐름 3. 권장 앱 아키텍처 3-1. UI 레이어 3-2. 데이터 레이어 3-3. 도메인 레이어 4. 안드로이드 아키텍처를 위해 추천하는 방법들 4-1. Layered architecture 4-2. UI Layer 4-3. ViewModel 4-4. Lifecycle 4-5. Handle dependencies 4-6. Testing 4-7. Models 4-8. Naming conventions 이 글은 안드로이드 공식문서 중 "앱 아키텍처 가이드" 페이지를 공부하며 작성한 글입니.. 2022. 11. 1.