[Spring/기초] Valid 예외 처리 + 404, 405 (2)
Spring/Spring 기초2024. 9. 13. 01:23[Spring/기초] Valid 예외 처리 + 404, 405 (2)

문제지금 식별한 부분중 처리되지 않는 에러MethodArgumentNotValidException 400MissingServletRequestParameterException 400HandlerMethodValidationException 400NoHandlerFoundException 404HttpRequestMethodNotSupportedException 405이들은 공통응답처리가 되지 않았다valid, validate, 없는 url과 없는 method로 호출할때가 공통응답 처리가 되지 않았다.@RestControllerAdvicepublic class GlobalExceptionHandler extends ResponseEntityExceptionHandler이유는 ResponseEntityExc..

[Spring/기초] api 공통 응답 포맷 + 예외 처리 합치기 (2)
Spring/Spring 기초2024. 7. 15. 17:48[Spring/기초] api 공통 응답 포맷 + 예외 처리 합치기 (2)

공통 응답 포맷을 만드는 이유일관된 응답 형식 유지모든 API 응답을 일관된 형식으로 유지할 수 있다.이는 전체적인 프로그램의 유지 보수성을 높인다.로깅 및 모니터링같은 방식으로 응답을 하니 로깅 및 모니터링이 더 쉬워진다.보안 및 데이터 검증응답을 전역적으로 처리함으로써 민감한 정보를 숨기거나 데이터를 검증하는 등의 보안 작업을 일관되게 수행할 수 있다.ResponseBodyAdvice 공통 응답 포맷1. 공통 응답 코드 형식 정하기public interface ResponseCode { String name(); HttpStatus getHttpStatus(); String getData();}클라이언트에게 공통 응답 코드를 어떤 형식으로 보내줄 것인지 정의한다.@Getter@Requ..

[Spring/기초] 전역 예외 처리 + Test Code (1)
Spring/Spring 기초2024. 7. 14. 22:17[Spring/기초] 전역 예외 처리 + Test Code (1)

전역 예외 처리를 해야하는 이유Spring은 에러 처리를 위한 BasicErrorController를 구현해뒀다. 그래서 예외가 발생한다면 기본적으로 /error로 에러 요청을 다시 전달하도록 WAS 설정을 해놨다.이것은 Springboot의 WebMvcAutoConfiguration을 통해서 자동으로 이루어진다. 일번적 요청의 흐름은 다음과 같이 진행된다.WAS(톰캣)필터서블릿 (디스패처 서블릿)인터셉터컨트롤러예외가 발생했을 때 별도의 처리를 하지 않았다면 WAS까지 에러가 전달된다. 이때 WAS는 애플리케이션에서 처리를 못하는 예외라 exception이 올라왔다 판단, 대응 작업을 진행한다.컨트롤러(예외 발생)인터셉터서블릿 (디스패처 서블릿)필터WASWAS는 스프링 부트가 등록한 에러 설정에 맞게 요..

[Spring/기초] RestController  완벽 정리 (return type, 파라미터, 추가 개념 및 기능)
Spring/Spring 기초2024. 6. 23. 22:37[Spring/기초] RestController 완벽 정리 (return type, 파라미터, 추가 개념 및 기능)

내가 정리해두고 두고두고 볼라고 만든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/기초] 환경 변수 파일 사용하기 (env.properties)
Spring/Spring 기초2024. 5. 28. 22:04[Spring/기초] 환경 변수 파일 사용하기 (env.properties)

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..

[Spring/기초] Service
Spring/Spring 기초2024. 2. 7. 18:27[Spring/기초] Service

Spring의 MVC중 하나인 Service에 대해서 알아보자 Service를 결론부터 설명하자면 애플리케이션의 비지니스 로직을 포함하며 프레젠테이션 계층과 데이터 접근 계층 사이에서 중간 역할을 수행한다. 즉 데이터가공하는 애플리케이션의 핵심 기능, 규칙을 구현한다. 데이터베이스에 직접 데이터를 가공하다간 원본 데이터가 손실, 손상될수 있음으로 계층을 둔다. 서비스 계층의 주요 기능과 특징 1. 비지니스 로직의 캡슐화: 서비스 곛층은 비지니스 로직이나 비지니스 규칙을 구현하고, 이를 프레젠테이션 계층과 분리해서 애플리케이션의 유지 보수성과 확장성을 향상시킨다. 2. 재사용성 : 비지니스 로직을 서비스 계층에 구현함으로써, 동일한 로직을 애플리케이션의 다른 부분에서 재사용 할 수 있다. 3. 트랜잭션 관..

728x90
반응형
image