저희 Health-Genie는 학부생들의 체력 증진과 운동 수행 능력 향상을 위해 학부생간의 PT 매칭을 도와주는 서비스 입니다.
HEALTH-GENIE Postman API!! 문서 보기
- "지속 성장 가능" 이라는 목적을 가지고 작성하였습니다.
- 단위 테스트는 비즈니스 로직에서 코드의 단위가 아닌 동작의 단위를 기반으로 단위테스트를 진행하였습니다.
- 각각의 테스트 클래스마다 중복되는 작업들은 테스트 헬퍼 클래스를 작성하며, 메소드 명이 아닌 동작의 흐름을 이해할 수 있는 네이밍을 작성하였습니다.
- 회귀 방지, 리팩토링 내성, 빠른 피드백, 유지보수성 4가지에 초점을 맞춰 코드의 개발을 했습니다.
Code Fix -> Project Build -> Test -> Merge -> (성공시) Github같은 외부 저장소로 업로드
AWS CodeDeploy → Docker Container Stop -> Docker Image Pull -> Docker Run Container
수많은 학교의 회원 / 트레이너 유저들이 트레이너의 후기를 조회하거나 각각의 일지를 조회하는 경우 최대 몇 명의 사용자들이 서버를 사용할 수 있는지 상황을 확인하고 대비하고자 부하 테스트를 진행하여 로직을 개선해보고자 했습니다.
테스트 시나리오: 후기 / 일지 각각 2000건에 대한 요청 처리
테스트 조건: 100명의 사람의 초당 트래픽 1000
기존 review/process 각 table내에서 각각 사진과 글 table을 분리하여 매 API호출시 필요한 데이터만 호출하게 하며 검색 조건을 추가해 쿼리를 가볍게 만드는 방향으로 수정하였습니다. 결과적으로 평균 응답속도가 60%, 75% 만큼 향상 되었으며, TPS또한 225%, 473% 만큼 대폭 향상되었습니다.
[ 초기 테스트 커버리지 ]
테스트 커버리지 수치 자체를 목표로 둔다면 “지속 성장 가능” 이라는 키워드 보다는 “수치”에 잘못된 초점을 두게 되어 가치 있는 테스트가 아닌 거짓양성과 의미 없는 단순 테스트들 위주의 테스트가 될것이라고 생각하고, 100%가 아닌 60% 이상을 목표로 두었습니다 test coverage ref
무한스크롤 도입 - 페이지 조회 성능 향상을 위한 고민
Caching Exception
이메일 인증 전략 고민 (1) - Redis 사용
이메일 인증 전략 고민 (2) - Api 사용
변경 감지를 통한 회원 정보 수정이 되지 않던 문제
커스텀 예외를 ExceptionHandler로 처리했음에도 500 Error가 터졌던 문제
aws ec2와 docker 연결 문제
code deploy 실행 문제