[올려올려 라디오] 분석 서비스 개발 중 만난 데드락과 동시성 문제 해결기 (5)
·
Project
이전 포스팅에서 데드락과 동시성 문제를 해결하는 시리즈를 마치려고 했습니다.그런데 생각해 보니 데일리 리포트를 생성하는 부분뿐만 아니라 위클리 리포트를 생성하는 부분에서도 네임드 락 호출이 필요했습니다. 함께 고도화를 하고 있는 팀원들이 네임드 락을 사용할 때 반납하는 코드를 깜빡한다면 서비스 장애가 일어날 수도 있습니다. 비즈니스 로직에서 동기화가 필요한 부분에 `try-finally`문으로 반납하는 부분이 반복돼서 사용될 것도 예상되죠. 그래서 이번 포스팅에서는 `AOP`를 활용해 비즈니스 로직에서 네임드 락 관련 관심사를 분리하는 과정을 담았습니다. 관심사 분리네임드 락의 사용 목적과 특성을 고려해야 한다네임드 락의 사용 목적네임드 락은 왜 사용할까요?핵심은 `동기화`입니다.저의 경우처럼 멀티 스레..
[올려올려 라디오] 분석 서비스 개발 중 만난 데드락과 동시성 문제 해결기 (4)
·
Project
이전 포스팅: 2024.11.26 - [Project] - [포텐데이 409-1pick] 분석 서비스 개발 중 만난 데드락 해결기 (3) [포텐데이 409-1pick] 분석 서비스 개발 중 만난 데드락 해결기 (3)이번 포스팅에선 네임드 락을 이용해 데드락을 해결하는 과정을 담았습니다. 이전 포스팅이 궁금하시다면 아래 링크를 참고해 주세요!2024.11.25 - [Project] - [포텐데이 409-1pick] 분석 서비스 개발dev-gallery.tistory.com이전 포스팅에서 네임드 락을 이용해 데드락을 해결을 시도했습니다.하지만 문제가 있었는데요, 데드락을 해결했지만 `INSERT INTO ...` 쿼리가 2번 발생했다는 부분입니다.`INSERT` 쿼리가 2번 발생했다는 뜻은 이미 외부 API..
[올려올려 라디오] 분석 서비스 개발 중 만난 데드락과 동시성 문제 해결기 (3)
·
Project
이번 포스팅에선 네임드 락을 이용해 데드락을 해결하는 과정을 담았습니다. 이전 포스팅이 궁금하시다면 아래 링크를 참고해 주세요!2024.11.25 - [Project] - [포텐데이 409-1pick] 분석 서비스 개발 중 만난 데드락 해결기 (1) [포텐데이 409-1pick] 분석 서비스 개발 중 만난 데드락 해결기 (1)이번 포스팅은 분석 서비스를 개발하다 만난 데드락을 해결하는 과정을 담았습니다.감정 분석 서비스 미리 보기기존 서비스에 이용자를 모으기 위해 고도화하는 프로젝트 중 하나가 `감정 분석dev-gallery.tistory.com2024.11.26 - [Project] - [포텐데이 409-1pick] 분석 서비스 개발 중 만난 데드락 해결기 (2) [포텐데이 409-1pick] 분석 서..
[올려올려 라디오] 분석 서비스 개발 중 만난 데드락과 동시성 문제 해결기 (2)
·
Project
이번 포스팅에선 Testcontainers 내용이 잠깐 나옵니다.Testcontainers 환경을 구성하는 방법은 이전 포스팅을 참고해 주시면 됩니다.2024.09.16 - [Project] - [예약 대기 시스템] 4. 컨테이너 환경에서 테스트하기 (Testcontainers) [예약 대기 시스템] 4. 컨테이너 환경에서 테스트하기 (Testcontainers)이전 포스팅에서 애플리케이션을 컨테이너화 하기 위해 도커를 사용했습니다.(이전 포스팅 : 2024.09.13 - [Project] - [예약 대기 시스템] 3. 프로젝트 설정 (어드민 시스템)) [예약 대기 시스템] 3. 프dev-gallery.tistory.com데드락 원인 찾기데드락의 원인을 찾기 위해 MySQL을 확인해 볼 필요가 있습니다...
[올려올려 라디오] 분석 서비스 개발 중 만난 데드락과 동시성 문제 해결기 (1)
·
Project
이번 포스팅은 분석 서비스를 개발하다 만난 데드락을 해결하는 과정을 담았습니다.감정 분석 서비스 미리 보기기존 서비스에 이용자를 모으기 위해 고도화하는 프로젝트 중 하나가 `감정 분석 서비스`입니다.참고) 도메인 모델이 리팩토링 되었습니다.프로젝트 리팩토링 (2) - 도메인 모델 리팩토링에서 도메인 모델 리팩토링에 대한 이유가 있습니다.핵심 기능사용자가 작성한 편지를 `Clova API`를 이용해 `감정 분석`을 수행하고, 하루에 작성한 편지들을 바탕으로 `데일리 리포트`를 발행하는 서비스입니다.제약 사항: 비용이 발생하는 외부 API인 `Clova API` 를 최소한으로 사용한다.핵심 기능은 비용이 발생하는 외부 API를 사용하기 때문에 최소한으로 사용해야 하는 제약 사항이 있습니다.편지마다 감정 분석..
[올려올려 라디오] 올려올려 라디오 서비스 개발기 - 2
·
Project
2024.10.07 - [Project] - [포텐데이 409-1pick] 올려올려 라디오 서비스 개발기 - 1 [포텐데이 409-1pick] 올려올려 라디오 서비스 개발기 - 1우리가 만든 서비스https://upup-radio.site/ 올려올려 라디오언제 어디서나 DJ가 여러분에게 따뜻한 위로를 전해드립니다.upup-radio.site글을 쓰고 있는 현재, 우리 팀이 만든 서비스가 1Pick을 받았습니dev-gallery.tistory.com이전 포스팅에 이어서 글을 작성합니다. 우리 팀이 만든 서비스는 아래 링크를 통해 이용이 가능합니다.https://upup-radio.site/ 올려올려 라디오언제 어디서나 DJ가 여러분에게 따뜻한 위로를 전해드립니다.upup-radio.siteAPI 요청 처리..
[올려올려 라디오] 올려올려 라디오 서비스 개발기 - 1
·
Project
우리가 만든 서비스https://upup-radio.site/ 올려올려 라디오언제 어디서나 DJ가 여러분에게 따뜻한 위로를 전해드립니다.upup-radio.site글을 쓰고 있는 현재, 우리 팀이 만든 서비스가 1Pick을 받았습니다!이 서비스는 위로를 받고싶은 누구나, 언제 어디서든 따뜻한 위로를 받을 수 있는 서비스입니다.포텐데이에 참여하게 된 계기예약 대기 시스템 프로젝트를 진행하면서 중간중간에 힘이 빠지는 날들이 있었습니다.지금 다시 생각해보면 핵심은 `예약 대기 시스템`인데, `어드민 시스템`을 먼저 구현해서 힘이 빠졌던 것 같습니다.욕심이 화를 부른다고 했나요? '`어드민 시스템`과 함께 동작하는 `예약 대기 시스템`을 만드는 게 나에게 더 도전적인 일이야.'라는 욕심이 문제였다고 생각해요. ..