티스토리 뷰

개발/TIL

SOLID 원칙

욱스다 2022. 11. 26. 00:30

1.단일 책임 원칙 (SRP - Single Responsibility Principle)

 

Object가 있을때 (class 설계도) -> 하나의 책임만 가진다.

ex) 더하기라는 클래스가 있을때 여기에 다른 연산을 추가한다면 이것은 단일 책임 원칙을 위반하는것.

 

SRP는 지키도록 노력하는것이지 완벽하게 지킬 수 있는것은 아니다.

ex) 클래스가 1가지 책임만 갖고는 만들 수 없을때 2가지 책임을 갖게될텐데-> srp위반 -> 최악의코드?!(최악코드X)

이렇게 하면 좋겠다는것이지 무조건은 아니다 최대한 단일 책임 원칙을 지키면서 프로그래밍 하겠다는 마음가짐이 중요

 

SRP를 따를때의 이점

- 쉬운 테스트 : 책임이 하나인 클래스는 테스트 케이스가 줄어들기 때문에 테스트가 쉽다

- 낮은 결합 : 단일 클래스의 기능이 적어져 종속성이 줄어든다.

- 쉬운 검색 : 작고 잘 조직된 클래스는 모놀리식 클래스보다 검색하기 쉽다

- 구현하기 쉬움 : 하나의 책임만 가지고 있기 때문에 구현및 이해가 쉽다

 

2.개방 폐쇄의 원칙 (OCP - Open Close Principle)

code -> 개방에는 열려있고 수정에는 폐쇄적

 

ex) A.class를 만들어서 테스트후 서비스중에 보완할 점이 생기게되면

A클래스를 고치는것이 아닌 B클래스를 만들어서 기능보완을 해서 실행하는 주체를 바꿔준다.

-> 이런 경우에는 추상클래스를 상속받아서 A.클래스가 구현되어야하고 B클래스도 마찬가지(디자인 패턴을 알아야한다)

 

3.의존성 역전 원칙 (DIP - Dpendencey Inversion Principle)

구체적인것의 의존하지않고 추상적인것에 의존하는것

4.인터페이스 분리 원칙 (ISP - Interface Segregation Principle)

인터페이스 분리 원칙은 클라이언트가 자신이 이용하지 않는 메서드에 의존하지않아야 한다.

ISP는 인터페이스가 응집력 측면에서 작게 분할하여 클래스가 필요한 작업만 실행하도록 하는것을 목표로 함

ISP는 SRP 단일 책임 원칙과 비슷하지만 ISP는 인터페이스를 SRP는 클래스와 연관되어있다.

 

5.리스코프 치환 원칙 (LSP - Liskov Substitution Principle)

LSP는 자식 클래스가 오류를 일으키지 않고 부모 클래스를 대신할 수 있도록 하는 것을 목표로 한다.

 

https://www.youtube.com/watch?v=0zgnMInEx2s&list=PL93mKxaRDidEhEcufGexy99nAWGesLBch&index=2 

'개발 > TIL' 카테고리의 다른 글

intellij git 파일 비활성화 설정  (0) 2023.05.18
pom.xml profiles에 따라 다른 배포 환경 설정  (0) 2023.05.09
10.8 dto, builder  (0) 2022.10.08
10.5 Entity  (0) 2022.10.05
10.4 HTTP, JPA  (0) 2022.10.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함