티스토리 뷰
728x90
반응형
학습차원으로 "클린아키텍쳐" 도서를 읽고 정리한 글입니다.
좋은 소프트웨어 시스템은 깔끔한 코드로부터 시작한다.
좋은 벽돌을 사용하더라도 빌딩의 아키텍쳐를 엉망으로 만들 수 있다.
좋은 벽돌로 좋은 아키텍쳐를 정의하는 원칙이 필요한데, 그게 바로 SOLID다.
SOLID
S - SRP(Single Responsibility Principle): 단일책임법칙
- 소프트웨어 시스템이 가질 수 있는 최적의 구조는 시스템을 만드는 조직의 사회적 구조에 커다란 영향을 받는다.
- 각 소프트웨어 모듈은 변경의 이유가 하나, 단 하나여야만 한다.
O - OCP(Open-Closed Principle): 개방-폐쇄 원칙
- 기존코드를 수정하기 보다는 반드시 새로운 코드를 추가하는 방식
- 시스템의 행위를 변경할 수 있도록 설계해야만 소프트웨어 시스템을 쉽게 변경할 수 있다.
L - LSP(Liskov Substitution Principle): 리스코프치환 원칙
- 상호 대체 가능한 구성요소를 이용해 소프트웨어 시스템을 만들 수 있으려면, 이들 구성 요소는 반드시 서로 치환 가능해야만한다는 계약을 지켜야한다.
I -ISP(Interface Segregation Principle): 인터페이스 분리 원칙
- 소프트웨어 설계자는 사용하지 않는 것에 의존하지 않아야 한다.
D - DIP(Dependency Inversion Principle): 의존성 역전 원칙
- 고수준 정책을 구현하는 코드는 저수준 세부사항을 구현하는 코드에 절대로 의존해서는 안된다.
- 세부사항이 정책에 의존해야만한다.
SOLID 원칙은 함수와 데이터 구조를 클래스로 배치하는 방법, 클래스들을 서로 결합하는 방법을 설명해준다.
- 클래스: 단순히 함수와 데이터를 결합한 집합
SOLID 원칙의 목적
- 변경에 유연하다
- 이해하기 쉽다
- 많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반
728x90
반응형
'Backend > 꾸준히 TIL' 카테고리의 다른 글
[클린아키텍쳐] 설계원칙 SOLID 3 (0) | 2023.11.07 |
---|---|
[클린아키텍쳐] 설계원칙 SOLID 2 (1) | 2023.11.03 |
[Github Actions] Slack-WebHook을 활용하여 PR 요청할때마다 슬랙메시지 보내주도록하기 (0) | 2023.07.06 |
[JS] Javascript 내장함수 활용하기 (0) | 2023.07.05 |
[npm] dependencies 와 devDependencies 차이점 (0) | 2023.06.27 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- gem
- 디지털디톡스
- Nest.js
- 습관개선
- jest
- 클린아키텍쳐
- MySQL
- TDD
- RDBMS
- 갓생살자
- 나도 할 수 있다
- 한달어스
- vscode
- nestjs jest
- nestjs
- node.js
- 개발용어
- MongoDB
- git
- 미완
- 바이트디그리
- OS
- typeORM
- 참고
- Mongoose
- 한달독서
- TypeScript
- IT용어
- Jekyll
- 스마트폰중독
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함