OOP의 5가지 설계 원칙은 "SOLID"라는 약어로 알려져 있습니다. SOLID 원칙은 객체 지향 프로그래밍과 설계에 있어서 효율적이고, 유지보수가 용이한, 확장성 있는 시스템을 만들기 위한 핵심 원칙들을 의미합니다. 각 원칙은 다음과 같습니다:
1. S - 단일 책임 원칙 (Single Responsibility Principle, SRP)
- 한 클래스는 하나의 책임만 가져야 한다는 원칙입니다. 즉, 클래스가 변경되어야 하는 이유는 오직 하나뿐이어야 합니다. 이 원칙을 따르면, 각 클래스는 명확한 목적을 가지게 되어 코드의 유지보수가 용이해집니다.
2. O - 개방-폐쇄 원칙 (Open-Closed Principle, OCP)
- 소프트웨어의 구성요소(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다는 원칙입니다. 즉, 기존의 코드를 변경하지 않고도 새로운 기능을 추가할 수 있어야 합니다.
3. L - 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)
- 서브타입은 언제나 기반 타입으로 교체될 수 있어야 한다는 원칙입니다. 즉, 자식 클래스는 부모 클래스의 역할을 완벽하게 대체할 수 있어야 합니다.
4. I - 인터페이스 분리 원칙 (Interface Segregation Principle, ISP)
- 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다는 원칙입니다. 즉, 너무 많은 기능을 가진 무거운 인터페이스보다는, 구체적인 여러 개의 인터페이스가 낫다는 것을 의미합니다.
5. D - 의존 역전 원칙 (Dependency Inversion Principle, DIP)
- 고수준의 모듈은 저수준의 모듈에 의존하면 안 되며, 둘 다 추상화에 의존해야 한다는 원칙입니다. 즉, 구체적인 구현에 의존하기보다는 추상화된 것에 의존해야 합니다.
SOLID 원칙은 객체 지향 설계의 품질을 높이기 위한 핵심 가이드라인으로, 이 원칙들을 잘 따르면 유지보수와 확장성이 높은 효율적인 코드를 작성할 수 있습니다.
'무근본 IT 지식 공유 > 무근본 자바(JAVA)' 카테고리의 다른 글
오버로딩, 오버라이딩 차이가 대체 뭔데?-왕초보도 이해하는 자바 (0) | 2023.09.16 |
---|---|
가비지 컬렉터가 대체 뭐야?-왕초보도 이해하는 프로그래밍 (0) | 2023.09.16 |
[무근본 자바(JAVA)] OOP란? OOP가 뭔데? 쉽게 설명해줄게 ! (0) | 2023.08.22 |
[무근본 자바] restapi patch 요청 테스트 중 : java.lang.NoClassDefFoundError 해결 방안 (0) | 2023.04.20 |
[무근본 자바(Java) 공부] 자바에서 Map 자료구조는 언제 쓰일까? - 왕초보도 이해하는 자바 (0) | 2023.03.26 |
댓글