기계, 기구등을 다른 목적으로 사용하기 위한 부가적인 기구를 말한다. Ex. 우리 나라는 전기를 220v 사용하는데, 110v 사용하는 나라로 여행을 갈 때면 어댑터가 필요하다. 기본 설계 Adaptee라는 알고리즘을 Adapter라는 기능을 통해서 원하는 기능으로 변형하는 것이다. 구체적인 예제 요구사항 두 수에 대한 다음 연산을 수행하는 객체를 만들어라. 수의 두 배의 수를 반환 : twiceOf(Float) : Float 수의 반(1/2)의 수를 반환 : halfOf(Float) : Float 구현 객체 이름은 'Adapter' Math 클래스에서 두 배와 절반을 구하는 함수는 이미 구현되어있다. 요구사항 설계 소스 //Math public class Math { public static doubl..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cT7Nus/btqDDY347mG/2WfeJ3wHn1KDhU9WqK3520/img.png)
인터페이스 기능에 대한 선언과 구현의 분리를 말한다. 기능을 통로라고 말할 수 있다. Ex. //AInterface public interface AInterface { public void funcA(); } //AInterfaceImpl public class AInterfaceImpl implements AInterface { @Override public void funcA() { System.out.println("AAA"); } } //Main public static void main(String [] args) { AInterface aInterface = new AInterfaceImpl(); aInterface.funcA(); } 선언(AInterface)과 구현(AInterfaceIm..
Proxy Pattern vs Decorator Pattern 두 패턴 모두 기존에 존재하는 객체의 동일한 인터페이스를 이용해서 다양한 행동을 추가하기 위한 의도를 가지고 있다. Ex. MyClass라는 객체에 doAction()이라는 메소드가 있을 시, 다른 객체에서도 동일한 시그니처의 doAction() 메소드를 호출하여 MyClass의 doAction()을 실행하는 동시에 다른 행동을 추가해주는 것이다. 이런 측면으로 보면, 두 패턴이 동일하게 보일 수 있지만 '의도'에는 미묘한 차이가 있다. Proxy는 추가적인 '컨트롤'을 제공하는 것이고, Decorator는 추가적인 '기능'을 제공하는 것이다. Decorator MyClass 객체의 doAction()이 'mesung'을 출력하는 것이라면, ..
Adapter vs Bridge Adapter 패턴과 Bridge 패턴은 둘다 다른 객체에 대한 직접 접근 대신에 다른 우회적 방법으로 접근함으로써 유연성을 증대시킨다. 두 패턴의 차이 두 패턴의 가장 큰 차이는, 목적이 무엇인가?! Adapter는 이미 존재하는 두 인터페이스간의 불일치를 해결하려는 것이다. Bridge는 추상화 개념과 구현을 따로 만들고, 이들을 연결시키려는 것이 주 목적이다. Adapter는 두 클래스간의 종속성을 미리 에측하지 못하고 개발했을 경우 필요한 패턴이다. Bridge는 이미 사용자가 추상화 추상화 개념을 구현하는 방법이 여러가지이고 이들 각각이 독립적으로 진화할 수 있음을 파악한 상태에서 적용하는 패턴이다. Adapter 필요한 형태로 정해서 재활용한다. Adapter ..
HTTP HTTP는 HyperText Transfer Protocol의 약자로서, 인터넷에서 주로 사용하는 데이터를 송/수신 하기 위한 프로토콜이다. 최초 HTTP를 이용한 데이터 송수신은 GET 방시의 HTML을 위주(문서 표현)로 이루어졌으나, 추후에는 여러 메소드 및 미디어 타입이 추가됨에 따라 확장을 했다. HTTP 1.0 HTTP는 원래 0.9v 부터 시작되었다고 하지만, 사실상 1.0버전이 상용화 되어 1996년부터 사용되기 시작했다. HTTP 1.0은 단순히 open/operation/close 방식을 취하고 있는 단순한 구조이다. TCP Connection당 하나의 URL만 fetch하며, 매번 request/response가 끝나면 연결이 끊기므로 필요할 때마다 다시 연결해야하는 단점이 ..
MMM MHA MMM(Multi-Master Replication Manager) Multi-Master의 단점을 보완하기 위해서 Manager 장비를 두어 가용성을 보장한다. Master(Active)와 Master(Passive) 양방향으로 복제한다. MMM의 작동 순서 Active Master에서 장애 발생 시 MMM Manager는 장애를 감지한다. Active Master의 접속을 차단하고 Passive Master로 서비스의 접속을 넘긴다. Fail Back은 수동으로 진행하는 것이 원칙이나, 패치 등으로 인한 정상 종료일 경우에는 Active Master를 재가동 시켜도 무관하다. read/write DB와 read DB로 운영 중에 read/write DB에서 장애가 발생 시 Manager..
Replication MySQL Replication이란 DB 이중화 방식 중 하나로서 MySQL에서는 리플레이케이션(복제) 기능을 제공하며, 해당 기능은 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이다. 사용하기 위한 최소 구성은 Master와 Slave로 구성되어야 한다. 즉, Master와 Slave 간의 데이터 복제를 가능하게 한 것이다. Master DBMS Master DBMS는 웹 서버로부터 데이터 등록/수정/삭제 요청 시 바이너리로그를 생성하여 Salve 서버로 전달하게 된다. Slave DBMS Slave DBMS는 Master DBMS로부터 전달받은 바이너리로그를 데이터로 반영하게 된다. MySQL Replication의 사용목적 MySQL Replication의 사용목적은 실..
Collection 객체는 여러 원소들을 담을 수 있는 자료구조를 뜻한다. 자료구조의 유형 Java에서의 자료구조 유형을 살펴보자. List : 순서가 있는 목록 Set : 순서가 중요하지 않는 목록 Queue : FIFO Map : Key & Value 형태로 되어 있는 목록 자료구조의 유형과 배열은 목록을 저장하는 개념으로는 동일하지만 큰 차이를 가지고 있다. 배열 : 정적 메모리 할당 자료구조 : 동적 메모리 할당 Collection의 Tree 구조 출처 : https://www.crocus.co.kr/1553 Java에서 Collection이란? Collection 이란? Collection 객체는 여러 원소들을 담을 수 있는 자료구조를 뜻한다 배열이 가장 기본적인 자료구조이며, DTO 또한 자료..
- Total
- Today
- Yesterday
- 빈 순환 참조
- ifPresent
- 인프런
- junit
- try with resources
- mustache
- flatMap
- @Lazy
- 자바8
- 스프링부트
- jdk버전
- 김영한
- Spring
- java
- 정적팩터리메서드
- JPA
- 이펙티브 자바
- 생성자
- 팩토리 메소드 패턴
- springboot
- java8
- 빌더 패턴
- package-private
- 이펙티브자바
- Effective Java
- try catch finally
- 복사 팩토리
- effectivejava
- 점층적 생성 패턴
- 연관관계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |