공통 응답 포맷을 만드는 이유일관된 응답 형식 유지모든 API 응답을 일관된 형식으로 유지할 수 있다.이는 전체적인 프로그램의 유지 보수성을 높인다.로깅 및 모니터링같은 방식으로 응답을 하니 로깅 및 모니터링이 더 쉬워진다.보안 및 데이터 검증응답을 전역적으로 처리함으로써 민감한 정보를 숨기거나 데이터를 검증하는 등의 보안 작업을 일관되게 수행할 수 있다.ResponseBodyAdvice 공통 응답 포맷1. 공통 응답 코드 형식 정하기public interface ResponseCode { String name(); HttpStatus getHttpStatus(); String getData();}클라이언트에게 공통 응답 코드를 어떤 형식으로 보내줄 것인지 정의한다.@Getter@Requ..
전역 예외 처리를 해야하는 이유Spring은 에러 처리를 위한 BasicErrorController를 구현해뒀다. 그래서 예외가 발생한다면 기본적으로 /error로 에러 요청을 다시 전달하도록 WAS 설정을 해놨다.이것은 Springboot의 WebMvcAutoConfiguration을 통해서 자동으로 이루어진다. 일번적 요청의 흐름은 다음과 같이 진행된다.WAS(톰캣)필터서블릿 (디스패처 서블릿)인터셉터컨트롤러예외가 발생했을 때 별도의 처리를 하지 않았다면 WAS까지 에러가 전달된다. 이때 WAS는 애플리케이션에서 처리를 못하는 예외라 exception이 올라왔다 판단, 대응 작업을 진행한다.컨트롤러(예외 발생)인터셉터서블릿 (디스패처 서블릿)필터WASWAS는 스프링 부트가 등록한 에러 설정에 맞게 요..
내가 정리해두고 두고두고 볼라고 만든RestController 완벽 정리정리할 것, 예시코드 예시코드를 사용한 상세 설명 순으로 구성했다.Title - Excode - Description(3쌍)Return Type 정리1.기본 객체 및 컬렉션단일 객체@GetMapping("/user/{id}")public User getUser(@PathVariable Long id) { return userService.findById(id);}//예시 Json 응답{ "id": 1, "name": "John Doe", "email": "john.doe@example.com"} 객체를 반환 json으로 변환 해줌 리스트 or 맵 같은 컬렉션@GetMapping("/users")public Lis..
Spring Boot에서 환경변수 파일로 민감한 정보 따로 보관하기환경변수를 Spring boot 프로젝트 전역에서 사용하려면 따로 설정을 해줘야 한다.그럼 한번 방법을 알아보자1. 변수 파일 생성recources/properties 폴더 생성 후 env.properties파일 생성2. env 파일에 환경변수 적기DB_HOST=localhostDB_PORT=5432DB_NAME=exampleDBDB_USERNAME=postgresDB_PASSWORD=1234요런식으로 자신이 원하는 변수들 적기꼭 .gitignore에 적어서 변수가 git에 안올라가도록 하자3. env 파일을 사용할 수 있도록 Spring boot에 연결config폴더에 PropertyConfig.java 생성package com.exam..
다른 분들은 고생하지 말길 바라며암만 찾아봐도 내가 원하는 내용이 적혀있는 블로그, 도큐먼트, 유튜브가 없다.내가 겪은 버그, 에러들을 경험하고 몇시간동안 끙끙대지 말라고 작성한다.정말 간단하니 천천히 보면 금방 내가만든 springboot 서버를 배포할 수 있다.Spring Boot & PostgreDB 배포하기postgreDB 클라우드에 올리기내가만든 springboot git에 올려서 클라우드에 올리기2. 내가 만든 springboot git에 올려서 클라우드에 올리기1. git에 내 프로젝트 올리기딱 git 리파지토리에 들어갔을 때 프로젝트 폴더가 이런식으로 위치하는 것이 편하다.아니면 추가설정을 해줘야 한다.(서브 폴더 지정)2. springboot올릴 컨테이너 만들기다시 cloudtype로 돌..
다른 분들은 고생하지 말길 바라며암만 찾아봐도 내가 원하는 내용이 적혀있는 블로그, 도큐먼트, 유튜브가 없다.내가 겪은 버그, 에러들을 경험하고 몇시간동안 끙끙대지 말라고 작성한다.정말 간단하니 천천히 보면 금방 내가만든 springboot 서버를 배포할 수 있다.Spring Boot & PostgreDB 배포하기postgreDB 클라우드에 올리기내가만든 springboot git에 올려서 클라우드에 올리기1. postgreDB 클라우드에 올리기1. CloudType회원 가입나같은 경우에는 어차피 github에 올린 코드를 사용하려고 했기 때문에 github를 통해서 계정을 생성했다.그리고 카드 정보를 입력하라고 했는데 프리티어는 제한이 큰 대신 무료이니 입력했다.2. 프로젝트 생성로그인을 하고나면 스페..