Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

253 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌱 UMC 9th Yeungnam Univ. Spring Boot Study

μ˜λ‚¨λŒ€ν•™κ΅ UMC 9κΈ° Spring Boot 파트 λ―Έμ…˜ 및 μ½”λ“œ 리뷰 μ €μž₯μ†Œ

πŸ“’ Overview

  • Role: Spring Part Leader (파트μž₯)
  • Period: 2025.09 ~ 2025.12
  • Schedule: λ§€μ£Ό κΈˆμš”μΌ 16:30 ~ 18:30 (Offline, μ˜λ‚¨λŒ€ν•™κ΅ λ„μ„œκ΄€)
  • Goal: Spring Boot의 핡심 κ°œλ… ν•™μŠ΅ 및 μ‹€μ „ λ―Έμ…˜ μˆ˜ν–‰, μƒν˜Έ μ½”λ“œ 리뷰λ₯Ό ν†΅ν•œ λ™λ°˜ μ„±μž₯

πŸ“š Curriculum & Mission

λ§€μ£Ό Spring Boot의 핡심 주제λ₯Ό ν•™μŠ΅ν•˜κ³  이에 λŒ€ν•œ λ―Έμ…˜μ„ μˆ˜ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Week Topic Key Keywords Study Note
0μ£Όμ°¨ λ°μ΄ν„°λ² μ΄μŠ€ 섀계 ERD, μ •κ·œν™” πŸ“„ μš”μ•½ 보기
1μ£Όμ°¨ SQL - Query μž‘μ„± join, subquery, νŠΈλžœμž­μ…˜, where πŸ“„ μš”μ•½ 보기
2μ£Όμ°¨ Spring Boot κ°œλ… μ œμ–΄ μ—­μ „, μ˜μ‘΄μ„± μ£Όμž…, Bean πŸ“„ μš”μ•½ 보기
3μ£Όμ°¨ API 섀계 및 개발 REST API, HTTP λ©”μ†Œλ“œ πŸ“„ μš”μ•½ 보기
4μ£Όμ°¨ JPA 기초 및 ν”„λ‘œμ νŠΈ ꡬ쑰 μ—”ν‹°ν‹° λ§€ν•‘, N+1 문제, κ³„μΈ΅ν˜•, λ„λ©”μΈν˜• πŸ“„ μš”μ•½ 보기
5μ£Όμ°¨ JPA ν™œμš© Spring Data JPA, μ˜μ†μ„±, JPQL πŸ“„ μš”μ•½ 보기
6μ£Όμ°¨ QueryDSL 동적쿼리, QueryDSL πŸ“„ μš”μ•½ 보기
7μ£Όμ°¨ API 응닡 톡일 & μ—λŸ¬ ν•Έλ“€λŸ¬ ApiResponse, DTO, 컨트둀러, μ˜ˆμ™Έμ²˜λ¦¬ πŸ“„ μš”μ•½ 보기
8μ£Όμ°¨ Swagger & Annotation Swagger, μ»€μŠ€ν…€ μ–΄λ…Έν…Œμ΄μ…˜ πŸ“„ μš”μ•½ 보기
9μ£Όμ°¨ Paging Page, Slice πŸ“„ μš”μ•½ 보기
10μ£Όμ°¨ 둜그인/νšŒμ›κ°€μž… Spring Security, Session, JWT πŸ“„ μš”μ•½ 보기

πŸ“ Study Resources (Workbook Summary)

UMC 쀑앙 μ›Œν¬λΆμ„ 기반으둜, λ§€μ£Ό μŠ€ν„°λ”” 진행을 μœ„ν•΄ μ œκ°€ 직접 μž¬κ΅¬μ„±ν•˜κ³  μš”μ•½ν•œ ν•™μŠ΅ μžλ£Œμž…λ‹ˆλ‹€.
νŒ€μ›λ“€μ΄ κ°œλ…μ„ 더 μ‰½κ²Œ 이해할 수 μžˆλ„λ‘ μ˜ˆμ œμ™€ μ„€λͺ…을 λ³΄μΆ©ν–ˆμŠ΅λ‹ˆλ‹€.
Curriculum & Mission의 Study NoteλŠ” λͺ¨λ‘ 이곳의 μš”μ•½λ³Έμž…λ‹ˆλ‹€.

  • Repository: πŸ“‚ Spring Boot Study Notes & Summary
  • Description: μ›Œν¬λΆ 핡심 μš”μ•½, μΆ”κ°€ 보좩 κ°œλ… 정리, νŠΈλŸ¬λΈ” μŠˆνŒ… 팁 포함

πŸ’¬ Code Review & Feedback Culture

λ‹¨μˆœν•œ 과제 제좜이 μ•„λ‹Œ, Pull Request(PR) 기반의 μ½”λ“œ 리뷰 λ¬Έν™”λ₯Ό μ •μ°©μ‹œμΌ°μŠ΅λ‹ˆλ‹€.
파트μž₯μœΌλ‘œμ„œ νŒ€μ›λ“€μ˜ μ½”λ“œλ₯Ό λ¦¬λ·°ν•˜λ©° 더 λ‚˜μ€ 섀계와 클린 μ½”λ“œμ— λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€.

πŸ”„ Review Process

  1. Mission Clear: λ§€μ£Ό λ―Έμ…˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κ³  본인 λΈŒλžœμΉ˜μ— Push
  2. Pull Request: Develop 브랜치둜 PR 생성
  3. Code Review: 파트μž₯ 및 νŒ€μ› κ°„ μƒν˜Έ 리뷰 μ§„ν–‰ (승인 μ‹œ Merge)
  4. Refactoring: ν”Όλ“œλ°± 반영 및 μ½”λ“œ κ°œμ„ 

πŸ’‘ My Feedback Highlights (리뷰 사둀)

1. DB μ •κ·œν™”: λ‹€λŒ€λ‹€(M:N) 관계 ν•΄μ†Œ 및 μ±…μž„ 뢄리

λ―Έμ…˜(정적 정보)κ³Ό μœ μ €μ˜ μˆ˜ν–‰ 기둝(동적 정보)을 ν•œ ν…Œμ΄λΈ”μ—μ„œ κ΄€λ¦¬ν•˜λ €λŠ” 섀계λ₯Ό μ§€μ ν•˜κ³ , 쀑간 λ§€ν•‘ ν…Œμ΄λΈ”(UserMission)을 λ„μž…ν•˜μ—¬ μ±…μž„μ„ λΆ„λ¦¬ν•˜λ„λ‘ κ°€μ΄λ“œν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 데이터 쀑볡을 막고 쿼리 μž‘μ„±μ˜ νš¨μœ¨μ„±μ„ λ†’μ˜€μŠ΅λ‹ˆλ‹€.

review_capture_db_design

2. JPA 쑰회 μ„±λŠ₯ 뢄석 및 상황별 쿼리 μ΅œμ ν™” μ „λž΅

λͺ¨λ“  쿼리λ₯Ό νŠœλ‹ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, PK 기반 단건 쑰회의 νš¨μœ¨μ„±κ³Ό 연관관계 λͺ©λ‘ 쑰회의 N+1 문제λ₯Ό λͺ…ν™•νžˆ κ΅¬λΆ„ν–ˆμŠ΅λ‹ˆλ‹€. μ„±λŠ₯ μ΄μŠˆκ°€ λ°œμƒν•˜λŠ” μ§€μ μ—λ§Œ μ„ λ³„μ μœΌλ‘œ Fetch Join을 λ„μž…ν•˜μ—¬ 생산성과 μ„±λŠ₯의 κ· ν˜•μ„ λ§žμ·„μŠ΅λ‹ˆλ‹€.

Case 1. 효율적인 쑰회: 단건 μ‘°νšŒλŠ” κΈ°λ³Έ λ©”μ†Œλ“œ μœ μ§€λ₯Ό ꢌμž₯ review_capture_jpa_n+1

Case 2. μ„±λŠ₯ 이슈 ν•΄κ²°: 리슀트 쑰회 μ‹œ λ°œμƒν•˜λŠ” N+1 λ¬Έμ œμ— Fetch Join 적용 review_capture_jpa_n+1

3. 쿼리 νš¨μœ¨ν™”: FK ν™œμš©μ„ ν†΅ν•œ λΆˆν•„μš”ν•œ Join 제거

필터링 쑰건인 user_idκ°€ 이미 Review ν…Œμ΄λΈ”μ˜ FK둜 μ‘΄μž¬ν•¨μ„ νŒŒμ•…ν•˜μ—¬, λΆˆν•„μš”ν•œ User ν…Œμ΄λΈ”κ³Όμ˜ Join을 μ œκ±°ν•˜λ„λ‘ μ œμ•ˆν–ˆμŠ΅λ‹ˆλ‹€. λ¬΄μ˜μ‹μ μΈ 연관관계 탐색을 쀄이고 쿼리 μ„±λŠ₯을 μ΅œμ ν™”ν–ˆμŠ΅λ‹ˆλ‹€.

review_capture_join_optimization

πŸ“ Part Leader's Note

πŸš€ Role & Retrospective

1. Facilitator: λ™λ°˜ μ„±μž₯을 μœ„ν•œ 기술 κ°€μ΄λ“œ
νŒ€μ› κ°„ 기술 격차λ₯Ό 쀄이고 전체적인 개발 μ—­λŸ‰μ„ 상ν–₯ ν‰μ€€ν™”ν•˜λŠ” 데 μ£Όλ ₯ν–ˆμŠ΅λ‹ˆλ‹€.

  • Onboarding Guide: Spring Bootκ°€ λ‚―μ„  νŒ€μ›μ—κ²Œ 'Controller - Service - Repository - Entity'둜 μ΄μ–΄μ§€λŠ” κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜(Layered Architecture)의 데이터 흐름을 λ„μ‹ν™”ν•˜μ—¬ μ„€λͺ…ν•˜κ³ , ν”„λ‘œμ νŠΈ 적응을 λ„μ™”μŠ΅λ‹ˆλ‹€.
  • Mentoring: 진도λ₯Ό μ–΄λ €μ›Œν•˜λŠ” νŒ€μ›μ„ λ°©μΉ˜ν•˜μ§€ μ•Šκ³  1:1둜 μ΄λŒμ–΄ 전원 μ™„μ£Όλ₯Ό λͺ©ν‘œλ‘œ ν–ˆμŠ΅λ‹ˆλ‹€.

2. Deep Dive: μ§‘μš”ν•œ 탐ꡬ와 지식 곡유 (N+1 문제)
λ‹¨μˆœν•œ κ°œλ… μ•”κΈ°κ°€ μ•„λ‹Œ, 원리 이해λ₯Ό μ΅œμš°μ„ μœΌλ‘œ ν–ˆμŠ΅λ‹ˆλ‹€.

  • Collaborative Learning: 'N+1 문제'의 λ°œμƒ 원인과 해결법(Fetch Join, Entity Graph λ“±)이 λͺ…ν™•νžˆ μ΄ν•΄λ˜μ§€ μ•Šμž, 2μ£Όκ°„μ˜ 집쀑 탐ꡬ 기간을 κ°€μ‘ŒμŠ΅λ‹ˆλ‹€.
  • Seminar: 각자 μ‘°μ‚¬ν•œ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ μ„Έλ―Έλ‚˜ ν˜•μ‹μ˜ μƒν˜Έ λ°œν‘œλ₯Ό μ§„ν–‰ν–ˆκ³ , 이λ₯Ό 톡해 νŒ€μ› 전원이 ν•΄λ‹Ή 이슈λ₯Ό μ™„λ²½ν•˜κ²Œ μˆ™μ§€ν•˜κ³  싀무에 μ μš©ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

3. Insight: μ½”λ“œ 리뷰의 μ§„μ •ν•œ κ°€μΉ˜
이번 ν™œλ™μ„ 톡해 생애 첫 μ½”λ“œ 리뷰λ₯Ό κ²½ν—˜ν•˜λ©° κ°œλ°œμžλ‘œμ„œ μ‹œμ•Όλ₯Ό ν™•μž₯ν–ˆμŠ΅λ‹ˆλ‹€.

  • Reader의 관점: 'μž‘μ„±ν•˜λŠ” μ½”λ“œ'μ—μ„œ 'μ½νžˆλŠ” μ½”λ“œ'둜 관점이 μ „ν™˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€. νƒ€μΈμ˜ μ½”λ“œλ₯Ό 읽으며 μ˜λ„λ₯Ό νŒŒμ•…ν•˜λŠ” κ³Όμ • μžμ²΄κ°€ 큰 곡뢀가 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • Feedback Loop: μ½”λ“œ 리뷰가 λ‹¨μˆœν•œ 지적이 μ•„λ‹ˆλΌ, μ„œλ‘œμ˜ 생각을 λ§žμΆ”κ³  더 λ‚˜μ€ 섀계λ₯Ό μ°Ύμ•„κ°€λŠ” ν˜‘μ—…μ˜ 핡심 κ³Όμ •μž„μ„ κΉ¨λ‹«κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

About

πŸ“š μ˜λ‚¨λŒ€ UMC 9κΈ° μŠ€ν”„λ§λΆ€νŠΈ μŠ€ν„°λ”” | λ―Έμ…˜ μˆ˜ν–‰ 및 μƒν˜Έ μ½”λ“œ 리뷰 기둝

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages