반응형

2025/04 8

파일 업로드

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

공부/Spring 2025.04.21

스프링 타입 컨버터

우선 스프링 프로젝트를 하나 생성해주도록 하자. 스프링 타입 컨버터 소개문자를 숫자로 변환하거나, 반대로 숫자를 문자로 변환해야 하는 것처럼 애플리케이션을 개발하다 보면, 타입을 변환해야 하는 경우가 상당히 많다.@RestControllerpublic class HelloController { @GetMapping("/hello-v1") public String helloV1(HttpServletRequest request) { String data = request.getParameter("data");//문자 타입 조회 Integer intValue = Integer.valueOf(data); System.out.println("intValue = "..

공부/Spring 2025.04.15

API 예외 처리

API 예외 처리를 어떻게 해야할까?HTML 페이지의 경우 지금까지 설명했던 것처럼, 4xx, 5xx와 같은 오류 페이지만 있으면 대부분의 문제를 해결할 수 있었다.그런데 API의 경우에는 생각할 내용이 더 많다. 오류 페이지는 단순히 고객에게 오류 화면을 보여주고 끝이지만, API는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 한다. API의 경우 어떻게 예외처리를 하면 좋은지 알아보자.우선 처음으로 돌아가서 서블릿 오류 페이지 방식을 사용해보자.@Componentpublic class WebServerCustomizer implements WebServerFactoryCustomizer { @Override public void customize(Conf..

공부/Spring 2025.04.14

예외 처리와 오류 페이지

예외 처리와 오류 페이지를 알아보기 위해 패키지를 만들도록 하자.https://start.spring.io/   서블릿 예외 처리 - 시작스프링이 아닌 순수 서블릿 컨테이너는 예외를 어떻게 처리하는지 알아보자. 서블릿은 다음 2가지 방식으롷 예외 처리를 지원한다.- 'Exception' 예외- 'response.sendError(HTTP 상태 코드, 오류 메시지)'  Exception(예외)자바 직접 실행 - 자바의 메인 메서드를 직접 실행하는 경우 main이라는 이름의 쓰레드가 실행된다. 실행 도중에 예외를 잡지 못하고 처음 실행한 main()메서드를 넘어서 예외가 던져지면, 예외 정보를 남기고 해당 쓰레드는 종료된다. 웹 애플리케이션 - 웹 애플리케이션은 사용자 요청별로 별도의 쓰레드가 할당되고, 서..

공부/Spring 2025.04.10

로그인 처리2 - 필터, 인터셉터

필터와 인터셉터를 알아보기 전, 쿠키와 세션관련 부분을 미리 확인해두자.https://surrealcode.tistory.com/137 로그인 처리1 - 쿠키, 세션로그인 요구사항- 홈 화면 - 로그인 전    - 회원 가입    - 로그인- 홈 화면 - 로그인 후    - 본인 이름(~님 환영합니다.)    - 상품 관리    - 로그 아웃- 보안 요구사항    - 로그인한 사용자만surrealcode.tistory.com  **정보**필터 :  서블릿에서 제공인터셉터 : 스프링에서 제공   서블릿 필터공통 관심 사항요구사항을 보면 로그인 한  사용자만 상품 관리 페이지에 들어갈 수 있어야 한다.하지만 로그인 하지 않은 사용자가 URL을 직접 입력하면 상품 관리 화면에 들어가진다. - http://lo..

공부/Spring 2025.04.08

로그인 처리1 - 쿠키, 세션

로그인 요구사항- 홈 화면 - 로그인 전    - 회원 가입    - 로그인- 홈 화면 - 로그인 후    - 본인 이름(~님 환영합니다.)    - 상품 관리    - 로그 아웃- 보안 요구사항    - 로그인한 사용자만 상품에 접근하고, 관리할 수 있음    - 로그인하지 않은 사용자가 상품 관리에 접근하면 로그인 화면으로 이동- 회원 가입, 상품 관리  Package 구조는 다음과 같다.packge 구조- hello.domain    - domain        - item        - member        - login    - web        - item        - member        - login *도메인이 가장 중요하다.* 도메인 = 화면, UI, 기술 인프라 등등의 영..

공부/Spring 2025.04.07

검증2 - Bean Validation

Bean Validation을 알아보기 전에 이전에 보았던 Validation을 참고하자.https://surrealcode.tistory.com/135 검증1 - Validation검증 요구사항기존에 만든 상품 관리 시스템은 허술한 부분이 많다. id가 없어도 등록이 되거나, int값을 받는 곳에 String을 넣게되면, 4xx번대 에러가 발생하는 등 문제가 많았다. 이 부분을 해결surrealcode.tistory.com BeanValidation검증 기능을 지금처럼 매번 코드로 작성하는 것은 상당히 번거롭다. 특히 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 다음 코드를 보자public class Item { private..

공부/Spring 2025.04.03

검증1 - Validation

검증 요구사항기존에 만든 상품 관리 시스템은 허술한 부분이 많다. id가 없어도 등록이 되거나, int값을 받는 곳에 String을 넣게되면, 4xx번대 에러가 발생하는 등 문제가 많았다. 이 부분을 해결하기 위해 상품 관리 시스템에 새로운 요구사항이 추가되었다. 요구사항 : 검증 로직 추가- 타입 검증    - 가격, 수량에 문자가 들어가면 검증 오류 처리- 필드 검증    - 상품명 : 필수, 공백X    - 가격 : 1000원 이상, 백만원 이하    - 수량 : 최대 9999- 특정 필드의 범위를 넘어서는 검증    - 가격 * 수량의 합은 10,000원 이상 지금까지 만든 웹 애플리케이션은 폼 입력시 숫자를 문자로 작성하거나해서 검증 오류가 발생하면 오류 화면으로 바로 이동한다. 이렇게 되면 사..

공부/Spring 2025.04.01
반응형