본문 바로가기

전체 글

(31)
Clean Architecture - Android에 적용하기 실제로 프로젝트에서 적용하면서 체감은 했지만 막상 깔끔하게 정리해보지 못했던 클린 아키텍처 개념을 정리해보려고 한다! 여러 아키텍처들이 있지만 공통의 목표는 계층을 분리하여 의존성을 없애는 것이 라고 한다. 클린아키텍처도 계층을 나누어 관심사를 분리하는 것에 목적이 있다 . 3 Layer 클린 아키텍처에서는 크게 3가지 레이어로 분리하는데 Domain / Data / Presentation layer이다 그리고 의존성 규칙(Dependency Rule)을 지켜 계층을 분리한다 Dependency Rule은 원 내부의 (inner) 계층은 외부(outer)의 계층을 알수없고 모든 소스코드 의존성은 반드시 외부에서 내부로 고수준 정책을 향해야 한다는 것이다 (즉 원 내부에서 외부 모르고 외부는 내부를 알수 ..
Gson vs kotlinx-serialization Kotlin에서 Gson을 사용하다보면 느끼는 한계가 있다. 1. Not Null 한 변수에 null 값이 들어갈 수 있다는것 null check를 컴파일 타임에 하지 않아 런타임에 오류발생 가능성이 생김 kotlin의 null safety한 장점이 소용이 없어진다 2. default value 적용되지 않는 문제 통신데이터에 값이 없다던가 여타 이유로 데이터가 없는경우 기본값을 적용하고싶은 경우가 있다 하지만 gson을 사용하는 경우 converte 할 data class 의 프로퍼티에 default value 를 적용해두어도 막상 converte 하면 적용되지 않는 문제가 있다 즉 Gson이 kotlin의 장점을 최대화 할수있을만틈 kotlin에 친화적이지 않다는 결론이 났다 (두둥) 해결책으로는 k..
SOLID 법칙 객체지향의 5대 원칙으로 확장, 유지보수가 쉬운 소프트웨어를 만들 수 있다 . 1. Single Responsibility Principle (SRP, 단일책임원칙) 소프트웨어의 부품 (클래스, 함수 등)은 단하나의 책임만 가져야한다 응집도는 높고 결합도는 낮은 객체를 만들기위함 하나의 책임만들 부여하여 다른 객체간의 결합도를 낮추도록 책임 분리 2. Open-Closed Principle (OCP, 개방-폐쇄 원칙) 기존코드를 변경하지 않고 기능 수정 추가 가능하도록 설계해야 한다 자주 변경되는 부분은 수정사항에 영향을 받지 않도록 설계 ex) 인터페이스 사용 3. Liskov Substitution Principle (리스코프 치환 원칙) 부모클래스와 자식클래스 사이의 행위에는 일관성이 있어야한다는 ..