Spring Boot (40) 썸네일형 리스트형 [Spring Boot] @Configuration @Bean 사용법 스프링에서의 @Configuration과 @Bean 어노테이션@Configuration과 @Bean 어노테이션은 자바 기반 설정을 통해 스프링 빈을 등록하고 관리할 수 있게 하는 주요 어노테이션입니다. 이 두 어노테이션은 XML 기반 설정을 대체하여, 애플리케이션 구성을 더욱 명확하고 간결하게 만들어 코드 가독성과 유지보수성을 높입니다.@Configuration클래스 레벨에서 사용되며, 스프링이 해당 클래스를 설정 클래스로 인식하게 합니다.클래스 내부의 @Bean 메서드가 반환하는 객체들은 싱글턴 빈으로 관리됩니다.스프링은 @Configuration이 선언된 클래스를 프록시 객체로 관리하여, 동일한 빈을 여러 번 요청하더라도 동일한 인스턴스를 반환합니다.만약 @Configuration이 없는 클래스에서 .. [Spring Boot] Snake Case JSON 변환 전체 설정하기 Spring에서는 Java 클래스 필드가 기본적으로 camelCase로 지정되어 있으며, 이는 프론트엔드에서 주로 사용하는 snake_case와 다른 형식입니다.예를 들어, 아래와 같은 필드가 있다고 가정해 봅시다:// Java (Back-end)String userName;// JavaScript (Front-end)let user_name; 이와 같은 형식 차이는 Spring으로 클라이언트 데이터를 주고받을 때 자동으로 매핑되지 않아, 프론트엔드와 백엔드 간에 불필요한 변환 작업을 발생시킵니다.1. @JsonNaming을 이용한 수동 매핑특정 클래스에서만 snake_case 변환을 적용하려면 @JsonNaming 애노테이션을 사용할 수 있습니다:import com.fasterxml.jackson.da.. [Spring Boot] 멀티 모듈 설정하기 Spring Boot에서 멀티 모듈 설정을 구성하는 것은 대규모 애플리케이션을 모듈화하여 코드 관리와 재사용성을 높이는 데 유리합니다. 멀티 모듈 구조를 활용하면 프로젝트를 독립적인 하위 모듈로 분리할 수 있어 유지보수와 협업이 수월해집니다. 다음은 Spring Boot에서 멀티 모듈 설정하는 방법과 추가 설명입니다. 멀티 모듈이란?멀티 모듈은 하나의 루트 프로젝트 내에 여러 하위 모듈(서브 모듈)을 포함하는 프로젝트 구조입니다. 루트 프로젝트의 build.gradle 파일에서 전체 프로젝트 설정을 관리하고, 하위 모듈은 각각의 독립적인 빌드 설정을 가지면서도 상위 모듈과 연계할 수 있습니다. 각 모듈은 독립적으로 개발 및 테스트가 가능하며, 필요에 따라 상호 참조할 수 있습니다.멀티 모듈의 장/단점장.. [Spring Boot] JWT 사용하기 JWT 의존성 설정 및 토큰 발행하기이 가이드는 Spring 애플리케이션에서 JWT를 사용하기 위한 의존성 설정과 JWT 토큰을 생성하고 검증하는 방법을 설명합니다. JWT(JSON Web Token)는 클라이언트와 서버 간의 인증 정보를 안전하게 전송하기 위해 사용됩니다. 1. JWT 의존성 설정하기JWT를 사용하기 위해 필요한 의존성을 추가합니다.Gradle 설정: build.gradle 파일에 아래 코드를 추가하세요.dependencies { implementation 'io.jsonwebtoken:jjwt-api:0.11.5' runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5' runtimeOnly 'io.jsonwebtoken:jjwt-jackso.. [Spring Boot] JWT 의존성 설정하기 Spring에서 JWT 사용하기JWT를 활용하여 Spring 애플리케이션에 인증 및 인가 기능을 추가하려면 필수 의존성을 설정해야 합니다. 아래 과정에서는 build.gradle 파일을 수정하는 방법과 의존성 설정을 설명합니다. 1. JWT란?JWT에 대해 더 알고 싶다면 JWT에 대한 설명을 먼저 확인하세요. 2. 의존성 설정하기Spring 프로젝트에서 JWT를 사용하려면 필수 의존성을 추가해야 합니다. 이 의존성들은 JWT 생성, 파싱, 서명 처리에 사용됩니다. 3. 의존성 추가 방법build.gradle 파일 열기프로젝트 루트 디렉터리에 있는 build.gradle 파일을 열어주세요. 이 파일은 프로젝트의 의존성을 관리하는 설정 파일입니다.Maven Central Repository 추가repos.. [Spring Boot] HTTP Cookie 사용하기 이번 글에서는 HTTP 쿠키를 사용하여 쿠키를 생성한 후 클라이언트의 쿠키에 저장하고, 요청이 들어왔을 때 쿠키의 유무를 파악 및 쿠키를 통해 정보를 전달하는 예제를 다룹니다.UserRepository@Componentpublic class UserRepository { // 메모리에 저장할 사용자 리스트 private final List userList = new ArrayList(); // ID로 사용자 찾기 public Optional findById(String id) { return userList.stream() .filter(it -> it.getId().equals(id)) .findFirst(); .. [Spring Boot] Http Session 사용하기 세션을 활용하여 로그인 후 유저 정보 확인하기이 예제는 세션(HttpSession)을 사용하여 사용자가 로그인한 후 유저 정보를 저장하고 관리하는 방법을 보여줍니다.로그인 후 서버는 세션을 통해 사용자 정보를 유지하고, 로그인 상태를 확인하여 사용자 맞춤 서비스를 제공합니다. 주요 코드 및 설명1. UserEntity (사용자 정보 엔터티)@Data@AllArgsConstructor@NoArgsConstructorpublic class UserEntity { private String id; private String password;} 사용자의 아이디와 비밀번호를 저장하는 데이터 클래스입니다.@Data를 사용해 Getter, Setter, toString 메소드를 자동 생성합니다. 2. .. [Spring Boot] AOP 포인트 컷 사용하기 포인트컷(Pointcut)의 주요 용도포인트컷(Pointcut)은 AOP(Aspect-Oriented Programming)에서 Aspect(부가기능)가 적용될 지점을 결정하는 역할을 합니다. 즉, 어떤 메소드, 클래스 또는 패키지에 Advice(부가기능 로직)를 실행할지를 지정하는 것입니다. 이를 통해 특정 로직을 선택적으로 적용하고 불필요한 부분을 배제할 수 있습니다. 포인트컷(Pointcut) 왜 쓸까?특정 메소드나 클래스에 부가기능을 정확히 적용하기 위해모든 메소드에 일괄적으로 적용하면 불필요한 코드 실행이 발생할 수 있습니다.포인트컷을 통해 정확히 필요한 클래스/메소드만 필터링해 부가기능(로깅, 트랜잭션)을 적용할 수 있습니다. 예시 : 특정 컨트롤러 클래스에만 로깅을 적용할 때.유지보수성과.. 이전 1 2 3 4 5 다음