ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA Spring μ •μ˜ μ‚΄νŽ΄λ³΄κΈ°
    πŸ’» IT Study/Spring 2020. 5. 2. 16:16

    JAVA Spring

    μžλ°” μ—”ν„°ν”„λΌμ΄μ¦ˆ κ°œλ°œμ„ νŽΈν•˜κ²Œ ν•΄μ£ΌλŠ” μ˜€ν”ˆμ†ŒμŠ€ κ²½λŸ‰κΈ‰ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ ˆμž„μ›Œν¬ 

     

    μžλ°” μŠ€ν”„λ§μ˜ μ •μ˜λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ λœ―μ–΄λ΄„μœΌλ‘œμ¨ μžλ°” μŠ€ν”„λ§μ΄ 무엇을 μ˜λ―Έν•˜κ³  μ–΄λ–€ λͺ©ν‘œλ₯Ό κ°€μ§€λŠ” 지 μ•Œμ•„λ³Ό 것이닀.


    1.  μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ ˆμž„μ›Œν¬

    ν”„λ ˆμž„μ›Œν¬(Framework)

    일반적으둜 λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ ν”„λ ˆμž„μ›Œν¬λŠ” νŠΉμ • 업무 λΆ„μ•Όλ‚˜ ν•œ 가지 κΈ°μˆ μ— νŠΉν™”λœ λͺ©ν‘œλ₯Ό 가지고 λ§Œλ“€μ–΄μ§„λ‹€. 

    ν”„λ ˆμž„μ›Œν¬ μžμ²΄λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ • κ³„μΈ΅μ—μ„œ 주둜 λ™μž‘ν•˜λŠ” ν•œ 가지 기술 뢄야에 μ§‘μ€‘λœλ‹€. 

    κ·ΈλŸ¬λ‚˜ μŠ€ν”„λ§μ€ 'μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ ˆμž„μ›Œν¬'이닀. 

     

    μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ ˆμž„μ›Œν¬(Application Framework)

    νŠΉμ • κ³„μΈ΅μ΄λ‚˜ 기술, 업무 뢄야에 κ΅­ν•œλ˜μ§€ μ•Šκ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ „ μ˜μ—­μ„ ν¬κ΄„ν•˜λŠ” λ²”μš©μ μΈ ν”„λ ˆμž„ μ›Œν¬λ₯Ό λ§ν•œλ‹€.  

    μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발의 μ „ 과정을 λΉ λ₯΄κ³  νŽΈλ¦¬ν•˜λ©° 효율적으둜 μ§„ν–‰ν•˜λŠ”λ° 일차적 λͺ©ν‘œλ₯Ό 두고 μžˆλ‹€.  

     

     

    μŠ€ν”„λ§μ˜ 일차적인 쑴재 λͺ©μ μ€ 핡심 κΈ°μˆ μ— λ‹΄κΈ΄ ν”„λ‘œκ·Έλž˜λ° λͺ¨λΈμ„ μΌκ΄€λ˜κ²Œ μ μš©ν•΄μ„œ

    μ—”ν„°ν”„λΌμ΄μ¦ˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ „ 계측과 μ „ μ˜μ—­μ— μ „λž΅κ³Ό κΈ°λŠ₯을 μ œκ³΅ν•΄μ€ŒμœΌλ‘œμ¨ 

    μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ νŽΈλ¦¬ν•˜κ²Œ κ°œλ°œν•˜κ²Œ ν•΄μ£ΌλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ ˆμž„μ›Œν¬λ‘œ μ‚¬μš©λ˜λŠ” 것이닀. 

     


    2.  κ²½λŸ‰κΈ‰(lightweight)

    λ§Œλ“€μ–΄μ§„ μ½”λ“œκ°€ μ§€μ›ν•˜λŠ” κΈ°μˆ μˆ˜μ€€μ€ λΉ„μŠ·ν•˜λ”λΌλ„

    그것을 훨씬 λΉ λ₯΄κ³  κ°„νŽΈν•˜κ²Œ μž‘μ„±ν•˜κ²Œ ν•΄μ€ŒμœΌλ‘œμ¨ μƒμ‚°μ„±κ³Ό ν’ˆμ§ˆλ©΄μ—μ„œ μœ λ¦¬ν•˜λ‹€λŠ” 것.

     

     μŠ€ν”„링을 EJB(Enterprise JavaBeans)와 λΉ„κ΅ν–ˆμ„ λ•Œ κ²½λŸ‰κΈ‰μ˜ μ„±μ§ˆμ„ 가진닀. 

     

     EJBλŠ” κΈ°μ—…ν™˜κ²½μ˜ μ‹œμŠ€ν…œμ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ μ„œλ²„μΈ‘ μ»΄ν¬λ„ŒμΈ  λͺ¨λΈμ΄λ‹€. 즉 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ—…λ¬΄λ‘œμ§μ„ 가지고 μžˆλŠ” μ„œλ²„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‹€.  EJBλŠ” κΈ°μˆ μ— λŒ€ν•œ κ³Όλ„ν•œμš•μ‹¬μœΌλ‘œ 인해 κ°œλ°œν™˜κ²½, μš΄μš©μ„œλ²„, 개발과 λΉŒλ“œ, ν…ŒμŠ€νŠΈ κ³Όμ •, μž‘μ„±λœ μ½”λ“œ λͺ¨λ‘λ₯Ό 맀우 무겁고 λ³΅μž‘ν•˜κ²Œ λ§Œλ“€μ—ˆλ‹€. 이λ₯Ό λ™μž‘μ‹œν‚€κΈ° μœ„ν•΄μ„œλŠ” κ³ κ°€μ˜ 느리고 무거운 μžλ°”μ„œλ²„(WAS, Web Application Server)κ°€ ν•„μš”ν–ˆλ‹€. λ˜ν•œ 툴의 도움없이 닀루기 νž˜λ“  λ‚œν•΄ν•œ μ„€μ •νŒŒμΌ ꡬ쑰와 κΉŒλ‹€λ‘œμš΄ νŒ¨ν‚€μ§•, λΆˆνŽΈν•œ μ„œλ²„λ°°μΉ˜ λ“±μœΌλ‘œ μΈν•œ λΆ€λ‹΄λ•Œλ¬Έμ— κ³ κ°€μ˜ μ œν’ˆμœΌλ‘œ κ΅¬μ„±λœ μ œλŒ€λ‘œ 된 κ°œλ°œν™˜κ²½μ„ 갖좔지 μ•Šκ³ λŠ” κ°œλ°œν•˜κΈ°κ°€ νž˜λ“€μ—ˆλ‹€. 

     

     κ·Έμ— λΉ„ν•΄ μŠ€ν”„λ§μ€ λ‹¨μˆœν•œ μ„œλ²„ν™˜κ²½μΈ ν†°μΊ£(Tomcat)μ΄λ‚˜ μ œν‹°(Jetty)μ—μ„œλ„ μ™„λ²½ν•˜κ²Œ λ™μž‘ν•œλ‹€. λ‹¨μˆœν•œ 개발툴과 기본적인 κ°œλ°œν™˜κ²½μœΌλ‘œ μ—”ν„°ν”„λΌμ΄μ¦ˆ κ°œλ°œμ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” μ£Όμš”ν•œ κΈ°λŠ₯을 κ°–μΆ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜κΈ°μ— μΆ©λΆ„ν•˜λ‹€. 그런 가볍고 λ‹¨μˆœν•œ ν™˜κ²½μ—μ„œλ„ λ³΅μž‘ν•œ EJB와 κ³ κ°€μ˜ WASλ₯Ό κ°–μΆ°μ•Όλ§Œ κ°€λŠ₯ν–ˆλ˜ μ—”ν„°ν”„λΌμ΄μ¦ˆ 개발의 κ³ κΈ‰ κΈ°μˆ μ„ λŒ€λΆ€λΆ„ μ‚¬μš©ν•  수 μžˆλ‹€. 


    3.  μ˜€ν”ˆμ†ŒμŠ€(Open Source)

     μ˜€ν”ˆμ†ŒμŠ€λž€ μ†ŒμŠ€κ°€ λͺ¨λ‘μ—κ²Œ 곡개되고 νŠΉλ³„ν•œ λΌμ΄μ„ μŠ€λ₯Ό 취득할 ν•„μš”μ—†μ΄ μ–Όλ§ˆλ“ μ§€ κ°€μ Έλ‹€ 자유둭게 μ΄μš©ν•΄λ„ λœλ‹€λŠ” λœ»μ΄λ‹€. μ†ŒμŠ€λ₯Ό 자유둭게 μ—΄λžŒν•˜κ³  μžμ‹ μ˜ λͺ©μ μ— 맞게 μ‚¬μš©ν•  수 μžˆλ‹€. λΏλ§Œμ•„λ‹ˆλΌ, ν•„μš”ν•˜λ©΄ λ§˜λŒ€λ‘œ μˆ˜μ •ν•  수 있고, μˆ˜μ •λœ μ œν’ˆκ³Ό μ†ŒμŠ€λ₯Ό λ‹€μ‹œ 곡개적으둜 λ°°ν¬ν•˜λŠ” μžμœ λ„ ν—ˆμš©λœλ‹€. 

     

     μŠ€ν”„링에 적용된 μ˜€ν”ˆμ†ŒμŠ€ λΌμ΄μ„ μŠ€λŠ” μ˜€ν”ˆμ†ŒμŠ€ λΌμ΄μ„ μŠ€ μ€‘μ—μ„œλ„ 비ꡐ적 μ œμ•½μ΄ 적고 μ‚¬μš©μ΄ 맀우 자유둜운 편인 μ•„νŒŒμΉ˜ λΌμ΄μ„ μŠ€ 버전 2.0(Apache)이닀. μ•„νŒŒμΉ˜ λΌμ΄μ„ μŠ€μ— λ”°λ₯΄λ©΄ μŠ€ν”„λ§μ„ 상업적 λͺ©μ μ˜ μ œν’ˆμ— ν¬ν•¨μ‹œν‚€κ±°λ‚˜ λΉ„κ³΅κ°œ ν”„λ‘œμ νŠΈμ— 자유둭게 μ΄μš©ν•΄λ„ λœλ‹€. ν•„μš”ν•˜λ‹€λ©΄ μŠ€ν”„λ§ μ†ŒμŠ€μ½”λ“œλ₯Ό 가져와 μˆ˜μ •ν•΄μ„œ μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€. μˆ˜μ •μ„ ν–ˆλ”λΌκ³  μˆ˜μ •ν•œ μ†ŒμŠ€λ₯Ό κ³΅κ°œν•΄μ•Όν•˜λŠ” μ˜λ¬΄λŠ” μ—†λ‹€. 

     

     μ‹€μ œλ‘œ μŠ€ν”„λ§μ€ λŒ€ν˜• IT κΈ°μ—…μ˜ 사업뢀인 μŠ€ν”„λ§μ†ŒμŠ€(SpringSource)κ°€ κ·Έ κ°œλ°œμ„ μ „μ μœΌλ‘œ μ±…μž„μ§€κ³  μ „λ‹΄ν•˜κ³  μžˆλ‹€. 비둝 κ°œλ°œκ³Όμ •μ΄ κ³΅κ°œλ˜μ–΄ 있고, κ°„μ ‘μ μœΌλ‘œ κ°œλ°œμ— 영ν–₯을 쀄 수 μžˆλŠ” 의견 μ œμ‹œλ‚˜ 패치 제곡, 버그 μ‹ κ³ , 곡개적 토둠등이 κ°€λŠ₯ν•˜λ‹€κ³  할지라도 μ§μ ‘μ μœΌλ‘œ μŠ€ν”„λ§μ„ κ°œλ°œν•˜λŠ” 일은 νŠΉμ • 쑰직에 μ†Œμ†λœ 개발자둜 ν•œμ •λ˜μ–΄μžˆλ‹€. μ΄λ ‡κ²Œ κ°œλ°œνŒ€μ΄ νŒ¨μ‡„μ μœΌλ‘œ 운영되고 μžˆλ‹€λŠ” 사싀은 ν¬λ¦¬ν‹°μ»¬ν•œ μ‹œμŠ€ν…œ κ°œλ°œμ—λ„ μ‚¬μš©λ˜λŠ” μ—”ν„°ν”„λΌμ΄μ¦ˆ ν”„λ ˆμž„μ›Œν¬μΈ μŠ€ν”„λ§ μž…μž₯μ—μ„œλŠ” μ€‘μš”ν•œ μ˜λ―Έκ°€ μžˆλ‹€. 


    4. μžλ°” μ—”ν„°ν”„λΌμ΄μ¦ˆ κ°œλ°œμ„ νŽΈν•˜κ²Œ

    μ—”ν„°ν”„λΌμ΄μ¦ˆ 개발의 λ³΅μž‘ν•¨(근본적 문제점)을 μ œκ±°ν•΄λ‚΄κ³  μ§„μ •μœΌλ‘œ κ°œλ°œμ„ νŽΈν•˜κ²Œ ν•΄μ£ΌλŠ” ν•΄κ²°μ±… μ œμ‹œ 

     

     μŠ€ν”„링은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžλ“€μ΄ μŠ€ν”„λ§μ΄λΌλŠ” ν”„λ ˆμž„μ›Œν¬κ°€ μ œκ³΅ν•˜λŠ” 기술이 μ•„λ‹ˆλΌ μžμ‹ μ΄ μž‘μ„±ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ‘œμ§μ— 더 λ§Žμ€ 관심과 μ‹œκ°„μ„ 쏟게 ν•΄μ£Όλ‹€. λ˜ν•œ μ—”ν„°ν”„λΌμ΄μ¦ˆ 개발의 기술적인 λ³΅μž‘ν•¨κ³Ό 그에 λ”°λ₯Έ 수고λ₯Ό μ œκ±°ν•΄μ€€λ‹€, μ—”ν„°ν”„λΌμ΄μ¦ˆ κ°œλ°œμ—μ„œ ν•„μ—°μ μœΌλ‘œ μš”κ΅¬λ˜λŠ” 기술적인 μš”κ΅¬λ₯Ό μΆ©μ‘±ν•˜λ©΄μ„œλ„ κ°œλ°œμ„ λ³΅μž‘ν•˜κ²Œ λ§Œλ“€μ§€ μ•ŠλŠ”λ‹€. 


    μŠ€ν”„λ§μ˜ μ •μ˜λ₯Ό μ‚΄νŽ΄λ΄„μœΌλ‘œμ¨ 기본적인 νŠΉμ§•μ„ μ•Œ 수 μžˆμ—ˆλ‹€. 이 λ‹€μŒμž₯μ—λŠ” μŠ€ν”„λ§μ˜ 개발 μ² ν•™κ³Ό ꢁ극적 λͺ©ν‘œμ— λŒ€ν•˜μ—¬ μ†Œκ°œν•œλ‹€. 

     

     

    https://12bme.tistory.com/157

     

    [μŠ€ν”„λ§] μŠ€ν”„λ§μ΄λž€ 무엇인가?

    μŠ€ν”„λ§μ€ 기본적으둜 IoC와 DIλ₯Ό μœ„ν•œ μ»¨ν…Œμ΄λ„ˆλ‘œμ„œ λ™μž‘ν•˜μ§€λ§Œ κ·Έλ ‡λ‹€κ³  "μŠ€ν”„λ§μ€ 단지 IoC/DI ν”„λ ˆμž„μ›Œν¬λ‹€"λΌκ³ λŠ” 말할 수 μ—†μŠ΅λ‹ˆλ‹€. μŠ€ν”„λ§μ€ λ‹¨μˆœνžˆ IoC/DIλ₯Ό νŽΈν•˜κ²Œ μ μš©ν•˜λ„λ‘ λ•λŠ” 단계λ₯Ό οΏ½

    12bme.tistory.com

     

    'πŸ’» IT Study > Spring' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

    μŠ€ν”„λ§ λ™μž‘ 원리 이해  (0) 2021.11.06
    JAVA Spring의 λͺ©μ   (2) 2020.05.04

    λŒ“κΈ€

Designed by Tistory.