Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,3 +195,34 @@ Spring Securityλ₯Ό 톡해 κ°•λ ₯ν•œ λ³΄μ•ˆ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜μ˜€μœΌλ©°, JWT(JSO
### GitHub Actionsλ₯Ό ν†΅ν•œ μžλ™ 배포

ν”„λ‘œμ νŠΈμ˜ μ†ŒμŠ€ μ½”λ“œλŠ” GitHub Actionsλ₯Ό ν™œμš©ν•˜μ—¬ μžλ™μœΌλ‘œ ν…ŒμŠ€νŠΈ 및 배포되며, κ°œλ°œμžλ“€μ˜ μž‘μ—… 흐름을 μžλ™ν™”ν•˜κ³  νš¨μœ¨μ„±μ„ λ†’μ˜€μŠ΅λ‹ˆλ‹€.

---

## πŸ‘¨β€πŸ« μ½”λ“œλ¦¬λ·° μš”μ²­

### <img width="15" alt="star1" src="https://user-images.githubusercontent.com/78655692/151471925-e5f35751-d4b9-416b-b41d-a059267a09e3.png"> μ½”λ“œ 리뷰 잘 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€ !!

`λ°•μ„±ν˜„`

1. μ—¬λŸ¬ DTO에 κ³΅ν†΅λœ ν•„λ“œλ“€μ΄ μžˆλŠ”λ° ν•œλ²ˆμ— Validation 처리λ₯Ό ν•˜λŠ” 방법이 μžˆμ„κΉŒμš”? μ–΄λ–€ ν‚€μ›Œλ“œλ‘œ 찾아봐야될지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€..! 예λ₯Ό
λ“€μ–΄μ„œ [μ—°μ°¨/당직 Request DTO](https://github.com/seonghye0n/miniproject/blob/33b38bec1f4b52ba97dc76585a7768d4269c9ace/src/main/java/com/example/miniproject/domain/annual/dto/AnnualRequestDto.java#L28)
에 SaveDto, UpdateDto 두 Dto에 κ³΅ν†΅λœ ν•„λ“œλ“€μ΄ μžˆλŠ”λ° messageλ₯Ό 일일이 μž…λ ₯ν•˜λŠ”κ²Œ λ²ˆκ±°λ‘­λ‹€λŠ” 생각이 λ“€μ—ˆμŠ΅λ‹ˆλ‹€!
2. μ½”λ“œ 관련은 μ•„λ‹ˆμ§€λ§Œ κΆκΈˆν•œκ²Œ μžˆμ–΄μ„œ μ§ˆλ¬Έλ“œλ¦½λ‹ˆλ‹€. 첫 λ©˜ν† λ§ λ•Œ, ν˜„μ—…μ—μ„œλ„ κ°œμΈμ •λ³΄λ₯Ό μ•”ν˜Έν™”ν•œ 값을 DB에 μ €μž₯ν•œλ‹€κ³  ν•˜μ…¨λŠ”λ° ν˜Ήμ‹œ 직접 쿼리둜 μ‘°νšŒν•˜μ‹€ λ•ŒλŠ” μ•”ν˜Έν™”λœ 값을 μ–΄λ–»κ²Œ λ³΅ν˜Έν™”ν•˜λ‚˜μš”?? 예λ₯Ό
λ“€μ–΄, ν˜„μž¬ 이름이 μ•”ν˜Έν™”ν•œ κ°’μœΌλ‘œ DB에 μ €μž₯되고 μžˆλŠ”λ°, κ΄€λ¦¬μžκ°€ κΈ‰ν•˜κ²Œ νŠΉμ • μ΄λ¦„μœΌλ‘œ νšŒμ›λͺ©λ‘μ„ 뽑아달라고 μš”μ²­ν•˜λ©΄ μ–΄λ–»κ²Œ μ‘°νšŒν•  수 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

`μ„œμš©ν˜„`

1. **SecurityConfig filter**
- 정신없이 κΈ°λŠ₯κ΅¬ν˜„μ—λ§Œ μ§‘μ€‘ν•˜λ‹€κ°€ λ³΄λ‹ˆ ν•„ν„° ν•˜λ‚˜μ˜ λ„ˆλ¬΄ λ§Žμ€ κΈ°λŠ₯을 μΆ”κ°€ν•œ 것 κ°™μ•„μ„œ ν˜„μž¬ λΆ€λΆ„μ˜ cookie 검증 λΆ€λΆ„μ΄λ‚˜, jwt 생성 뢀뢄을 λ‹€λ₯Έ ν•„ν„°λ‘œ λ‚˜λˆ„λŠ” 것은 μ–΄λ–¨κΉŒ ν•˜λŠ” μƒκ°μž…λ‹ˆλ‹€.

2. **둜그인 μ‹œ 응닡값 λΆ€λΆ„**
- ν”„λ‘ νŠΈ μš”κ΅¬μ‚¬ν•­μœΌλ‘œλŠ” body 에 accessToken, role(νšŒμ›μ˜ κΆŒν•œ) 을 λ‹΄μ•„μ„œ λ³΄λ‚΄μ£ΌλŠ” κ²ƒμ΄λΌμ„œ λ‹€μŒκ³Ό 같이 μž‘μ„±ν•˜μ˜€λŠ”λ° role 뢀뢄도 jwt 에 subject 에 λ„£λŠ” 것이 더 쒋은지
κΆκΈˆν•©λ‹ˆλ‹€.

3. **MemberRequestDto, GlobalExceptionHandler**
- validation μ—λŸ¬λ₯Ό handler 처리λ₯Ό ν•˜λ €κ³  μž‘μ„±ν•˜μ˜€λŠ”λ° ꡳ이 이거 ν•˜λ‚˜ λ•Œλ¬Έμ— handler μ²˜λ¦¬ν•˜κΈ°μ—λŠ” μ΄μƒν•˜λ‹€κ³  생각이 λ“­λ‹ˆλ‹€. 이런 μƒν™©μ—μ„œλŠ” handler 처리 ν•˜λŠ” 방법을 μ•Œκ³ 
μ‹ΆμŠ΅λ‹ˆλ‹€.

4. **둜그인/λ‘œκ·Έμ•„μ›ƒ Controller, SecurityConfig**
- login, logout 을 security 에 filter둜 κ΅¬ν˜„ν•˜μ§€ μ•Šκ³  MemberController 에 λ©”μ„œλ“œ ν˜•νƒœλ‘œ μž‘μ„±ν•˜μ˜€λŠ”λ° 이런 μ‹μ˜ μ½”λ“œ μž‘μ„±μ΄ 쒋은지 filter 에 μ μš©ν•˜λŠ” 것이 쒋은지
κΆκΈˆν•©λ‹ˆλ‹€.