전체 글
-
[Programmers] 서울에서 김서방 찾기Algorithm 2022. 5. 2. 15:01
서울에서 김서방 찾기 문제 설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한 사항 seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. "Kim"은 반드시 seoul 안에 포함되어 있습니다. 입출력 예seoulreturn ["Jane", "Kim"] "김서방은 1에 있다" import java.util.Arrays; public class 서울에서김서방찾기 { public static void main(String[] args) ..
-
[Programmers] 수박수박수박수박수?Algorithm 2022. 5. 2. 14:51
수박수박수박수박수박수? 문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예nreturn 3 "수박수" 4 "수박수박" import java.util.*; class Solution { public String solution(int n) { StringBuilder builder = new StringBuilder(); for (int i = 1; i
-
[Spring] 어노테이션 @ExceptionHandlerBack-end/Spring 2022. 4. 12. 16:06
안녕하세요 이번 포스팅은 ExceptionHandler 어노테이션에 대해서 알아보겠습니다. HTML 화면 오류 vs API 오류 웹 브라우저에서 HTML 화면을 제공할 때는 오류가 발생하면 BasicErrorController를 사용하는 게 편합니다. 이때는 단순히 5xx, 4xx 관련된 오류 화면을 보여주면 됩니다. BasicErrorController는 이런 메커니즘을 모두 구현해두었습니다. 그런데 API는 각 시스템 마다 응답의 모양도 다르고, 스펙도 모두 다릅니다. 예외 상황에 단순히 오류 화면을 보여주는 것이 아니라, 예외에 따라서 각각 다른 데이터를 출력해야 할 수도 있습니다. 그리고 같은 예외라고 해도 어떤 컨트롤러에서 발생했는가에 따라서 다른 예외 응답을 내려주어야 할 수 있습니다. 한마디..
-
[Spring] 스프링이 제공하는 ExceptionResolverBack-end/Spring 2022. 4. 12. 15:26
안녕하세요 이번 포스팅은 스프링이 제공하는 ExceptionResolver에 대해서 알아보겠습니다. 스프링 부트가 기본으로 제공하는 ExceptionHandler는 다음과 같습니다. HandlerExceptionResolverComposite에 다음 순서로 등록합니다. 1. ExceptionHandlerExceptionResolver - @ExceptionHandler를 처리합니다. API 예외 처리는 대부분 이 기능으로 해결합니다. 2. ResponseStatusExceptionResolver - HTTP 상태 코드를 지정해줍니다. 예) @ResponseStatus(value = HttpStatus.NOT_FOUND) 3. DefaultHandlerExceptionResolver - 스프링 내부 기본 ..
-
[Spring] API 예외 처리Back-end/Spring 2022. 4. 12. 14:59
안녕하세요 이번 포스팅은 API 예외 처리에 대해서 알아보겠습니다!! API 예외 처리 - 시작 HTML 페이지의 경우 지금까지 설명했던 것처럼 4xx, 5xx와 같은 오류 페이지만 있으면 대부분의 문제를 해결할 수 있었습니다. 그런데 API의 경우에는 생각할 내용이 더 많습니다. 오류 페이지는 단순히 고객에게 오류 화면을 보여주고 끝이지만, API는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 합니다. 지금부터 API의 경우 어떻게 예외 처리를 하면 좋은지 알아보겠습니다. WebServerCustomizer import org.springframework.boot.web.server.ConfigurableWebServerFactory; import org.spring..
-
[Spring] 예외 처리(Exception)와 오류 페이지Back-end/Spring 2022. 4. 11. 15:10
안녕하세요 이번 포스팅은 예외처리와 오류 페이지에 대해서 알아보겠습니다!! 서블릿 예외 처리 시작 우선 스프링이 아닌 순수 서블릿 컨테이너는 예외를 어떻게 처리하는지 알아보겠습니다. 서블릿은 다음 2가지 방식으로 예외 처리를 지원합니다. 1.Exception(예외) 2.response.sendError(HTTP 상태 코드, 오류 메시지) Exception(예외) 자바 직접 실행 자바의 메인 메서드를 직접 실행하는 경우 main이라는 이름의 쓰레드가 실행됩니다. 실행 도중에 예외를 잡지 못하고 처음 실행한 main() 메서드를 넘어서 예외가 던져지면, 예외 정보를 남기고 해당 쓰레드는 종료됩니다. 웹 애플리케이션 웹 애플리케이션은 사용자 요청별로 별도의 쓰레드가 할당되고, 서블릿 컨테이너 안에서 실행됩니다..
-
[Spring] 스프링 인터셉터(Spring Interceptor)Back-end/Spring 2022. 4. 11. 12:13
안녕하세요 이번 포스팅은 스프링 인터셉터에 대해서 알아보겠습니다. 스프링 인터셉터(Spring Interceptor) 소개 스프링 인터셉터도 서블릿 필터와 같이 웹과 관련된 공통 관심 사항을 효과적으로 해결할 수 있는 기술입니다. 서블릿 필터가 서블릿이 제공하는 기술이라면, 스프링 인터셉터는 스프링 MVC가 제공하는 기술입니다. 둘 다 웹과 관련된 공통 관심 사항을 처리하지만, 적용되는 순서와 범위, 그리고 사용방법이 다릅니다. 1. 스프링 인터셉터는 디스패쳐 서블릿과 컨트롤러 사이에서 컨트롤러 호출 직전에 호출됩니다. 2. 스프링 인터셉터는 스프링 MVC가 제공하는 기능이기 때문에 결국 디스패처 서블릿 이후에 등장하게 됩니다 스프링 MVC의 시작점이 디스패처 서블릿이라고 생각해보면 이해가 됩니다. 3...