동시성2 [Numble] Spring으로 타임딜 서버 구축 - 트러블 슈팅과 회고 3 (동시성 처리) 9. 동시성 구현 개요 스프링에서는 하나의 요청에 스레드 풀에서 스레드를 하나 꺼내 한 요청을 수행합니다. 만약 여러 요청이 올 경우 여러 스레드들이 동시에 요청을 수행을 할 것입니다. 이러한 멀티 스레드 환경에서 자원들이 공유되는 상황에서 프로그래밍을 할 때, 타이밍에 의한 Race Condition(경쟁상태 : 여러 개의 스레드 혹은 프로세스가 공유 데이터를 동시에 변경하려고 할 때 생기는 문제) 가 발생해 문제를 야기할 수도 있습니다. 동시성 문제는 변경되는 데이터에 의해 발생한다고 생각한다.(변경되기 전의 데이터에 대한 접근과 변경된 후에 데이터에 대한 접근에 대한 데이터 정합성 문제) 그래서 변경되는 부분을 focus 해서 처리하자. 동시성문제 처리에 있어서 동시성, 가시성, 원자성에 대한 용어.. 2023. 4. 17. [Numble] Spring으로 타임딜 서버 구축 - 트러블 슈팅과 회고 1 (DB, 아키텍처, 테스트) 1. ERD 작성 나름대로 스스로 ERD를 설계했습니다. 타임딜 이라는 것은 상품에서 확장된 느낌이라 생각했습니다. 재설정된 세일가격, 제한물량, 시작시간을 추가했습니다. 타임딜 상품은 일반상품과 동일하게 상품명, 상품설명 등을 가질 수 있다고 생각했습니다. 한 상품으로 여러 타임테이블을 생성할 수 있다고 생각하여 상품과 타임딜 테이블을 1:N으로 설정했습니다. 유저와 상품의 관계테이블로 구매테이블이 생성됩니다. 2. API목록 API 명세 각각의 도메인 별로 API 정리 3. 와이어프레임 피그마로 작성 4. 아키텍처 젠킨스 서버와 배포 서버를 운영하였습니다. 젠킨스 서버에서 GitHub 코드를 pull 하여 코드를 가져오고 빌드시켜 DockerHub에 Push 합니다. 배포 서버에서 젠킨스를 통해 원격.. 2023. 4. 17. 이전 1 다음