티스토리 뷰
객체지향 기술은 어느날 한 번에 만들어진 것이라기보다는 오랜 시간에 걸쳐 점진적으로 발전 해온 기술이라고 볼 수 있다. 그렇기 때문에 객체지향 프로그래밍 언어의 종류도 다양하고 객체지향 기술을 받아들이고 적용하는 관점과 기법도 조금씩 차이가 있다. 그럼에도 객체지향이라는 이름으로 묶을 수 있는 분명한 특징이 있다. 객체지향 설계 원칙은 객체지향의 특징을 잘 살릴 수 있는 설계의 특징을 말한다. 원칙이라는 건 어떤 상황에서든 100% 지켜져야 하는 절대적인 기준이라기보다는, 예외는 있겠지만 대부분의 상황에 잘 들어맞는 가이드라인과 같은 것이다. 디자인 패턴은 특별한 상황에서 발생하는 문제에 대한 좀 더 구체적인 솔루션이라고 한다면, 객체지향 설계 원칙은 좀 더 일반적인 상황에서 적용 가능한 설계 기준이라고 볼 수 있다. 당연한 일이지만 객체지향 디자인 패턴은 대부분 객체지향 설계 원칙을 잘 지켜서 만들어져 있다.
오랜 시간 동안 많은 학자와 개발자 사이에서 공감대가 형성된 객체지향 설계에 관한 여러가지 원리와 원칙을 체계적으로 잘 정리하고, 멋진 이름과 약자도 만들어서 공개된 것이 바로 SOLID라고 불리는 5가지 객체지향 설계의 원칙이다. 객체지향 설계와 테스트 등을 전문적으로 가르치고 컨설팅하는, 로버트 마틴이 정리한 이 5가지 객체지향 설계 원칙은 한 번쯤 공부해 두는 편이 좋다.
로버트 마틴이 정리한 객체지향 설계 원칙인 SOLID에 대한 소개는 관련 웹사이트(http://butunclebob.com/ArtivcleS.UncleBob.PrinciplesOfOod)에서 찾아볼 수 있다. SOLID 원칙을 잘 설명하는 도서로는 밥 마틴이 쓴 [Java 프로그래머를 위한 UML 실전에서는 이것만 쓴다]라는 책을 추천한다. UML 책인 것 같지만 객체지향 설계 원칙에 대한 자세한 설명과 함께, 실용적인 조언과 사례를 잘 제공해주고 있는 책이다. 역시 밥 마틴이 쓴 [소프트웨어 개발의 지혜: 원칙, 디자인 패턴, 실천 방법]도 SOLID 원칙을 실용적인 예제와 함계 깊이 있게 다루고 있다.
SOLID는 아래 5가지 원칙의 첫글자를 따서 만든 단어다.
SRP(The Single Responsibility Principle): 단일 책임 원칙
OCP(The Open Closed Principle): 개방 폐쇄 원칙
LSP(The Liskov Substitution Principle): 리스코프 치환 원칙
ISP(The Interface Segregation Principle): 인터페이스 분리 원칙
DIP(The Dependency Inversion Principle): 의존관계 역전 원칙
'Framework > Spring' 카테고리의 다른 글
스프링 IoC의 용어 정리 (0) | 2017.12.22 |
---|---|
스프링에서의 빈? 애플리케이션 컨텍스트? (0) | 2017.12.21 |
#0 스프링 공부를 시작하며 (0) | 2017.12.14 |
- Total
- Today
- Yesterday
- apache tomcat 연동
- 빈팩토리
- 디자인패턴
- 프로세스
- apache2.x
- 메소드
- 패턴
- 쓰레드
- apllication context
- map foreach
- 설정정보
- BEAN
- 어플리에키션 컨텍스트
- IoC컨테이너
- 쓰레드의 이용
- 프로세스의 특징
- Page
- 연동
- tomcat8.5
- application
- 프로세스의 문제점
- map for문
- map loop
- map iterator
- java map loop
- 쓰레드 사용 이유
- 빈
- tomcat8.x
- 스프링
- parretn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |