분류 전체보기

    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는 `프런트 컨트롤러 패턴` 아키텍처를 사용합니다. `프런트 컨트롤러 패턴`은 클라이언트 모든 요청을 `프런트 컨트롤러`라는 컴포넌트가 받아 중앙 집중적으로 처리하는 디자인 패턴입니다. 공통적인 처리를 `프런트 컨트롤러`에 통합할 수 있기때문에 핸들러에서 처리하는 내용을 줄일 수 있다는 장점이 있습..

    Spring Cookie와 Session (로그인 유지 예제)

    Spring Cookie와 Session (로그인 유지 예제)

    쿠키(Cookie) `클라이언트 측`에 저장되는 작은 텍스트 파일 서버에서 클라이언트로 전송되어 클라이언트 측에 저장됩니다. 클라이언트 요청 시에 요청 헤더에 쿠키를 포함하여 서버에 전송됩니다. 만료 기간을 설정할 수 있어서 일정 기간 동안 유지될 수 있습니다. 클라이언트 측에서 수정 가능하므로 보안에 취약할 수 있습니다. @Controller public class CookieController { @GetMapping("/setCookie") public String setCookie(HttpServletResponse response) { // 쿠키 생성 및 설정 Cookie cookie = new Cookie("username", "Kim"); cookie.setMaxAge(7 * 24 * 60 ..

    Spring 공통적인 작업 처리를 위한 HandlerInterceptor

    Spring 공통적인 작업 처리를 위한 HandlerInterceptor

    HandlerInterceptor Spring Framework에서 HandlerInterceptor는 요청 처리의 전, 후 또는 요청 전체에 대한 처리를 수행하는 인터셉터입니다. 주로 요청의 전처리, 후처리, 예외 처리 등을 담당하여 공통적인 작업을 처리할 수 있도록 도와줍니다. 인터셉터 생성 public class CustomInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 요청 전처리 작업 수행 // 예: 인증, 권한 체크 return tr..