본문 바로가기
반응형

BackEnd83

[Spring] @ResponseBody, @RestController ❓ @ResponseBody요청핸들러 메소드에 부착 시,뷰페이지(jsp)로 이동하지 않고 데이터만 반환되도록 해주는 어노테이션주로 Ajax에 대한 응답을 보낼 때 사용된다. * 화면에 값을 표현할 때요청핸들러 메소드나 요청핸들러 메소드의 반환타입 앞에 @ResponseBody가 지정되어 있으면, 요청핸들러 메소드가 반환하는 값은 데이터로 취급된다.Spring MVC는 요청핸들러 메소드가 반환하는 값을 응답메시지의 바디부에 포함시켜서 클라이언트에게 응답으로 전달한다.@ResponseBody가 명시된 메소드가 호출된다면, 직렬화 또는 역직렬화에 맞는 MappingJackson2HttpMessageConverter 하위 메소드들이 실행되고,내부에 존재하는 ObjectMapper를 이용하여 JSON 또는 객체 .. 2025. 1. 18.
[Spring] @Transactional 트랜잭션 처리 ❓ DB Transaction여러번의 DB Access 작업을 하나의 논리적인 작업 그룹으로 만들고,그 그룹을 DB에 일괄적으로 전체반영/전체취소 되도록 만들어주는 단위부분적인 성공/취소를 허용하지 않음📌 @Transactional선언적 트랜잭션 처리를 지원하는 어노테이션(보통 Service에 부착)데이터의 일관성을 유지하기 위해 트랜잭션을 처리한다.✔️ @Transactional 특징@Transactional 어노테이션은 인터페이스, 클래스, 메소드에 붙일 수 있다.인터페이스에 지정하면 해당 인터페이스를 구현한 구현객체의 각 메소드가 실행될 때마다 트랜잭션처리가 지원된다.클래스에 지정하면 해당 클래스로 생성한 객체의 각 메소드가 실행될 때마다 트랜잭션처리가 지원된다.메소드에 지정하면 해당 메소드가 실.. 2025. 1. 18.
[Spring] @SessionAttributes와 @ModelAttribute 어노테이션 (차이점) 📌 @SessionAttributes여러 단계에 걸쳐서 입력된 데이터를 HttpSession에 옮겨담아 데이터가 유지되도록 해주는 어노테이션Model 객체에 저장되는 데이터를 HttpSession에 저장시키는 어노테이션컨트롤러 클래스에 @SessionAttributes 어노테이션이 있으면해당 컨트롤러의 요청핸들러 메서드에서 Model객체에 저장되는 데이터를 HttpSession 객체의 속성으로 저장시켜서 해당 요청이 완료된 후에도 Model객체에 저장한 데이터가 유지되도록 한다.다른 요청핸들러 메서드와 Model객체에 저장된 데이터를 공유하기 위해서다.Model객체에 저장되는 모든 데이터가 HttpSession에 저장되는 것이 아니라,@SessionAttributes 어노테이션에서 지정한 이름과 동일한.. 2025. 1. 18.
[Spring] AOP 활용 - @ControllerAdvice, @ExceptionHandler ✔️ Advice: 클래스에 Advice가 붙어있으면 일반적으로 공통기능 이라고 생각하면 된다.✔️ @ControllerAdvice여러 컨트롤러 클래스에서 공통으로 사용되는 기능이 정의된 클래스에 부착하는 어노테이션1. Target핵심기능이 구현된 객체공통 기능 적용대상이 되는 객체2. JoinPoint공통기능이 적용될 지점(Spring은 메서드 실행 조인포인트만 지원)즉, Target 객체의 메서드가 조인포인트 라고 생각해도 무방하다.3. Advice공통기능이 구현된 객체어드바이스는 실행시점에 따라서 before, after, after-returning, after-throwing, aroud 어드바이스가 있다.(What + When)4. PointcutAdvice 적용 규칙Target의 여러 조인포.. 2025. 1. 18.
[Spring] mybatis의 selectKey를 통한 시퀀스 획득 📌 태그* 해당 내용은 Oracle 기준이며, 데이터베이스마다 약간의 차이가 있음 태그 내부에 정의하는 태그INSERT 구문 실행 전, 실행 후 실행할 SQL문을 지정할 수 있다. 태그에서 실행하는 SQL 구문은 새로 발행되는 기본키값을 획득하는 쿼리 사용 목적FK 컬럼이 있는 테이블과, 참조의 대상이 되는 테이블을 한꺼번에 Insert해야 하는 상황에 사용한다.예를 들어, 주문이 발생했을 때 주문 테이블과 결제 테이블의 Insert 작업은 동시에 진행되어야 한다.이 때, selectKey를 사용한다.의 주요 속성1. keyProperty 태그의 SQL 구문 실행 결과가 대입될 대상 프로퍼티명(멤버변수명)2. resultType 태그의 SQL 구문 실행 결과로 획득되는 값의 타입을 지정3.order .. 2025. 1. 18.
[Spring] Spring Security 설정하기(FilterChain 처리 과정) 📍 Security Filter ChainSpring Security에서 제공하는 인증, 인가를 위한 필터들을 관리하는 객체기본적으로 제공하는 필터들이 있으며, 개발자는 애플리케이션의 개발 목적에 맞게 사용자 정의 필터를 추가하거나 SecurityFilterChain의 필터를 설정할 수 있다.주요 필터UsernamePasswordAuthenticationFilterusername/password로 로그인하려고 하는지 체크해서 사용자 인증을 수행하고,인증이 완료되면 사용자 인증 작업을 수행하는 필터AnonymousAuthenticationFilter앞선 여러 필터를 통해서 인증이 아직 완료되지 않았다면 Authentication객체를 생성하고,익명사용자로 설정하는 역할을 수행한다.LogoutFilter클.. 2025. 1. 18.