목록분류 전체보기 (248)
S E P H ' S
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cP3xha/btr4vn5YQSw/TrGmcDYDavQSi1ifM6PFF1/img.jpg)
상태(State) 패턴 상태 패턴이란? 객체지향 프로그래밍에 대해서 공부했거나 조금 알고 있는 분들이라면 객체가 '상태'에 따라서 행위를 다르게 한다는 것에 대해서는 어느정도 알고 있을 것이다. 키가 145cm인 사람. 키 제한이 150cm인 놀이기구. 놀이기구 캐스트가 있다고 생각해보자. 놀이기구 캐스트는 손님이 놀이기구를 탈 수 있는지 없는지를 안내하는 행동을 한다. 키가 145인 이 손님은 놀이기구를 탈 수 없다. 1년 후, 이 사람이 키가 커서 155cm가 되었다. 이제는 이 사람은 놀이기구를 탈 수 있다. 이처럼 이 캐스트는 손님의 키라는 상태 상태에 따라서 놀이기구를 탈 수 있는지 없는지를 판단하여 안내한다. 언제 사용할까? 객체 내부의 상태에 따라 동작을 달리 해야할 때 사용함. 구조 Con..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5dBLG/btr4FmEm7tf/7H8FZp44rgs4sM8bn12KC0/img.jpg)
책임 연쇄(Chain of Responsibility) 패턴 책임 연쇄 패턴은 하나 이상의 객체가 요청을 처리해야하고 메시지를 받을 수신측과 메시지를 송신할 송신측의 결합도를 낮추는 역할을 한다. 따라서 객체에게 책임을 할당하는데 유연성을 높일 수 있는 장점이 있지만 객체 연결이 잘 성립되지 않았다면 해당 요청이 무시될 수 있다. 책임 연쇄 패턴이란? 책임 연쇄 패턴은 메시지를 보내는 객체와 이를 받아 처리하는 객체들 간의 결합도를 낮추기 위한 패턴중에 하나다. 수신측에는 메시지를 처리할 객체들을 연결시켜 놓고 송신측에서 메시지를 수신측에게 전달하면 요청에 적합한 객체를 찾을때까지 연결된 객체들에게 메시지를 전달한다. 언제 사용할까? 요청 객체와 처리 객체를 분리하거나 요청을 처리할 수 있는 객체가 여러..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sEFnu/btr4vjvMomb/0CdzIO3ZK59jh8gCUw9Kg1/img.jpg)
컴포지트(Composite) 패턴 OOP에서 컴포지트는 하나 이상의 유사한 객체를 구성으로 설계된 객체로 모두 유사한 기능을 나타낸다. 이를 통해 객체 그룹을 조작하는 것처럼, 단일 객체를 조작할 수 있다. 컴포지트 패턴이란? 컴포지트 패턴은 클라이언트가 복합 객체(group of object)나 단일 객체를 동일하게 취급하는 것을 목적으로 한다. 여기서 컴포지트의 의도는 트리 구조로 작성하여, 전체-부분(whole-part)관계를 표현하는 것이다. 트리구조를 다룰때, 프로그래머는 리프노드와 브랜치를 구별해야 한다. 여기서 코드는 많은 복잡성을 만들어 많은 에러를 초래한다. 이를 해결하기 위해, 복잡하고 원시적인 객체를 동일하게 취급하기 위한 인터페이스를 작성할 수 있다. 이러한 컴포지트 패턴은 인터페이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OyB9D/btr3lC2PUbs/v9qFv5hpxe2H1MDQz0z6gk/img.jpg)
싱글톤 컨테이너(Singleton Container) 싱글톤 컨테이너란 클래스의 인스턴스가 Java JVM 내에 단 하나만 존재하는 것을 의미한다. 웹 애플리케이션은 수많은 클라이언트에서 서비스를 요청받게 되는데 만약 서버에서 클라이언트의 요청을 받을때마다 클래스 인스턴스를 생성하게 되면 JVM 메모리 사용량이 증가하게 되고 서버 부하가 발생할 것이다. 예제로 함께 확인해보자. 예제는 Spring 프로젝트가 아닌 일반 Java 프로젝트로 만들어져있다. Java 프로젝트로 만들어져 있다고 해서 잘못된 것이 아닌가? 하는 것이 아니라 Spring에서 어떻게 싱글톤을 쓰는지에 초점을 두고 감안하여 읽으면 좋을 듯 하다. 먼저 AppConfig.java 에서 MemberService를 빈으로 등록했고 Membe..