본문 바로가기

design-pattern5

객체지향 설계의 5가지 원칙 S.O.L.I.D 안녕하세요. 오늘은 객체지향의 5가지 원칙, SOLID에 대해서 알아보도록하겠습니다. java의 특징은 많이 들어보셨을 것 같습니다. 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism) 이렇게 있죠. 이런 특징이 있는 JAVA는 객체지향(OOP) 프로그램의 특징을 가지고 있다고 합니다. 즉, 이런 특징을 이용하여 객체지향의 원칙을 구현할 수 있다는 것입니다. 오늘은 저와 객체지향을 목표로 하는 프로그램이 지켜야 할 5가지 원칙(Principle)에 대해서 알아보도록 하겠습니다. S - Single responsibility Principle 단일 책임 원칙(Single responsibility principle)이란 모든 메서드 또는 클래스는 단 하나의 책.. 2019. 11. 4.
[Spring & Design Pattern] Spring에서 발견한 Design Pattern_strategy pattern 안녕하세요. 오늘은 디자인패턴 중 꽃이라고 불리는 strategy pattern에 대해서 알아보도록 하겠습니다. strategy Pattern OOP(객체 지향)의 주요 원칙중 하나로 Open-Closed Principle(개방폐쇄원칙)이 있습니다. 간략히 말하면 "소프트웨어의 구성요소들은 확장에는 열려있어야하고, 변경에는 닫혀있어야 한다." 라는 원칙입니다. 즉, 요구사항의 변경이 있을 때 기존 구성요소의 수정은 최소화 하되 확장에는 적극적이어야 한다는 말입니다. 확장에는 기존 구성요소의 변경이 없습니다. 결합도가 낮다는 의미이기도 합니다. strategy Pattern은 개방폐쇄원칙에 잘 맞아 떨어지는 패턴입니다. 위의 이미지는 strategy 패턴을 보여주는 diagram입니다. 보면 클라이언트는 .. 2019. 10. 16.
[Spring & Design Pattern] Spring에서 발견한 디자인패턴_Singleton Pattern 안녕하세요. 오늘은 Spring에서 발견한 디자인 패턴의 3번째 시간으로 SingleTon 패턴에 대해서 알아보도록 하겠습니다. SingleTon Pattern이란? OOP에서 모든 객체들은 라이프 사이클(Life cycle)을 가지고 있습니다. 처음에 객체가 생성되고 GC에 의해서 삭제되기까지가 하나의 라이프 사이클입니다. 객체를 여러개를 만들지 않고 1개만 만들고 이를 공유해서 쓰고싶을 때가 있습니다. 이렇게 하면 객체 생성에 대한 비용 및 데이터 공유를 쉽게 할 수 있죠. 대표적인 예를 들면 DB의 Transaction을 관리하는 클래스가 그렇습니다. 이때 사용할 수 있는 pattern이 싱글톤 패턴(singleton pattern)입니다. Singleton Pattern이란 인스턴스를 1개로 제한.. 2019. 9. 23.
[Spring & Design Pattern] Spring에서 발견한 디자인패턴_Proxy Pattern Spring의 특징이라고 하면 IoC(또는 DI), PSA(Portable Service Architecture) 그리고 AOP(Aspect-Oriented Programming)가 있습니다. 이 개념이 무엇인가? 에 대해서는 이번 포스팅에서 언급하진 않겠습니다. 궁금하신 분은 저의 Spring 카테고리에 하나씩 설명이 되어있으니 해당 포스팅들을 참고 부탁드립니다. 저는 다른부분에 대해서 말해보려고 합니다. AOP는 관점지형 프로그래밍으로 main기능이 아닌 기능(Logging / Transaction)을 묶음으로 하여 Main Function을 잘 구성할 수 있게 해주는 방식입니다. 따라서 비즈니스 로직의 중간에 소스코드를 삽입해야하는데 이를 지원해주는 방식은 일반적으로 3가지로 구현이 가능합니다. S.. 2019. 9. 6.
[Spring & Design Pattern] Spring에서 발견한 디자인패턴_template method pattern Spring Boot로 개발을 하다보니 그 중심이 되는 DispatcherServlet이 궁금해 졌었습니다. 그래서 이전에 DispatcherServlet의 전체적인 프로세스를 간략하게 정리한 [Spring]DispatcherServlet Code로 분석하기 - reqeust & response process 포스팅을 진행 했었습니다. DisaptcherServlet을 분석하던 중 다양한 Design Pattern이 사용됬다는 것을 확인했고 이를 포스팅 하고 싶어졌습니다. 오늘은 DispatcherServlet에서 사용된 디자인 패턴 중 하나인 Template method Pattern에 대해서 알아보도록 하겠습니다. template method pattern 서로 다른 유사한 컴포넌트가 있을때, 공통 .. 2019. 9. 4.