일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- String
- 웹
- 데이터베이스
- 디자인패턴
- 자바
- 디자인
- 리눅스
- 자바기초
- 스프링
- js
- 국비
- java
- 패스트캠퍼스후기
- 직장인자기계발
- 직장인인강
- 패캠챌린지
- 재택근무
- DesignPattern
- DB
- 자바예제
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- ncs
- linux
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- java기초
- Spring
- 패스트캠퍼스
- 자바기본
- 자바연습문제
- javabasic
- Today
- Total
목록스프링 (15)
FIF's 코딩팩토리
컴포지트 패턴(Composite Pattern) 정의 객체들을 트리구조로 구성하여 부분과 전체를 나타내는 계층구조로 만들 수 있다. 클라이언트에서 개별 객체와 다른 객체들로 구성된 복합 객체(composite)를 똑 같은 방법으로 다룰 수 있다. 식당 메뉴를 예로 들어 생각해본다면, 중첩되어 있는 메뉴 그룹과 메뉴 항목을 똑같은 구조 내에서 처리할 수 있게끔 하는 것이다. 메뉴와 메뉴항목을 같은 구조에 집어넣어서 부분-전체 계층구조를 생성할 수 있다. 이런 복합구조를 사용하면 복합 객체와 개별 객체에 대해 구분없이 똑 같은 작업을 적용할 수 있다. 컴포지트 패턴 클래스 다이어그램 컴포지트 패턴을 메뉴에 적용시킨다면 우선 구성요소의 인터페이스를 만드는 것부터 시작한다. 이 인터페이스는 메뉴와 메뉴 항목 모..
퍼사드 패턴(Facade Pattern) 정의 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공한다. 퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할 수 있다. 패턴을 사용할때는 항상 패턴이 어떤 용도로 쓰이는지를 잘 알아둬야 한다. 퍼사드 패턴은 단순화된 인터페이스를 통해 서브시템을 더 쉽게 사용할 수 있도록 하기 위한 용도로 쓰인다. 홈씨어터로 퍼사드 패턴 구현 전선과 프로젝터를 설치하고, 각 장치들을 케이블로 연결하는 등등 여러 인터페이스들이 나열되어 있다. DVD영화를 보려면? 1. 팝콘 기계를 켠다. poper.on(); 2. 팝콘 튀기기 시작. poper.pop() 3. 전등을 어둡게 조절. light.dim(10) 4. 스크린을 내린다. scree..
어댑터 패턴(Adapter Pattern) 정의 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할 수 있다. 이렇게 함으로써 클라이언트와 구현된 인터페이스를 분리시킬 수 있으며, 향후 인터페이스가 바뀌더라도 그 변경 내역은 어댑터에 캡슐화 되기 때문에 클라이언트는 바뀔 필요가 없어진다. 어댑터 패턴 클래스 다이어 그램 전기 콘센트를 보면 이해가 쉽다. 한국의 표준 플러그를 일본 전원 소켓에 바로 끼우지 못해 동그란 모양을 일자로 바꿔주는 어댑터를 끼워야 한다. 이와 같이 어댑터는 소켓의 인터페이스를 플러그에서 ..
이터레이터 패턴(Iterator Pattern) 정의 컬렉션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있는 방법을 제공한다. 컬렉션 안에 들어있는 모든 항목에 접근하는 방식이 통일되어 있으면 어떤 종류의 집합체에 관해서도 사용할 수 있는 다형적인 코드를 만들 수 있다. 이터레이터 패턴을 사용하면 모든 항목에 일일이 접근하는 작업을 컬렉션 객체가 아닌 반복자 객체에서 맡게 된다. 이렇게 하면 집합체의 인터페이스 및 구현이 간단해질 뿐 아니라, 집합체에서는 반복작업에서 손을 떼고 원래 자신이 할일(객체 컬렉션 관리)에만 전념할 수 있다. 이터레이터 패턴 클래스 다이어그램 두개의 서로다른 식당이 있고, 각각의 식당에서 메뉴를 구현한다고 가정한다. MenuItem.jav..
템플릿 메소드 패턴(Template method pattern) 정의 메소드에서 알고리즘의 골격을 정의한다. 알고리즘의 여러 단계 중, 일부는 서브클래스에서 구현할 수 있다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브클래스에서 특정 단계를 재정의 할 수 있다. 알고리즘의 틀을 만들기 위한 패턴이다.(알고리즘 캡슐화) 이 패턴에서 틀(템플릿)이란, 일련의 단계들로 알고리즘을 정의한 메소드다. 여러 메소드 가운데 하나 이상의 추상 메소드로 정의되며, 그 추상메소드는 서브클래스에서 구현된다. 이렇게 하면 서브클래스에서 일부분의 단계를 구현할 수 있도록 하면서도 알고리즘의 구조는 바꾸지 않아도 된다. 템플릿 메소드 패턴 클래스 다이어그램 커피와 차가 만들어지는 과정 비교 1. 커피 만드는..
싱글톤 패턴(Singleton Pattern) 정의 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴 클래스에서 자신의 단 하나뿐인 인스턴스를 관리하도록 만든다. 어떠한 다른 클래스에서도 자신의 인스턴스를 추가로 만들지 못하도록 해야 한다. 싱글톤 클래스 다이어그램 고전적인 싱글톤 패턴 구현의 문제점 uniqueInstance에 하나밖에 없는 인스턴스가 저장돼있다. uniqueInstance가 null이기 때문에 아직 인스턴스가 만들어지지 않았다면 private으로 선언된 생성자를 이용해서 Singleton객체를 만든 다음 uniqueInstance 변수에 객체를 대입한다. 이렇게 하면 인스턴스가 필요한 상황이 오기 전까지 인스턴스는 생성되지 않는다...
옵저버 패턴(OBSERVER PATTERN) 정의 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다. 옵저버 패턴을 구현하는 방법에는 여러가지가 있지만, 대부분 상태를 저장하고 있는 주제 인터페이스를 구현한 하나의 주제객체와 주제객체에 의존하고 있는 옵저버 인터페이스를 구현한 여러 개여 옵저버객체가 있는 디자인을 바탕으로 한다. 데이터 전달방식 2가지 1. 주제객체에서 옵저버로 데이터를 보내는 방식(Push 방식) 2. 옵저버에서 주제객체의 데이터를 가져가는 방식(Pull 방식) 옵저버 패턴 클래스 다이어그램 디자인 원칙 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해..