삽질 보고서4 API 응답속도 개선하기 오늘은 API 응답 속도 개선기를 적어보겠습니다.최근 SSE기반의 기능을 WebSocket으로 이전하면서 테스트 서버에서 응답 지연이 3초 이상이 걸리는 하나의 API를 발견하게 되었습니다.(DB 환경: Aws t3 micro, mysql8.0, 각 테이블 당 100 ~2000만 건 데이터 적재)문제우리 '코딩해듀오' 서비스는 페어프로그래밍을 할 때 도움이 될만한 유틸리티를 지원하는 웹 서비스입니다.각 사용자들은 페어프로그래밍을 시작할 때, 서비스 메인 화면에서 방을 만들고, 접속하여 여러 기능들을 사용할 수 있습니다. 생성한 방에 접속하면, 세션 잔여 타이머와 구현해야 할 TODO 리스트 그리고 참고용 레퍼런스 링크들을 저장하여 한눈에 확인할 수 있게 구성되어 있습니다. 이번에 문제 된 API는 방 .. 2025. 1. 30. 테스트가 느려서 테스팅하기 싫을때 테스트가 너무 느려져서 돌리기 힘들 때가 있을 거예요.우리 팀도 테스트 케이스가 늘어나면서 불편하다는 말들이 나왔었죠.오늘은 테스트 속도를 개선한 경험을 이야기해볼게요.테스트를 느려지게 하는 원인들우선 테스트를 느려지게 하는 원인들을 찾아보아야겠죠.테스트를 느리게 하는 원인은 크게 2가지만 짚어봅시다. 1. 외부 의존성을 직접 호출할 때2. Mocking으로 인한 Context가 많아질 때 1. 지난 친 Mocking으로 인한 Context가 많아질 때 저는 테스트 코드를 작성하던 초기에 Test Context를 가볍게 유지하기 위해Controller layer는 @WebMvcTest 애노테이션을 사용해서 테스트하곤 했어요. 그리고 Repository Layer를 테스트할 때는 @DataJapTest를.. 2025. 1. 24. Slack으로 코드리뷰 재촉하기 지난번에 코드리뷰를 하는 방법에 대해 알아보았어요. 이번 시간에는 제가 우리팀의 코드리뷰 문화를 발전 시키기 위해 했던 삽질..슬랙 알림 자동화로 코드리뷰 문화 개선했던 이야기를 구체적으로 해볼게요. 계기저희 팀의 그라운드 룰로 상호 코드 리뷰 후 몇 명 이상의 동의가 있어야 개발 브랜치로 병합할 수 있었어요.백엔드는 5명이고, 병합을 하기 위해서 3명 이상의 동의가 필요했던 것이죠. 불편했던 점은 누가 PR를 생성하면, 일일이 팀원을 찾아 다니면서 "누구 누구야! 나 코드리뷰좀 해줄래?"라고 말을 해야했고, 또 상대방은 리드리뷰 후 "나 코드리뷰 다했으니까 확인해줘"라고 찾아 다니며 말해야하는 불편함이 있었죠.. 무식해서 용감했던 저는 팀원들에게 당당하게 "이 문제 내가 해결한다! 딱 일주일만 줘라!.. 2024. 10. 27. 우리도 무중단 배포 할래요. 무중단 배포 도입 계기배포를 할 때마다 시스템이 작동하지 않는 다운타임 이 발생하고, 다운타임 이 발생할 경우 사용자 경험을 저하시키게 됩니다.이러한 이유로 서비스를 중단하지 않고 새로운 버전을 배포하는 무중단 배포를 도입하게 되었습니다.무중단 배포 방식 선택 기준무중단 배포 방식에는 여러가지가 존재하는데요, 그 중 대표적인 방식에는RollingBlue/GreenCanary가 있습니다.세가지 배포 방식을 간단하게 설명하겠습니다.Rolling 배포는 트래픽을 점진적으로 구버전에서 신버전으로 이동시키는 방법입니다.Blue/Green 배포는 트래픽을 한번에 구버전에서 신버전으로 이동시키는 방법입니다.Canary 배포는 트래픽을 점진적으로 구버전에서 신버전으로 이동시킨다는 점에서 Rolling 배포와 비슷합니다.. 2024. 10. 27. 이전 1 다음