본문 바로가기
2부 코드설계 > 4장 추상화 설계 2부 코드설계 > 4장 추상화 설계 > 함수 내부의 추상화 레벨을 통일하라. 2부 코드설계 > 4장 추상화 설계 > 변화로부터 코드를 보호하려면 추상화를 사용하라. 2부 코드설계 > 4장 추상화 설계 > API 안정성을 확인하라. 2부 코드설계 > 4장 추상화 설계 > 외부 API를 랩(wrap)해서 사용하라. 2부 코드설계 > 4장 추상화 설계 > 요소의 가시성을 최소화하라. 2부 코드설계 > 4장 추상화 설계 > 문서로 규약을 정의하라. 2부 코드설계 > 4장 추상화 설계 > 추상화 규약을 지켜라. 1. 책에서 기억하고 싶은 내용 추상화 : 컴퓨터 과학에서 추상화(abstraction)는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다. 조금 간단하게 표현하.. 2022. 9. 27.
2부 코드설계 > 6장 클래스 설계 > equals, hashCode, compareTo / 확장함수 2부 코드설계 > 6장 클래스 설계 > equals의 규약을 지켜라. 2부 코드설계 > 6장 클래스 설계 > hashCode의 규약을 지켜라. 2부 코드설계 > 6장 클래스 설계 > compareTo의 규약을 지켜라. 2부 코드설계 > 6장 클래스 설계 > API의 필수적이지 않는 부분을 확장 함수로 추출하라. 2부 코드설계 > 6장 클래스 설계 > 멤버 확장 함수의 사용을 피하라. 오늘의 TIL 3줄 요약 equals, hashCode, compareTo 메서드의 기본 사용법 확장 함수를 사용하는 방법과 활용하는 방법 1. 책에서 기억하고 싶은 내용 equals 구조적 동등성 (structural equality) : ==, != 으로 확인하는 동등성. 레퍼런스적 동등성 (referential equa.. 2022. 9. 27.
DI(의존성 주입)은 무엇인가? 그리고 Koin DI를 적용하는 과정 저번의 MVVM과 같이 많은 실무 프로젝트에서 사용되는 Dependency Injection에 대해서 알아보겠습니다. Andorid에서도 좋은 App Architecture를 구현하기 위하여 권장하고 있는 원칙이기도 합니다. 다들 DI라고 부릅니다. 좋은 App Architecture를 위해서 AAC패턴을 적용하는 것처럼 DI도 같은 목적을 위해서 적용하기를 권장하는 것입니다. 코드의 재사용성 리팩토링의 용이성 테스트 편의성 Android에서는 아래와 같은 코드를 제시하면서 DI에 대하여 소개하고 있습니다. class Car { private val engine = Engine() fun start() { engine.start() } } fun main(args: Array) { val car = Ca.. 2022. 9. 14.
2부 코드설계 > 6장 클래스 설계 > data, sealed, abstract 한정자 / 함수타입 / 태그클래스 2부 코드설계 > 6장 클래스 설계 > 데이터 집합 표현에 data한정자를 사용하라 2부 코드설계 > 6장 클래스 설계 > 연산 또는 액션을 전달할 때는 인터페이스 대신 함수타입을 사용하라 2부 코드설계 > 6장 클래스 설계 > 태그 클래스 보다는 클래스 계층을 사용하라 오늘의 TIL 3줄 요약 data 한정자, 데이터 클래스의 장점 함수타입으로 얻는 코드의 자유 태그 클래스 vs. 클래스 계층 (sealed, abstract한정자) 1. 책에서 기억하고 싶은 내용 data 한정자, 데이터들을 한꺼번에 전달해야 할 때 사용하는 클래스에 붙어있는 것을 확인할 수 있다. 이 한정자를 붙이면 아래의 함수들이 자동으로 생성된다. - toString : 로그 출력 및 디버그 시 활용 - equals, hashCo.. 2022. 9. 2.
2부 코드설계 > 6장 클래스 설계 > 상속보다는 컴포지션을 사용하라 2부 코드 설계 > 6장 클래스 설계 > 상속보다는 컴포지션을 사용하라 오늘의 TIL 3줄 요약 명확한 is-a 관계에서는 상속 (계층구조의 표현, 뷰를 출력) 컴포지션을 통한 인터페이스 분리원칙, 리스코프 치환원칙 개선 위임패턴과 포워딩 메서드 : 캡슐화가 깨지지 않도록 관리 1. 책에서 기억하고 싶은 내용 상속에 대한 몇 가지 단점 - 상속은 하나의 클래스만을 대상으로 할 수 있다. 상속을 사용하다 보면 많은 함수를 갖는 거대한 클래스를 가지게 되고 이는 복잡한 계층구조를 만들어 낸다. - 상속은 클래스의 모든 것을 가져온다. 따라서 불필요한 함수를 가지는 클래스가 만들어질 수 있다. (인터페이스 분리 원칙 위반) - 상속은 이해하기 어렵고, 메서드의 작동방식을 이해하기 위하여 슈퍼클래스를 여러 번 .. 2022. 9. 1.
MVVM에 대하여, 그리고 간단한 샘플코드를 만들어보기 안드로이드에서는 MVVM을 제외하고 MVC, MVP 등의 구조를 제공하고 있습니다 MVVM 만큼이나 많이 쓰이는 구조들이므로 AAC(**Android Architecture Component)**는 모두 알아두는 것이 좋습니다. 하지만 오늘은 제가 실무 프로젝트에서 사용하였던 MVVM패턴에 대하여 자세히 알아보고 관련 내용의 가장 기본 골격을 어떻게 앱 프로젝트에 적용할 수 있는지 하나씩 알아보도록 하겠습니다. AAC 중 MVVM은 [Model / View / ViewModel]라고 생각하시면 됩니다. Android Developer에서는 아래의 이미지를 App Architecture Diagram으로 소개하고 있습니다. 즉, 앱의 구조를 아래와 같이 구성하고 주요 살들을 붙여나가면 Android에서 권.. 2022. 8. 31.
728x90
반응형