Race Condition 멀티 쓰레드 프로그래밍을 하게 된다면 Race Condition이라는 말은 누구나 한번쯤은 듣는 단어이다 그러면 Race Condition이란 무엇일까? 멀티 쓰레드 환경에서 공유 자원에 대한 Write Operation을 진행할 때 순서나 여러 조건에 의해서 결과값에 영향을 줄 수 있는 상황 여기서 결과값에 영향을 줄 수 있는 상황이란 다음과 같은 상황을 의미한다 공유 자원 count = 10이 존재 → ThreadA = count++ 작업 진행 → ThreadB = count-- 작업 진행 ThreadA ThreadB RegisterA = count (10) RegisterB = count (10) RegisterA = RegisterA + 1 (11) RegisterB =..
개요 [Spring] nGrinder 부하 테스트 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 본 sjiwon-dev.tistory.com 메인 페이지에 노출되는 스터디 조회 API와 관련된 3가지 쿼리에 대한 튜닝을 진행함으로써 기존에 구현한 로직과 비교해서 꽤 괜찮은 성능 향상을 이루어 냈다 등록날짜 기준 좋아요 개수 기준 리뷰 개수 기준 이번..
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을 생..