본문 바로가기

전체 글104

[항해] 6주차, 동시성 제어 방식 분석 항해 6주차에는 동시성 제어 방식에 대해 학습하였다~!콘서트 예약 서비스의 주요 시나리오에서 동시성 이슈가 발생하는 상황을 분석하고, 기능별 성격에 따라 적합한 동시성 제어 방식을 적용하는 것까지 진행해보았다! 목차1. 동시성 문제란?2. DB의 동시성 문제3. 데이터베이스락4. 분산락5. 시나리오에 락 적용6. 회고  1. 동시성 문제란? 동시성 문제(Concurrency Issue)란 다수의 프로세스나 스레드가 동시에 공유 자원(데이터, 메모리, 데이터베이스 등)에 접근하거나 수정하는 과정에서 발생하는 문제이다. 이를 제대로 해결하지 못하면 데이터의 일관성이 깨지거나 예상치 못한 오류가 발생할 수 있다. 예를 들어서 인기 콘서트 티켓 예매를 생각해보자. 유저 A와 B가 동시에 "예매하기" 버튼을 눌렀.. 2025. 2. 16.
[항해] 5주차, 서버 구축 리팩토링 항해 5주차에는 콘서트 예약 서비스 코드를 리팩토링 하는 것을 진행하였다!시스템 성격에 적합하게 Filter와 Interceptor 를 활용해 기능의 관점을 분리(AOP)하여 개선하는 것이 목표이다.지난 6주차에서도 토큰 검증은 Interceptor에서 처리하도록 방향을 정하였는데 그 내용을 다뤄보려고 한다~! +_+목차1. Filter와 Interceptor의 차이점2. Filter를 활용하여 request, response에 대한 로깅3. Interceptor를 통해 대기열 토큰 검증 처리 4. 회고 1. Filter와 Interceptor의 차이점 Filter (서블릿 규격에 기반)- 서블릿 규격에 따라 작동 - 스프링과는 독립적으로 동작 - 주로 인증, 권한 처리, 보안 관련 작업에 사용 - 클라.. 2025. 2. 11.
[항해] 4주차, 서버 구축 기능 개발 항해 4주차에는 Swagger로 API 명세서를 작성하고, 3주차 설계를 토대로 주요 비즈니스 로직 개발 및 단위 & 통합 테스트를 작성하였다!설계를 마치고 막상 개발에 들어가려고 하니 무척 떨리고 설레였다. (*´ ワ `*)기능 개발 과정을 자세히 살펴보자~!목차1. Swagger API 문서화2. 주요 비즈니스 로직 완성 및 단위 테스트 작성3. 비즈니스 Usecase 구현 및 통합 테스트 작성4. 회고 1. Swagger API 문서화개발에 들어가기 앞서, Mock API 를 생성한 후 Swagger 도구를 활용하여 편리하게 API를 호출하고 테스트 할 수 있게 하였다!Swagger를 사용하기 위해서는 아래와 같이 설정을 해주면 되는데 생각보다 설정이 빨리 끝나는 것을 확인할 수 있다! 1. Swa.. 2025. 1. 29.
[항해] 3주차, 서버 구축 설계 항해 3주차에는 구축할 서비스 시나리오를 정하고, API 요구사항에 맞게 설계를 진행하였다.선택한 시나리오와 프로젝트 설계 과정이 궁금하다면, 바로 읽어보자! 목차1. 시나리오 선정 2. 프로젝트 Milestone 작성3. 시나리오 요구사항 별 분석4. API 명세서 작성5. ERD 설계6. 회고 1. 시나리오 선정 시나리오는 e-커머스 서비스, 콘서트 예약 서비스로 총 2가지가 있었는데 이 중에서 콘서트 예약 서비스를 선택하였다.'콘서트 예약 서비스'로 선정하게 된 이유는 대기열 시스템 구축과 좌석 임시 배정 5분 기능을 구현하면서 고민하고 배울 수 있는 포인트가 많을 것 같았다. 또한 유저 토큰을 발급해서 매 API 호출마다 사용자 인증하는데 이 부분은 어떻게 관점 분리를 시킬 수 있을지 궁금했다.3.. 2025. 1. 25.