소개
안녕하세요. 지식공유자 최상용입니다.
많은 오픈소스에 기여한 경험이 있는 현직 백엔드 개발자입니다.
- Spring Data Mongo Contributor
- querydsl Contributor
- grpc-kotlin Contributor
- ksp Contributor
- mybatis Contributor
강의
전체2수강평
- 가볍게 보기 좋습니다! 잘 들었습니다~
고래밥
2024.05.30
0
게시글
질문&답변
2024.05.27
Pessimitic Lock 과 Optimitic Lock 질문
lch9502 님 안녕하세요. 제가 이해력이 조금 부족하여 질문을 이해하지 못한듯합니다. 두 질문 모두 조금만 더 자세하게 설명을 해주실 수 있으실까요 ?
- 0
- 2
- 75
질문&답변
2024.05.27
Optimistic Lock 버전 관리 질문
아무거나123 님 안녕하세요! optimistic lock 을 걸게된다면 아래와 같은 쿼리가 실행되게 됩니다. update stock set quantity = quantity -1, version = 2 where id = 1 and version = 1; 그렇기때문에 이후에 쿼리를 실행할때는 version 이 1인 데이터가 없기때문에 업데이트에 실패하게 됩니다. 업데이트에 실패했으므로 조회부터 다시 시작하게되는 방식입니다. 감사합니다.
- 0
- 3
- 71
질문&답변
2024.05.22
낙관적 락 무한루프 질문
JIHYE CHU 님 안녕하세요. 제가 JIHYE CHU 님의 프로젝트에 대한 내용을 전혀 모르기때문에 어떤게 올바른 방법이다 라고 말씀을 드릴수는 없을것 같습니다. 적어주신 내용으로만 보자면 메소드가 종료되지 않는이유는 validateCoupon 로직에서 Exception 이 발생되기 때문에 발생되는 것으로 보이네요. IllegalArgumentException 을 모두 잡아서 재시도를 하지 않으면 예상치 못한케이스에도 재시도를 하지 않을 수 있을 것 같습니다. 그렇기때문에 별도의 Excpetion class 를 생성후 validation 에 실패하였다면 별도로 만든 Exception 을 발생시키는 것은 어떨까요 ?
- 0
- 3
- 87
질문&답변
2024.05.19
중간테이블에 대한 낙관적 락 적용법
한수현님 안녕하세요. 단순히 해결만을 위한 것이라면 Version 필드를 Appointment 에 넣고 updatedAt 을 넣어서 변경을 발생시킬 수 있을 것 같습니다. 다만 올바른 해결방법으로는 안보이며 근본적으로 updateAuthority 메소드에 중복으로 접근해서는 안되보입니다. 이를위해 별도의 테이블로 Lock 을 제어할 수도 있으며, redis 를 사용하여 락을 제어하여 updateAuthority 메소드에 접근자체를 막을수도 있을것 같습니다. 정확히 어떤프로젝트이며 어떤 특성을 가진것인지 100% 이해하지 못한 상황에서 남기는 답변이므로 더 나은 방법이 존재할 수 있습니다. 감사합니다.
- 0
- 2
- 72
질문&답변
2024.05.12
kafka 와 redis pub/sub 비교
tete 님 안녕하세요. 기능만으로 보았을 땐 redis 의 pub/sub 을 사용할수도 있을듯 합니다만, 이벤트가 소실될 가능성이 존재하여 안전하지는 않을듯합니다. redis 의 pub/sub 과 kafka 의 차이점을 공부해보시면 좋을것 같습니다. 감사합니다.
- 0
- 1
- 87