예외처리 메커니즘
- 예외 메커니즘은 예외 상황의 문맥을 전달하기 위해 사용합니다.
- 커스텀 예외란, 개발자가 직접 정의한 예외입니다.
- 예외는 예외 상황에서만 사용해야 합니다.
- 예외처리를 클라이언트에게 강제하고 싶은 경우, Checked Exception을 사용합니다.
디미터 법칙
- 디미터 법칙이란 의존성을 관리하기 위한 한 가지 법칙입니다.
- 디미터 법칙은 TDA(Tell, Don’t Ask)원칙을 준수하게 만듭니다.
- 디미터 법칙은 대상이 자료구조라면 위반될 가능성이 없습니다.
추상 클래스, 인터페이스
- 추상 클래스 상속(구현 상속)은 개념 면에서 밀접한 연관이 있는 객체들에게 사용합니다.
- 인터페이스 상속은 개념적으로 관련이 없더라도 공통 행위를 정의하고 싶다면 사용합니다.
- 인터페이스는 다중 상속이 가능합니다.
일급 컬렉션
- 비즈니스에 종속적인 자료구조입니다.
- 상태에 대한 행위를 한 곳에서 이루어지도록 합니다.
- 명령-쿼리를 기타 로직으로부터 분리할 수 있으므로 코드의 가독성, 유지보수성이 개선됩니다.
MVC
- UI와 비즈니스 로직을 분리하기 위해 고안되었습니다.
- 컨트롤러, 뷰, 도메인(모델)은 각각 고유한 역할을 가집니다.
TDD
- 실패하는 테스트를 먼저 작성하고, 해당 테스트를 통과할 만큼만 프로덕션 코드를 작성합니다.
- 이후 리팩토링 과정을 통해 테스트, 프로덕션 코드를 개선합니다.
- 위 과정을 끊임없이 반복하면 불필요한 코드, 작업이 스며들지 않고 필요한 기능만 구현하게 됩니다.
객체지향 설계란
- 객체지향 설계가 기존의 설계와 다른 점은, ‘변경가능성’을 염두에 둬야 한다는 것입니다.
- 변경에 유연한 설계를 만들기 위해서는 의존성을 적절히 관리해야 합니다.
- 자주 변경될 수 있는 부분에 추상화를 적용시킬 수 있습니다.
- 변경을 격리시키고 유지보수하기 좋은 코드를 만드는 것이 핵심입니다.
'우테코 5기' 카테고리의 다른 글
[레벨 1 미션] 체스 학습 기록(1) (2) | 2023.04.04 |
---|---|
[레벨 1 미션] 블랙잭 게임 학습 기록 (2) | 2023.04.04 |
[레벨 1 미션] 체스 미션 회고 (1) | 2023.03.29 |
설계 관점에서 바라본 불변 객체 (1) | 2023.03.29 |
getter는 금기가 아니다 (3) | 2023.03.25 |