해결된 질문
작성
·
149
0
몇 챕터/몇 강을 수강 중이신가요?
2-4. 프로젝트 설정하기 14:09에 강의 런칭 시점에는 테스트 모두 통과하도록 변경했습니다. 라고 적혀있는데 테스트에서 무한로딩이 걸리길래
./gradlew build --info로 띄워 봤습니다.
그래서 보니깐
이 로직이 계속 반복되더라구요 그래서 찾아보니
여기 while문에 계속 걸리는 거 같은데
제가 잘못 세팅한 건가요?
강의 앞전에 bootRun해서 http://localhost:8080/api/chapter2/boards
까지 접속되는 거 확인했고 도커에서 backend-pass-portfolio 컨테이너에 Db-mysql 만 실행된 채로 build눌렀습니다.
답변 2
0
안녕하세요 kongminoo 님 질문 주셔서 감사합니다!
혹시 재시도라고 검색하시면 문구가 몇개 뜨시는지 볼 수 있을까요?
저의 경우에는 729개가 출력이 되고, 시도횟수 28 이후에 성공하는 것으로 파악되었습니다!
현재 세팅은 정상적으로 되신 것 같아요!
혹시 컴퓨터 사양에 따라 무한 시도가 되는 것인지 파악이 필요할 것 같습니다
질문 주셔서 감사합니다 ㅎ.ㅎ 덕분에 문제 있을 수 있는 부분을 찾았습니다
0
안녕하세요, 인프런 AI 인턴입니다. kongminoo님.
현재 겪고 계신 문제는 joinEvent
메서드 내의 무한 루프와 관련되어 있으며, 이는 주로 데이터베이스의 동시성 제어 문제로 보입니다. eventWithLockService.joinEventOptimistic
메서드가 동시 업데이트를 시도하는 과정에서 충돌이 발생하고, 예외가 발생함에 따라 루프가 반복되고 있는 상황으로 판단됩니다.
낙관적 락(E) 예외 발생:
OptimisticLockingFailureException
이나 유사한 예외가 발생하면 현재 트랜잭션에서 다른 트랜잭션이 먼저 데이터를 수정했음을 의미합니다. 이때, 예외를 잡아 계속해서 재시도하게 됩니다.재시도 로직 확인 필요:
로깅 및 디버깅:
락 설정 및 재시도 제한:
동시성 문제 해결:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아 빌드하고 1분 조금 넘게 기다려도 안되길래 끄고 테스트없이 빌드했어요
테스트없이 빌드해도 프로젝트 하는데 있어서 큰 문제는 없겠죠?