본문 바로가기

웹개발/spring && springboot37

스프링 인터셉터(Interceptor) 스프링 인터셉터(Interceptor) 스프링 인터셉터는 웹 애플리케이션에서 HTTP 요청이 컨트롤러로 전달되기 전후에 특정 작업을 수행하는 데 사용됩니다. AOP와 유사하게 작업을 중앙에서 관리할 수 있으며, 인증, 로깅, 트랜잭션 처리 등 다양한 상황에 활용될 수 있습니다. 스프링 인터셉터 구현 예시 preHandle: HTTP 요청이 컨트롤러에 도달하기 전에 호출됩니다. 이 메소드에서 false를 반환하면 요청 처리가 중단됩니다. postHandle: 컨트롤러가 HTTP 요청을 처리한 후, 사용자에게 뷰를 반환하기 전에 호출됩니다. afterCompletion: 요청 처리가 완전히 끝나고, 뷰가 렌더링된 후에 호출됩니다. @Component public class ExampleInterceptor .. 2024. 3. 17.
egov 전자정부프레임워크 예전에는 정부기관 프로젝트에 대기업이 참여를 하고 발주에 따라 업체가 바뀌었는데 그때마다 개발에 사용되는 프레임워크가 달라 유지보수 하는 측면에서 항상 새로운 프레임워크를 사용해야 했습니다. 이런 통일성 없는 SI개발 환경에 표준화 하고자 연구개발된 것이 전자정부 프레임워크입니다. Java 기반으로 개발되어 있으며, Spring Framework 등의 오픈 소스 프레임워크를 기반으로 합니다. 전자정부프레임워크의 주요 특징 - 표준화 및 공통화: 공공 기관에서 개발하는 웹 애플리케이션에 대해 공통적으로 사용될 수 있는 기반 기술과 라이브러리를 제공합니다. 이는 개발 과정의 표준화를 도모하고, 개발 시간과 비용을 절감할 수 있게 합니다. - 재사용성: 개발된 컴포넌트나 모듈을 다른 프로젝트에서도 재사용할 수.. 2024. 3. 17.
Mybatis db 언더바 사용된 컬럼과 자바 카멜케이스 변수 자동 매핑 MyBatis에서는 데이터베이스의 컬럼명이 언더바(_)로 구분된 네이밍 컨벤션을 사용하고, 자바에서는 카멜케이스(camelCase) 네이밍 컨벤션을 사용하는 경우가 많습니다. MyBatis는 이 두 네이밍 스타일 사이에서 자동으로 매핑해주는 설정이 있습니다. DB 컬럼명: user_name 자바 변수명: userName mybatis-config.xml 파일에서 mapUnderscoreToCamelCase 설정을 true로 설정하여 자동 매핑을 활성화할 수 있습니다. 위 설정을 적용함으로써, user_name 컬럼이 자동으로 userName 변수에 매핑됩니다. 2024. 3. 12.
[Spring]트랜잭션(transaction)의 이해와 트랜잭션 분리방법 스프링 트랜잭션이란? 스프링 트랜잭션은 데이터의 정합성을 보장하기 위해 사용하는 기능으로, 여러 데이터베이스 작업을 하나의 단위로 묶어서 모든 작업이 성공적으로 이루어져야만 최종적으로 데이터베이스에 반영(commit)하게 됩니다. 만약 이 과정 중 오류가 발생하면, 모든 작업을 이전 상태로 되돌리는(rollback) 방식으로 데이터의 안전성을 유지합니다. 트랜잭션의 특성 (ACID) - 원자성(Atomicity): 트랜잭션 내부의 작업들은 모두 하나로 간주되며, 전부 성공하거나 전부 실패해야 합니다. - 일관성(Consistency): 트랜잭션이 성공적으로 완료된 후에는, 데이터베이스가 일관된 상태를 유지해야 합니다. - 독립성(Isolation): 다른 트랜잭션의 영향을 받지 않고 독립적으로 실행되어야.. 2024. 3. 3.