Backend/Spring 26

[Spring Web MVC] HandlerInterceptor

1. Interceptors :: Spring Framework2. Interceptors :: Spring Framework3.HandlerInterceptor1. HandlerInterceptor란?HandlerInterceptor는 Spring MVC에서 제공하는 인터페이스로, HTTP 요청을 처리하기 전후에 추가 로직을 실행할 수 있도록 지원합니다.컨트롤러 메서드 실행 전, 실행 후, 뷰 렌더링 후에 작업을 삽입할 수 있습니다.일반적으로 인증, 권한 검사, 로깅, 성능 측정과 같은 작업에 사용됩니다.2. HandlerInterceptor의 주요 메서드HandlerInterceptor는 세 가지 메서드를 제공합니다.필요한 메서드만 선택적으로 구현하면 됩니다.preHandle컨트롤러의 메서드가 실행되..

Backend/Spring 2024.11.26

[Spring Web MVC] WebMvcConfigurer

1.MVC Config :: Spring Framework2. MVC Config API :: Spring Framework3. Web MVC Configurer 더보기@Configuration VS @Component @Component는 개발자가 직접 작성한 클래스를 bean으로 등록하고자할 때 사용한다. @Configuration은 @Component를 포함하는데, 외부 라이브러리 또는 내장 클래스를 bean으로 등록하고자할 때, 1개이상의 @Bean을 제공하는 클래스에 붙여 사용한다.WebMvcConfigurer란?WebMvcConfigurer는 Spring MVC에서 제공하는 인터페이스로, Spring의 기본 설정을 커스터마이징하는 데 사용됩니다.주로 URL 매핑, 뷰 리졸버, 리소스 처리, C..

Backend/Spring 2024.11.26

Rdeirect VS Forward

Redirect와 forward의 차이jsp 환경에서, 현재 작업중인 페이지 다른 페이지로 이동하는 두가지 방식의 페이지 전환이 가능합니다.Forward동일한 웹 컨테이너에 있는 페이지로만 이동할 수 있다. 현재 실행중인 페이지와 forward에 의해 호출될 페이지는 request와 response 객체를 공유한다.Redirect다른 웹 컨테이너에 있는 주소로 이동이 가능하다. 새로운 페이지에서는 request와 response객체가 새롭게 생성된다.Redirect1.1 개념Redirect(리다이렉트)는 클라이언트의 요청을 서버가 처리한 후, 새로운 요청을 클라이언트로 다시 보냅니다.서버가 클라이언트에게 HTTP 상태 코드 302(임시 이동)과 함께 Location 헤더에 새 URL을 전달하면, 클라이언..

Backend/Spring 2024.11.26

[Spring Web MVC] Session

https://jakarta.ee/specifications/servlet/5.0/apidocs/jakarta/servlet/http/httpsession1. 세션(Session) 개념세션(Session)은 서버 측에서 사용자 정보를 유지하는 방법입니다.클라이언트가 서버와 상호작용하는 동안(특히 로그인 상태) 서버는 세션을 사용하여 사용자를 식별하고 데이터를 유지합니다.클라이언트는 세션 ID를 통해 서버와 연결됩니다.2. 세션의 특징저장 위치서버 메모리 또는 외부 저장소(Redis, DB 등).데이터 수명세션 타임아웃(일정 시간 동안 활동이 없으면 만료).식별 방식클라이언트는 세션 ID를 쿠키 또는 URL 파라미터를 통해 서버에 전달.보안세션 데이터는 서버에서 관리되므로 클라이언트는 데이터에 직접 접근할..

Backend/Spring 2024.11.25

[Spring Web MVC] 🍪Cookie

https://jakarta.ee/specifications/servlet/5.0/apidocs/jakarta/servlet/http/cookie1. 쿠키란?쿠키(Cookie)는 웹 서버가 클라이언트(브라우저)에 저장하는 작은 데이터 조각입니다.클라이언트-서버 간 상태 정보를 유지하기 위해 사용됩니다.브라우저는 서버에서 설정한 쿠키를 저장하고, 이후 동일한 서버로 요청할 때마다 쿠키를 함께 전송합니다.2. 쿠키의 주요 특징저장 위치: 클라이언트(브라우저).전송 방식: HTTP 요청 헤더(Cookie)와 응답 헤더(Set-Cookie)를 통해 서버와 주고받음.수명:세션 쿠키: 브라우저를 닫으면 삭제.영구 쿠키: 만료 시간을 설정하면 브라우저를 닫아도 유지됨.보안:클라이언트에 저장되므로 조작 가능성이 있음(..

Backend/Spring 2024.11.25

[Spring Web MVC] HTTP 요청 RequestMapping

1. @RequestMapping의 기본 개념역할: HTTP 요청(예: GET, POST, PUT, DELETE 등)을 특정 컨트롤러 클래스나 메서드에 매핑합니다.적용 위치:클래스 레벨: 기본 URL 경로 설정.메서드 레벨: 세부 경로 및 HTTP 메서드 설정.2. 주요 속성 (Attributes)속성설명예시value 또는 path요청 URL 경로를 지정. 단일 경로나 배열 형태로 가능.@RequestMapping("/users")methodHTTP 메서드 지정 (GET, POST, PUT, DELETE 등). 여러 개 지정 가능.@RequestMapping(value = "/users", method = RequestMethod.GET)params요청에 특정 쿼리 파라미터가 포함되어야 매핑되도록 설정...

Backend/Spring 2024.11.25

[기록]JSP로 페이징 구현

1. 변수 설명페이지 관련 변수변수명설명cpage현재 페이지 번호 (기본값: 1).recordPerPage한 페이지에 표시할 데이터 수 (예: 10개).blockPerPage한 화면에 표시할 페이지 블록 수 (예: 5개).totalRecord전체 데이터 개수.totalPage전체 페이지 수 (총 데이터 수를 페이지당 데이터 수로 나눈 값).skip현재 페이지에서 건너뛸 데이터 수 ((cpage - 1) * recordPerPage).2. 계산식 분석전체 페이지 계산전체 데이터를 기준으로 필요한 페이지 수를 계산합니다. (totalRecord - 1)로 계산하면 전체 데이터가 recordPerPage로 나누어떨어질 때도 올바른 페이지 수를 얻을 수 있습니다.totalPage = ((totalRecord -..

Backend/Spring 2024.11.22

[board_기록] 답글이 있는 게시판 만들기

1. 설계 개요1-1. 주요 필드 정의필드명 설명필드명설명seq글번호(순서). 게시판의 모든 글(댓글, 답글 포함)에 대해 고유한 번호. 자동 증가 (AUTO_INCREMENT).grp글그룹. 하나의 글과 그에 속한 모든 답글이 동일한 grp 값을 가짐.grps그룹 내 순서. 같은 그룹(grp) 내에서의 정렬 순서를 나타냄.grpl그룹 내 깊이. 댓글은 0, 답글은 1 이상으로 계층적 깊이를 나타냄.1-2. 동작 규칙모글:seq: 자동 증가.grp: seq와 동일.grps: 0.grpl: 0.자식글(답글):seq: 자동 증가.grp: 부모 글의 grp와 동일.grps:부모 글의 grps보다 큰 값을 가진 모든 글의 grps를 +1 증가.자신의 grps는 부모 글의 grps + 1.grpl: 부모 글의 g..

Backend/Spring 2024.11.22

@Controller와 @RestController의 차이점

전통적인 Spring MVC의 **“@Controller”**와 Restful 웹서비스의 **”@RestController”**는 Spring Framework에서 사용되는 애너테이션으로, 둘 다 컨트롤러 역할을 하는 클래스에 붙이지만 작동 방식에 중요한 차이점이 있습니다. 어노테이션 간단 비교:@Controller = 웹 페이지 반환용 컨트롤러.@RestController = 데이터(JSON/XML) 반환용 컨트롤러 (@Controller + @ResponseBody).1.@Controller[View 반환하기]주로 View를 반환하기 위해 사용합니다.Client는 URI 형식으로 웹 서비스에 요청을 보낸다.DispatcherServlet이 요청을 처리할 대상을 찾는다.HandlerAdapter을 통해..

Backend/Spring 2024.11.21

Spring Web

Spring Web은 HTTP 기반 웹 애플리케이션 개발을 지원하는 스프링 프레임워크의 모듈입니다. Spring Boot는 Spring Web을 간소화하고 설정을 자동화하여 더 빠르고 효율적인 웹 애플리케이션 개발 환경을 제공합니다.1. Spring Web이란?Spring Web은 웹 애플리케이션 개발을 위한 모듈로, HTTP 요청과 응답을 처리하는 기능을 제공합니다.주요 컴포넌트:Spring MVC (Model-View-Controller):웹 애플리케이션의 구조적 설계를 지원.REST API 개발:JSON, XML과 같은 데이터 형식으로 클라이언트와 서버 간 통신을 간소화.Handler와 Controller:URL 요청을 처리하고 응답 데이터를 생성.2. Spring Boot와 Spring WebSp..

Backend/Spring 2024.11.20