본문 바로가기
728x90
반응형

분류 전체보기576

[프로그래머스/java] 저주의 숫자 3 https://school.programmers.co.kr/learn/courses/30/lessons/120871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다. 10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자 1 1 6 8 2 2 7 10 3 4 8 11 4 5 9 14 5 7 10 16 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 .. 2023. 12. 19.
[Spring] 스프링 타입 컨버터 - 타입 컨버터 스프링 타입 컨버터 스프링 강의는 스프링부트 2버전이었지만 필자는 더 이상 스프링 공식 사이트에서 2버전에 대한 지원을 종료하여 자바 17버전으로 업그레이드, 스프링부트 3버전을 사용합니다. 스프링 타입 컨버터? 문자 → 숫자, 숫자 → 문자로 변환해야 하는 것처럼 애플리케이션을 개발하다보면 타입 변환이 필요한 경우 많다. HelloController - 문자 타입을 숫자 타입으로 변경 package hello.typeconverter.controller; import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bi.. 2023. 12. 6.
[Spring] API 예외 처리 - @ExceptionHandler 와 @ControllerAdvice @ExceptionHandler HTML 화면오류 vs API 오류 웹 브라우저에 HTML 화면을 제공할 때는 오류가 발생하면 BasicErrorController 를 사용하는게 편하다. 이때는 단순히 5xx, 4xx 관련된 오류 화면을 보여주면 된다. BasicErrorController 는 이런 메커니즘을 모두 구현해두었다. 그런데 API는 각 시스템 마다 응답의 모양도 다르고, 스펙도 모두 다르다. 예외 상황에 단순히 오류 화면을 보여주는 것이 아니라, 예외에 따라서 각각 다른 데이터를 출력해야 할 수도 있다. 그리고 같은 예외라고 해도 어떤 컨트롤러에서 발생했는가에 따라서 다른 예외 응답을 내려주어야 할 수 있다. 한마디로 매우 세밀한 제어가 필요하다. 예를 들어서 상품 API와 주문 API는 오.. 2023. 12. 4.
[Spring] API 예외 처리 - 스프링이 제공하는 ExceptionResolver API 예외 처리 - 스프링이 제공하는 ExceptionResolver 스프링 부트가 기본으로 제공하는 ExceptionResolver 는 다음과 같다. HandlerExceptionResolverComposite 에 다음 순서로 등록 1. ExceptionHandlerExceptionResolver 2. ResponseStatusExceptionResolver 3. DefaultHandlerExceptionResolver → 우선 순위가 가장 낮다. ExceptionHandlerExceptionResolver @ExceptionHandler 을 처리한다. API 예외 처리는 대부분 이 기능으로 해결한다. ResponseStatusExceptionResolver HTTP 상태 코드를 지정해준다. 예) @.. 2023. 12. 3.
[Spring] API 예외처리 - HandlerExceptionResolver API 예외 처리 - 시작 목표 API 예외 처리는 어떻게 해야할까? HTML 페이지의 경우 4xx, 5xx와 같은 오류 페이지만 있으면 대부분의 문제를 해결할 수 있다. 그런데 API의 경우에는 생각할 내용이 더 많다. 오류 페이지는 단순히 고객에게 오류 화면을 보여주고 끝이지만, API는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 한다. API도 오류 페이지처럼 처음으로 돌아가서 서블릿 오류 페이지 방식을 사용해보도록 하 WebServerCustomizer 다시동작 package hello.exception; import org.springframework.boot.web.server.ConfigurableWebServerFactory; import org.spr.. 2023. 12. 1.
[Spring] 서블릿 예외 처리(필터&인터셉터), 이를 보완한 스프링 부트 오류 페이지 서블릿 예외 처리 - 필터 목표 예외 처리에 따른 필터와 인터셉터 그리고 서블릿이 제공하는 DispatchType 이해하기 예외 발생과 오류 페이지 요청 흐름 1. WAS(여기까지 전파) ← 필터 ← 서블릿 ← 인터셉터 ← 컨트롤러(예외발생) 2. WAS `/error-page/500` 다시 요청 → 필터 → 서블릿 → 인터셉터 → 컨트롤러(/error-page/500) → View 오류가 발생하면 오류 페이지를 출력하기 위해 WAS 내부에서 다시 한번 호출이 발생한다. 이때 필터, 서블릿, 인터셉터도 모두 다시 호출된다. 그런데 로그인 인증 체크 같은 경우를 생각해보면, 이미 한번 필터나, 인터셉터에서 로그인 체크를 완료했다. 따라서 서버 내부에서 오류 페이지를 호출한다고 해서 해당 필터나 인터셉트가 .. 2023. 11. 28.
728x90
반응형