[Spring] 3 Layer Architecture

μ΄μ€€μ˜Β·2023λ…„ 8μ›” 26일
0

🌱 Spring

λͺ©λ‘ 보기
8/18

ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  κΈ°λŠ₯을 ν•˜λ‚˜μ˜ Controller 클래슀둜 μ „λΆ€ μ²˜λ¦¬ν•œλ‹€λ©΄ 이후에 μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•˜κ±°λ‚˜, μˆ˜μ •ν•΄μ•Ό ν•  경우 μœ μ§€λ³΄μˆ˜μ— λ§Žμ€ 어렀움을 κ²ͺ을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ—„λ°€νžˆ 따지면 3Layer Architecture λŠ” μŠ€ν”„λ§μ—λ§Œ ν•΄λ‹Ήν•˜λŠ” 것이 μ•„λ‹ˆκ³ , λ³΄ν†΅μ˜ μ›Ή μ„œλΉ„μŠ€ λ°±μ—”λ“œ ꡬ쑰λ₯Ό ν‘œν˜„ν•©λ‹ˆλ‹€.

🌱 3 Layer Architecture

μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ„œλ²„μ˜ 처리 과정을 크게 Controller, Service, Repository 3개둜 뢄리해 놓은것을 3 Layer Architecture 이라고 ν•©λ‹ˆλ‹€.

μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ˜ μ–΄λ…Έν…Œμ΄μ…˜λ“€μ„ λ– μ˜¬λ¦¬λ©΄ @Controller,@Service,@Repository 등이 μ‚¬μš©λ˜μ—ˆλ˜ 것을 λ– μ˜¬λ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.

이제 ν•˜λ‚˜μ”© κ·Έ 역할듀을 정리해 보렀 ν•©λ‹ˆλ‹€.

1. Controller

  • ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ λ°›λŠ” κ³„μΈ΅μž…λ‹ˆλ‹€.
  • μš”μ²­κ³Ό 같이 λ“€μ–΄μ˜€λŠ” 데이터듀에 λŒ€ν•œ 검증도 μ§„ν–‰ν•©λ‹ˆλ‹€.
  • 이후 Service κ³„μΈ΅μ—μ„œ μ²˜λ¦¬ν•˜κ³  λ‚œ 결과물을 λ‹€μ‹œ client μ—κ²Œ λ°˜ν™˜ν•©λ‹ˆλ‹€.

2.Service

  • μ‹€μ œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 μ‹€ν–‰λ˜λŠ” κ³„μΈ΅μž…λ‹ˆλ‹€.
  • λ‚΄λΆ€μ—μ„œ μ—¬λŸ¬κ°€μ§€ κΈ°λŠ₯듀을 μ‹€ν–‰ν•˜μ§€λ§Œ DB에 데이터λ₯Ό μ €μž₯ν•˜κ±°λ‚˜ μ‘°νšŒν•  κ²½μš°μ—λŠ” Repository 계측을 ν†΅ν•΄μ„œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

3.Repository

  • DB에 κ΄€λ ¨λœ μž‘μ—…λ“€μ„ μ²˜λ¦¬ν•˜λŠ” κ³„μΈ΅μž…λ‹ˆλ‹€.
  • Service κ³„μΈ΅μ—μ„œ λ³΄λ‚΄μ£ΌλŠ” 데이터듀을 μ €μž₯ν•˜κ±°λ‚˜, 데이터 쑰회 μš”μ²­μ΄ 였면 ν•΄λ‹Ή κ³„μΈ΅μ—μ„œ 처리 ν›„ λ°˜ν™˜ν•΄ μ€λ‹ˆλ‹€.
profile
μž‘μ€ κ±ΈμŒμ΄λΌλ„ κΎΈμ€€νžˆ

0개의 λŒ“κΈ€