다른 팀 발표를 보다가 request resolver 기능을 이용해 페이지 사이즈 규칙을 프로젝트 전체에 자동적용해놓는 방법이 있단걸 알게되었다. 내 경우 PageSizeRule.validate, PageSizeRule.DEFAULT_PAGE_SIZE등을 클래스로 정의해 나름 매직넘버를 줄이고 중복코드를 관리해놓은 편이었지만, 컨트롤러에서 json을 맵핑받을때 이를 자동으로 적용가능한점을 모르고 있었다.
뿐만아니라 주문하기api 기능 구현 시, 사용자가 화면에 메뉴 정보를 받아와 고르는 동안 메뉴 가격이 바뀌거나 삭제되었는지 체크해보는 로직을 손으로 일일이 작성했었는데, 나중에 chatgpt 찾아보니 @Version 어노테이션을 이용해 낙관적 락을 적용하는 방법이 있었다. 이를 이용하면 복잡한 검증로직을 간단히 구현 가능해서 미리 알아봤더라면 좀 더 간결한 검증 코드가 구현가능했을것이다. 또한 메뉴의 가격등은 사용자 결제, 가게 정산등과 관련있는 민감한 정보이므로, 관련 정보들을 저장하는 테이블에 메뉴의 버전이 기록되있다면 cs대응등에 좀 더 용이한 면이 있었을것 같다.
위의 경험들을 바탕으로 자주 사용할 법한 기능들은 spring에 이미 존재하는게 아닌지 찾아보고 설계/구현에 임하는게 여러모로 생산성을 높이는 방법일거란 생각이 들었다.