항해 플러스 백엔드 코스 6기 5주차 및 챕터 회고 WIL
·
항해/WIL
항해 플러스 추천인 코드지원페이지에서 추천 코드에 3ZTeU1를 입력하시면 20만원 할인 혜택을 받을 수 있습니다.항해 플러스 과정에 관심 있는 분들은 아래 링크를 통해 신청해보세요! 궁금한 점이나 커피챗을 원하시면 LinkedIn이나 kboxstar@gmail.com으로 연락주세요.항해 플러스 과정 페이지 개발자 커리어 개척 캠프 항해99, 첫 취업부터 현직자 역량 강화까지10년이 지나도 남는 커리큘럼을 바탕으로 커리어를 개척하세요. 진정성있는 멘토링과 2천 명이 넘는 끈끈한 커뮤니티가 여러분과 함께 합니다.hanghae99.spartacodingclub.kr1. 문제이번 주차에는 이전 주차에 동시성을 고려해 개발하고 테스트했던 덕분에 큰 기술적인 문제는 없었습니다.다만, 글 작성이 아직 익숙하지 않으..
JPA 비관적 락과 낙관적 락 및 재시도
·
프레임워크
개요콘서트 예약 프로젝트를 개발하면서 좌석 예약에서 발생하는 동시성 문제에 대해 고민하게 되었다. 여러 사용자가 동시에 같은 좌석을 예약하려고 할 때 동시성 문제가 발생할 수 있는데, 이를 해결하기 위해 JPA에서 제공하는 비관적 락(Pessimistic Lock)과 낙관적 락(Optimistic Lock)을 사용하고, AOP를 활용한 재시도 로직을 통해 동시성 문제를 해결하는 방법을 알아보자.비관적 락(Pessimistic Lock)첫 번째로 시도한 방법은 비관적 락이다. (익숙한 방법이라 먼저 진행하게 되었다.) 비관적 락은 데이터베이스 레벨에서 락을 걸어 동시성 문제를 해결하는 방식으로, 여기서 말하는 락은 X Lock(Exclusive Lock)을 의미한다.// ConcertFacade.java@..
필터(Filter) vs 인터셉터(Interceptor)
·
프레임워크/Spring
개요콘서트 프로젝트에서 대기열을 구현하는 과정에서, 대기열 검증 로직을 어디서 처리할지 고민하게 되었다.대기열 토큰을 가지고 입장 가능 여부를 검증하는 로직을 작성했는데, 이 로직을 필터나 인터셉터 중 어디에 두는 게 적절할지 알아보면서, 필터와 인터셉터의 차이점과 용도에 대해 정리해보았다.필터(Filter)필터는 J2EE 스펙에서 제공하는 기능으로, 디스패처 서블릿(Dispatcher Servlet) 요청 전에 부가적인 작업을 처리할 수 있다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이며, 필터는 스프링의 범위를 벗어나 톰캣과 같은 웹 컨테이너에서 관리된다. 즉, 디스패처 서블릿의 전후에 처리되는 것이다.필터는 디스패처 서블릿 전에 특정 요청을 선별하거나, 요청과 응답을 가로채는..