- Java 17
- Spring Boot 2.7.9
- Spring Data JPA(QueryDSL)
- Junit5
- PostgresSQL
- 기존에 루틴을 생성시에 routineDay라는 테이블에 일별로 최대
1년치 컬럼
을 생성했음.(매일 반복시) - 직관적이었지만 한 루틴에 최대 365개의 컬럼이 생성되어 리소스 소모가 너무 컸고 미리 생성하는 로직이었기 때문에 특정 기간이 지나면 다시 재 생성해야 한다는 문제가 있다고 판단되어 리팩토링을 하기로 함.
- 기존에 운영중인 api에 영향을 미치지 않게 구현로직은 달라지지만 리턴값은 유지하도록 리펙토링을 진행하기로 함.
RestAssured
를 이용한 인수테스트가 기존에 구축해놓아서 내부 로직을 변경하면서 리턴값을 체크함.- 결과적으로 루틴 완료 체크시에만 히스토리 관리를 위해 해당날짜, 루틴아이디를 가지고 매핑하여 저장하는 테이블을 만듬.