목차
반응형

SOLID 원칙이란?
객체지향적 프로그래밍에서 적용해야 할 핵심 5가지 원칙을 적용한 것으로, 소프트웨어 개발 전략의 일부입니다.
프로그래머가 시간이 지나도 유지 보수와 확장, 리팩터링이 쉬운 시스템을 만들기 위해 지켜져야 하는 원칙입니다.
S : SRP(Single Responsibility Principle) 단일 책임 원칙
"한 클래스는 하나의 책임만 가져야 한다"
- 모든 클래스는 하나의 책임만 가지며, 그 책임을 완전히 캡슐화해야 함을 의미합니다.
- 이러한 설계는 기능의 응집도를 올리며, 결합도는 감소시킵니다.
O : OCP(Open / Closed Principle) 개방-폐쇄 원칙
"소프트웨어의 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다"
- 올바르게 리팩터링해 이후의 수정을 유발하지 않도록 하자는 원칙입니다.
- 동시에 새로운 동작을 추가해 확장하는 행위에는 열려있어야 한다는 의미입니다.
- 해당 원칙을 잘 보여주는 기능은 객체지향 프로그래밍 언어의 추상화가 있습니다.
- 고정해도 제한되지는 않음
- 추상화의 새 파생 클래스를 만들어 확장이 가능함
L : LSP(Liskkov Substitution Principle) 리스코프 치환 원칙
"프로그램의 객체는 프로그램 정확성을 꺠뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다"
- 서브타입은 언제나 기반 타입으로 교체할 수 있어야 한다는 것을 의미합니다.
- 다형성을 지원하기 위한 원칙입니다.
- 예 1) 자바의 다형성 : 자식 클래스를 부모 클래스로 형변환(`cast`) 하는 것
- 예 2) 자바의 컬렉션 프레임워크에서 자식 클래스인 `LinkedList` 가 부모 클래스 `List`의 `add` 메서드 사용
I : ISP(Interface Segregation Principle) 인터페이스 분리 원칙
"특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다"
- 인터페이스를 초기 구성할 때 관련 기능끼리 모으되 지나치게 커지지 않도록 크기를 제한하라는 것입니다.
- 한번 인터페이스를 분리해놓고 수정사항이 생겨 인터페이스를 분리하면 안 됩니다. → 문제 발생의 원인
D : DIP(Dependency Inversion Principle) 의존관계 역전 원칙
"추상화에 의존하되, 구체화에 의존하면 안된다"
- 상위 모듈은 하위 모듈에 의존해서는 안 됩니다.
- 상위 모듈과 하위 모듈 모두 추상화에 의존해야 합니다.
- 추상화가 세부 사항에 의존하면 안됩니다.
- 세부사항이 추상화에 의존해야 합니다.
혹시 관심이 있으시다면.. 아래 포스팅도 참고해 주세요.
2024.05.23 - [이성의 영역/현생 STATUS] - [자격증] 2024년 2회 정보처리기사 필기 합격 후기
[자격증] 2024년 2회 정보처리기사 필기 합격 후기
네 줄 요약신분 : SW 전공생 (복수전공)준비기간 : 2주점수 : 5과목 평균 82점 (60점 평균 이상 합격, 각 과목별 40점 과락)시험실시 : CBT 시험 (시험 후 합격결과 바로 확인가능) 학습방법시나공,
doinitright.tistory.com
2024.07.31 - [이성의 영역/현생 STATUS] - [자격증] 2024년 정보처리기사 2회 실기 합격 후기
[자격증] 2024년 정보처리기사 2회 실기 합격 후기
세줄요약체감 난이도 : ★★☆☆☆공부 순기 시간 : 약 2주공부 방법 : 2024년 정보처리기사 수제비 실기, 프로그래밍 관련 유튜브 강의* 실기 책은 필기 수험 당시에도 수제비를 차용했기에 실기
doinitright.tistory.com
\
반응형
'DEV > 개발 방법론' 카테고리의 다른 글
[개발 방법론] 마이크로 서비스(MSA)와 모놀리틱 아키텍처의 차이점 (1) | 2023.11.29 |
---|---|
[개발 방법론] 디자인 패턴과 MVC 패턴의 설명과 차이 (0) | 2023.11.15 |