DEV/개발 방법론

[개발방법론] 객체지향 프로그래밍, SOLID 원칙에 대한 설명

Bi3a 2023. 11. 5. 23:09

목차
반응형

객체지향 프로그래밍, SOLID 원칙에 대한 설명
개발 공부를 합시다.

 

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

\

반응형