배경 https://golf-dev.tistory.com/53 Redis INCR을 이용한 분산환경에서의 동시성 제어하기 문제 상황 회사에서 분산환경에서 하루에 한 번만 요청이 가능한 기능이었지만 한 사람이 3번 이상 요청을 보낸 기록이 있어 원인을 찾아보았습니다. 우선 샘플 코드는 다음과 같습니다. fun save( golf-dev.tistory.com 제 블로그를 많이 읽어보셨다면 익숙한 글 입니다. Redis INCR 동작원리를 이용해서 분산환경에서 Lock을 구현했었는데요. 이 방식이 과연 최선이었는가에 대해서 고민을 해보는 시간을 가져볼 겁니다. 뭐가 문젠데? 요청 프로세스를 다이어그램으로 그려보면 다음과 같습니다. 이미 요청 횟수를 정해놓고 구현했기 때문에 INCR로 두 서버에서 요청수를 co..
CQRS 패턴이란? CQRS는 Command Query Responsibility Segregation의 약자로 "명령 조회 책임 분리" 라는 뜻을 갖고 있다. 이는 애플리케이션을 구성하는 아키텍처 패턴 중 하나로 명령과 조회에 대한 책임을 분리하여 아키텍처를 구성하는 것이다. 그럼 왜 그렇게 해야하는지 알아보자 Why? 일반적인 애플리케이션은 데이터를 연결된 데이터베이스에 레코드로써 생성하거나 조회하거나 갱신 삭제를 한다. 그리고 이렇게 애플리케이션이 데이터를 레코드로 저장하는 과정에서 데이터는 특정한 모델로 다뤄진다. 예를 들어 주문 내역이라는 데이터는 애플리케이션 내에서 id, 주문 상품, 일시 등으로 속성을 지니는 하나의 클래스 모델로써 다뤄지고 DB에는 레코드로써 저장되어 조회 갱신 삭제될 수 ..
- Total
- Today
- Yesterday
- DB
- 게시판
- 동시성
- 자바
- IT
- MySQL
- Kotlin
- JPA
- 프로그래밍
- 백엔드
- swarm
- docker
- CS
- 코딩
- 프로젝트
- DevOps
- 면접
- 개발자
- Redis
- 면접 준비
- 코드
- Spring
- thread
- java
- 취업
- 인터뷰
- 개발
- 취업준비
- 취준
- 면접준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |