[Spring] 파라미터 수집 방법
·
개발/Spring
스프링 MVC 파라미터 수집 방법 I. 개별 파라미터 (Individual Parameters)파라미터 이름 매칭: 메소드 파라미터 이름과 요청 파라미터 이름이 같으면 자동으로 바인딩.Java @GetMapping("/user")public String getUser(String name, int age) { /* ... */ } @RequestParam 사용: 명시적으로 지정하거나, 이름이 다를 때, 필수 여부(required), 기본값(defaultValue)을 설정할 때 사용.Java @GetMapping("/search")public String search(@RequestParam("query") String keyword, @RequestParam(requi..
페이징 구현하기(pagination)
·
개발/Spring
페이징 요청의 흐름사용자가 브라우저에서 목록 페이지를 요청하거나, 페이지 번호 링크를 클릭하거나, 검색 버튼을 클릭한다. 이때 요청과 함께 currentPage, searchType, searchWord 파라미터가 함께 전달된다.Controller에서 해당되는 메소드가 요청을 받는다. @RequestParam과 @ModelAttribute를 통해 전달받은 파라미터들은 PaginationInfo 객체에 담긴다.(파라미터가 없을시 currentPage는 1로 초기화 하도록 설정)Service를 호출하여 DB에서 페이징 및 검색 조건에 맞는 데이터를 조회한다.컨트롤러에서 DefaultPaginationRenderer를 생성하고 renderPagination 메소드를 이용하여 페이징UI로 사용될 HTML 문자열..
[Spring] @valid
·
개발/Spring
스프링 @Valid 애노테이션 @Valid 애노테이션은 스프링 프레임워크, 특히 스프링 MVC에서 자바 빈 유효성 검사(Java Bean Validation) 표준(JSR-303, JSR-380 등)을 적용하기 위해 사용되는 핵심 애노테이션. 컨트롤러(Controller) 메소드의 파라미터에 이 애노테이션을 붙이면, 해당 파라미터 객체(주로 DTO 또는 Command 객체)에 정의된 유효성 검사 제약 조건들을 자동으로 검증해준다.@Valid를 사용하는 이유데이터 무결성 보장: 클라이언트로부터 들어오는 데이터(폼 입력, JSON 요청 본문 등)가 애플리케이션에서 요구하는 형식과 제약 조건을 만족하는지 검증하여 데이터의 정합성을 유지.보안 강화: 유효하지 않거나 예상치 못한 형식의 입력 데이터를 사전에 차단..
[Spring] 컨트롤러 반환타입
·
개발/Spring
스프링 컨트롤러(Spring Controller) 반환 타입스프링 MVC 컨트롤러 메소드는 클라이언트의 요청을 처리한 후, 어떤 방식으로 응답할지를 결정하기 위해 다양한 타입의 값을 반환할 수 있다. 반환 타입에 따라 스프링 MVC는 후속 처리(뷰 렌더링, HTTP 응답 메시지 변환 등)를 다르게 수행.주요 반환 타입들을 정리하면 다음과 같다.1. String의미: 뷰(View)의 논리적인 이름(Logical View Name)을 반환.동작: ViewResolver 설정에 따라 해당 논리적 이름에 매핑되는 실제 뷰 리소스(예: JSP 파일 경로, Thymeleaf 템플릿 경로)를 찾아 렌더링. 모델 데이터는 메소드 파라미터로 받은 Model 객체에 addAttribute() 등으로 추가.주요 사용처: 전..
[Spring] 예외처리
·
개발/Spring
1. 기본 try-catch 블록가장 기본적인 자바의 예외 처리 방식.메소드 내에서 특정 로직 수행 중 발생할 수 있는 예외를 직접 잡아서 처리.단점: 컨트롤러 메소드마다 유사한 try-catch 코드가 반복될 수 있어 코드가 지저분해지고 유지보수가 어려워질 수 있다.2. 스프링의 데이터 접근 예외(Data Access Exception) 계층스프링은 데이터 접근 기술(JDBC, JPA, Hibernate 등)에 상관없이 일관된 방식으로 예외를 처리할 수 있도록 DataAccessException이라는 런타임 예외 계층을 제공.각 데이터 접근 기술에서 발생하는 고유한 예외(예: SQLException)를 스프링이 DataAccessException의 하위 예외 (예: DataIntegrityViolati..
[Spring]Model vs RedirectAttributes
·
개발/Spring
RedirectAttributes RedirectAttributes는 Spring MVC에서 리다이렉트 시에 데이터를 전달하기 위한 인터페이스. Model 인터페이스를 확장하여 리다이렉트에 특화된 기능을 제공.RedirectAttributes의 역할Flash Attributes: 일회성으로 데이터를 전달. 리다이렉트된 후, 즉 다음 요청에서만 해당 데이터를 사용할 수 있고, 그 이후에는 자동으로 소멸.URI Template Variables (URL에 포함되는 데이터): 리다이렉트 URL에 포함될 데이터를 추가(쿼리스트링 사용).Model vs. RedirectAttributesModel:일반적으로 forward 시에 데이터를 전달하는 데 사용됨.Model에 추가된 데이터는 해당 요청 내에서만 유효하며,..
[Spring] Spring MVC 주요 어노테이션
·
개발/Spring
Spring MVC 주요 어노테이션  1. 컨트롤러 및 요청 매핑 (Controller & Request Mapping)@Controller역할: 해당 클래스를 Spring MVC의 컨트롤러로 지정. 이 어노테이션이 붙은 클래스는 클라이언트의 요청을 처리하고 응답을 생성하는 역할.사용법: 클래스 레벨에 사용.예시:Java @Controllerpublic class MyController { // ...} @RequestMapping역할: 요청 URL과 컨트롤러 메서드를 매핑.사용법: 클래스 레벨 또는 메서드 레벨에 사용.value (또는 path): URL 패턴을 지정.method: HTTP 메서드 (GET, POST, PUT, DELETE 등)를 지정. (기본값은 모든 메서드)params: 요청 ..
[Spring] SpEL
·
개발/Spring
Spring Expression Language (SpEL) SpEL은 Spring 프레임워크에서 제공하는 강력한 표현식 언어. 런타임에 객체 그래프를 조회하고 조작하는 기능을 제공. XML 설정 파일, 어노테이션, Java 코드 등 다양한 곳에서 사용할 수 있다.주요 기능객체 그래프 탐색: 객체의 속성, 메서드 호출, 배열/리스트/맵 요소 접근 등을 지원.연산: 산술 연산, 관계 연산, 논리 연산, 정규식 매칭 등을 수행.메서드 호출: 객체의 메서드를 호출하고 결과를 반환받을 수 있다.생성자 호출: 새로운 객체를 생성할 수 있다.변수 및 함수 정의: 표현식 내에서 변수를 정의하고 사용하거나, 사용자 정의 함수를 등록하여 호출할 수 있다.컬렉션 처리: 컬렉션(리스트, 맵 등)에 대한 프로젝션, 선택, 필..