강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

아라레님의 프로필 이미지
아라레

작성한 질문수

재고시스템으로 알아보는 동시성이슈 해결방법

Named Lock 활용해보기

get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?

작성

·

51

0

3000 ms 인 줄 알았는데 그냥 second 던데 저렇게 길게 설정해도 괜찮을까요?

답변 2

1

최상용님의 프로필 이미지
최상용
지식공유자

슷파맨님 안녕하세요.
날카로운 질문주셔서 감사합니다.

소스코드를 작성할때 3초를 의도한것이 맞습니다.
보통 시간을 나타내는 파라미터들의 기준이 ms 라 무의식적으로 3000이라고 작성을 하였네요 ㅠㅠ

말씀하신대로 3000초는 너무 길기때문에 보통 비즈니스에서는 3초정도를 많이 사용합니다.
다만, 로직이 오래걸리는 경우에는 시간을 넉넉하게 주어야 합니다!

좋은 질문 주셔서 감사합니다.

아라레님의 프로필 이미지
아라레
질문자

아 다행이네요.

강의 한번 보고 이해 안되서 강의를 전체적으로 동료에게 설명해주다가 3000초 설정이길래 왜이리 길게 설정됐는지 의아해서 질문드린건데 ㅎㅎ

 

답변 감사합니다.

좋은 강의 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 슷파맨님.

네임드락의 timeout 설정과 관련하여 중요한 점은 이 값이 시스템의 특성에 따라 적절하게 설정되어야 한다는 것입니다. 3000초라는 시간은 특정 환경이나 비즈니스 로직에 따라 적절할 수 있지만, 보편적으로는 굉장히 긴 시간으로 볼 수 있습니다.

락의 timeout이 길 경우, 특정 작업이 종료되지 않으면 장시간 동안 다른 프로세스가 락을 기다리게 되어 시스템의 성능에 문제가 생길 수 있습니다. 반대로 너무 짧으면 작업이 완료되기 전에 락이 풀릴 수 있어, 이를 통해 예상치 못한 동시성 문제가 발생할 수 있죠.

높은 timeout 시간은 네트워크의 문제나 불확실한 워크로드에서 임시적인 fail-safe로 작용할 수 있지만, 근본적인 문제 해결은 아닙니다. 대부분의 유스 케이스에서는 짧은 timeout과 함께 재시도 메커니즘이나 다른 패턴을 통해 시스템 안정성을 높이는 방법을 채택합니다.

유사한 질문과 답변으로, 네임드락 timeout 시간은 어느정도가 적당할까요? 게시글을 참고할 수 있습니다. 여기에서는 2~5초가 일반적인 적정치로 언급되며, 각 시스템 상황에 따라 배치가 필요함을 알 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아라레님의 프로필 이미지
아라레

작성한 질문수

질문하기