한 주간 배우면서 새로 알게된 개념이나 잘 못 알았던 개념을 서로 나누어 보아요.
- SoftDelete
@Where(clause = "deleted = false")
Entity에는 하지말자.- 필요하면 Repository쪽에 작성하자.
- 페이징
- 반환용 Page 많이들 구현한다
- 반환해줄때 필드 쓸데없는거 많아서
- 필수 : 페이지 사이즈, 페이지 넘버, 총 갯수
- 에러
- 메시지를 가능한 친절하게 작성해주자
- ex) 범위를 초과햇습니다 -> 범위는 a~b 까지입니다.
- ErrorResponse의 형태를 맞춰주자
- ex) 하나는 e.getMessage(), 하나는 ErrorCode 이런거XX
- 스프링가이드
- Google, Facebook 등 대형 서비스들의 REST API 에러 처리 비교
- 테스트
- 유닛테스트 - given 많이 사용
- 통합테스트 - given, data.sql 사용
- 즉 특히 컨트롤할수없는 데이터 - data.sql 사용함
- 아키텍처
- trade-off지만,,
- 쿼리 비효율적이더라도 서비스는 가능한 분리하자!!!
- 질문모음
- 빌드하는동안 무엇을 하고 계시나요?
- 모니터링을 한다(apm - 모니터링 툴)
- 필드에러같은것도 실무에서 다 내려주나요?
- 회사마다 다르다