기능: Spring Security 설정을 담당합니다.설명: 이 파일에서는 HTTP 요청에 대한 인증 및 권한 부여 규칙을 정의합니다. 특정 엔드포인트(예: 사용자 등록 및 로그인)에 대해 인증 없이 접근할 수 있도록 설정하고, 그 외의 요청은 인증이 필요하도록 설정합니다.
2. UserController.kt
기능: 사용자 관련 HTTP 요청을 처리하는 RESTful API 컨트롤러입니다.설명: 이 파일에서는 다음과 같은 기능을 제공합니다:사용자 등록 (/register): 사용자 정보를 받아서 등록합니다.사용자 로그인 (/login): ID와 비밀번호를 검증하여 사용자를 로그인합니다.사용자 정보 조회 (/{id}): 사용자 ID를 기반으로 사용자의 정보를 반환합니다.사용자 정보 업데이트 (/{id}): 사용자의 정보를 업데이트합니다.
3. User.kt
기능: 사용자 정보를 나타내는 데이터 모델입니다.설명: JPA 엔티티로 정의되어 있으며, 데이터베이스의 users 테이블과 매핑됩니다. 사용자 ID, 사용자 이름, 이메일, 비밀번호, 토큰, 생성 및 업데이트 날짜 등의 속성을 포함합니다.
4. UserRepository.kt
기능: 사용자 데이터에 대한 CRUD 작업을 수행하는 리포지토리 인터페이스입니다.설명: Spring Data JPA의 JpaRepository를 상속받아 사용자 정보를 저장하고 검색하는 메서드를 제공합니다. 여기서는 사용자 이름으로 사용자를 검색하는 findByUsername 메서드가 정의되어 있습니다.
5. UserService.kt
기능: 사용자 관련 비즈니스 로직을 처리하는 서비스 클래스입니다.설명: 이 파일에서는 다음과 같은 기능을 제공합니다:사용자 등록: 비밀번호를 암호화한 후 사용자를 데이터베이스에 저장합니다.사용자 로그인: ID로 사용자를 조회하고, 비밀번호를 검증한 후 사용자 객체를 반환합니다.JWT 토큰 생성: 사용자 정보를 기반으로 JWT를 생성합니다.사용자 정보 조회 및 업데이트: 사용자 ID로 사용자를 조회하고, 제공된 데이터로 사용자의 정보를 업데이트합니다.
6. ChatBotBackendApplication.kt
기능: Spring Boot 애플리케이션의 진입점입니다.설명: 이 파일은 애플리케이션을 시작하는 main 함수를 포함하고 있으며, Spring Boot의 자동 구성을 사용하여 애플리케이션을 초기화합니다. 보안 자동 구성을 제외하고 애플리케이션을 실행합니다.
1. SecurityConfig.kt
기능: Spring Security 설정을 담당합니다.설명: 이 파일에서는 HTTP 요청에 대한 인증 및 권한 부여 규칙을 정의합니다. 특정 엔드포인트(예: 사용자 등록 및 로그인)에 대해 인증 없이 접근할 수 있도록 설정하고, 그 외의 요청은 인증이 필요하도록 설정합니다.
2. UserController.kt
기능: 사용자 관련 HTTP 요청을 처리하는 RESTful API 컨트롤러입니다.설명: 이 파일에서는 다음과 같은 기능을 제공합니다:사용자 등록 (
/register
): 사용자 정보를 받아서 등록합니다.사용자 로그인 (/login
): ID와 비밀번호를 검증하여 사용자를 로그인합니다.사용자 정보 조회 (/{id}
): 사용자 ID를 기반으로 사용자의 정보를 반환합니다.사용자 정보 업데이트 (/{id}
): 사용자의 정보를 업데이트합니다.3. User.kt
기능: 사용자 정보를 나타내는 데이터 모델입니다.설명: JPA 엔티티로 정의되어 있으며, 데이터베이스의
users
테이블과 매핑됩니다. 사용자 ID, 사용자 이름, 이메일, 비밀번호, 토큰, 생성 및 업데이트 날짜 등의 속성을 포함합니다.4. UserRepository.kt
기능: 사용자 데이터에 대한 CRUD 작업을 수행하는 리포지토리 인터페이스입니다.설명: Spring Data JPA의
JpaRepository
를 상속받아 사용자 정보를 저장하고 검색하는 메서드를 제공합니다. 여기서는 사용자 이름으로 사용자를 검색하는findByUsername
메서드가 정의되어 있습니다.5. UserService.kt
기능: 사용자 관련 비즈니스 로직을 처리하는 서비스 클래스입니다.설명: 이 파일에서는 다음과 같은 기능을 제공합니다:사용자 등록: 비밀번호를 암호화한 후 사용자를 데이터베이스에 저장합니다.사용자 로그인: ID로 사용자를 조회하고, 비밀번호를 검증한 후 사용자 객체를 반환합니다.JWT 토큰 생성: 사용자 정보를 기반으로 JWT를 생성합니다.사용자 정보 조회 및 업데이트: 사용자 ID로 사용자를 조회하고, 제공된 데이터로 사용자의 정보를 업데이트합니다.
6. ChatBotBackendApplication.kt
기능: Spring Boot 애플리케이션의 진입점입니다.설명: 이 파일은 애플리케이션을 시작하는
main
함수를 포함하고 있으며, Spring Boot의 자동 구성을 사용하여 애플리케이션을 초기화합니다. 보안 자동 구성을 제외하고 애플리케이션을 실행합니다.