1. 배경테스트 환경테스트 환경은 프로젝트 설정을 할 때 가장 중요한 부분 중 하나이다. 가장 어렵고 귀찮은 작업이기도 하지만 처음 한번만 고생하면 추후 테스트 작성 시에 걱정 없이 아주 깔끔한 테스트 코드를 짤 수 있게 된다. 하지만 그만큼 프로젝트 환경 설정에서 가장 많은 시간을 들이게 되고, 많은 시행착오를 겪는 구간 중 하나라고 볼 수 있다. 테스트 환경을 만드는 과정에서 신경써야 할 부분은 다양하겠지만 그중에서도 특히나 주의해야할 부분 중 하나는 바로 멱등성이다. 멱등성을 간과한 경우에는 예상치 못한 상황에서 다른 테스트 혹은 외부 모듈로 인해 테스트가 간헐적으로 실패할 수 있으며, 이 경우 실패 구간을 찾기 매우 어렵다는 특징을 가지고 있기 때문이다. 여기서 멱등성(idempotent)이란? ..
1. 접근 배경일반적인 서비스에서는 여러 도메인 객체의 다양한 필드들을 유저나 관리자의 API 호출 등으로 수정하게 된다. 단순히 조회수 등이 추가 되는 것이 아니라 도메인의 메인 프로퍼티들이 변경된다. 이런것들은 보통 Restful 에서 PUT /도메인이름/{id} 같은 API 를 통해 수정이 되게 되는데, 구현 방식에 따라 몇 가지 차이가 있을 수 있다. 클라이언트에서 수정요청 보낼 시, 필요한 모든 필드를 채워서 보내는 경우-> 이 경우에는 해당 요청을 받아낼 Request 용 DTO 등을 만들거나 해서 해당 정보를 받아온 후, 무조건 기존에 있던 데이터의 DTO 의 모든 필드를 다 assign 해버리면 된다. 변경이 되든 안되든 그 값이 다 담겨져 있기 때문.반대로 모든 필드가 안 채워서 오는 경..