2024년 8월 21일부터 세차새차에 백엔드 개발팀에 합류하였다! 이번 포스팅은 온보딩 이후 나의 첫 이슈 해결 일지이다. 이슈 자체는 간단했다. (나의 기능 개발이 간단하지 않아서 문제였지만 ㅎㅎ..) 회원 엔티티인 Member의 필드값 수정 API를 구현하는 것이었다. 추가적으로 세차장의 새로운 Owner에 대한 Owner 변경 API 또한 구현하였다. 1. 회원 정보 변경 API 구현🤔 유효성 검사는 어느 계층에서?! 변경될 내용이 담긴 DTO가 컨트롤러에 전달된다. 이때, validation은 어느 단에서 처리해주어야할지 고민이 되었는데 CTO님과 상의 후 DTO 단에서 처리하도록 결정하였다! 여름방학에 한상곤 교수님께서는 듣기론 controller, repository, service,..
Backend/Spring
1. 이번주 궁금증들(1) 기능 구현 후 테스트 코드를 작성하는 것까지는 알겠어. 그런데 내 테스트 코드가 정말 좋은 테스트 코드일까?양재현 멘토님 : 현업에서는 코드 커버리지 검사 결과가 최소 80% 이상이 나오게 테스트 코드를 작성하는 것을 목표로 합니다. 코드 커버리지란 : 소프트웨어의 테스트 케이스가 실제 코드를 얼마나 반영하는지 나타내는 지표 중 하나 라인 커버리지 : 코드 한 줄이 한 번 이상 실행된다면 충족결정 커버리지(브랜치 커버리지) : 모든 조건식의 내부 조건이 true/false를 가진다면 충족조건 커버리지 : if 조건문 안의 개별 조건식이 true/false인 경우 모두 실행되었을 때 충족. 사실상 결정 커버리지보다 더 detail한 커버리지인 것 스프링에서 Jacoco 라이브러리..
1. 이번주 궁금증들(1) Spring 환경에서 HTTP 요청과 응답을 JSON 형식으로 주고받는 방법은 무엇인가?일단, JSON(Javascript Object Notation)이란 무엇일까? 어떤 언어에서든 해석 가능한 데이터 교환 형식. 그렇기에 대부분의 프로그래밍 언어에서 쉽게 생성하고 파싱할 수 있는 형식이다.간단하고 가벼운 데이터 형식으로 텍스트 기반의 직관적인 데이터 표현 방식요청(Request) : 클라이언트에서 서버로 JSON 형식의 요청을 보내는 경우, 이를 객체로 변환하기 위해 @RequestBody 사용응답(Response) : @RestController를 사용한다면 controller 내 모든 메서드가 응답을 JSON 형식으로 자동 변환@RestControllerpublic cl..
1. 코드 리뷰 약어들⭐️ NIT : 중요하지는 않지만 더 나은 방법이 있다고 의견을 남기고 싶을 때 사용LGTM (Look Good To ME) : 굳!ACK (Acknowledgement) : 승인을 남길 때 사용. 단, 확실한 표현을 위해 덧붙여 사용하기도 한다.Concept ACK : 아이디어와 개념에 대해 승인하지만 코드를 확인하거나 테스트를 진행해보지는 않았음utACK (Untested ACK) : 코드는 확인하였지만 테스트는 하지 않았음tested ACK : 변경사항에 동의하고, 검토와 테스트도 했음NACK (Negative Acknowledgement) : 승인 거절 (이유와 함께)WIP (Work In Progress) : 작업이 진행중이라 병합하지 않았음PTAL (Please Take ..
1. No newline at end of file 에러와 해결방법 ⭐️ 클래스의 마지막 라인은 줄 바꿈을 해주는 것이 convention이기에 위와 같은 에러가 발생하였다! 필자는 ide로 intelli j를 사용하기에 intelli j 설정을 변경하여 해결해 주었다. 해결방법 : Settings - Editor - General -On save - Ensure every saved file ends with a line break 체크2. application.properties와 application.yml의 차이점 프로젝트의 각종 설정을 application.properties를 통해서만 할 수 있을 줄 알았지만 application.yml로도 설정할 수 있었다. 그래서 둘 사이의 차이점이..
목차1. 웹을 개발하는 3가지 방법?2. MVC 패턴의 5가지 규칙3. @Controller와 @RestController의 차이4. Long과 AtomicLong은 어떠한 차이가 있을까?5. "templates"은 경로를 표시하지 않아도 되는 이유?6. 추가적인 내용들1. 웹을 개발하는 3가지 방법? 웹을 개발하는 3가지 방법은 다음과 같다.(1) 정적 컨텐츠 : HTML 파일, 즉 정적 파일이 있는 그대로 브라우저에 반환한다. (hello-static.html 관련 컨트롤러가 없으니 정적 파일을 찾아보는 것이다!) (2) MVC와 템플릿 엔진 (가장 많이 사용한다)MVC : 유지 보수가 뛰어난 코드 구성 방식이다.View : 사용자에게 직접 보여지는 부분을 담당한다.Controller : 사용자의 요..