λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Java&Spring

[BankApp3] νŒ¨ν‚€μ§€ μ„€μ •

by JINJINC 2025. 1. 14.
728x90
λ°˜μ‘ν˜•
 πŸ’‘ ν•™μŠ΅ λͺ©ν‘œ
νŒ¨ν‚€μ§€ 및 폴더 ꡬ쑰 작기
νŒ¨ν‚€μ§€(package)λŠ” κ΄€λ ¨λœ 클래슀, μΈν„°νŽ˜μ΄μŠ€, μ„œλΈŒνŒ¨ν‚€μ§€ 등을 κ·Έλ£Ήν™”ν•˜μ—¬ μ •λ¦¬ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. Javaμ—μ„œ νŒ¨ν‚€μ§€λŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜μ—¬ 클래슀 이름 κ°„μ˜ μΆ©λŒμ„ λ°©μ§€ν•˜κ³ , 보닀 μ²΄κ³„μ μœΌλ‘œ μ½”λ“œλ₯Ό 쑰직화할 수 있게 ν•©λ‹ˆλ‹€. νŒ¨ν‚€μ§€λŠ” 물리적으둜 파일 μ‹œμŠ€ν…œμ˜ 디렉토리에 ν•΄λ‹Ήν•˜λ©°, νŒ¨ν‚€μ§€ λ‚΄μ˜ ν΄λž˜μŠ€λ‚˜ μΈν„°νŽ˜μ΄μŠ€λŠ” 이 디렉토리 내에 μœ„μΉ˜ν•©λ‹ˆλ‹€.
즉, μš°λ¦¬λŠ” μ£Ό μ–Έμ–΄ νŒŒμΌλ“€μ„ λͺ¨μ•„ λ‘λŠ” 폴더λ₯Ό νŒ¨ν‚€μ§€λΌ λΆ€λ₯΄κ² μŠ΅λ‹ˆλ‹€.

 

 

Spring boot WEB MVC ν”„λ ˆμž„ μ›Œν¬μ—μ„œλŠ” 

  • μ •μ μžμ›μ„ λ‘λŠ” νŒ¨ν‚€μ§€css, js, image νŒŒμΌλ“±μ„ λ„£μ–΄ λ‘˜ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • src/main/resource/static(정적 μžμ› 루트 폴더)
  • λ™μ μžμ›(JSP ν™œμš©)
    • 이 μ˜ˆμ œμ—μ„œλŠ” webapp/WEB-INF(λ³΄μ•ˆν΄λ”)/view/ ν˜•μ‹μœΌλ‘œ 생성할 μ˜ˆμ • μž…λ‹ˆλ‹€.
  • μžλ°” μ½”λ“œ
    • controller, service, dto, repos`itory/model, handler … λ“±μœΌλ‘œ 생성할 μ˜ˆμ • μž…λ‹ˆλ‹€.

 πŸ’‘ MVC νŒ¨ν„΄μ— λŒ€ν•œ κ°œλ… 정리

MVC(λͺ¨λΈ-λ·°-컨트둀러) νŒ¨ν„΄μ€ μ†Œν”„νŠΈμ›¨μ–΄ λ””μžμΈ 및 μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄ 쀑 ν•˜λ‚˜λ‘œ, 주둜 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI) κ°œλ°œμ—μ„œ 많이 μ‚¬μš©λ©λ‹ˆλ‹€. 이 νŒ¨ν„΄μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ„Έ 가지 μ£Όμš” ꡬ성 μš”μ†Œλ‘œ λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜κ³ , 각 ꡬ성 μš”μ†Œ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ μ‘°μ§ν™”ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

  1. λͺ¨λΈ(Model): λͺ¨λΈμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직, 데이터 및 μƒνƒœλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λͺ¨λΈμ€ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έ μž‘μš©ν•˜κ±°λ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‚΄λΆ€μ—μ„œ 데이터λ₯Ό μ²˜λ¦¬ν•˜λ©°, λ°μ΄ν„°μ˜ μƒνƒœλ₯Ό μœ μ§€ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. λͺ¨λΈμ€ 주둜 데이터λ₯Ό 닀루고 λΉ„μ¦ˆλ‹ˆμŠ€ 논리λ₯Ό μ •μ˜ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.
  2. λ·°(View): λ·°λŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 이것은 μ‚¬μš©μžμ—κ²Œ 정보λ₯Ό ν‘œμ‹œν•˜κ³  λͺ¨λΈμ—μ„œ κ°€μ Έμ˜¨ 데이터λ₯Ό μ‚¬μš©μžμ—κ²Œ μ‹œκ°μ μœΌλ‘œ ν‘œμ‹œν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. λ·°λŠ” μ‚¬μš©μžμ™€ μƒν˜Έ μž‘μš©ν•˜κ³  μ‚¬μš©μž μž…λ ₯을 μ²˜λ¦¬ν•˜μ§€ μ•ŠμœΌλ©°, λ‹¨μˆœνžˆ 데이터λ₯Ό ν‘œμ‹œν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
  3. 컨트둀러(Controller): μ»¨νŠΈλ‘€λŸ¬λŠ” λͺ¨λΈκ³Ό λ·° κ°„μ˜ μƒν˜Έ μž‘μš©μ„ μ‘°μ •ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. μ‚¬μš©μžμ˜ μž…λ ₯을 μ²˜λ¦¬ν•˜κ³  λͺ¨λΈμ„ μ—…λ°μ΄νŠΈν•˜λ©°, 이후에 λͺ¨λΈμ˜ λ³€κ²½ λ‚΄μš©μ„ λ°˜μ˜ν•˜μ—¬ λ·°λ₯Ό κ°±μ‹ ν•©λ‹ˆλ‹€. μ»¨νŠΈλ‘€λŸ¬λŠ” μ‚¬μš©μžμ™€ μƒν˜Έ μž‘μš©ν•˜κ³  μ‚¬μš©μž μž…λ ₯을 ν•΄μ„ν•˜μ—¬ λͺ¨λΈ 및 뷰에 λŒ€ν•œ μ μ ˆν•œ λ™μž‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

MVC νŒ¨ν„΄μ€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λΆ„λ¦¬ν•˜κ³  λͺ¨λ“ˆν™”ν•˜μ—¬ μœ μ§€ λ³΄μˆ˜μ„±μ„ 높이고 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ μ¦κ°€μ‹œν‚€λŠ” 데 도움이 λ©λ‹ˆλ‹€. λ˜ν•œ μ—¬λŸ¬ κ°œλ°œμžλ“€μ΄ λ™μ‹œμ— μž‘μ—…ν•˜λŠ” λŒ€κ·œλͺ¨ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ νŒ€ μž‘μ—…μ„ κ΄€λ¦¬ν•˜κ³  역할을 λΆ„λ‹΄ν•˜κΈ° μ‰½κ²Œ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€. 이 νŒ¨ν„΄μ€ μ½”λ“œμ˜ 가독성을 ν–₯μƒμ‹œν‚€κ³  디버깅을 μš©μ΄ν•˜κ²Œ λ§Œλ“€μ–΄ 개발 과정을 λ‹¨μˆœν™”ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

 

주의 : MVVM, MVP, VIPER λ“± λ‹€μ–‘ν•œ νŒ¨ν„΄μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 뭐가 더 쒋은 νŒ¨ν„΄μ΄λΌλŠ” κ°œλ…μ€

μ—†μŠ΅λ‹ˆλ‹€. λ§Œλ“€κ³ μž ν•˜λŠ” ν”„λ‘œμ νŠΈμ˜ 성격 및 μžμ›μ— 맞게 μ„ νƒν•΄μ„œ μ‚¬μš©ν•œλ‹€κ³  이해해 λ΄…μ‹œλ‹€

 

 

728x90
λ°˜μ‘ν˜•

'Java&Spring' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[bankApp04] μ½”λ”© μ»¨λ²€μ…˜  (0) 2025.01.14
[BankApp02] λ””μžμΈ μ‹œμ•ˆ  (0) 2025.01.14
[μ„€μΉ˜ 및 ν™˜κ²½μ„€μ •] STS μ„€μΉ˜  (0) 2025.01.14

λŒ“κΈ€