[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..
서버 배포 탭에서 war 와 war(exploded)의 차이
·
개발/IntelliJ
IntelliJ IDEA에서 Tomcat 서버를 사용하여 웹 애플리케이션을 배포할 때 'Deployment' 탭에서 war exploded 방식과 일반적인 war (Archive) 방식으로 배포하는 것에는 개발 단계에서의 편의성과 관련이 있다.1. Exploded (war exploded) 방식 배포:정의: 웹 애플리케이션을 압축된 .war 파일 형태가 아니라, 압축이 풀어진 상태의 디렉토리와 파일 구조 그대로 Tomcat의 배포 경로(예: webapps 폴더 내)에 복사하여 배포하는 방식.동작: IntelliJ가 프로젝트를 빌드한 후 생성된 클래스 파일들, 라이브러리(JAR), 웹 리소스(HTML, CSS, JS, 이미지 등), 설정 파일(web.xml 등)들을 Tomcat이 인식할 수 있는 디렉토리 ..
페이징 구현하기(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() 등으로 추가.주요 사용처: 전..
예외
·
개발/Java
자바(Java) 예외 처리 자바에서 예외(Exception)란 프로그램 실행 중 예기치 않게 발생하는 오류나 비정상적인 상황을 의미한다. 예외 처리는 이러한 상황에 대비하여 프로그램이 비정상적으로 종료되는 것을 막고, 오류 상황을 적절히 처리하여 프로그램의 안정성과 견고성을 높이는 중요한 메커니즘이다.1. 예외 계층 구조 (Exception Hierarchy)자바의 모든 예외 클래스는 Throwable 클래스를 상속받는다. Throwable은 다시 Error와 Exception으로 나뉜다.Error: 시스템 레벨에서 발생하는 심각한 오류로, 주로 JVM 자체의 문제(메모리 부족 - OutOfMemoryError, 스택 오버플로우 - StackOverflowError 등)로 발생. 애플리케이션 코드 수준에..
[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에 추가된 데이터는 해당 요청 내에서만 유효하며,..