1단계 : HTTP Request / Response 로그를 어디에서 처리해야 할까?HTTP Request / Response 로그는 공통 처리가 필요한 영역입니다. 이를 처리하기 위한 방법으로 주로 사용되는 세가지가 있습니다. 1. Servlet FilterServlet Filter 는 Dispatcher Servlet 의 전 / 후에 동작하며, 사용자의 요청이나 응답을 가장 먼저 마주합니다. 필터는 스프링의 고유 기능이 아니라 자바 서블릿에서 제공하는 기능입니다. Filter 는 동일한 Servlet Container (e.g Tomcat) 내에서 필요한 자원들을 활용하여 동작합니다. 2. Handler InterceptorInterceptor 는 Dispatcher Servlet 이 실행된 후 호..
왜 Entity Listener를 적용하였는가?지난 게시글에서 엔티티를 생성하거나 수정할 때 해당 엔티티의 인덱스를 생성 및 수정하는 작업을 위해 ApplicationEvent를 도입하여 서비스 간의 결합도를 줄이고, 트랜잭션 문제를 개선할 수 있었습니다. 그러나 지난 게시글에서 ApplicationEvent를 사용하는 방식에는 한 가지 단점이 있습니다. 매번 엔티티를 생성하거나 수정할 때마다 applicationEventPublisher.publishEvent() 메서드를 호출하는 코드를 작성해야 한다는 점입니다. 아래의 코드처럼 모든 이를 위해 모든 비즈니스 로직에서 일일이 이벤트 발행 코드를 추가해야 합니다.class UserService( private val userIndexService:..
왜 Application Event 를 도입하기로 하였는가.ElasticSearch를 사용하여 검색 기능을 구현하면서, 엔티티를 생성하거나 수정할 때 해당 엔티티의 인덱스를 생성 및 수정하는 작업도 함께 수행해야 했습니다. 기존 코드에서는 User 객체를 생성할 때 UserService에서 UserIndexService를 의존성 주입받아 사용하며, User 객체 생성 후 인덱스를 생성하는 방식으로 구현되었습니다.class UserService( private val userIndexService: UserIndexService) { @Transactional fun create(name: String, identity: Identity) : User { val user = U..
- Total
- Today
- Yesterday
- Route53
- JPA
- CodeDeploy
- CI와 CD의 차이
- LeetCode
- EC2
- 자바
- acm
- 영속성 컨텍스트
- network
- Hibernate
- entitylisteners
- githubactions
- 네트워크
- 트랜잭션
- persistencecontext
- aws
- appliationeventlistener
- Spring Boot
- fetchcount()
- Spring
- 지연 대기열
- IAM
- springboot
- java
- CI/CD
- 영속 상태
- 프로그래머스
- DevOps
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |