전체 글74 [Spring] Session 기반 로그인 구현하기 Session 등록 과정 1. 서버에 요청 2. Session ID 생성 및 저장 3. 생성된 Session ID 반환 4. Session Id 쿠키 저장 Session 인증 과정 1. Session ID가 저장된 쿠키 전송 2. 전달된 Session ID 유효성 판단 2-1. 유효한 경우 이후 작업 진행 2-2. 유효하지 않은 경우 Session 만료 메시지 or Redirect 진행 로그인 구현하기 방법1. @SessionAttribute 로그인 상태를 표현하기위한 html이 필요하다. home.html은 로그인이 안된 상태, home2.html은 로그인이 된 상태를 나타낸다. 로그인 버튼 클릭시 로그인 정보를 입력하는 form 페이지로 이동하며, 로그아웃 버튼 클릭시 서버에 저장된 세션 제거 후 h.. 2023. 2. 5. [Web] Multipart/form-data Multipart/form-data란? 모든 문자를 인코딩하지 않고 특정한 문자열을 이용해 form-data의 각 요소들의 내용을 구분하는 방식이다. 주로 form 태그에서 파일을 서버로 전송할 때 사용한다. 이런 데이터 전송방식이 등장한 이유는 무엇일까? 이에 대해 이해하기 위해선 Content-type이 무엇인지부터 알아야한다. HTTP Request는 body에 전송하려는 데이터를 담으며, 담은 데이터의 타입을 HTTP Header에 명시하는데 이 Header가 Content-type이다. 보통 HTTP Request의 body에 담는 데이터는 한 종류이기 때문에 Content-type도 하나만 명시할 수 있다. 하지만 이미지 파일을 업로드할 때 이미지 파일에 대한 설명도 같이 전송해야되는 경우는 .. 2023. 2. 1. [Spring 실력편] MultipartFile MultipartFile이란? MultipartFile이란 multipart 요청을 통해 받은 파일이다. 파일 내용은 임시 저장소(메모리나 디스크)에 저장되며 요청 처리가 끝날 때 임시 저장소에서 삭제된다. - String getName() : multipart form 파라미터의 이름을 반환 - String getOriginalFilename() : 실제 등록된 파일의 이름을 반환 - String getContentType() : 파일의 컨텐츠 타입을 반환(확장자 포함) - boolean isEmpty() : 업로드된 파일의 존재 여부를 반환 - long getSize() : 업로드된 파일의 크기를 반환(파일이 없는 경우 0 반환) - byte[] getBytes() : 업로드된 파일의 내용을 바이트 .. 2023. 2. 1. [Spring] @ControllerAdvice, @RestControllerAdvice @ControllerAdvice란? 대상으로 지정한 여러 컨트롤러에 @ExceptionHandler, @InitBinder, @ModelAttribute 기능을 부여하며, 대상을 지정하지 않은 경우 모든 컨트롤러에 대해 기능을 부여한다. @Component 애노테이션을 포함하고 있어 스프링 빈으로 등록되어 관리된다. Advice의 필요성 중 하나는 @Controller와의 역할 분리에 있다. @Controller는 요청에 대해 알맞는 메서드를 매핑하여 요청에 대한 처리를 하는 것이 주목적이다. 하지만 @Controller에 @ExceptionHandler가 선언된 메서드가 존재하는 경우 '예외처리'라는 다소 어울리지 않는 역할을 수행하게 된다. 따라서 Advice를 사용함으로써 예외처리 역할을 @Cont.. 2023. 2. 1. [Spring] @ExceptionHandler @ExceptionHandler란? @ExceptionHandler는 컨트롤러 메서드의 예외를 처리하기위한 애노테이션으로 예외처리시 수행할 메서드에 선언한다. 컨트롤러 메서드에서 발생한 예외가 @ExceptionHandler에 선언된 예외인 경우 해당 메서드를 수행한다. @Controller, @CotrollerAdvice, @RestController, @RestControllerAdvice가 선언된 클래스에서 사용된다. @Controller public class SimpleController { // ... @ExceptionHandler public ResponseEntity handle(IOException ex) { // ... } } @ExceptionHandler 어떻게 사용할까? @Exc.. 2023. 1. 31. [Spring] 예외처리 예외처리 왜 필요할까? 1. 프로그램의 정상 작동 보장 대규모 서비스에서 미흡한 예외처리로 프로그램이 비정상적으로 작동하는 경우가 발생한다고 가정해보자. 이에 따라 사용자들의 불편이 누적되며 해당 서비스는 신뢰성이나 금전적인 면에서 큰 타격을 입을 것이다. 발생한 오류에 대해 빠른 처리도 중요하지만 가장 중요한 것은 되도록 처음부터 오류를 방지하는 것이다. 2. 클라이언트에 명확한 문제 원인 전달 협업 프로젝트 진행 중 api 서버에서 발생한 다음과 같은 예외를 그대로 클라이언트로 전달해준다고 생각해보자. 클라이언트는 자신이 요청했던 상황을 고려해 문제 원인을 어느 정도 유추할 수도 있겠지만, 이런 방식은 너무 비효율적이고 오류 원인 또한 명확하지 않다. 서버에서 예외를 명확하게 가공해서 보내준다면 일의.. 2023. 1. 31. 이전 1 2 3 4 5 6 7 8 ··· 13 다음