개요 데이터를 생성 또는 수정하는 REST API를 만들다보면 종종 클라이언트가 보낸 값을 검사하는 과정이 필요해진다. 유효한 이메일 형식인지 확인하거나, 입력값의 null 여부를 확인하는 등의 과정이다. 보통은 프론트엔드에서 화면 UI를 구성하기 위해 한 번 유효성 체크를 해주지만, 서버는 클라이언트가 아닌 다른 곳에서도 요청을 받을 수 있고, 클라단의 데이터 위변조 가능성도 무시할 수 없기에 서버 측에서도 한 번 더 유효성 검사를 해주는게 좋다. spring boot는 이런 개발자의 수고를 덜어주기 위해, 많이 사용되는 유효성 검사들을 'spring-boot-starter-validation' 라이브러리를 통해 제공한다. 하지만 프로젝트 요구사항은 항상 제각각이므로 위 라이브러리로 필드 입력 값을 ..
문제 22년 11월 말에 정식 출시된 Spring Boot 3 (Spring framework 6)은 Java 17 이상에서만 실행 가능하다. 자바 버전이 17 밑이라면 아예 사용조차 할 수 없다니, 제일 보편적으로 쓰이는 자바 버전이 8, 11인 것을 생각하면 꽤 파격적인 내용인 것 같다 🤔 하나의 자바 버전만 사용한다면 아무 문제 없겠지만, 만약 다른 자바 버전을 사용하는 여러 프로젝트를 동시에 진행 중이라면 꽤 골치 아파진다. 보통 우리는 편의를 위해 환경 변수를 이용해 자바 설치 경로를 할당한다. 매번 자바가 설치된 경로로 이동하기엔 번거로우니, 내 컴퓨터의 어느 경로에서 실행하더라도 커맨드 라인이 자바가 설치된 경로를 알아서 찾도록 설정해주는 방식이다. 이 과정에서 컴퓨터에 자바가 버전 별로..
개요 개발을 하면 할 수록, 테스트의 중요함에 대해 깨닫게 된다. 규모가 큰 프로젝트에서 코드 변경으로 인한 예기치 못한 사이드 이펙트를 방지해주고, 의도한 대로 기능이 동작하는지 빠르게 확인할 수 있게 만들어주는 테스트 코드. 작성한 후 돌려보는 것 까지 필수로 해야겠지? 🤔 테스트 컨테이너를 이용해 테스트 멱등성을 유지하며 손쉽게 프로젝트 테스트를 수행해보자! 테스트 환경을 만드는 세 가지 방법 📚 Test용 DB를 세팅하는 여러가지 방법 대부분의 경우 우리는 운영 환경별로 Property (Properties)를 분리해서 사용한다. 각 property 내부엔 active 환경에 맞는 DB, Log level 등 다양한 환경 설정이 존재한다. 개인적인 경험으로는, prod(운영 서버), dev(개발 ..
3/29일 온/오프라인에서 진행된 "우아한 테크 세미나 : 테크리더 3인이 말하는 개발자 원칙"을 듣고 정리한 글입니다. 어느 날 딩동 온 메일! 주제가 흥미진진해서 냉큼 신청한 세미나인데, 운 좋게 당첨이 되었다 😄 원티드 리쿠르팅도, 네이버 deview도 연달아 떨어져서 슬퍼하고 있었는데 오랜만에 당첨되어 행복... 오후 반차 쓰고 호다닥 다녀온 우아한 테크 세미나 후기를 글로 남겨본다! 1️⃣ 동욱 님의 "제어할 수 없는 것에 의존하지 않기"🧑💻 일정을 잘 지키면서 버그는 많은 개발자 vs 일정은 못 지키지만 버그는 없는 개발자두 명의 개발자가 있다고 가정하자. A씨는 일정을 칼같이 지킨다. 단 한 번도 릴리즈 일정을 어긴 적이 없고, 협업할 때도 재깍재깍 맡은 일을 기간 내 수행한다. 근데 이제..