일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코드리뷰
- 세션
- Level2
- 우아한테크코스
- 미션
- 우테코
- AOP
- 레벨2
- HTTP
- AWS
- REDIS
- MSA
- Docker
- mock
- 자바
- yml
- 의존성
- 서블릿
- JPA
- Spring Batch
- Paging
- 프로그래머스
- 트랜잭션
- 우아한세미나
- CircuitBreaker
- 프리코스
- JUnit5
- 백준
- 스프링부트
- 스프링 부트
- Today
- Total
목록비동기 (2)
늘
프로젝트를 한창 할 당시에는 몰랐었지만 추후에 학습하면서 Event처리를 통해 의존성을 끊는 방법을 알았다. 기존의 공식 프로젝트도 외부 api사용 로직을 분리하고 인터페이스를 통해서 의존성을 많이 줄였다고 생각했는데 여전히 불필요한 의존성이 엮여있었다. 프로젝트가 종료된 후, 해당 문제점을 개선하면서 경험을 포스팅을 해봅니다. 문제 정의 임시 저장 게시글을 등록할 시, 임시 저장 게시글 삭제 로직 아래는 게시글 임시 저장 -> 임시 저장된 게시글을 등록 -> 게시글은 저장되고 임시 저장 글은 제거하는 로직입니다. 해당 로직에서 구체적으로 2가지 문제를 가집니다. Article -> TempArticle의 의존성 생성 게시글을 저장하는 로직에서 임시 저장글이 어떻게 처리 되어야 하는지를 알 필요가 없다고..
대표적으로 외부 api를 호출하는 방식에 resttemplate이 있는데 이것은 동기 방식을 이용한 방법이고, WebClient가 비동기를 이용한 방식이다. 공식문서를 보면 스프링 5부터는 webClient사용을 더 추천하고 있다. 또한 restTemplate은 곧 deprecated 된다고 한다. 공통점으로는 둘 다 Http client에서 사용된다는 것이다. RestTemplate RestTemplate은 Multi-Thread와 Blocking방식을 사용합니다. Thread pool은 요청자 어플리케이션 구동 시에 미리 만들어 놓습니다. Request는 먼저 Queue에 쌓이고 가용한 스레드가 있으면 그 스레드에 할당되어 처리됩니다. 즉, 1 요청 당 1 스레드가 할당됩니다. 각 스레드에서는 Blo..