[Spring] MVC

0

06_framework 이둠

λͺ©λ‘ 보기
2/25
post-thumbnail

πŸ¦• Spring Framework κ°œμš”

πŸ“ Spring Framework λž€?

μžλ°” ν”Œλž«νΌμ„ μœ„ν•œ μ˜€ν”ˆ μ†ŒμŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ ˆμž„μ›Œν¬λ‘œ κ°„λ‹¨ν•˜κ²Œ μŠ€ν”„λ§(Spring)이라고도 λΆˆλ¦°λ‹€.
동적인 μ›Ή μ‚¬μ΄νŠΈλ₯Ό κ°œλ°œν•˜κΈ° μœ„ν•œ μ—¬λŸ¬ 가지 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κ³  있으며
λŒ€ν•œλ―Όκ΅­ κ³΅κ³΅κΈ°κ΄€μ˜ μ›Ή μ„œλΉ„μŠ€ 개발 μ‹œ μ‚¬μš©μ„ ꢌμž₯ν•˜κ³  μžˆλŠ”
μ „μžμ •λΆ€ ν‘œμ€€ ν”„λ ˆμž„μ›Œν¬(Spring MVC Project 기반 ν”„λ ˆμž„μ›Œν¬)의 기반 κΈ°μˆ λ‘œμ„œ 쓰이고 μžˆλ‹€.

πŸ“ Spring Framework 의 νŠΉμ§•β­β­β­πŸ’«

IOC
(Inversion of Control)
μ œμ–΄ λ°˜μ „
컨트둀의 μ œμ–΄κΆŒμ΄ κ°œλ°œμžκ°€ μ•„λ‹ˆλΌ ν”„λ ˆμž„μ›Œν¬μ— μžˆλ‹€λŠ” 뜻으둜 객체의 생성뢀터 λͺ¨λ“  생λͺ…μ£ΌκΈ°μ˜ κ΄€λ¦¬κΉŒμ§€ ν”„λ ˆμž„μ›Œν¬κ°€ μ£Όλ„ν•˜κ³  μžˆλ‹€. 객체λ₯Ό μƒμ„±ν•˜κ³ , 직접 ν˜ΈμΆœν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹ˆλΌ, λ§Œλ“€μ–΄λ‘” μžμ›μ„ ν˜ΈμΆœν•΄μ„œ μ‚¬μš©ν•œλ‹€.
DI
(Dependency Injection)
μ˜μ‘΄μ„± μ£Όμž…
μ„€μ • νŒŒμΌμ΄λ‚˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ 톡해 κ°μ²΄κ°„μ˜ 의쑴 관계λ₯Ό μ„€μ •ν•˜μ—¬ κ°œλ°œμžκ°€ 직접 μ˜μ‘΄ν•˜λŠ” 객체λ₯Ό 생성할 ν•„μš”κ°€ μ—†λ‹€.
POJO
기반 ν”„λ ˆμž„μ›Œν¬
(Plain Old Java Object)
J2EE, EJB와 같은 νŠΉμ • κΈ°μˆ μ΄λ‚˜ 라이브러리의 λ‚΄μš©μ„ 상속받아 클래슀λ₯Ό κ΅¬ν˜„ν•˜ 지 μ•Šκ³  일반적인 κΈ°λ³Έ κΈ°λŠ₯λ§Œμ„ 가진 μˆœμˆ˜ν•œ μžλ°” 객체λ₯Ό μ˜λ―Έν•œλ‹€. νŠΉμ • ν΄λž˜μŠ€μ— μ’…μ†λ˜μ§€ μ•ŠμœΌλ―€λ‘œ μžλ°”μ˜ 객체지ν–₯적 섀계가 μ‰¬μ›Œμ§€κ³ , μ½”λ“œκΈΈμ΄ κ°μ†Œ, μœ μ§€λ³΄μˆ˜μ„± 증가, κΈ°μ‘΄ Java API, 라이브러리 지원에 μš©μ΄ν•˜λ‹€.
Spring AOP
(Aspect Oriented Programming)
관점 지ν–₯ ν”„λ‘œκ·Έλž˜λ°
νŠΈλžœμž­μ…˜, λ‘œκΉ…, λ³΄μ•ˆ λ“± μ—¬λŸ¬ λͺ¨λ“ˆ, μ—¬λŸ¬ κ³„μΈ΅μ—μ„œ κ³΅ν†΅μœΌλ‘œ ν•„μš”λ‘œ ν•˜λŠ” κΈ°λŠ₯의 경우 ν•΄λ‹Ή κΈ°λŠ₯듀을 λΆ„λ¦¬ν•˜μ—¬ κ΄€λ¦¬ν•œλ‹€

🐢 Spring의 ꡬ성λͺ¨λ“ˆ

🐸 Spring MVC

Spring Framework μ—μ„œλŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ 화면을 ν‘œν˜„ν•˜κΈ° μœ„ν•œ View와 μ„œλΉ„μŠ€λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ 개발 둜
직 뢀뢄을 λ‚˜λˆ„λŠ” MVC2 νŒ¨ν„΄μ„ μ§€μ›ν•œλ‹€.
λ˜ν•œ Model, View, Controller μ‚¬μ΄μ˜ 의쑴 관계λ₯Ό DI μ»¨ν…Œμ΄λ„ˆμ—μ„œ κ΄€λ¦¬ν•˜μ—¬ μœ μ—°ν•œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„
μ‰½κ²Œ κ΅¬ν˜„ 및 κ°œλ°œν•  수 μžˆλ‹€

πŸ“ Spring MVC μš”μ²­μ²˜λ¦¬ κ³Όμ •β­β­β­πŸ’«

πŸ“ Spring MVC κ΅¬μ„±μš”μ†Œ

1) Dispatcher Servlet (λ°œμ†‘μž μ„œλΈ”λ¦Ώ)

: μš”μ²­μ„ 컨트둀러둜 전달 + 응닡

2) Handler Mapping (λ§€ν•‘μ²˜λ¦¬)

: μ–΄λ–€ μš”μ²­μ„ μ–΄λ–€ 클래슀/ λ©”μ†Œλ“œλ‘œ μ—°κ²°ν•˜λŠ” 지 μ œμ–΄ν•˜λŠ” 객체

3) View Resolever(λ·° 해결사)

: Controllerμ—μ„œ λ°˜ν™˜λœ λ¬Έμžμ—΄("common/main")
μ•ž 뒀에 경둜(/WEB-INF/views), ν™•μž₯자(.jsp)λ₯Ό λΆ™μ—¬μ„œ
jsp파일의 경둜λ₯Ό μ§€μ •ν•œ ν›„ forward(μš”μ²­ μœ„μž„)을 ν•˜λŠ” 객체

profile
λ‚˜λ₯Ό 죽이지 λͺ»ν•˜λŠ” 였λ₯˜λŠ” λ‚΄ μ½”λ“œλ₯Ό 더 κ°•ν•˜κ²Œ λ§Œλ“€μ§€γ…‹

0개의 λŒ“κΈ€