π[Spring] μ€νλ§ νλ μμν¬μ λν΄μβ¦
π μ€νλ§ νλ μμν¬λ?
νλΉμμΉ΄λ°λ―Έ-μ§§κ³ κ΅΄κ² λ°°μ°λ JSPμΉ νλ‘κ·Έλλ°κ³Ό μ€νλ§ νλ μμν¬λ₯Ό μ°Έκ³ νμ¬ μμ±νμμ΅λλ€. (νκ΅ μμ κ΅μ¬μ λλ€.)
μ€νλ§ νλ μμν¬
λ μλ° κΈ°λ°μ μ€νμμ€
νλ μμν¬μ΄λ€. Java EEμμ μꡬνλ μμ€μ 볡μ‘ν κΈ°λ₯μ Java EEλ₯Ό μ¬μ©νμ§ μκ³ κ΅¬ννκΈ° μν΄ λ§λ€μ΄μ‘λ€.
1. νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬
λ¨Όμ νλ μμν¬
μ λΌμ΄λΈλ¬λ¦¬
μ λν΄μ μκ³ κ°λ©΄ μ’μ κ² κ°μλ€.
νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬λ μλΉν λΉμ·νλ€.
1-1. νλ μμν¬
Framework(νλ μμν¬)
λ λΌλλ κΈ°λ°κ΅¬μ‘°λ₯Ό λ»νλ©°, μ μ΄μ μν
κ°λ
μ΄ μ μ©λ κΈ°μ μ΄λ€.
μ ν리μΌμ΄μ
κ°λ° μ νμμ μΈ μ½λ, DB μ°λκ³Ό κ°μ κΈ°λ₯λ€μ μ΄λ μ λ λΌλλ₯Ό μ 곡νμ¬ νΈλ¦¬νκ² κ°λ°μ ν μ μκ² λμμ£Όλ λꡬμ΄λ€.
νλ μμν¬λ λ§€μ° λ€μνκ² μ‘΄μ¬νλ€.
[μμ]
μΈμ΄ | νλ μμν¬ |
---|---|
Java | Spring |
Python | Django |
Python | Flask |
python | FastAPI |
Ruby | Ruby on Rails |
JS | Node.js |
1-2. λΌμ΄λΈλ¬λ¦¬
λΌμ΄λΈλ¬λ¦¬
λ μννΈμ¨μ΄λ₯Ό κ°λ°ν λ μ»΄ν¨ν° νλ‘κ·Έλ¨μ΄ μ¬μ©νλ λΉνλ°μ± μμμ λͺ¨μμΌλ‘, νΉμ κΈ°λ₯μ λͺ¨μλμ μ½λ, ν¨μλ€μ μ§ν©μ΄λ€.
μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬λ€μ μ½λ μμ± μμ νμ© κ°λ₯ν λꡬλ€μ΄λ€.
[μμ]
μΈμ΄ | λΌμ΄λΈλ¬λ¦¬ |
---|---|
Python | pip λͺ
λ Ήμ΄λ‘ μ€μΉν ν¨ν€μ§/λͺ¨λ |
C++ | νμ€ν νλ¦Ώ λΌμ΄λΈλ¬λ¦¬μΈ STL |
JS | React.js |
JS | Node.jsμμ npm μΌλ‘ μ€μΉν λͺ¨λ |
리μνΈλ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό λ§λ€κΈ° μν JavaScript λΌμ΄λΈλ¬λ¦¬μ΄λ€.
1-3. νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬μ μ°¨μ΄
μ΄ λμ μ°¨μ΄μ μ λ³Ό λ κ΄κ±΄μ μ μ΄ νλ¦μ κΆν
μ΄λ€.
λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν λ μ¬μ©μλ μ ν리μΌμ΄μ
μ½λμ νλ¦μ βμ§μ μ μ΄βν΄μΌ νλ€.
λ°λ©΄ νλ μμν¬λ μ ν리μΌμ΄μ
μ μ½λκ° νλ μμν¬μ μν΄ λμλλ―λ‘ βμλμ μΌλ‘ λμβνλ€.
2. μ€νλ§μ νΉμ§
- κ²½λ 컨ν
μ΄λ
- κ°μ²΄ μμ±, μλ©Έκ³Ό κ°μ μλͺ μ£ΌκΈ° κ΄λ¦¬
- μ€νλ§ μ»¨ν μ΄λλ‘λΆν° νμν κ°μ²΄λ₯Ό μ»μ΄μ¬ μ μμ
- μ μ΄μ μν μ§μ (Inversion of Control - IoC)
- λ©μλλ κ°μ²΄μ νΈμΆ μ μ΄κΆμ΄ μ¬μ©μκ° μλλΌ νλ μμν¬μ μμ΄μ νμμ λ°λΌ μ€νλ§μμ μ¬μ©μμ μ½λ νΈμΆ κ°λ₯
- μμ‘΄μ± μ£Όμ
(Dependency Injection - DI)
- κ°κ°μ κ³μΈ΅μ΄λ μλΉμ€ κ°μ μμ‘΄μ±μ΄ μ‘΄μ¬ν κ²½μ° νλ μμν¬κ° μλ‘ μ°κ²°
- κ΄μ μ§ν₯ νλ‘κ·Έλλ° μ§μ (Aspect Object Programming - AOP)
- νΈλμμ μ΄λ λ‘κΉ , 보μκ³Ό κ°μ΄ μ¬λ¬ λͺ¨λμμ 곡ν΅μ μΌλ‘ μ¬μ©νλ κΈ°λ₯μ κ²½μ° ν΄λΉ κΈ°λ₯μ λΆλ¦¬νμ¬ κ΄λ¦¬
- POJO(Plain Old Java Object) λ°©μ
- λ³λμ νλ μμν¬ μμ΄ Java EEλ₯Ό μ¬μ©ν λμ λΉν΄ μΈν°νμ΄μ€λ₯Ό μ§μ ꡬννκ±°λ μμλ°μ νμκ° μμ΄ κΈ°μ‘΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ§μνκΈ° μ©μ΄νκ³ κ°μ²΄κ° κ°λ²Όμ
- μ¦, getter/setterλ₯Ό κ°μ§ λ¨μν μλ° κ°μ²΄λ₯Ό λ§ν¨
2-1. μ€νλ§λΆνΈλ?
μ€νλ§λΆνΈ(Spring Boot)
λ μ€νλ§μ λνμ μΈ νλ‘μ νΈ λͺ¨λΈ μ€ νλμΈλ°, κΈ°μ‘΄μ μ€νλ§λ³΄λ€ κ°νΈνκ² μ€νλ§ νλ‘μ νΈλ₯Ό μμν μ μλλ‘ ν΄μ€λ€.
κΈ°μ‘΄ μ€νλ§μ μμ λ¨κ³μμ μ΄κΈ° μ€μ , μμ‘΄μ± λ±μ μ΄λ³΄μλ€μκ²λ λ€μ μ΄λ €μΈ μ μλ λΆλΆλ€μ΄ μ‘΄μ¬νμ§λ§, μ€νλ§λΆνΈμμλ μ΄λ₯Ό μλμ μΌλ‘ ν΄κ²°ν΄μ£Όμ΄ λ³΄λ€ νΈλ¦¬νκ² μ¬μ©ν μ μλ€.
λν ν°μΊ£, μ ν°μ κ°μ WAS λ΄μ₯, λ³λμ μΉ μλ² μ€μΉλ μ€ν μμ΄ μ€νλ§λΆνΈ μ ν리μΌμ΄μ μ μ€ννλ κ²μΌλ‘ μΉ μ ν리μΌμ΄μ μ ꡬλμ΄ κ°λ₯νλ€.
λκΈλ¨κΈ°κΈ°