DB Connection Web Application Server(WAS) ↔ DB Server간에 네트워크 통신을 위해서는 TCP/IP Connection을 맺어야 한다 WAS에서는 적절한 DB Driver를 통해서 DBMS에 Connection 요청을 진행한다 DB Driver는 WAS ↔ DBMS 사이에서 데이터를 주고 받는 통로 역할 Connection 요청을 처리할 DB Driver는 DBMS와 TCP/IP Connection을 맺는다 3-Way Handshake (SYN / ACK-SYN/ ACK) TCP/IP Connection을 맺은 후 DB Driver는 인증 정보를 DBMS에 전달한다 DBMS는 Client에 대한 인증을 진행하고 Connection 요청에 대한 DB Session을 생..
[Spring] Tomcat 1) Connector [Java] ThreadPool ThreadPool 어떤 요청이 들어왔을 때 해당 요청을 처리하기 위해서 쓰레드를 사용하는 가장 심플한 방법은 요청마다 쓰레드를 생성하고 할당하는 것이다 쓰레드가 필요한 시점에 생 sjiwon-dev.tistory.com 이전 포스팅에서는 Tomcat Connector에 대한 개념을 알아보았다 본 포스팅에서는 Tomcat 주요 설정값 및 시나리오 테스트를 진행할 것이다 Tomcat 주요 설정 값 minSpareThreads [default = 10] The minimum number of threads always kept running. This includes both active and idle threads. If..
[Java] ThreadPool ThreadPool 어떤 요청이 들어왔을 때 해당 요청을 처리하기 위해서 쓰레드를 사용하는 가장 심플한 방법은 요청마다 쓰레드를 생성하고 할당하는 것이다 쓰레드가 필요한 시점에 생성 요청 OS가 해 sjiwon-dev.tistory.com 이전 포스팅에서는 ThreadPool에 대한 개념을 알아보았다 본 포스팅에서는 Tomcat의 Connector에 대한 개념을 알아볼 것이다 Tomcat = WAS(Web Application Server)의 한 종류 Connector란? Apache Tomcat 10 Configuration Reference (10.0.27) - The HTTP Connector This Connector supports all of the requir..
개요 [Spring] 경매 입찰/작품 구매 동시성 문제 해결 1) DB Lock 개요 GitHub - sjiwon/Advanced-Another-Art: AI 기반 작품 경매 플랫폼 (Refactoring) AI 기반 작품 경매 플랫폼 (Refactoring). Contribute to sjiwon/Advanced-Another-Art development by creating an account on GitHub. github.com 현재 리팩 sjiwon-dev.tistory.com [Spring] 경매 입찰/작품 구매 동시성 문제 해결 2) MySQL Named Lock 개요 [Spring] 경매 입찰/작품 구매 동시성 문제 해결 1) DB Lock 개요 GitHub - sjiwon/Advanced..
개요 [Spring] 경매 입찰/작품 구매 동시성 문제 해결 1) DB Lock 개요 GitHub - sjiwon/Advanced-Another-Art: AI 기반 작품 경매 플랫폼 (Refactoring) AI 기반 작품 경매 플랫폼 (Refactoring). Contribute to sjiwon/Advanced-Another-Art development by creating an account on GitHub. github.com 현재 리팩 sjiwon-dev.tistory.com 앞선 포스팅에서 Pessimistic Write Lock을 통해서 경매 입찰 & 작품 구매에 대한 동시성 문제를 해결하였다 Pessimistic Write Lock은 특정 DB Record에 Exclusive Lock을 ..
개요 GitHub - sjiwon/Advanced-Another-Art: AI 기반 작품 경매 플랫폼 (Refactoring) AI 기반 작품 경매 플랫폼 (Refactoring). Contribute to sjiwon/Advanced-Another-Art development by creating an account on GitHub. github.com 현재 리팩토링중인 AI 기반 작품 경매 플랫폼 프로젝트: Another Art에서는 다음 2가지 주요 기능이 존재한다 경매 작품 입찰 작품 구매 경매 작품 입찰 & 일반 작품 구매에서는 멀티 쓰레드 환경에서 동시성 문제가 발생할 수 있고 이를 반드시 제어해야 한다 입찰 프로세스 @UseCase @RequiredArgsConstructor public ..
개요 [Spring] 메일 인증 & Redis를 활용한 사용자 계정 정보 조회 및 수정 개요 GitHub - sjiwon/Advanced-Another-Art: AI 기반 작품 경매 플랫폼 (Refactoring) AI 기반 작품 경매 플랫폼 (Refactoring). Contribute to sjiwon/Advanced-Another-Art development by creating an account on GitHub. github.com 현재 리팩 sjiwon-dev.tistory.com 이전에 메일 인증 + Redis를 활용해서 사용자 개인 계정과 관련된 보안적 측면을 향상시켰다 그런데 테스트를 하다보니 관련된 API의 성능이 매우 떨어짐을 확인할 수 있었다 인증 메일 전송을 포함한 아이디 찾기 ..
ThreadPool 어떤 요청이 들어왔을 때 해당 요청을 처리하기 위해서 쓰레드를 사용하는 가장 심플한 방법은 요청마다 쓰레드를 생성하고 할당하는 것이다 쓰레드가 필요한 시점에 생성 요청 OS가 해당 쓰레드를 위한 메모리 영역 확보 및 할당 OS Level에서 Native Thread를 위한 메모리 영역을 할당 생성된 Native Thread와 User Level Thread 매핑 Thread's start() 코드 내부에서 JNI를 통해서 Native Code 호출 (with C++) 쓰레드 생성 및 Task 실행 ... 쓰레드 사용이 끝나면 OS는 쓰레드를 위해 할당한 메모리 영역을 회수 이러한 과정이 매번 반복되고 결국 이러한 부분들이 쌓이게 되면 불필요한 리소스가 너무나도 많이 낭비가 된다고 볼 ..
개요 GitHub - sjiwon/Advanced-Another-Art: AI 기반 작품 경매 플랫폼 (Refactoring) AI 기반 작품 경매 플랫폼 (Refactoring). Contribute to sjiwon/Advanced-Another-Art development by creating an account on GitHub. github.com 현재 리팩토링중인 AI 기반 작품 경매 플랫폼 프로젝트에서는 사용자가 본인이 계정을 까먹었을 경우를 대비해서 아이디 찾기/비밀번호 재설정 API를 제공하고 있다 그런데 기존에 구현된 이 API는 심각한 문제가 존재한다 [아이디 찾기] - 자신의 이름 + 이메일 정보를 통해서 계정 아이디 조회 [비밀번호 재설정] 1. 이름 + 이메일 + 로그인 아이디를..
개요 GitHub - sjiwon/study-with-me-be: 여기서 구해볼래? Backend Repository (Refactoring) 여기서 구해볼래? Backend Repository (Refactoring). Contribute to sjiwon/study-with-me-be development by creating an account on GitHub. github.com 본 프로젝트에서는 여러 테스트를 진행하고 있고 그 중에 RestAssured를 활용해서 실제 Servlet 환경에서 E2E 테스트를 하고자 한다 @SpringBootTest → webEnvironment 일반적으로 통합테스트를 위해서 적용하는 @SpringBootTest는 WebEnvironment 기본값이 WebEnv..