[회원 관리 기능 개선 및 MapStruct 도입] - 회원 엔티티 및 DTO 구조 변경, MapStruct를 통한 변환 로직 추가, 사용자 ID 중복 체크 기능 구현, README 업데이트, Gradle 의존성 수정

This commit is contained in:
2025-08-12 15:00:12 +09:00
parent 2ff5a02906
commit c50e8d835b
27 changed files with 429 additions and 387 deletions

View File

@@ -1,2 +1,56 @@
# bio_backend
# Bio Backend
## 기술 스택
- **Framework**: Spring Boot
- **Database**: PostgreSQL
- **ORM**: Spring Data JPA + QueryDSL
- **Security**: Spring Security + JWT
- **Build Tool**: Gradle
- **Container**: Docker + Kubernetes
## 개발 가이드
### 1. 프로젝트 구조
```
src/main/java/com/bio/bio_backend/
├── domain/ # 도메인별 패키지
│ └── user/
│ └── member/ # 회원 도메인
│ ├── controller/ # API 엔드포인트
│ ├── service/ # 비즈니스 로직
│ ├── repository/ # 데이터 접근
│ ├── entity/ # JPA 엔티티
│ └── dto/ # 데이터 전송 객체
├── global/ # 공통 설정
│ ├── config/ # 설정 클래스
│ ├── security/ # 보안 설정
│ ├── exception/ # 예외 처리
│ └── utils/ # 유틸리티
└── BioBackendApplication.java
```
### 2. 트랜잭션 관리
#### 기본 설정
```java
@Service
@Transactional(readOnly = true) // 클래스 레벨: 읽기 전용 기본값
public class MemberServiceImpl {
// 읽기 전용 메서드 (별도 어노테이션 불필요)
public MemberDto selectMember(long seq) { ... }
// 쓰기 작업 메서드 (개별 @Transactional 적용)
@Transactional
public MemberDto createMember(MemberDto dto) { ... }
}
```
#### 핵심 규칙
- **클래스 레벨**: `@Transactional(readOnly = true)` 기본 설정
- **메서드별**: 데이터 수정 시에만 `@Transactional` 개별 적용
- **설정**: `spring.jpa.open-in-view=false` (성능 최적화)