개요 데이터를 생성 또는 수정하는 REST API를 만들다보면 종종 클라이언트가 보낸 값을 검사하는 과정이 필요해진다. 유효한 이메일 형식인지 확인하거나, 입력값의 null 여부를 확인하는 등의 과정이다. 보통은 프론트엔드에서 화면 UI를 구성하기 위해 한 번 유효성 체크를 해주지만, 서버는 클라이언트가 아닌 다른 곳에서도 요청을 받을 수 있고, 클라단의 데이터 위변조 가능성도 무시할 수 없기에 서버 측에서도 한 번 더 유효성 검사를 해주는게 좋다. spring boot는 이런 개발자의 수고를 덜어주기 위해, 많이 사용되는 유효성 검사들을 'spring-boot-starter-validation' 라이브러리를 통해 제공한다. 하지만 프로젝트 요구사항은 항상 제각각이므로 위 라이브러리로 필드 입력 값을 ..
개요 개발을 하면 할 수록, 테스트의 중요함에 대해 깨닫게 된다. 규모가 큰 프로젝트에서 코드 변경으로 인한 예기치 못한 사이드 이펙트를 방지해주고, 의도한 대로 기능이 동작하는지 빠르게 확인할 수 있게 만들어주는 테스트 코드. 작성한 후 돌려보는 것 까지 필수로 해야겠지? 🤔 테스트 컨테이너를 이용해 테스트 멱등성을 유지하며 손쉽게 프로젝트 테스트를 수행해보자! 테스트 환경을 만드는 세 가지 방법 📚 Test용 DB를 세팅하는 여러가지 방법 대부분의 경우 우리는 운영 환경별로 Property (Properties)를 분리해서 사용한다. 각 property 내부엔 active 환경에 맞는 DB, Log level 등 다양한 환경 설정이 존재한다. 개인적인 경험으로는, prod(운영 서버), dev(개발 ..
💁♀️ 앗! 세상은 위험하니 이 API 문서화 자동화 툴을 챙겨 가렴! 📌 시작하기 전, 내가 API나 REST API에 대해 잘 모른다면? 더보기 ✏️ API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말이다. 이렇게 말하면 한국어인데도 뭔 소린지 모르겠다. (영어가 섞여있긴 해?) 좀 더 간단하게 풀어보자면, 일종의 식당 종업원이라고 보면 된다. 식당에 방문한 손님이 메뉴도 보지 않고, 주방장에게 먹고 싶은 음식을 바로 요청한다고 생각해 보자. 우리 집은 보리밥 정식 파는 집인데 바삭한 황금올리브 한 마리 냉큼 튀겨오라고 난동을 부리는 거다. 정말 곤란하다. 따라서 API를 앞단에 세워 정해진 규격에 맞춰진 요청만 받을 수 있게 하는 거다...