일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 핵심 기능
- jpa
- Android
- Thymeleaf
- Servlet
- http
- AOP
- 자바
- Proxy
- spring
- Greedy
- db
- JDBC
- springdatajpa
- 그리디
- 스프링
- java
- 인프런
- 김영한
- QueryDSL
- 백준
- Spring Boot
- transaction
- SpringBoot
- JPQL
- pointcut
- Exception
- 스프링 핵심 원리
- kotlin
- 알고리즘
- Today
- Total
목록Java (91)
개발자되기 프로젝트
1. 그리디(Greedy)알고리즘?? "당장 눈 앞에 보이는 최적의 상황마을 쫓는 알고리즘"을 뜻한다. 항상 최적의 답을 도출하지는 않지만 최적의 해에 근사한 값을 빠르게 구하는데 용이하다. 기본적으로 "무조건 큰 경우대로", "무조건 작은 경우대로", "무조건 긴 경우대로", "무조건 짧은 경우대로" 등 극단적으로 문제에 접근한다. 즉 극단적인 경우로 문제에 접근하기 때문에 Sort(정렬) 기법이 함께 사용되는 경우가 많을 수 밖에 없다.
1. Interpreter Pattern ?? 문법 규칙을 클래스로 표현 간단한 프로그램을 해석하기 위한 패턴 2. 의도와 동기 간단한 언어에 대한 해석기 패턴 각 문법에 대한 해석을 클래스로 표현 미니언어나 게임에서 사용하는 간단한 언어에 대한 문법 해석기 3. Class diagram 4. 객체 협력 (collaborations) AbstractExpress 추상 구문 트리에 속한 모든 노드가 가져야할 공통의 메서드 interpte() 오퍼레이션 선언 TerminalExpression 터미널 기호에 대한 해석방법을 구현 NonterminalExpression 재귀적으로 호출되어 다른 AbstractExpression으로 구문을 패쓰하게 된다. Context 번역기에 대한 포괄적인 정보 포함 Clien..
1. Command Pattern?? 명령을 크래스로 만듬 2. 의도와 동기 요청을 객체로 만들어 전달한다. 요청을 기록으로 남겨 취소도 가능하도록 한다. 클라이언트 서버간의 프로토콜로 사용할 수 있다. 3. Class Diagram 4. 객체 협력 (collaborations) Command 각 명령이 수행할 메서드 선언 CocreteCommand 실제 명령이 호출되도록 execute 구현 -> receiver가 어떤 역할을 수행할것인지 Client ConcreteCommand 객체를 생성하고 처리 객체로 정의 Invoker Command 처리를 수행할 것을 요청 Receiver Command를 처리함 5. 중요한 결론 (consequence) 명령 자체를 객체화 하여 여러 다른 객체에 명령이 전달되거..
1.Proxy Pattern 객체에 대한 접근을 제어하기 위해 대리자를 둔다. 2. 의도와 동기 어떤 객체가 생성에 초기화 비용이 많이 들거나 복잡한 경우 간단한 처리는 대리자를 통해 하게된다. 실제적으로 비용이 많이 들어가는 처리일 때 객체를 만들도록 한다. 3. 객체 종류 원격지 프록시(remote proxy) : 서로 다른 주소 공간에 존재하는 객체를 대리하는 로컬 객체 가상 프록시(virtual proxy): 고비용의 객체는 필요한 경우만 생성 보호용 프록시(protextion proxy) : 실제 객체에 대한 접근 권한을 제어하기 위한 경우 사용. 4. 객체 협력 (collaborations) Proxy 실제 참조할 대상을 관리 실제 객체와 동일한 메서드 제공 클라이언트에게 먼저 노출되는 객체 ..
1. Flyweight Pattern ?? 공유할 수 있는 객체는 공유하여 사용한다. 규모가 작고, 인스턴스 마다 특성이 따로 없다면 공유해서 사용할 수 있다. 2. 의도와 동기 각 단어를 각각 표현하기보다는 문자를 공유하여 표현하면 비용이 훨씬적게 소요됨 각 객체가 부가적인 상태 (글꼴등...)이 있다면 따로 관리해야 하는 경우가 있음 작은 여러개의 객체를 관리해야 할때 주로 사용 3. Class diagram 4. 객체 협력 (collaborations) Flyweight 각 객체가 사용할 인터페이스를 정의한다. CocreteFlyweight 공유될 수 있는 실제적 객체를 구현 UnSharedCocreteFlyweight 각 인스턴스마다 가지게 되는 부가적인 특성이 있다면 구현한다. Flyweight..
1. Chain of Responsibility Pattern?? 책임 떠넘기기 다수의 객체를 사슬처럼 연결 요청을 처리할 수 있는 기회를 하나 이상의 객체에게 부여함 요청을 해결할 객체를 만날 때 까지 객체 고리를 따라서 요청을 전달. 2. 의도 (Intent)와 동기(Motivation) 메세지를 보내는 객체와 이를 받아서 처리하는 객체들 간의 결합도를 줄이기 위함 하나의 요청에 대한 처리가 반드시 한 객체에서만 이루어지는것이 아닌 여러 객체가 조건이 맞으면 처리의 기회를 가지게 됨 HELP 시스템 같은 경우 적절한 답을 찾을 때 까지 연결되어 해결할 수 있음 3. Class diagram 4. 객체 협력 (collaborations) Handler 요청을 처리하는 인터페이스를 정의하고, 다음 번 처..
1. Visitor Pattern??? 구조 안을 돌아다니며 일은 함 "방문자" 객체 구조의 요소들이 수행해야할 기능을 모아 둔 패턴 각 객체 요소를 변경하지 않고, 기능을 추가할 수 있음. 데이터의 구조와 처리를 분리하여, 처리하는 부분을 객체로 만든다. 해당 객체가 각 데이터 구조를 돌아가니며 오퍼레이션일 수행되도록 함. 각 데이터는 이러한 visitor를 accept 함. . 2. 의도 (Intent)와 동기(Motivation) 추상구문 트리의 예 문법적 처리를 위해 각 노드마다 수행해야 하는 기능을 따로 정의 해야함 아래의 경우 Node를 상속받아 각각 구현하는 경우. 각각 구현하기 때문에, 유사한 오퍼레이션이 여러 객체에 분산되어 있는 것이 특징. 주요 기능은 TypeCheck(), Gener..
1. Iterator Pattern? 객체 요소들의 내부 표현방식을 공개하지 않고, 객체를 순회하는 객체를 만듦. collection을 생각하면 편함. 2. 의도와 동기 내부에서 객체의 순차적인 제공을 하지 않음 순회 구현 방식이 다르더라도 동일한 방식(메서드)로 순회할 수 있게 제공 여러 리스트 객체에 대한 동일한 방식으로 순회하는 방법을 제공하기 위해 순회하는 객체를 따로 만듦. 예) Java Collection Framework의 Iterator 3. Class Diagram 4. 객체 협력 (collaborations) Iterator 요소에 접근하고 순회하는데 필요한 메서드 제공 CocreteIterator Iterator에 정의된 인터페이스를 구현하는 클래스 Aggregate Iterator ..