일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- OOP
- redis
- 4-way-handshake
- 성능 개선
- RDS
- JMeter
- 백준
- TCP/IP
- Java
- docker
- 스프링부트
- 프로토콜
- 형상관리
- N+1 문제
- 로그인
- JWT
- 코딩테스트
- 트러블 슈팅
- 동시성 문제
- AWS
- Spring Security
- 네트워크
- Spring
- 알고리즘
- EC2
- 인메모리
- OSI 7계층
- 3-way-handshake
- 객체지향
- Today
- Total
목록트러블 슈팅 (2)
열공스토리
이번 포스팅은 최근 게시판 프로젝트를 진행하면서 발생한 좋아요 기능 동시성 문제 해결과정에 대한 회고입니다. 트러블 슈팅 과정을 보기에 앞서, 동시성 문제란 무엇인지 간단하게 짚고 넘어가겠습니다. 동시성 문제란? 동시성 문제란 여러 스레드가 한 공유 자원에 대해 동시에 읽기(Read)와 쓰기(Write) 작업을 처리할 때 발생하는 문제입니다. 예를 들어, Thread A와 Thread B가 우리가 흔히 알고있는 게시글의 좋아요 기능을 동시에 서버에 요청한다고 생각해 봅시다. 이런 상황에서 우리는 게시글의 좋아요 수가 기존의 좋아요 수에서 2가 증가된 값을 기대할 것입니다. 하지만 동시성 문제가 발생하면 예상과는 달리 좋아요 수가 1밖에 증가하지 않게 됩니다. 이러한 현상이 발생하는 이유를 다음 그림에서 ..
이번 포스팅은 최근 게시판 프로젝트를 진행하면서 발생한 N+1 문제 해결과정에 대한 회고입니다. 트러블 슈팅 과정을 보기에 앞서, N+1 문제란 무엇인지 간단하게 짚고 넘어가겠습니다. N+1 문제란? N+1 문제란 1:N 또는 N:1로 연관관계가 설정되어 있는 엔티티를 한 번 조회 시, 조회 쿼리 1개가 수행되는 것이 아닌 연관 되어있는 N개의 엔티티를 조회하기 위해 N만큼의 추가 조회 쿼리가 수행되는 일 때문에 발생하는 문제를 말합니다. 이게 왜 문제가 되냐 하면 예를 들어, 한 엔티티의 연관관계 엔티티가 100개라고 가정한다면 해당 엔티티를 한 번 조회한다고 했을 때, 추가적으로 조회 쿼리 100개가 더 수행되어 조회 쿼리만 총 101번 수행되어 불필요한 조회 쿼리가 수행되는 현상이 발생합니다. 그런..