Spring 23

Spring boot 버전에 맞는 라이브러리 버전 찾기

평소 개발을 하면서 여러가지 라이브러리들을 다운받게 되는데, 이들은 다 버전들이 존재한다. 구글링해도 나와 같은 작업 환경을 가진 사람들이 아니기 때문에, 버전의 호환성 문제가 발생하는 경우가 많다. 때문에, 이를 기억하기 위해서 기록하고, 나와 같은 문제를 가진 사람들에게 공유하고 싶어서 작성합니다!! 우선, spring.io 로 들어갑니다. 그리고, 상단의 메뉴 중에서 Projects에서 Spring Boot로 들어갑니다. 그리고 LEARN 을 클릭해줍니다. 그러면 위와 같이, 현재 존재하는 여러 Spring Boot 버전들이 나옵니다. 현재 본인이 사용하고 있는 버전에 해당하는 Reference Doc. 버튼을 클릭해줍니다. 그리고 맨 아래로 스크롤해서 내려오면, 위와 같이, Dependency V..

Spring 2024.04.02

Spring, Servlet - 파일 업로드(비디오, 사진 데이터 등)

파일 업로드 일반적으로 사용하는 HTML Form을 통한 파일 업로드를 이해하려면 먼저 폼을 전송하는 다음 두 가지 방식의 차이를 이해해야 한다. HTML 폼 전송 방식 application/x-www-form-urlencoded multipart/form-data application/x-www-form-urlencoded 방식 application/x-www-form-urlencoded 방식은 HTML 폼 데이터를 서버로 전송하는 가장 기본적인 방법 Form 태그에 별도의 enctype 옵션이 없으면 웹 브라우저는 요청 HTTP 메시지의 헤더에 다음 내용을 추가한다. Content-Type: application/x-www-form-urlencoded 그리고 폼에 입력한 전송할 항목을 HTTP Bod..

Spring 2024.01.08

Spring - Formatter, ConversionService

2024.01.02 - [Spring] - Spring - 타입 컨버터 (Converter, ConversionService) Spring - 타입 컨버터 (Converter, ConversionService) 스프링 타입 컨버터 소개 문자↔숫자 변환과 같이 애플리케이션을 개발하다 보면 타입을 변환해야 하는 경우가 상당히 많다. 간단한 예시를 보자. @GetMapping("/hello-v1") public String helloV1(HttpServletReq junhyuk-develop.tistory.com 앞선 글에 이어서 작성하는 점 참고 바람 Formatter Converter 는 입력과 출력 타입에 제한이 없는, 범용 타입 변환 기능을 제공한다. 그러나 웹 애플리케이션 환경을 생각해보면, 문자를 ..

Spring 2024.01.02

Spring - 타입 컨버터 (Converter, ConversionService)

스프링 타입 컨버터 소개 문자↔숫자 변환과 같이 애플리케이션을 개발하다 보면 타입을 변환해야 하는 경우가 상당히 많다. 간단한 예시를 보자. @GetMapping("/hello-v1") public String helloV1(HttpServletRequest request) { String data = request.getParameter("data"); //문자 타입 조회 Integer intValue = Integer.valueOf(data); //숫자 타입으로 변경 System.out.println("intValue = " + intValue); return "ok"; } 파라미터로 data=10 을 보냈을 때, request.getparameter는 전부 String 타입이므로, intValue와..

Spring 2024.01.02

Spring - API 예외 처리 (ExceptionHandler, ControllerAdvice)

2024.01.01 - [Spring] - Spring - API 예외 처리 (HandlerExceptionResolver, ExceptionResolver ) 이론 Spring - API 예외 처리 (HandlerExceptionResolver, ExceptionResolver ) 이론 API 예외 처리는 어떻게 해야할까? HTML 페이지의 경우 앞선 게시글에서 설명했듯이, 오류 페이지를 만들고 이를 사용자에게 보여주기만 하면 되었다. 2023.12.29 - [Spring] - Spring(스프링) - 서블릿 예 junhyuk-develop.tistory.com @ExceptionHandler 와 @ControllerAdvice 의 장점을 명확히 알기 위해선, 이를 사용하지 않았을 때 얼마나 불편한지 ..

Spring 2024.01.01

Spring - API 예외 처리 (HandlerExceptionResolver, ExceptionResolver ) 이론

API 예외 처리는 어떻게 해야할까? HTML 페이지의 경우 앞선 게시글에서 설명했듯이, 오류 페이지를 만들고 이를 사용자에게 보여주기만 하면 되었다. 2023.12.29 - [Spring] - Spring(스프링) - 서블릿 예외 처리 및 오류 페이지(필터, 인터셉터) Spring(스프링) - 서블릿 예외 처리 및 오류 페이지(필터, 인터셉터) Servlet 예외 처리 스프링이 아닌 순수 서블릿 컨테이너는 예외를 어떻게 처리하는지 알아보자. 서블릿은 다음 2가지 방식으로 예외 처리를 지원한다. Exception (예외) response.sendError(HTTP 상태 코드, junhyuk-develop.tistory.com 그런데 API의 경우에는 생각할 내용이 더 많다. 오류 페이지는 단순히 고객에게..

Spring 2024.01.01

Spring(스프링) - 서블릿 예외 처리 및 오류 페이지(필터, 인터셉터)

Servlet 예외 처리 스프링이 아닌 순수 서블릿 컨테이너는 예외를 어떻게 처리하는지 알아보자. 서블릿은 다음 2가지 방식으로 예외 처리를 지원한다. Exception (예외) response.sendError(HTTP 상태 코드, 오류 메시지) Exception(예외) 웹 애플리케이션은 사용자 요청별로 별도의 쓰레드가 할당되고, 서블릿 컨테이너 안에서 실행된다. 애플리케이션에서 예외가 발생했는데, 어디선가 try ~ catch로 예외를 잡아서 처리하면 아무런 문제가 없다. 그런데 만약에 애플리케이션에서 예외를 잡지 못하고, 서블릿 밖으로까지 예외가 전달되면 어떻게 동작할까? WAS(여기까지 전파) ← 필터 ← 서블릿 ← 인터셉터 ← 컨트롤러(예외발생) 결국 톰캣 같은 WAS 까지 예외가 전달된다. W..

Spring 2023.12.29

Spring 검증 - Bean Validation

Bean Validation Bean Validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준이다. 검증 애노테이션과 여러 인터페이스의 모음이다. 마치 JPA가 표준 기술이고 그 구현체로 하이버네이트가 있는 것과 같다. Bean Validation을 구현한 기술중에 일반적으로 사용하는 구현체는 하이버네이트 Validator이다. (ORM과 관련X) 검증 애노테이션 모음 https://docs.jboss.org/hibernate/validator/6.2/reference/en-US/html_single/#validator-defineconstraints-spec Index of /hibernate/validator/6.2/reference/en-US ..

Spring 2023.12.21

Spring 검증 - Validator

2023.12.18 - [Spring] - Spring 검증 - BindingResult (FieldError, ObjectError, rejectValue, reject) Spring 검증 - BindingResult (FieldError, ObjectError, rejectValue, reject) 검증 ( Client, Server 검증 ) 클라이언트 검증은 조작할 수 있으므로 보안에 취약 서버만으로 검증하면, 즉각적인 고객 사용성이 부족 둘을 섞어 사용하되, 최종적으로 서버 검증은 필수 API 방식 → junhyuk-develop.tistory.com 해당 글은 위의 게시글에 이어 작성함을 참고하고 읽어주길 바람 Validator public interface Validator { boolean ..

Spring 2023.12.19

Spring 검증 - BindingResult (FieldError, ObjectError, rejectValue, reject)

검증 ( Client, Server 검증 ) 클라이언트 검증은 조작할 수 있으므로 보안에 취약 서버만으로 검증하면, 즉각적인 고객 사용성이 부족 둘을 섞어 사용하되, 최종적으로 서버 검증은 필수 API 방식 → API 스펙을 잘 정의해서 검증 오류를 API 응답 결과에 잘 남겨주어야 함 Code들을 Version을 올려가면서 더 단순하고 깔끔하게 변경해보겠다. ControllerV1 (제일 무식하게) //검증 오류 결과를 보관 Map errors = new HashMap(); errors 라는 map을 만들고 검증 로직을 컨트롤러에 작성하여 이를 담아준다. 전체 오류 메시지 상품명 상품명 오류 addForm.html 파일의 일부분이다. 위와 같이 타임리프를 통해 errors 를 통해 받은 에러를 찍어내려..

Spring 2023.12.18
1 2 3