Skip to content

κ°•μ§€λ₯œ 🐹 κΉ€λ―Όμ§€ 🦦 κΉ€μ§„ν˜Έ 🏠 λ°°νƒœμš© 🦁 μ •μœ μ§„ πŸ₯Ÿ ν—ˆμ°½ν›ˆ 🐱

License

Notifications You must be signed in to change notification settings

HoodRyan/Project_KLUME_Team.0xAM

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

μŠ€ν¬λ¦°μƒ· 2025-11-13 171816

νšŒμ˜μ‹€ μ˜ˆμ•½, ν‹°μΌ“νŒ…μ²˜λŸΌ κ³΅ν‰ν•˜κ²Œ.

KlΓΌme(클룸)은 λΆ€νŠΈμΊ ν”„ ν˜„μž₯μ—μ„œ 반볡적으둜 λ°œμƒν–ˆλ˜
νšŒμ˜μ‹€ μ„ μ°©μˆœ ꡬ두 μ˜ˆμ•½μ˜ λΆˆνŽΈν•¨κ³Ό λΉ„νš¨μœ¨μ„±μ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ§Œλ“  쑰직 기반 νšŒμ˜μ‹€ μ˜ˆμ•½ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.


0xAM νŒ€μ› μ†Œκ°œ

image
κ°•μ§€λ₯œ κΉ€λ―Όμ§€ κΉ€μ§„ν˜Έ λ°°νƒœμš© μ •μœ μ§„ ν—ˆμ°½ν›ˆ

1. ν”„λ‘œμ νŠΈ μ†Œκ°œ

πŸ”Ž KlΓΌmeλŠ” μ–΄λ–€ μ„œλΉ„μŠ€μΈκ°€?

KlΓΌme은 λ‹€μŒκ³Ό 같은 μ‹€μ œ 문제 상황을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κΈ°νšλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

❌ κΈ°μ‘΄ νšŒμ˜μ‹€ μ˜ˆμ•½ 문제

  • μ„ μ°©μˆœ ꡬ두 μ˜ˆμ•½ β†’ μ€„μ„œκΈ°, 혼작
  • λ§€λ‹ˆμ € 좜근 μ „κΉŒμ§€ μžλ¦¬ν™•λ³΄ λŒ€κΈ°
  • κ°€μœ„λ°”μœ„λ³΄λ‘œ 자리 λ°°λΆ„ β†’ μš΄μ— λ”°λ₯Έ λΆˆκ³΅μ •
  • μ˜ˆμ•½ ν˜„ν™© 확인이 어렀움
  • 곡지가 λ””μŠ€μ½”λ“œ λ“± μ—¬λŸ¬ 곳으둜 ν©μ–΄μ ΈμžˆμŒ

βœ… KlΓΌmeκ°€ μ œκ³΅ν•˜λŠ” ν•΄κ²°μ±…

  • ⏱ μ •ν™•ν•œ μ˜ˆμ•½ μ˜€ν”ˆ μ‹œκ°„ + μžλ™ ν™œμ„±ν™” λ²„νŠΌ(ν‹°μΌ“νŒ… 방식)
  • ⚑ μ—¬λŸ¬ λͺ… 클릭 μ‹œ μ„œλ²„ λ‹¨μ—μ„œ 단 1λͺ…λ§Œ μ˜ˆμ•½ 성곡 처리
  • πŸ“… 일/μ£Ό/μ›” 달λ ₯ 기반 μ˜ˆμ•½ ν˜„ν™© 제곡
  • 🏒 쑰직/κ·Έλ£Ή λ‹¨μœ„λ‘œ μ˜ˆμ•½ ν™˜κ²½ 관리
  • πŸ’¬ μ‹€μ‹œκ°„ κ΄€λ¦¬μžβ€“λ©€λ²„ μ±„νŒ…
  • ⚠️ νŒ¨λ„ν‹° 기반 μ§ˆμ„œ μœ μ§€(λ…Έμ‡Ό λ°©μ§€, 인증 사진 μ—…λ‘œλ“œ)

기술 μš”μ•½

πŸŒ† DevOps

Docker Kubernetes Jenkins Jenkins

🌿 FrontEnd

Vue.js Vite JavaScript NPM Socket.io

πŸ—οΈ Backend

Spring JWT Amazon S3

πŸ—‚οΈ DB

MySQL MongoDB Redis

πŸ”§ Tools

Figma GitHub Visual Studio Code

πŸ“‘ Real-time Communication

WebSocket STOMP SockJS Axios


2. 섀계 λ¬Έμ„œ

WBS

WBS image

μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ

μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ

νšŒμ› 정보

쑰직

νšŒμ˜μ‹€

μ˜ˆμ•½

곡지사항, FAQ

μ±„νŒ…

DDD

DDD

쑰직 곡지사항

곡지사항

쑰직관리

쑰직관리

νšŒμ›

νšŒμ›

μ•Œλ¦Ό

μ•Œλ¦Ό

νšŒμ˜μ‹€ μ˜ˆμ•½

μ˜ˆμ•½

μ±„νŒ…

μ±„νŒ…

FAQ

FAQ

μ˜ˆμ•½ 이후 νšŒμ˜μ‹€ 이용

νšŒμ˜μ‹€ 이용

3. 와이어 ν”„λ ˆμž„

🎨 Figma λ°”λ‘œκ°€κΈ°

와이어 ν”„λ ˆμž„ μ™€μ΄μ–΄ν”„λ ˆμž„

4. DB λͺ¨λΈλ§

πŸ—‚οΈ ERD λ°”λ‘œκ°€κΈ°

ERD μŠ€ν¬λ¦°μƒ· 2025-11-13 231452

5. μ£Όμš” κΈ°λŠ₯ μ‹œμ—°

πŸ‘€ Β  νšŒμ›κ°€μž… 및 둜그인
Β  νšŒμ›κ°€μž…

  둜컬 둜그인

Β  ꡬ글 둜그인

πŸ‘€ Β  쑰직 생성 및 κ°€μž…
Β  쑰직 νŽ˜μ΄μ§€

Β  쑰직 생성

Β  쑰직 μ½”λ“œλ‘œ κ°€μž…

πŸ‘€ Β  쑰직
Β  곡지사항 등둝

Β  νšŒμ˜μ‹€ 등둝

Β  νšŒμ˜μ‹€ μ˜ˆμ•½ 등둝

Β  νšŒμ˜μ‹€ μ˜ˆμ•½

Β  νšŒμ˜μ‹€ 이용

Β  μ˜ˆμ•½ μ·¨μ†Œ

Β  κ·Έλ£Ή 생성

πŸ‘€ Β  μ±„νŒ…
Β  μœ μ € μ±„νŒ…λ°© 생성 및 사진 전솑

Β  κ΄€λ¦¬μž μ±„νŒ… λ‹΄λ‹Ή 및 전솑

Β  μ‹€μ‹œκ°„ μ±„νŒ…



6. ν…ŒμŠ€νŠΈ

Β  Member ν…ŒμŠ€νŠΈ λ©€λ²„ν…ŒμŠ€νŠΈ λ©€λ²„μ»¨νŠΈλ‘€λŸ¬λ‹¨μœ„ν…ŒμŠ€νŠΈ λ©€λ²„μ„œλΉ„μŠ€λ‹¨μœ„ν…ŒμŠ€νŠΈ μ΄λ©”μΌλ‘œνšŒμ›μ‘°νšŒν…ŒμŠ€νŠΈ λ‘œκ·ΈμΈν…ŒμŠ€νŠΈ νšŒμ›κ°€μž…ν…ŒμŠ€νŠΈ
Β  Room ν…ŒμŠ€νŠΈ νšŒμ˜μ‹€ν…ŒμŠ€νŠΈ 2025-11-17 031320 νšŒμ˜μ‹€μ„œλΉ„μŠ€λ‹¨μœ„ν…ŒμŠ€νŠΈ 2025-11-17 030736 νšŒμ˜μ‹€μ»¨νŠΈλ‘€λŸ¬λ‹¨μœ„ν…ŒμŠ€νŠΈ 2025-11-17 030551 νšŒμ˜μ‹€ μ΄μš©κ°€λŠ₯μ‹œκ°„λ‹¨μœ„ν…ŒμŠ€νŠΈ 2025-11-17 030847

7. μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

image

8. 배포

Β  jenkins νŒŒμ΄ν”„λΌμΈ image
Β  docker hub μ—…λ°μ΄νŠΈ image

9. 개인 회고

κ°•μ§€λ₯œ

πŸ“š ν”„λ‘œμ νŠΈμ—μ„œ 맑은 μ—­ν• 

  • ν”„λ‘œμ νŠΈ κΈ°λ³Έ μ„ΈνŒ…
  • 쑰직 κ΄€λ ¨ μ „λ°˜μ μΈ κΈ°λŠ₯ κ΅¬ν˜„
    • 쑰직 및 κ·Έλ£Ή 생성 / μˆ˜μ • / μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„
    • 쑰직 μ΄ˆλŒ€ μ½”λ“œ λ°œκΈ‰ 및 κ°€μž… κΈ°λŠ₯ κ΅¬ν˜„
    • 쑰직 멀버 μˆ˜μ • / 제거 λ“± 관리 κΈ°λŠ₯ κ΅¬ν˜„
  • νšŒμ˜μ‹€ μ˜ˆμ•½ κΈ°λŠ₯ κ΅¬ν˜„

πŸ† μž˜ν•œ 점

  • ν”„λ‘œμ νŠΈ 초기 μ„ΈνŒ…μ„ λ‹΄λ‹Ήν•˜λ©° νŒ€μ›λ“€μ΄ λ™μΌν•œ ν™˜κ²½μ—μ„œ μž‘μ—…ν•  수 μžˆλ„λ‘ κΈ°λ°˜μ„ λ§ˆλ ¨ν–ˆλ‹€.
  • μ„œλΉ„μŠ€ ν΄λž˜μŠ€μ—μ„œλŠ” λ©”μ†Œλ“œ μ±…μž„μ„ μ΅œμ†Œν™”ν•΄ 좔상화 μˆ˜μ€€μ„ ν†΅μΌν•˜λ €κ³  λ…Έλ ₯ν–ˆκ³  λ©”μ†Œλ“œ μ΄λ¦„λ§Œ 보고도 κΈ°λŠ₯을 νŒŒμ•…ν•  수 μžˆλ„λ‘ μ½”λ“œλ₯Ό μž‘μ„±ν–ˆλ‹€.
  • μ½”λ“œ 리뷰λ₯Ό 톡해 νŒ€μ›λ“€μ˜ ν”Όλ“œλ°±μ„ λ°˜μ˜ν•˜μ—¬ 였λ₯˜λ₯Ό κ°œμ„ ν•˜κ³  μ½”λ“œ ν’ˆμ§ˆμ„ 높일 수 μžˆμ—ˆκ³  λ‹€λ₯Έ νŒ€μ›λ“€μ˜ μ½”λ“œλ₯Ό λ¦¬λ·°ν•˜λ©΄μ„œ μ „λ°˜μ μΈ μ½”λ“œμ— λŒ€ν•œ 이해도도 λ†’μ˜€λ‹€.

🀨 μ•„μ‰¬μš΄ 점

  • λ™μ‹œμ„± μ œμ–΄λ₯Ό ν”„λ‘œμ νŠΈ ν›„λ°˜λΆ€μ— λ„μž…ν•˜λ‹€λ³΄λ‹ˆ μΆ©λΆ„νžˆ ν•™μŠ΅ν•˜μ§€ λͺ»ν•œ μƒνƒœμ—μ„œ μ μš©ν•˜μ—¬ μ½”λ“œκ°€ μ œλŒ€λ‘œ κ΅¬ν˜„λ˜μ—ˆλŠ”μ§€μ— λŒ€ν•œ 확신이 λΆ€μ‘±ν–ˆλ‹€.
  • λ°±μ—”λ“œ κΈ°λŠ₯ κ΅¬ν˜„μ— μ§‘μ€‘ν•˜λŠλΌ ν”„λ‘ νŠΈ κ°œλ°œμ— μΆ©λΆ„ν•œ μ‹œκ°„μ„ νˆ¬μžν•˜μ§€ λͺ»ν–ˆλ‹€.
  • κΈ°λŠ₯ κ΅¬ν˜„μ„ μš°μ„ ν•˜λ‹€ λ³΄λ‹ˆ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό 병행해 μž‘μ„±ν•˜μ§€ λͺ»ν–ˆλ‹€.

🎯 배운 점

  • μ½”λ“œ 리뷰λ₯Ό 톡해 λ‚΄κ°€ λ†“μ³€λ˜ 뢀뢄듀을 λ°œκ²¬ν•˜κ³  κ°œμ„ ν•˜λ©΄μ„œ μ½”λ“œ ν’ˆμ§ˆμ„ λ†’μ΄λŠ” κ³Όμ •μ˜ μ€‘μš”μ„±μ„ λ°°μ› λ‹€.
  • λ™μ‹œμ„± μ œμ–΄κ³Ό 같은 사전 지식이 ν•„μš”ν•œ κΈ°λŠ₯인 경우 λ‹¨μˆœνžˆ κ΅¬ν˜„ν•œ 것보닀 μ™œ κ·Έλ ‡κ²Œ κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ”μ§€ λ™μž‘ 원리λ₯Ό μ΄ν•΄ν•˜λŠ” 과정이 μ€‘μš”ν•˜λ‹€λŠ” 점을 λ°°μ› λ‹€.

πŸ’‘ λ‹€μŒ ν”„λ‘œμ νŠΈμ— μ μš©ν•˜κ³  싢은 점

  • λ°±μ—”λ“œμ™€ ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμ„ 각각 개발이 μ•„λ‹Œ λ™μ‹œμ— λ³‘ν–‰ν•΄μ„œ μ§„ν–‰ν•˜κ³  μ‹Άλ‹€.
  • κΈ°λŠ₯ κ΅¬ν˜„κ³Ό ν•¨κ»˜ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λ³‘ν–‰ν•˜μ—¬ μž‘μ„±ν•˜κ³  μ‹Άλ‹€.
  • λ™μ‹œμ • μ œμ–΄κ°€ ν•„μš”ν•œ κΈ°λŠ₯이 μžˆμ„ 경우, μΆ©λΆ„νžˆ ν•™μŠ΅ν•œ ν›„ κ΅¬ν˜„ν•΄λ³΄κ³  μ‹Άλ‹€.

κΉ€λ―Όμ§€

πŸ“š ν”„λ‘œμ νŠΈμ—μ„œ 맑은 μ—­ν• 

  • κΈ°λŠ₯ λͺ…μ„Έν™”
  • UI λ””μžμΈ 섀계
  • 배포 ν™˜κ²½ ꡬ성
    • Docker 이미지 생성
    • GitHub Webhook + Jenkins μžλ™ λΉŒλ“œ νŒŒμ΄ν”„λΌμΈ ꡬ좕

πŸ† μž˜ν•œ 점

  • Docker, Jenkins, Webhook ν™˜κ²½μ„ 직접 κ΅¬μΆ•ν•˜λ©° DevOps μ—­λŸ‰μ„ μŒ“μ„ 수 μžˆμ—ˆλ‹€.

🀨 μ•„μ‰¬μš΄ 점

  • DevOps κ°œλ…μ΄ λ‚―μ„€μ–΄μ„œ μ μ‘ν•˜λŠ” 데 μ‹œκ°„μ΄ 였래 κ±Έλ Έκ³ , κ·Έ λ•Œλ¬Έμ— ArgoCDκΉŒμ§€ μ μš©ν•˜μ§€ λͺ»ν•œ 점이 아쉽닀.
  • DevOps κ΄€λ ¨ 문제 ν•΄κ²° κ²½ν—˜μ΄ λ§Žμ§€ μ•Šμ•„ νŠΈλŸ¬λΈ”μŠˆνŒ… 속도가 느렸던 뢀뢄이 μžˆμ—ˆλ‹€.

🎯 배운 점

  • CI/CD νλ¦„μ˜ 전체 ꡬ쑰(Docker β†’ Jenkins β†’ 배포)λ₯Ό 직접 κ΅¬μΆ•ν•˜λ©΄μ„œ DevOps κΈ°λ³ΈκΈ°λ₯Ό λͺ…ν™•νžˆ μ΄ν•΄ν•˜κ²Œ λ˜μ—ˆλ‹€.
  • Webhook, λΉŒλ“œ μžλ™ν™”, 이미지 버전 관리 λ“± μ‹€μ œ μ„œλΉ„μŠ€ μš΄μ˜μ—μ„œ ν•„μš”ν•œ μš”μ†Œλ“€μ„ κ²½ν—˜ν•  수 μžˆμ—ˆλ‹€.

πŸ’‘ λ‹€μŒ ν”„λ‘œμ νŠΈμ— μ μš©ν•˜κ³  싢은 점

  • GitHub Actions 같은 더 κ³ λ„ν™”λœ CD μžλ™ν™” 도ꡬλ₯Ό λ„μž…ν•΄λ³΄κ³  μ‹Άλ‹€.

κΉ€μ§„ν˜Έ

πŸ“š ν”„λ‘œμ νŠΈμ—μ„œ 맑은 μ—­ν• 

  • ν”„λ‘œμ νŠΈ μ „λ°˜ 기획 μ°Έμ—¬
  • ERD 및 전체 λͺ¨λΈλ§ 섀계
  • μ›Ήμ†ŒμΌ“ 기반 μ±„νŒ… κΈ°λŠ₯ ꡬ쑰 및 μ „λ°˜ 관리(STOMP, SockJS 포함)
  • ν”„λ‘ νŠΈΒ·λ°±μ—”λ“œ κ°„ API 및 데이터 ꡬ쑰 쑰율
  • μ±„νŒ… κΈ°λŠ₯ UI/UX 개발 및 μˆ˜μ •
  • ν˜•μƒκ΄€λ¦¬(GitHub) 브랜치 μ „λž΅Β·PR κ·œμΉ™ 관리 및 νŒ€μ› μ½”λ“œ 리뷰 μ°Έμ—¬

πŸ† μž˜ν•œ 점

이전에 κ²½ν—˜ν•΄λ³΄μ§€ μ•Šμ•˜λ˜ μ›Ήμ†ŒμΌ“Β·STOMPΒ·SockJS와 같은 μ‹€μ‹œκ°„ 톡신 기술과 λͺ½κ³ DB 같은 NoSQL κΈ°μˆ λ“€μ„ 직접 ν•™μŠ΅ν•˜κ³ , μ™œ ν•΄λ‹Ή κΈ°μˆ λ“€μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€ ꡬ쑰적·기λŠ₯적 κ΄€μ μ—μ„œ 슀슀둜 κ³ λ―Όν•˜κ³  λ¬Έμ„œν™”μ‹œμΌœ νŒ€μ›λ“€κ³Όλ„ κ³΅μœ ν•˜κ³  μ μš©ν–ˆλ‹€λŠ” 점이 큰 μ„±μ·¨μ˜€λ‹€. 특히 λ©”μ‹œμ§€κ°€ 브둜컀λ₯Ό 톡해 μ–΄λ–»κ²Œ λΌμš°νŒ…λ˜λŠ”μ§€, ꡬ독/λ°œν–‰ ꡬ쑰가 μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€, 폴백이 ν•„μš”ν•œ μ΄μœ κ°€ 무엇인지 등을 μ΄ν•΄ν•˜λ©° μ‹€μ‹œκ°„ κΈ°λŠ₯을 μ•ˆμ •μ μœΌλ‘œ κ΅¬ν˜„ν–ˆκ³ , μ΄λŸ¬ν•œ ν•™μŠ΅ 과정을 νŒ€μ›λ“€κ³Όλ„ κ³΅μœ ν•˜λ©° ν”„λ‘œμ νŠΈ ν’ˆμ§ˆμ„ 높일 수 μžˆμ—ˆλ‹€. 또, MVPλ₯Ό λ¨Όμ € κ΅¬ν˜„ν•œ λ’€ μ±„νŒ… ν”Œλ‘œνŒ… λ„μš°κΈ°, μ±„νŒ… λ‹΄λ‹Ήν•˜κΈ°, ui/ux κ°œμ„ λ“± μ μ§„μ μœΌλ‘œ κΈ°λŠ₯을 ν™•μž₯ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ°œλ°œν•΄ 리슀크λ₯Ό 쀄이고 λΉ λ₯Έ 검증을 ν•  수 μžˆμ—ˆλ˜ 점도 슀슀둜 쒋은 μ„ νƒμ΄μ—ˆλ‹€κ³  λŠλ‚€λ‹€. λ˜ν•œ GitHub 브랜치 μ „λž΅, 컀밋 κ·œμΉ™, PR 리뷰 ν”„λ‘œμ„ΈμŠ€ λ“± νŒ€μ΄ ν•©μ˜ν•œ ν˜•μƒκ΄€λ¦¬ 원칙과 μ½”λ”© μ»¨λ²€μ…˜μ„ μΌκ΄€λ˜κ²Œ μ§€ν‚€λ©° ν˜‘μ—… νš¨μœ¨μ„ 높이고, νŒ€ 전체 μ½”λ“œκ°€ λ™μΌν•œ μŠ€νƒ€μΌκ³Ό 흐름을 μœ μ§€ν•˜λ„λ‘ μ‹ κ²½ μ“΄ 점도 μ’‹μ•˜λ‹€.

🀨 μ•„μ‰¬μš΄ 점

섀계 λ‹¨κ³„μ—μ„œ μ΅œλŒ€ν•œ μžμ„Έν•˜κ³  λͺ…ν™•νžˆ ν•˜λ €κ³  λ…Έλ ₯ν–ˆμ§€λ§Œ κ΅¬ν˜„ λ‹¨κ³„μ—μ„œ 많이 λ°”λ€Œκ³  μž¬μ„€κ³„ 단계λ₯Ό κ±°μ³μ„œ μ‹œκ°„μ΄ λ‹€μ†Œ μ§€μ—°λœκ²ƒ κ°™λ‹€. SSE 기반의 μ‹€μ‹œκ°„ μ•Œλ¦Ό κΈ°λŠ₯을 μ™„μ„±ν•˜μ§€ λͺ»ν•œ 점이 아쉽닀. μ›Ήμ†ŒμΌ“κ³Ό μ‹€μ‹œκ°„ 톡신에 λŒ€ν•œ κΉŠμ€ μ΄ν•΄λ³΄λ‹€λŠ” μ‹œκ°„μ— 쫓겨 κ΅¬ν˜„μ—λ§Œ κΈ‰κΈ‰ν•œ λͺ¨μŠ΅μ΄ μžˆμ—ˆλ˜ 것 κ°™λ‹€.

🎯 배운 점

  • ν˜•μƒκ΄€λ¦¬ κ·œμΉ™κ³Ό μ½”λ“œλ¦¬λ·°λ₯Ό νŒ€ 전체가 μΌκ΄€λ˜κ²Œ μ§€ν‚€λŠ” κ²ƒμ˜ μ€‘μš”μ„±μ„ μ²΄κ°ν–ˆλ‹€.
  • HTTP APIμ™€λŠ” μ „ν˜€ λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λŠ” μ›Ήμ†ŒμΌ“ 기반 μ‹€μ‹œκ°„ κΈ°λŠ₯을 STOMP ν”„λ ˆμž„ ꡬ쑰, λ©”μ‹œμ§€ λΌμš°νŒ…, μ„Έμ…˜Β·κ΅¬λ…κ΄€λ¦¬λ“±μ„ 직접 μ„€κ³„Β·κ΅¬ν˜„ν•˜λ©΄μ„œ μ΄ν•΄ν•˜κ²Œ λ˜μ—ˆλ‹€.
  • MongoDBλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ λ¬Έμ„œ 기반 μ €μž₯의 μž₯점, 쿼리 방식, 데이터 λͺ¨λΈλ§μ˜ 관점을 μƒˆλ‘­κ²Œ 읡힐 수 μžˆμ—ˆλ‹€.
  • μƒˆλ‘­κ²Œ 배우게 λ˜λŠ” κΈ°μˆ μ— λŒ€ν•œ λ§‰μ—°ν•œ 두렀움이 μ—†μ–΄μ§€κ³  "ν•˜λ©΄ λ˜κ² μ§€"λΌλŠ” μžμ‹ κ°μ„ 얻을 수 μžˆμ—ˆλ‹€.

πŸ’‘ λ‹€μŒ ν”„λ‘œμ νŠΈμ— μ μš©ν•˜κ³  싢은 점

μ΄ˆκΈ°μ— MVPλ₯Ό λΉ λ₯΄κ²Œ μ™„μ„±ν•˜κ³  κ·Έ μœ„μ— κΈ°λŠ₯을 μžμ—°μŠ€λŸ½κ²Œ ν™•μž₯ν•΄κ°€λŠ” 방식을 더 μ²΄κ³„μ μœΌλ‘œ μ μš©ν•˜κ³  μ‹Άλ‹€. μ‹€μ‹œκ°„ 톡신 κΈ°λŠ₯을 λ‹€μ‹œ κ΅¬ν˜„ν•œλ‹€λ©΄ μ›Ήμ†ŒμΌ“λΏ μ•„λ‹ˆλΌ SSE 기반 μ•Œλ¦Ό μ‹œμŠ€ν…œ, Redis Pub/Sub, λ©”μ‹œμ§€ 큐, 읽음 μ²˜λ¦¬Β·μ˜€ν”„λΌμΈ λ©”μ‹œμ§€ 관리 λ“± μ‹€μ„œλΉ„μŠ€μ— 더 κ°€κΉŒμš΄ ꡬ쑰λ₯Ό μ μš©ν•˜κ³  μ‹Άλ‹€. λ˜ν•œ ν”„λ‘ νŠΈμ™€ λ°±μ—”λ“œκ°€ 더 λΉ λ₯Έ ν…œν¬λ‘œ ν˜‘μ—…ν•  수 μžˆλ„λ‘ API와 이벀트 λ¬Έμ„œν™”λ₯Ό μ •μ°©μ‹œν‚€κ³ , 초반 λ‹¨κ³„μ—μ„œ end-to-end 흐름을 λΉ λ₯΄κ²Œ κ²€μ¦ν•˜λŠ” λ°©ν–₯으둜 μ§„ν–‰ν•˜κ³  μ‹Άλ‹€.


λ°°νƒœμš©

πŸ“š ν”„λ‘œμ νŠΈμ—μ„œ 맑은 μ—­ν• 

  • νšŒμ›κ°€μž…(둜컬, Google OAuth) κΈ°λŠ₯ 개발

  • Spring Security 기반 둜그인 인증·인가 처리

  • 곡톡 μ»΄ν¬λ„ŒνŠΈ(header, sidebar, button, input) μ œμž‘

  • Front-End μš”κ΅¬μ‚¬ν•­μ— 맞좘 Back-End DTO μΆ”κ°€ 및 API ꡬ쑰 정리

이번 ν”„λ‘œμ νŠΈλŠ” νšŒμ› 도메인을 μ€‘μ‹¬μœΌλ‘œ 전체 인증 흐름을 μ±…μž„μ‘Œκ³ , ν΄λΌμ΄μ–ΈνŠΈ 개발과의 연결도 κ½€ λ°€μ ‘ν•˜κ²Œ μ§„ν–‰ν–ˆλ‹€.

πŸ† μž˜ν•œ 점

  • Spring Securityλ₯Ό ν™œμš©ν•œ 인증/인가 ꡬ좕

이번 ν”„λ‘œμ νŠΈμ—μ„œ λ‚΄κ°€ κ°€μž₯ λ§Žμ€ μ‹œκ°„μ„ νˆ¬μžν•œ λΆ€λΆ„μ΄μ—ˆλ‹€. Spring SecurityλŠ” μ—¬μ „νžˆ λ‚œμ΄λ„κ°€ 높은 μ˜μ—­μ΄λΌ 처음 ꡬ쑰λ₯Ό μž‘λŠ” κ³Όμ •λΆ€ν„° μ‹œν–‰μ°©μ˜€κ°€ λ§Žμ•˜λ‹€. μˆ˜μ—… λ•ŒλŠ” 따라가기 λ°”λΉ΄μ§€λ§Œ, μ‹€μ œλ‘œ ν”„λ‘œμ νŠΈμ—μ„œ 직접 κ΅¬ν˜„ν•˜λ©΄μ„œ ꡬ쑰λ₯Ό 이해할 수 μžˆμ—ˆκ³ , 인증 흐름을 λ‚΄ μ†μœΌλ‘œ μ œλŒ€λ‘œ ꡬ성해볼 수 μžˆμ—ˆλ‹€λŠ” 점이 κ°€μž₯ 큰 μ„±μ·¨μ˜€λ‹€. 특히 Local νšŒμ›κ°€μž…λΏ μ•„λ‹ˆλΌ Google OAuthκΉŒμ§€ ν™•μž₯ν•˜λ©΄μ„œ λ‹¨μˆœνžˆ API 연동이 μ•„λ‹ˆλΌ,

  • Spring Security ν•„ν„° ꡬ쑰
  • OAuth2 ν΄λΌμ΄μ–ΈνŠΈ μ„€μ •
  • μ‚¬μš©μž 정보 λ§€ν•‘
  • νšŒμ› ν…Œμ΄λΈ”κ³Ό OAuth μ‚¬μš©μž 정보 동기화

λ“± μ—¬λŸ¬ 포인트λ₯Ό κ²½ν—˜ν•  수 μžˆμ–΄μ„œ μ‹€μ œ μ„œλΉ„μŠ€ ꡬ성에 ν•œ 발 더 λ‹€κ°€κ°„ λŠλ‚Œμ„ λ°›μ•˜λ‹€. μ²˜μŒμ—” μ–΄λ €μ› μ§€λ§Œ κ²°κ΅­ μ™„μ„±ν•΄μ„œ νŒ€ 전체가 μ•ˆμ •μ μœΌλ‘œ μ‚¬μš©ν•  수 μžˆμ—ˆλ‹€λŠ” 점이 κ½€ λΏŒλ“―ν–ˆλ‹€. 😎

🀨 μ•„μ‰¬μš΄ 점

Google OAuth에 이어 카카였/넀이버 같은 κ΅­λ‚΄ OAuthλ₯Ό μ μš©ν•˜μ§€ λͺ»ν•œ 점은 개인적으둜 많이 아쉬웠닀. OAuth ꡬ쑰 μžμ²΄λŠ” λΉ„μŠ·ν•˜μ§€λ§Œ, Providerλ³„λ‘œ 인증 λ°©μ‹μ΄λ‚˜ λ°˜ν™˜ 데이터가 달라 μ‹€μ œλ‘œ λΆ™μ—¬λ³΄λŠ” κ²½ν—˜μ„ 해보고 μ‹Άμ—ˆλ‹€. DevOps ν”„λ‘œμ νŠΈμ˜€μ§€λ§Œ, μ‹€μ œ κ°œλ°œμ—μ„œλŠ” DevOps 역할을 많이 λ§‘μ§€ μ•Šμ•„ CI/CD, 인프라 ꡬ성 등에 깊게 κ΄€μ—¬ν•˜μ§€ λͺ»ν–ˆλ‹€. μˆ˜μ—…μ„ 듀은 것과 μ‹€μ „ ν”„λ‘œμ νŠΈμ—μ„œ 직접 λ‹€λ€„λ³΄λŠ” 것은 차이가 크기 λ•Œλ¬Έμ—, DevOps μ‹€μ „ κ²½ν—˜μ„ μŒ“μ§€ λͺ»ν•œ 점이 μ§€κΈˆ λŒμ•„λ³΄λ©΄ 아쉽닀.

🎯 배운 점

  • Redis ν™œμš© λŠ₯λ ₯ ν–₯상

μ΄λ²ˆμ—λ„ νšŒμ›κ°€μž… 인증 이메일 λ°œμ†‘ ν›„ 인증 μ œν•œ μ‹œκ°„μ„ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ Redisλ₯Ό μ‚¬μš©ν–ˆλ‹€. μ§€λ‚œ ν”„λ‘œμ νŠΈμ—μ„œλŠ” λ‹€λ₯Έ νŒ€μ›μ΄ κ°œλ°œν•΄ μ„€μΉ˜λœ Redisλ₯Ό κ·Έλƒ₯ μ‚¬μš©ν•˜λŠ” μˆ˜μ€€μ΄μ—ˆλ‹€λ©΄, μ΄λ²ˆμ—λŠ” 직접 νšŒμ›κ°€μž… κΈ°λŠ₯을 λ§‘μœΌλ©΄μ„œ TTL μ„€μ •, key/value ꡬ쑰 섀계, 인증 번호 관리 둜직 등을 더 깊이 있게 μ΄ν•΄ν•˜κ³  μ‚¬μš©ν•  수 μžˆμ—ˆλ‹€.

πŸ’‘ λ‹€μŒ ν”„λ‘œμ νŠΈμ— μ μš©ν•˜κ³  싢은 점

λ‹¨μœ„ ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„± μŠ΅κ΄€ κ°œμ„  κΈ°λŠ₯을 μ™„μ„±ν•œ ν›„ μˆ˜λ™ ν…ŒμŠ€νŠΈμ—λ§Œ μ˜μ‘΄ν•˜λ‹€ λ³΄λ‹ˆ λ¦¬νŒ©ν† λ§ μ‹œ λΆˆμ•ˆν•¨μ΄ μžˆμ—ˆκ³ , 이번 κ²½ν—˜μ„ 톡해 ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ ν•„μš”μ„±μ„ λ‹€μ‹œ μ²΄κ°ν–ˆλ‹€. λ‹€μŒ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 인증/인가, λ ˆν¬μ§€ν† λ¦¬, μ„œλΉ„μŠ€ λ ˆμ΄μ–΄ μ€‘μ‹¬μœΌλ‘œ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό 적극적으둜 μž‘μ„±ν•˜κ³  μ‹Άλ‹€.

λ””μžμΈ νŒ¨ν„΄ ν™œμš© λŠ₯λ ₯ ν–₯상 μ΄λ²ˆμ— 인증 κ΄€λ ¨ λ‘œμ§μ„ κ΅¬ν˜„ν•˜λ©΄μ„œ 쀑볡 μ½”λ“œκ°€ μƒκΈ°κ±°λ‚˜ ν™•μž₯μ„± μžˆλŠ” ꡬ쑰λ₯Ό λ§Œλ“€μ§€ λͺ»ν•œ 뢀뢄이 쑰금 μ•„μ‰¬μ› μ—ˆλ‹€. 이 λ‹€μŒ μ΅œμ’… ν”„λ‘œμ νŠΈ λ•Œμ—” μ „λž΅ νŒ¨ν„΄, ν…œν”Œλ¦Ώ λ©”μ„œλ“œ νŒ¨ν„΄ λ“± μƒν™©λ³„λ‘œ μ μš©ν•΄λ³Ό 수 μžˆλŠ” νŒ¨ν„΄λ“€μ„ 더 적극적으둜 고민해보고 μ‹Άλ‹€.


μ •μœ μ§„

πŸ“š ν”„λ‘œμ νŠΈμ—μ„œ 맑은 μ—­ν• 

  • κ΄€λ¦¬μžμ˜ μ˜ˆμ•½ κ°€λŠ₯ μ‹œκ°„ κ΄€λ ¨ κΈ°λŠ₯ κ΅¬ν˜„
    • μ˜ˆμ•½ κ°€λŠ₯ μ‹œκ°„ 생성 / μˆ˜μ • / μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„
    • νŠΉμ • 일자의 μ˜ˆμ•½ μˆ˜μ • / μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„
  • κ΄€λ¦¬μžλ©”λ‰΄

πŸ† μž˜ν•œ 점

μ˜ˆμ•½ κ°€λŠ₯ μ‹œκ°„ κΈ°λŠ₯을 λ§‘μœΌλ©΄μ„œ μ—¬λŸ¬ ν…Œμ΄λΈ”μ΄ μ—°λ™λ˜κ³ , μƒμ„±Β·μ‚­μ œμ— λ”°λ₯Έ μ œμ•½ 쑰건듀이 λ§Žμ•„ 생각해야 ν•  뢀뢄이 맀우 λ³΅μž‘ν–ˆμ§€λ§Œ μ΄λŸ¬ν•œ 상황 μ†μ—μ„œ λ‹€μ–‘ν•œ μΌ€μ΄μŠ€λ₯Ό κ³ λ €ν•˜λ©° κ΅¬ν˜„ν•΄λ‚΄λŠ”κ²Œ 쉽지 μ•Šμ•˜μ§€λ§Œ, κΈ°λŠ₯이 λͺ¨λ‘ 맞물렀 μ •ν™•ν•˜κ²Œ λ™μž‘ν•˜λŠ” λͺ¨μŠ΅μ„ ν™•μΈν–ˆμ„ λ•Œ 큰 λ³΄λžŒμ„ λŠκΌˆλ‹€.

🀨 μ•„μ‰¬μš΄ 점

ν”„λ‘ νŠΈμ™€ μ—°κ²°ν•˜λŠ” κ³Όμ •μ—μ„œ, API μš”μ²­μ— ν•„μš”ν•œ 데이터λ₯Ό μΆ©λΆ„νžˆ κ³ λ €ν•˜μ§€ μ•Šμ€ 채 λ°±μ—”λ“œλ₯Ό λ¨Όμ € κ΅¬ν˜„ν•œ 탓에 λ§ˆμ§€λ§‰μ— DTOλ₯Ό κΈ‰ν•˜κ²Œ μˆ˜μ •ν•΄μ•Ό ν–ˆλ˜ 뢀뢄이 아쉬웠고, λ˜ν•œ ν”„λ‘ νŠΈ κ°œλ°œμ— μΆ©λΆ„ν•œ μ‹œκ°„μ„ νˆ¬μžν•˜μ§€ λͺ»ν•΄, λ°±μ—”λ“œμ—μ„œλŠ” 정상 λ™μž‘ν•˜λŠ” κΈ°λŠ₯이 λ§ˆμ§€λ§‰μ— ν”„λ‘ νŠΈμ—μ„œλŠ” μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•Šμ•˜λ˜ 것이 λ„ˆλ¬΄ 아쉬웠닀.

🎯 배운 점

  • 두 번의 ν”„λ‘œμ νŠΈλ₯Ό 거치며 MyBatis와 μŠ€ν”„λ§ λΆ€νŠΈμ— ν•œμΈ΅ 더 μ΅μˆ™ν•΄μ‘Œκ³ , 이전보닀 더 κΉ”λ”ν•˜κ³  ꡬ쑰적인 μ½”λ“œλ₯Ό μž‘μ„±ν•  수 있게 λ˜μ—ˆλ‹€.
  • μ˜ˆμ•½ κ°€λŠ₯ μ‹œκ°„ 생성/μˆ˜μ •/μ‚­μ œ, νŠΉμ • λ‚ μ§œ μ˜ˆμ•½ μˆ˜μ •/μ‚­μ œ 등은 ν…Œμ΄λΈ” κ°„ 연관관계도 많고 λ³΅μž‘ν•œ 쑰건듀도 μžˆμ—ˆλŠ”λ° 이 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©΄μ„œ μš”κ΅¬μ‚¬ν•­μ„ λ…Όλ¦¬μ μœΌλ‘œ μͺΌκ°œκ³  μˆœμ„œλ₯Ό μ •λ¦¬ν•˜λŠ” λŠ₯λ ₯이 ν–₯μƒλ˜μ—ˆλ‹€.

πŸ’‘ λ‹€μŒ ν”„λ‘œμ νŠΈμ— μ μš©ν•˜κ³  싢은 점

  • λ°±μ—”λ“œμ™€ ν”„λ‘ νŠΈ 쀑 ν•œμͺ½μ—λ§Œ μ‹œκ°„μ„ κ³Όλ„ν•˜κ²Œ μŸμ§€ μ•Šκ³ , 전체적인 κ· ν˜•μ„ λ§žμΆ”μ–΄ μ–‘μͺ½ λͺ¨λ‘μ— μΆ©λΆ„ν•œ μ‹œκ°„μ„ λ°°λΆ„ν•˜λ©° κ°œλ°œν•˜κ³  μ‹Άλ‹€.
  • κΈ°λŠ₯ κ΅¬ν˜„ 전에어떀 ν™”λ©΄μ—μ„œ μ–΄λ–€ 데이터가 ν•„μš”ν• μ§€, μ–΄λ–€ ν˜•νƒœλ‘œ 전달해야 ν”„λ‘ νŠΈκ°€ νŽΈν• μ§€λ₯Ό 미리 κ³ λ €ν•˜κ³  μ§„ν–‰ν•˜κ³  μ‹Άλ‹€.

ν—ˆμ°½ν›ˆ

πŸ“š ν”„λ‘œμ νŠΈμ—μ„œ 맑은 μ—­ν• 

  • μš”κ΅¬μ‚¬ν•­λͺ…μ„Έμ„œ 정리
  • νšŒμ˜μ‹€ CRUD κ΅¬ν˜„ 및 ν™”λ©΄ 연동

πŸ† μž˜ν•œ 점

μš”κ΅¬μ‚¬ν•­ β†’ API κ³„μ•½μœΌλ‘œ λΉ λ₯΄κ²Œ μ „ν™˜ν•˜μ—¬ λͺ…μ„Έμ„œμ— API κ·œκ²©μ„ μ΄ˆκΈ°μ— κ³ μ •ν•˜μ—¬, ν”„λ‘ νŠΈμ™€μ˜ 핑퐁을 μ€„μ˜€λ‹€. ν™”λ©΄μ—μ„œ μ‚¬μš©μž 흐름을 λ§€λ„λŸ½κ²Œ ν•˜μ—¬ μ‚¬μš©μžμ˜ UX κ²½ν—˜μ„ κ°œμ„ ν–ˆλ‹€.

🀨 μ•„μ‰¬μš΄ 점

μΆ©λΆ„ν•œ μ‹œκ°„μ΄ μžˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  일정관리λ₯Ό μ œλŒ€λ‘œ ν•˜μ§€ λͺ»ν•΄ λ””ν…ŒμΌμ„ 살리지 λͺ»ν•œ 뢀뢄이 맀우 μ»Έλ‹€.

🎯 배운 점

  • PM의 μ€‘μš”μ„±μ„ κΉ¨λ‹«κ²Œ λ˜μ—ˆλ‹€.
  • UI/UXλŠ” 데이터 νλ¦„μ˜ 거울둜 응닡 μƒνƒœΒ·μ—λŸ¬ λ©”μ‹œμ§€Β·ν•„λ“œλ³„ 검증을 μΌκ΄€λ˜κ²Œ λ‚΄λ €μ£Όλ©΄ ν”„λ‘ νŠΈλŠ” μžμ—°μŠ€λŸ½κ²Œ 쒋은 UXλ₯Ό λ§Œλ“€ 수 μžˆλ‹€λŠ” 것을 λ°°μ› λ‹€.

πŸ’‘ λ‹€μŒ ν”„λ‘œμ νŠΈμ— μ μš©ν•˜κ³  싢은 점

  • λ‹¨μœ„ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” μŠ΅κ΄€μ„ λ“€μ—¬ ν…ŒμŠ€νŠΈν•˜λŠ” μ‹œκ°„μ„ 쀄이고 μ‹Άλ‹€.
  • λ””μžμΈνŒ¨ν„΄μ„ 적극 ν™œμš©ν•˜μ—¬ μ€‘λ³΅λœ μ½”λ“œλ₯Ό 쀄이고 κΈ°λŠ₯ν™•μž₯을 μƒκ°ν•˜μ—¬ ν”„λ‘œμ νŠΈμ˜ 퀄리티λ₯Ό 높이고 μ‹Άλ‹€.

About

κ°•μ§€λ₯œ 🐹 κΉ€λ―Όμ§€ 🦦 κΉ€μ§„ν˜Έ 🏠 λ°°νƒœμš© 🦁 μ •μœ μ§„ πŸ₯Ÿ ν—ˆμ°½ν›ˆ 🐱

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors