Java/Spring
-
Spring 에서 Bean 은 싱글톤형태로 관리되는 객체를 의미하며 빌드 시 Spring 은 Bean 을 등록하는 과정을 거치게 된다. 프로젝트를 진행하다가 발생한 에러는 아래와 같다. 가려진 부분의 이름을 가진 Bean 을 찾지 못해서 발생한 에러이다. 에러가 발생 내용은 Service 어노테이션을 가진 2개의 클래스는 Maven Profile 별로 Bean 생성을 처리하기 위해서@Profile 어노테이션을 사용했다. 1개의 Service 는 개발자를 위해 dev 와 local Profile 을 설정했다. 또 하나는 배포 및 운영에서 사용할 Profile 을 적용했다. 하지만 실제로는 "real" Profile 을 가진 Service 클래스를 Bean 클래스에서 사용을 하고 있었으며Bean 으로 등록이..
org.springframeworkbeans.factory.NoSuchBeanDefinitionException (Bean 을 찾을 수 없는 에러)Spring 에서 Bean 은 싱글톤형태로 관리되는 객체를 의미하며 빌드 시 Spring 은 Bean 을 등록하는 과정을 거치게 된다. 프로젝트를 진행하다가 발생한 에러는 아래와 같다. 가려진 부분의 이름을 가진 Bean 을 찾지 못해서 발생한 에러이다. 에러가 발생 내용은 Service 어노테이션을 가진 2개의 클래스는 Maven Profile 별로 Bean 생성을 처리하기 위해서@Profile 어노테이션을 사용했다. 1개의 Service 는 개발자를 위해 dev 와 local Profile 을 설정했다. 또 하나는 배포 및 운영에서 사용할 Profile 을 적용했다. 하지만 실제로는 "real" Profile 을 가진 Service 클래스를 Bean 클래스에서 사용을 하고 있었으며Bean 으로 등록이..
2024.10.28 -
classpath 란?classpath 는 어플리케이션이 실행될 때 참조하는 리소스 및 클래스 파일의 경로를 의미한다.Spring 에서 application.properties, application.yml, 템플릿 데이터, 정적 자원 등을 찾아야 할 때 사용하는기준 경로이다. Gradle 프로젝트의 경우build/ └── classes/ └── java/ └── main/ └── com/example/... Maven 프로젝트의 경우target/ └── classes/ └── com/example/... Spring 빌드 시 src/main/java 의 컴파일된 .class 파일 뿐만이 아니라 src/main/resources/ 에 위치..
Spring Boot 에서 classpath 의 의미와 경로classpath 란?classpath 는 어플리케이션이 실행될 때 참조하는 리소스 및 클래스 파일의 경로를 의미한다.Spring 에서 application.properties, application.yml, 템플릿 데이터, 정적 자원 등을 찾아야 할 때 사용하는기준 경로이다. Gradle 프로젝트의 경우build/ └── classes/ └── java/ └── main/ └── com/example/... Maven 프로젝트의 경우target/ └── classes/ └── com/example/... Spring 빌드 시 src/main/java 의 컴파일된 .class 파일 뿐만이 아니라 src/main/resources/ 에 위치..
2024.10.23 -
환경 : Spring Boot 6, HikariDataSource 사용 데이터베이스 Insert 및 Update 하는 과정에서 예외가 발생된다면 해당 과정들의 데이터를 다시rollback 해야 하는 상황이 나타난다. 이러한 과정에서 예외가 발생하지 않았을 때 최종적으로 Insert 및 Update 를 하고예외가 발생했을 때 rollback 하기 위해선 Spring 에서 제공하는 Transaction 기술을 사용해야한다.자세한 내용은 Spring 공식문서에 나와있다. https://docs.spring.io/spring-framework/reference/data-access/transaction/strategies.html Understanding the Spring Framework Transactio..
DataSoruce TransactionManager 설정(commit, rollback)환경 : Spring Boot 6, HikariDataSource 사용 데이터베이스 Insert 및 Update 하는 과정에서 예외가 발생된다면 해당 과정들의 데이터를 다시rollback 해야 하는 상황이 나타난다. 이러한 과정에서 예외가 발생하지 않았을 때 최종적으로 Insert 및 Update 를 하고예외가 발생했을 때 rollback 하기 위해선 Spring 에서 제공하는 Transaction 기술을 사용해야한다.자세한 내용은 Spring 공식문서에 나와있다. https://docs.spring.io/spring-framework/reference/data-access/transaction/strategies.html Understanding the Spring Framework Transactio..
2024.09.12 -
SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
Spring Security SessionManagementFilter, ConcurrentSessionFilter(동시세션제어)SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
2024.09.06 -
Mybatis 를 사용하여 List 데이터를 Insert 하는 방법이다. 데이터는 아래와 같이 List 형 Map 을 사용했다.[ {role_id=O0100, right_name=기관관리자, site_code=101}, {role_id=S9900, right_name=시스템관리자, site_code=101}, {role_id=M0100, right_name=통합운영관리자, site_code=101}] SELECT MAX(right_seq)+1 FROM m_right INSERT INTO m_right(right_seq, right_name, right_desc, site_code, role_id) VALUES ( ..
Mybatis foreach, selectkey, Auto Increment 구현Mybatis 를 사용하여 List 데이터를 Insert 하는 방법이다. 데이터는 아래와 같이 List 형 Map 을 사용했다.[ {role_id=O0100, right_name=기관관리자, site_code=101}, {role_id=S9900, right_name=시스템관리자, site_code=101}, {role_id=M0100, right_name=통합운영관리자, site_code=101}] SELECT MAX(right_seq)+1 FROM m_right INSERT INTO m_right(right_seq, right_name, right_desc, site_code, role_id) VALUES ( ..
2024.09.02 -
Spring Security 6 의 내용을 보다가 문득 Security Filter Chain 의 Filter 실행 순서가 궁금하여 찾아봤다. 참고 사이트(docs.spring.io)https://docs.spring.io/spring-security/reference/servlet/architecture.html#servlet-security-filters FilterOrderRegistration.javahttps://github.com/spring-projects/spring-security/blob/6.3.3/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterOrderRegistration...
Spring Security Filter 등록 및 실행 순서Spring Security 6 의 내용을 보다가 문득 Security Filter Chain 의 Filter 실행 순서가 궁금하여 찾아봤다. 참고 사이트(docs.spring.io)https://docs.spring.io/spring-security/reference/servlet/architecture.html#servlet-security-filters FilterOrderRegistration.javahttps://github.com/spring-projects/spring-security/blob/6.3.3/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterOrderRegistration...
2024.08.30