3. 클린 아키텍처 소프트웨어의 관심사를 계층별로 분리하는 소프트웨어 디자인 철학 주요 원칙 : 코드 종속성이 외부로부터 내부로 의존 내부 계층 코드는 외부 계층의 기능을 알 수 없음 외부 계층에 존재하는 변수, 함수, 클래스 등 모든 엔티티는 안쪽 계층에서 다시 등장 불가 데이터 형식도 계층 간에 별도로 유지하는 것이 좋아 가장 추상 적인 영역은 가장 가운데 있는 녀석 비즈니스 로직을 포함. 플랫폼, 프레임워크에 의존하면 안됨 외부 원은 네트워크, 데이터베이스 접근 등 플랫폼에 특정한 구체적 구현 세부사항이 포함됨. 내부로 갈 수록 추상화 캡슐화 수준이 높아짐 장점 : 계층을 분리. 계층 간의 의존성을 단방향으로 유지. 코드의 재사용성 용이 및 유닛 테스트가 쉬워짐 Entities 전사적 비즈니스 규칙..
1. 애플리케이션 설계란? 구성 요소간 유기적 관계를 표현 요구사항 해결을 위한 계획 및 과정 텍스트, 그림, 다이어그램 등으로 표현 애플리케이션은 일단 구현되고 나면 변경하는데 큰 비용이 듦 잘 설계된 어플리케이션은 유지 보수비를 줄여줌. 성능, 보안, 안정성 등 측면에서 많은 이점이 있음 앱의 경우 미래에 나오는 플랫폼 호환성, 정책 등으로 끊임없는 변화에 대한 대응이 필요함 2. 애플리케이션의 설계 원칙 로버트 C. 마틴의 객체지향 프로그래밍 및 설계에 대한 SOLID 원칙 1. 단일 책임 원칙(Single Responsibility Principle) 모든 클래스는 하나의 책임만 가져야하며, 클래스는 그 책임을 완전히 캡슐화해야 함. 어떤 클래스나 모듈 또는 매서드가 단 하나의 기능만을 가져야 한..