개요 스프링 컨테이너는 일부 형태가 추상 팩토리 패턴을 활용해 작성되었다. 해당 내용을 바탕으로 ApplicationContext를 작성 하고자 한다. 객체 모델 구현 ﹫어노테이션 💡 추상 팩토리 ( ConfigurationFactory ) 와 구현 팩토리 ( ConfigurationFactoryImpl ) 추상 팩토리 구현 팩토리 💡 클라이언트 ( ApplicationContext ) ﹖ 리플렉션을 통해 Custom Annotation( @Bean )을 마킹한 메서드들을 읽어와 맵에 등록한다. 😀 프로덕트 ( ObjectMapper, MailSender ) 👉 결과 👈 콘솔 예제 코드 예제코드 GitHub - icraft2170/Blog-Example-Code Contribute to icraft21..
API Gateway Pre & Post Custom Filter 설정 Pre-filtes ( 사전 필터 ) 요청이 목적지로 라우팅되기 전에 호출되는 필터이다. [일반적인 사용 사례] 요청 메시지 검증(Validation) 처리 요청 권한이 있는 계정인지 인증하는 작업 ( 게이트 키퍼 ) Post-filtes ( 사후 필터 ) 서비스 호출후 클라이언트에게 응답이 나가기 전에 호출된다. 일반적으로 응답을 아카이빙하거나 오류 처리및 응답 검사에 사용된다. [일반적인 사용 사례] 응답 시 응답내용을 아카이빙한다. 응답이 정상적인지 검사하고 오류가 발생했을 때 오류처리한다. 예제 코드 설정 전제 Eureka 를 사용한 서비스 디스커버리가 존재한다고 가정한다. User Service와 Order Service의 ..
WebSocket 💡 한 번 연결해서 지속적으로 양방향 통신으로 서로 상호작용이 가능한 TCP 프로토콜 HTTP VS WebSocket 차이 주로 웹 애플리케이션에서 사용하는 HTTP 프로토콜과 WebSocket을 비교해보자. HTTP WebSocket 비 연결성 연결 지향 클라이언트 - 서버 양방향 통신 구현하기 구현 내용 : 웹 소켓을 통해 Echo 서버를 구현 해본다. 1. 의존성 추가하기 : WebSocket, Lombok 2. WebSocket Handler 생성 WebSocketSession 을 캐싱 하는 이유는 추후 해당 세션 들에 서버에서 값을 전달할 필요가 생길 수 있다. 예를 들어 채팅 서버에서 한 사람이 전송한 메시지를 해당 서버에 연결된 모든 사용자에게 전달해야 할 때 해당 Set ..
OpenFeign Netflix에서 개발된 Java 의 Http Client Binder. 선언적으로 HTTP 요청을 생성 해주는 라이브러리다. 즉, 인터페이스에 어노테이션을 추가하는 정도의 코드를 통해 통신 로직을 작성할 수 있다. 적용하기 전제 Eureka를 이용한 서비스 디스커버리가 존재한다. Server Setting 1. 의존성 추가 2. @EnableFeignClients 어노테이션을 추가. 마이크로 서비스간 요청받을 API 작성 Client Setting 1. 의존성 추가 Sprinb Boot Stater Web, Eureka-Client, Openfeign 의존성을 추가한다. 2. @EnableFeignClients 어노테이션을 추가. Controller Feign 을 활용한 선언적 HTT..
- Total
- Today
- Yesterday
- 컴포짓 패턴
- ATDD
- RestAssured
- Session
- pass by value
- Object Pool
- Memory Fragmentation
- 메모리 파편화
- SpringBoot 2.2
- 내부 단편화
- 외부 단편화
- pass by reference
- Sticky Session
- 장애 해결기
- 메모리 단편화
- 클린 아키텍처
- 수평 분할
- 정적 타입 언어
- multimap
- 세션 불일치
- 육각형 아키텍처
- 동적 타입 언어
- 객체 풀
- java
- Clean Architecture
- 뾰족함
- 동적 디스패치
- OOP
- pool
- 수직 분할
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |