Spring/Spring Framework4 장애 대응을 위한 Resilience4j 적용 주문 및 결제 기능은 아래와 같은 흐름으로 진행된다.사용자 -> 주문 요청 -> 결제 서비스 -> PG사 API 결제 요청 (결제 시스템) -> 결제 요청 응답 수신 -> 주문 접수 처리 -> PG사 API 결제 callback 수신 (결제 시스템) -> 결제 성공/실패 처리 -> 주문 완료/실패 처리 이때 결제 시스템과 같은 외부 API의 경우 우리가 의도한 대로 항상 정상적인 응답을 보장하지 않는다.따라서 다양한 장애 상황이 발생할 수 있는데,예를 들면 API 호출 실패 (5xx), API 응답 지연 (타임아웃), 일시적 네트워크 장애, PG사 서버 과부하 등등의 오류가 있으며 이는 단순 재시도만으로는 해결되지 않는다. 이러한 상황에서 Resilience4j를 활용하면,외부 API 호출 시 발생할 수.. 2025. 8. 22. 비관적 락은 정말 느릴까? 실험해봤습니다 락 전략에도 정답은 없다.락은 동시성 문제를 방지하기 위한 대표적인 수단이며, 공유 자원에 여러 사용자가 동시에 접근할 때 그 정합성을 보장하기 위해 사용됩니다.JPA, 데이터베이스에서 동시성을 제어하기 위한 대표적인 방법으로 낙관적 락(Optimistic Lock)과 비관적 락(Pessimistic Lock)이 있습니다.대부분의 개발자들이 본능적으로 “낙관적 락이 더 좋다”는 인식을 갖고 있습니다. 저 또한 그렇게 생각해왔었는데 아마 비관적 락의 단점으로 꼽히는 "데드락", "타임아웃" 때문에 그렇게 생각했었던 것 같습니다. 하지만 이번 포스팅에서는 "좋아요 등록/취소 기능"을 중심으로 비관적 락이 무조건 나쁜 것인지, 낙관적 락이 무조건 좋은 것인지에 대해서 알아보려고 합니다. 낙관적 락 vs 비관적.. 2025. 8. 7. Bean은 무상태(stateless)로 설계하자 💡이 포스팅은 Spring Bean의 무상태(stateless)에 대해 정리한 포스팅입니다. Spring Bean stateless에 대해 학습한 GitHub Repository입니다. GitHub - kiekk/test-spring-bean-stateless Contribute to kiekk/test-spring-bean-stateless development by creating an account on GitHub. github.com Spring Bean에 관해 찾아보면 무상태(stateless)로 설계해야 한다고 합니다. 무상태란 말 그대로 상태가 없는 것을 뜻하며 Bean이 특정 상태를 가지고 있지 않는 경우를 말합니다. 하지만 이 부분을 조금 더 설명해 보면 Bean이라서 무상태(state.. 2023. 3. 27. @Controller에서도 ResponseEntity를 사용하면 Rest가 된다?? 💡이번 포스팅은 스프링 커뮤니티에서 한 개발자분이 공유해 주신 내용을 토대로 학습하여 정리한 포스팅입니다. 학습한 내용을 정리한 GitHub Repository입니다. GitHub - kiekk/spring-response-entity-test Contribute to kiekk/spring-response-entity-test development by creating an account on GitHub. github.com 먼저 공유해주신 내용은 다음과 같습니다. 저는 이 내용을 보자마자 흠칫했습니다. 이때까지 무의식에 rest-api를 만들 때 @RestController를 사용하면서 동시에 ResponseEntity를 사용해 왔었기 때문입니다. 제가 ResponseEntity를 사용한 이유는 r.. 2023. 3. 11. 이전 1 다음