2023.08.24 수업 이슈
- MyBatis
- Layer별 단위테스트
- MyBatis Framework와 Business Logic Layer 연결하기
▶ MyBatis Framework와 Business Logic 연결
- Service Layer은 데이터 처리를 위해 Persistent Layer와 나눴다고 볼 수 있다.
Ect
- 객체 지향 설계의 5원칙 S.O.L.I.D
[1] 좋은 소프트웨어는 무엇일까?
좋은 소프트웨어란 변화에 대응을 잘 하는 것을 말한다. 예를 들어, 갑자기 고객사에 기획에 없는 추가적인 요청을 하면 비록 욕 한사바리는 할지라도 결국 구현을 해야하는데, 이러한 변화에 큰 애로사항없이 잘 대응하기 위해선 소프트웨어 설계 근간이 좋아야 한다.
좋은 설계란 시스템에 새로운 요구사항이나 변경사항이 있을 때, 영향을 받는 범위가 적은 구조를 말한다. 그래서 시스템에 예상하지 못한 변경사항이 발생하더라도, 유연하게 대처하고 이후에 확장성이 있는 시스템 구조를 만들 수 있다.
즉, SOLID 객체 지향 원칙을 적용하면 코드를 확장하고 유지 보수 관리하기가 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트 개발의 생산성을 높일 수 있다.
[2] S.O.L.I.D
➡️ SRP(Single Responsibility Principle) : 단일 책임 원칙
단일 책임 원칙은 클래스(객체)는 단 하나의 책임만 가져야 한다는 원칙
➡️ OCP(Open Closed Principle) : 개방 폐쇠 원칙
OCP 원칙은 클래스는 '확장에는 열려있어야 하며, 수정에는 닫혀있어야 한다' 를 뜻한다.
어렵게 생각할 필요없이, OCP 원칙은 추상화 사용을 통한 관계 구축을 권장하는 것을 의미한다.
➡️ LSP(Lisckov Substitution Principle) : 리스코프 치환 원칙
LSP 원칙은 서브 타입은 언제나 기반(부모) 타입으로 교체할 수 있어야 한다는 원칙이다. Java에서 Collection 인터페이스가 대표적이다.
➡️ ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
ISP 원칙은 인터페이스를 각각 사용해 맞게 끔 잘게 분리해야한다는 설계 원칙이다.
➡️ DIP(Dependency Inversion Principle) : 의존 역전 원칙
구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻이다.
DIP 원칙은 어떤 Class를 참조해서 사용해야하는 상황이 생긴다면, 그 Class를 직접 참조하는 것이 아니라 그 대상의 상위 요소(추상 클래스 or 인터페이스)로 참조하라는 원칙
의존 역전 원칙의 지향점은 각 클래스간의 결합도(Coupling)을 낮추는 것이다.