[올려올려 라디오] 신규 분석 기능 성능 테스트 (2)
·
Project
이번 포스팅에선 사용자 경험 향상을 위해 응답 속도와 TPS를 높일 수 있는 방법을 알아보겠습니다.응답 속도가 느린 이유이전의 부하 테스트 결과 지표에서 필요한 부분을 가져왔습니다.데일리 리포트와 위클리 리포트 각 테이블당 300만 건의 레코드가 들어있습니다.부하 테스트 결과 (트래픽 10배 늘었을 때를 가정)라벨표본 수평균최소값최대값표준편차오류 %처리량생성 가능 일자 조회(데일리 리포트)50003511750048.1396.340%423.51347생성 가능 일자 조회(위클리 리포트)500034832748319.76100.000%421.86973데일리 리포트 조회500035932757940.92100.000%427.31390총계150003531757938.5098.780%283.02955 평균 응답 속도는..
[올려올려 라디오] 신규 분석 기능 성능 테스트 (1)
·
Project
이번 포스팅에선 서비스 사용자 수를 늘리기 위해 새로 개발한 분석 기능에 대한 성능 테스트(Performance Testing) 이야기를 담아보려 합니다. 유저가 작성한 글을 기반으로 하는 신규 기능은 3가지입니다.데일리 리포트 또는 위클리 리포트를 받아볼 수 있는 날짜들을 조회하는 API리포트를 생성 요청하는 API날짜별로 생성된 리포트들을 조회하는 API이 기능들 가운데 외부 API를 사용하는 2번을 제외한 1번과 3번 조회 관련 API가 많이 사용될 것으로 예상됩니다.그래서 조회 API들에 대해 서비스가 예상되는 트래픽에서 얼마나 빠르고 안정적으로 응답하는지, 짧은 시간에 급격하게 몰리는 트래픽을 얼마나 견딜 수 있는지를 검증하기 위해 성능 테스트를 수행할 필요가 있습니다.어떤 테스트를 할 것인가?..
[올려올려 라디오] 분석 서비스 개발 중 만난 데드락과 동시성 문제 해결기 (5)
·
Project
이전 포스팅에서 데드락과 동시성 문제를 해결하는 시리즈를 마치려고 했습니다.그런데 생각해 보니 데일리 리포트를 생성하는 부분뿐만 아니라 위클리 리포트를 생성하는 부분에서도 네임드 락 호출이 필요했습니다. 함께 고도화를 하고 있는 팀원들이 네임드 락을 사용할 때 반납하는 코드를 깜빡한다면 서비스 장애가 일어날 수도 있습니다. 비즈니스 로직에서 동기화가 필요한 부분에 `try-finally`문으로 반납하는 부분이 반복돼서 사용될 것도 예상되죠. 그래서 이번 포스팅에서는 `AOP`를 활용해 비즈니스 로직에서 네임드 락 관련 관심사를 분리하는 과정을 담았습니다. 관심사 분리네임드 락의 사용 목적과 특성을 고려해야 한다네임드 락의 사용 목적네임드 락은 왜 사용할까요?핵심은 `동기화`입니다.저의 경우처럼 멀티 스레..
올려 올려 라디오 NCloud 활용 후기
·
Project
이번 포스팅은 비사이드 포텐데이 해커톤을 통해 처음 접하게 된 NCloud 활용 후기 글입니다.프로젝트 소개우리 팀의 프로젝트는 올려 올려 라디오(https://upup-radio.site/) 라는 이름의 서비스입니다. 올려올려 라디오언제 어디서나 DJ가 여러분에게 따뜻한 위로를 전해드립니다.upup-radio.site프로젝트 의도이 서비스는 위로받고 싶은 사람들이 라디오에 사연을 보내면, 귀여운 달토 DJ가 사연을 읽어주고, MBTI를 접목시켜 `F 성향(감정형)`의 사람과 `T 성향(이성형)`의 사람에게 위로가 되는 답변을 해줍니다. NCloud 서버 생성부터 클로바 API 활용까지핵심 기능은 클로바 스튜디오(https://www.ncloud.com/product/aiService/clovaStudi..
[올려올려 라디오] 분석 서비스 개발 중 만난 데드락과 동시성 문제 해결기 (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를 사용하기 때문에 최소한으로 사용해야 하는 제약 사항이 있습니다.편지마다 감정 분석..