주제 대학교 수강신청, 공연 티켓 예매 등 순간적으로 다수의 요청이 몰릴 수 있는 상황을 견딜 수 있는 서버를 구축해 보려고 한다. 다음과 같은 요구사항을 만족하는 서버를 개발하는 것을 프로젝트의 목표로 설정했다. 효율성 굉장히 많은 요청이 들어와도 빠른 시간 내
서론 12월에는 '멀티스레드 환경에서 다수의 요청을 효율적으로 처리하는 WAS + Background worker 아키텍쳐 구현하기' 프로젝트를 계획했었다.(바로가기) 이 아키텍쳐의 핵심은 뒷단에서 멀티스레드로 원하는 작업을 효율적으로 처리하는 Background worker 부분이었는데, 이 부분을 구현하기 위해 학습한 것들과 실습 내용을 공유하려 한다....
멀티스레드 환경의 문제 race condition.jpg (↑ race condition을 설명하기에 너무나 적절한 사진.) 멀티 스레드는 어플리케이션의 퍼포먼스 측면에서 싱글 스레드에 비해 큰 이득을 가져다주지만, race condition을 적절히 제어하지 않을 경우 데이터의 손실이 발생할 수 있다. race condition이란 여러 개의 스레드...
개요 12월 프로젝트(https://velog.io/@dvmflstm/12%EC%9B%94-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-ticket-reservation) 에서는 dynamoDB를 사용해보기로 결정했고, 그에 따라 kotlin 및
애플리케이션 구조 structure.png 애플리케이션 작동 방식 이번 프로젝트의 목표는 순간적으로 몰리는 트래픽에 대응할 수 있는 서버를 구축하는 것이었기 때문에, 일반적인 웹 클라이언트는 만들지 않고 시뮬레이션을 위해 request 생성기(봇)을 만들었다. image.png 이벤트 (event) 웹 클라이언트가 아닌 시뮬레이션용 클라이언트를 이용...