Spring Framework

Spring Framework

    Spring Redirect: 다른 URL로 리다이렉트

    Spring Redirect: 다른 URL로 리다이렉트

    Redirect Redirect는 현재 요청에 대한 응답을 뷰로 생성해서 보내는 대신 브라우저에게 새로운 URL로 요청을 다시 보내라고 지시하는 응답 방식입니다. Redirect의 사용 이유는 다음과 같습니다. 페이지 이동 사용자가 한 페이지에서 다른 페이지로 이동해야 할 때 리다이렉트를 사용할 수 있습니다. 예를 들어, 로그인이 성공하면 로그인 페이지에서 메인 페이지로 리다이렉트할 수 있습니다. SEO (Search Engine Optimization) URL 구조를 변경하거나 구형 URL을 새로운 URL로 대체할 때 리다이렉트를 사용하면 검색 엔진이 새로운 URL을 인식하고 새로운 페이지를 색인할 수 있습니다. 이는 검색 엔진 최적화를 향상시키는 데 도움이 됩니다. 중복 제출 방지 폼 처리 후 리다이..

    Spring 비동기 처리 @Async, CompletableFuture, TaskDecorator

    Spring 비동기 처리 @Async, CompletableFuture, TaskDecorator

    `비동기 처리`는 작업을 별도의 스레드에서 실행하고 결과를 나중에 처리하는 방식입니다. 이를 통해 특정 로직의 실행이 끝날 때 까지 기다리지 않고 다음 코드를 실행할 수 있으며, 결과가 준비되면 이벤트를 받거나 콜백을 통해 처리합니다. Spring Framework 비동기 처리 방식 `Callable`과 `DeferredResult` Spring Framework에서 스레드 기반의 비동기 처리를 지원합니다. `Callable`: 비동기 작업을 `Callable`로 감싸고 `AsyncTaskExecutor`를 통해 별도의 스레드에서 실행합니다. 작업이 완료되면 `Callable`을 반환합니다. `DeferredResult`: 비동기 작업의 결과를 나중에 처리할 수 있는 `DeferredResult`를 반환..

    Spring 파일 업로드

    Spring 파일 업로드

    Spring Framework에서 파일 업로드를 처리하는 가장 일반적인 방식은 `Multipart 파일 업로드`를 지원하는 기능을 활용하는 것입니다. 사용하는 방식은 다음과 같습니다. 1. 의존성 추가 `MultipartResolver` 인터페이스를 구현하는 대표적인 구현체로는 `StandardServletMultipartResolver`과 `CommonsMultipartResolver`가 있습니다. `CommonsMultipartResolver Apacher Commons FileUpload 라이브러리를 사용하여 Multipart 요청을 처리합니다. 이 구현체는 Spring MVC 이전 버전에서 주로 사용되었으며 의존성을 추가해주어야 합니다. dependencies { implementation 'co..

    Spring @SessionAttributes, @SessionStatus: Model과 연동을 통한 상태 유지

    Spring @SessionAttributes, @SessionStatus: Model과 연동을 통한 상태 유지

    HTTP 요청에 의해 동작하는 Servlet은 기본적으로 상태를 유지하지 않아 매 요청이 독립적으로 처리됩니다. `@SessionAttributes` 어노테이션은 컨트롤러 클래스나 메서드에 적용하여 세션에 데이터를 유지하고자 할 때 사용합니다. 이 어노테이션은 특정 Model 속성을 세션에 저장하고 세션에서 해당 속성을 유지하는 역할을 합니다. Session에 데이터를 넣어 유지하는 상황은 다음과 같습니다. 로그인 정보 유지, 장바구니, 여러 페이지에 걸쳐 단계적으로 정보 입력하는 경우 등 @SessionAttributes 속성명 지정 @Controller @SessionAttributes("user") public class UserController { @GetMapping("/user") publi..

    Spring REST API 개념과 흐름도

    Spring REST API 개념과 흐름도

    REST API Rest API는 Representational State Transfer (REST) 아키텍처 스타일을 따르는 웹 서비스를 개발하기 위한 기능과 도구를 제공합니다. `REST`는 클라이언트-서버 간의 통신을 위한 아키텍처 스타일로, 자원을 고유한 식별자(URI)로 표현하고 HTTP 프로토콜을 사용하여 자원에 대한 CRUD (Create, Read, Update, Delete) 작업을 수행합니다. REST API에 대해 공부하거나 예제를 보면 `JSON(JavaScript Object Notation)`을 같이 사용하는 것을 봤을 것입니다. JSON은 데이터를 표현하기 위한 텍스트 기반 형식으로 가볍고, 파싱하기도 쉽고, 사람도 읽기 쉬워서 많이 사용되는 데이터 교환 형식입니다. @Res..

    Spring Model 객체: 컨트롤러에서 뷰로 데이터 전달

    Spring Model 객체: 컨트롤러에서 뷰로 데이터 전달

    Model 객체 Spring MVC의 `Model` 객체는 컨트롤러에서 뷰로 데이터를 전달하는데 사용하는 객체입니다. Model 객체는 컨트롤러 메서드의 파라미터로 선언되어 사용됩니다. 컨트롤러에서 데이터를 추가하면, 해당 데이터는 뷰에서 참조할 수 있게 됩니다. 아래는 `Model` 객체를 파라미터로 받아 `addAttribute()`로 데이터를 추가하고, 해당 데이터를 `dataView`라는 뷰에서 참조할 수 있게 하는 예제 코드 입니다. @Controller public class MyController { @RequestMapping("/getData") public String getData(Model model) { model.addAttribute("name", "Kim"); model.ad..

    Spring @RequestMapping과 이에 대한 속성

    Spring @RequestMapping과 이에 대한 속성

    @RequestMapping @RequestMapping은 Spring Framework에서 HTTP 요청과 컨트롤러 메서드를 매핑하기 위해 사용되는 어노테이션입니다. Controller 클래스 레벨 또는 메서드 레벨에서 사용할 수 있으며, URL과 메서드를 연결합니다. @Controller @RequestMapping("/accounts") public class AccountController{ @RequestMapping("/list") public String accountList(){ return "account_list"; } } 결과로 "account_list" 뷰를 반환합니다. @Controller @RequestMapping("/accounts") public class AccountCo..

    Spring 스프링 MVC란? (feat. 프런트 컨트롤러 구조)

    Spring 스프링 MVC란? (feat. 프런트 컨트롤러 구조)

    스프링 MVC Spring MVC는 Spring Framework에서 제공하는 웹 애플리케이션 개발을 위한 모듈입니다. MVC는 `Model-View-Controller`의 약자로, 애플리케이션의 구조를 이 세 가지 역할로 분리하여 개발하는 디자인 패턴입니다. Spring MVC는 Model, View, Controller를 모듈화하여 개발할 수 있기 때문에 유지보수성과 확장 가능성이 좋아집니다. 스프링 MVC는 `프런트 컨트롤러 패턴` 아키텍처를 사용합니다. `프런트 컨트롤러 패턴`은 클라이언트 모든 요청을 `프런트 컨트롤러`라는 컴포넌트가 받아 중앙 집중적으로 처리하는 디자인 패턴입니다. 공통적인 처리를 `프런트 컨트롤러`에 통합할 수 있기때문에 핸들러에서 처리하는 내용을 줄일 수 있다는 장점이 있습..