allthingsareπŸ…ΏοΈ.com Books ⬅️ Back allthingsare

λ°μ΄ν„°λ² μ΄μŠ€κ°€ ν•„μš”ν•œ 이유

1. λ°μ΄ν„°μ˜ 체계적인 관리

λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ§Žμ€ μ–‘μ˜ 데이터λ₯Ό μ²΄κ³„μ μœΌλ‘œ μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•˜λ‹€.
λ‹¨μˆœνžˆ μ—‘μ…€ νŒŒμΌμ΄λ‚˜ ν…μŠ€νŠΈ νŒŒμΌμ— μ €μž₯ν•  μˆ˜λ„ μžˆμ§€λ§Œ, λ°μ΄ν„°μ˜ 양이 컀질수둝 관리가 μ–΄λ €μ›Œμ§„λ‹€.
예λ₯Ό λ“€μ–΄ 수천 λͺ…μ˜ 학생 정보λ₯Ό νŒŒμΌμ— 적어두면, νŠΉμ • 학생을 μ°Ύκ±°λ‚˜ 정보λ₯Ό μˆ˜μ •ν•˜λŠ” 데 λ§Žμ€ μ‹œκ°„μ΄ κ±Έλ¦°λ‹€.
λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ΄λŸ¬ν•œ 데이터λ₯Ό κ΅¬μ‘°ν™”ν•˜μ—¬ λΉ λ₯΄κ²Œ κ²€μƒ‰ν•˜κ³  μˆ˜μ •ν•  수 μžˆλ„λ‘ λ•λŠ”λ‹€.

2. λ°μ΄ν„°μ˜ 쀑볡과 였λ₯˜ λ°©μ§€

νŒŒμΌμ— 데이터λ₯Ό μ €μž₯ν•˜λ©΄ λ™μΌν•œ 정보가 μ—¬λŸ¬ 번 기둝될 수 있고, κ·Έ κ³Όμ •μ—μ„œ μ˜€νƒ€λ‚˜ λΆˆμΌμΉ˜κ°€ 생길 수 μžˆλ‹€.
λ°μ΄ν„°λ² μ΄μŠ€λŠ” 쀑볡을 μ΅œμ†Œν™”ν•˜κ³  일관성을 μœ μ§€ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€.
예λ₯Ό λ“€μ–΄ ν•œ ν•™μƒμ˜ μ „ν™”λ²ˆν˜Έλ₯Ό λ³€κ²½ν•˜λ©΄, λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” μ—°κ²°λœ λͺ¨λ“  정보가 μžλ™μœΌλ‘œ κ°±μ‹ λ˜μ–΄ λͺ¨μˆœμ΄ 생기지 μ•ŠλŠ”λ‹€.

3. λ™μ‹œμ— μ—¬λŸ¬ μ‚¬λžŒμ΄ μ‚¬μš© κ°€λŠ₯

ν˜„λŒ€μ˜ μ‹œμŠ€ν…œμ€ ν•œ λͺ…이 μ•„λ‹ˆλΌ μ—¬λŸ¬ λͺ…이 λ™μ‹œμ— 데이터λ₯Ό μ‚¬μš©ν•œλ‹€.
λ§Œμ•½ λ‹¨μˆœν•œ 파일둜 κ΄€λ¦¬ν•œλ‹€λ©΄, ν•œ μ‚¬λžŒμ΄ νŒŒμΌμ„ μ—΄κ³  μžˆμ„ λ•Œ λ‹€λ₯Έ μ‚¬λžŒμ€ μˆ˜μ •ν•  수 μ—†μ–΄ 좩돌이 λ°œμƒν•œλ‹€.
λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ™μ‹œμ— 데이터λ₯Ό 읽고 μ“Έ 수 μžˆλ„λ‘ μ•ˆμ „ν•œ ν™˜κ²½μ„ μ œκ³΅ν•œλ‹€.

4. λ³΄μ•ˆκ³Ό κΆŒν•œ 관리

λ°μ΄ν„°λŠ” λ‹¨μˆœνžˆ μ €μž₯만 ν•˜λ©΄ λ˜λŠ” 것이 μ•„λ‹ˆλΌ λ³΄ν˜Έλ˜μ–΄μ•Ό ν•œλ‹€.
λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ‚¬μš©μžλ§ˆλ‹€ μ ‘κ·Ό κΆŒν•œμ„ μ„€μ •ν•  수 μžˆλ‹€.
예λ₯Ό λ“€μ–΄ μ–΄λ–€ μ‚¬μš©μžλŠ” 쑰회만 κ°€λŠ₯ν•˜κ³ , λ‹€λ₯Έ μ‚¬μš©μžλŠ” μˆ˜μ •κΉŒμ§€ κ°€λŠ₯ν•˜κ²Œ ν•  수 μžˆλ‹€.
이λ₯Ό 톡해 μ€‘μš”ν•œ 정보가 λ¬΄λΆ„λ³„ν•˜κ²Œ λ…ΈμΆœλ˜κ±°λ‚˜ μˆ˜μ •λ˜λŠ” 것을 막을 수 μžˆλ‹€.

5. λŒ€κ·œλͺ¨ μ„œλΉ„μŠ€ 운영의 ν•„μˆ˜ μš”μ†Œ

μ›Ήμ‚¬μ΄νŠΈ, λͺ¨λ°”일 μ•±, κΈ°μ—… μ‹œμŠ€ν…œ λ“± λŒ€λΆ€λΆ„μ˜ μ†Œν”„νŠΈμ›¨μ–΄ μ„œλΉ„μŠ€λŠ” λ°©λŒ€ν•œ μ–‘μ˜ 데이터λ₯Ό 닀룬닀.
νšŒμ› κ°€μž…, κ²Œμ‹œκΈ€ μž‘μ„±, μ£Όλ¬Έ λ‚΄μ—­, 결제 기둝 λ“± λͺ¨λ“  것이 데이터닀.
μ΄λŸ¬ν•œ 데이터λ₯Ό μ•ˆμ •μ μ΄κ³  효율적으둜 닀루기 μœ„ν•΄μ„œλŠ” λ°˜λ“œμ‹œ λ°μ΄ν„°λ² μ΄μŠ€κ°€ ν•„μš”ν•˜λ‹€.


μ •λ¦¬ν•˜λ©΄, λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ§Žμ€ 데이터λ₯Ό λΉ λ₯΄κ³  μ •ν™•ν•˜κ²Œ κ΄€λ¦¬ν•˜κ³ , μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ™μ‹œμ— μ•ˆμ „ν•˜κ²Œ ν™œμš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” 도ꡬ이닀.
λ”°λΌμ„œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ œλŒ€λ‘œ μš΄μ˜ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ°μ΄ν„°λ² μ΄μŠ€κ°€ ν•„μˆ˜μ μ΄λΌκ³  ν•  수 μžˆλ‹€.





πŸ”Ή 전체 흐름 ν•œ 쀄 μš”μ•½

β€œν™”λ©΄(ν”„λ‘ νŠΈ) β†’ λ¬Έμ§€κΈ°(컨트둀러) β†’ 일꾼(μ„œλΉ„μŠ€) β†’ 창ꡬ(리포지토리) β†’ μ°½κ³ (DB)”
데이터가 이 길을 따라 ν˜λŸ¬λ‹€λ‹Œλ‹€κ³  μ΄ν•΄ν•˜λ©΄ λœλ‹€.


1. ν”„λ‘ νŠΈμ—”λ“œ (μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€)

  • λΉ„μœ : β€œμ‹λ‹Ήμ—μ„œ μ†λ‹˜μ΄ 메뉴λ₯Ό κ³ λ₯΄λŠ” μž₯면”

  • μ‚¬μš©μžλŠ” λ²„νŠΌμ„ ν΄λ¦­ν•˜κ±°λ‚˜, 글을 μž‘μ„±ν•΄μ„œ μ œμΆœν•œλ‹€.

  • μ΄λ•Œ μ‹€μ œλ‘œλŠ” λΈŒλΌμš°μ €κ°€ HTTP μš”μ²­μ„ λ§Œλ“€μ–΄ μ„œλ²„(Spring Boot)둜 보낸닀.

  • 예) β€œ/user/join” μ£Όμ†Œλ‘œ νšŒμ›κ°€μž… μš”μ²­μ„ 전솑.

핡심: ν”„λ‘ νŠΈλŠ” 데이터λ₯Ό λ‹΄μ•„ μ„œλ²„μ— μš”μ²­μ„ λ˜μ§€λŠ” μ—­ν• .


2. 컨트둀러 (λ¬Έμ§€κΈ°, μ ‘μˆ˜μ°½κ΅¬)

  • λΉ„μœ : β€œμ‹λ‹Ήμ—μ„œ 주문을 λ°›λŠ” 웨이터”

  • μ»¨νŠΈλ‘€λŸ¬λŠ” URL을 보고 β€œμ–΄λ–€ μ„œλΉ„μŠ€λ‘œ 이 주문을 λ„˜κΈΈμ§€β€ κ²°μ •ν•œλ‹€.

  • 예) β€œ/user/join” β†’ UserController.joinUser()

  • μ—¬κΈ°μ„œ 데이터 검증(ν˜•μ‹ λ§žλŠ”μ§€, λΉ μ§„ 게 μ—†λŠ”μ§€)도 1차둜 μ²΄ν¬ν•œλ‹€.

핡심: μ»¨νŠΈλ‘€λŸ¬λŠ” λ“€μ–΄μ˜¨ μš”μ²­μ„ λΆ„λ₯˜ν•΄μ„œ μ•Œλ§žμ€ μ„œλΉ„μŠ€λ‘œ 전달.


3. μ„œλΉ„μŠ€ (λΉ„μ¦ˆλ‹ˆμŠ€ 둜직, 일꾼)

  • λΉ„μœ : β€œμ£Όλ°©μ—μ„œ μ‹€μ œλ‘œ μš”λ¦¬ν•˜λŠ” μš”λ¦¬μ‚¬β€

  • μ„œλΉ„μŠ€λŠ” β€œλ¬΄μ—‡μ„ μ–΄λ–»κ²Œ μ²˜λ¦¬ν• μ§€β€ μ •ν•˜λŠ” κ³³.

  • 예) νšŒμ›κ°€μž… μ„œλΉ„μŠ€λΌλ©΄:

    • λΉ„λ°€λ²ˆν˜Έ μ•”ν˜Έν™”

    • 쀑볡 이메일 μžˆλŠ”μ§€ 확인

    • μœ μ € 객체 생성

  • DB에 μ ‘κ·Όν•΄μ•Ό ν•  μˆœκ°„μ΄ 였면, μ„œλΉ„μŠ€λŠ” 리포지토리에 일을 μ‹œν‚¨λ‹€.

핡심: μ„œλΉ„μŠ€λŠ” 업무 κ·œμΉ™κ³Ό 절차의 쀑심.


4. 리포지토리 (데이터 창ꡬ)

  • λΉ„μœ : β€œμ‹λ‹Ήμ—μ„œ μ‹μžμž¬ μ°½κ³  κ΄€λ¦¬μžβ€

  • μ‹€μ œλ‘œ DB에 말을 κ±Έμ–΄ μ €μž₯/쑰회/μˆ˜μ •/μ‚­μ œλ₯Ό μˆ˜ν–‰ν•œλ‹€.

  • μ„œλΉ„μŠ€λŠ” 직접 DB와 λŒ€ν™”ν•˜μ§€ μ•ŠλŠ”λ‹€. λ°˜λ“œμ‹œ 리포지토리λ₯Ό 톡해야 ν•œλ‹€.

  • μŠ€ν”„λ§μ—μ„  JpaRepository 같은 κ±Έ μ“°λ©΄ 기본적인 CRUDλŠ” μžλ™μœΌλ‘œ λœλ‹€.

핡심: λ¦¬ν¬μ§€ν† λ¦¬λŠ” μ„œλΉ„μŠ€μ™€ DB μ‚¬μ΄μ˜ 닀리.


5. λ°μ΄ν„°λ² μ΄μŠ€ (μ°½κ³ , MySQL)

  • λΉ„μœ : β€œμ‹λ‹Ή λ’·λ§ˆλ‹Ήμ— μžˆλŠ” κ±°λŒ€ν•œ 냉μž₯고”

  • MySQL 같은 RDBMSκ°€ μ‹€μ œ 데이터 λ³΄κ΄€μ†Œ.

  • ν…Œμ΄λΈ”(ν‘œ) ꡬ쑰둜 데이터λ₯Ό μ €μž₯.

  • 예) users ν…Œμ΄λΈ”μ— id, email, password, created_at 같은 열이 μžˆλ‹€.

  • μš”μ²­μ΄ 였면 SQL이 μ‹€ν–‰λ˜κ³ , κ²°κ³Όλ₯Ό 리포지토리 β†’ μ„œλΉ„μŠ€ β†’ 컨트둀러 β†’ ν”„λ‘ νŠΈλ‘œ λ˜λŒλ €μ€€λ‹€.

핡심: DBλŠ” 데이터가 μ‚΄μ•„μžˆλŠ” μ§‘.