Skip to content

[사전과제] synchronized를 이용하여 동시성 제어#18

Open
yeonjookang wants to merge 1 commit intohanghae-skillup:mainfrom
yeonjookang:main
Open

[사전과제] synchronized를 이용하여 동시성 제어#18
yeonjookang wants to merge 1 commit intohanghae-skillup:mainfrom
yeonjookang:main

Conversation

@yeonjookang
Copy link

제목(title)

주차와 함께 변경 사항을 요약하여 구성해 주세요.

ex: [1주차] 사용자 로그인 기능 구현


작업 내용

이번 PR에서 진행된 주요 변경 사항을 기술해 주세요.

코드 구조, 핵심 로직 등에 대해 설명해 주시면 좋습니다. (이미지 첨부 가능)

ex: ConcurrentOrderService에 동시 주문 요청 처리 기능 추가

  • order 메소드에 Synchronized를 선언하여 메서드에 동시성 제어를 적용

발생했던 문제와 해결 과정을 남겨 주세요.

ex) 문제 1 - 다수의 사용자가 동시에 같은 리소스를 업데이트할 때 재고 수량이 음수로 내려가는 데이터 불일치 문제 발생

해결 방법 1 - Redis SET 명령어에 NX(Not Exists)와 PX(Expire Time) 옵션을 활용해 락을 설정했습니다. 이유는 ~

이번 주차에서 고민되었던 지점이나, 어려웠던 점을 알려 주세요.

과제를 해결하며 특히 어려웠던 점이나 고민되었던 지점이 있다면 남겨주세요.

  • 자바에서 동시성 제어를 위해 synchronized를 제공하는 건 알고 있었지만, ConcurrentHashMap이나 ThreadLocal 는 처음 보았다. 각각 쓰이는 상황이 어떤 경우인지 아는 것이 중요한 것 같고, 지금은 단순한 상황이라 synchronized만 선언하였다.

리뷰 포인트

리뷰어가 특히 의견을 주었으면 하는 부분이 있다면 작성해 주세요.

ex) Redis 락 설정 부분의 타임아웃 값이 적절한지 의견을 여쭙고 싶습니다.

  • 없습니다.

기타 질문

추가로 질문하고 싶은 내용이 있다면 남겨주세요.

ex) 테스트 환경에서 동시성 테스트를 수행하였고, 모든 케이스를 통과했습니다. 추가할 테스트 시나리오가 있을까요?

  • 없습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant