μ 체 κΈ (135) μΈλ€μΌν 리μ€νΈν 4.1 Spring MVC 1) Spring MVCλ? MVCλ? MVCλ Model-View-Controllerμ μ½μμ λλ€. μλλ μ λ‘μ€ μ°κ΅¬μμμ μΌνλ νΈλ€Όκ·Έλ² λ¦°μ¦μ»€κ·Έκ° μ²μμΌλ‘ μκ°ν κ°λ μΌλ‘, λ°μ€νΈν± μ΄ν리μΌμ΄μ μ©μΌλ‘ κ³ μλμμ΅λλ€. Model : λͺ¨λΈμ λ·°κ° λ λλ§νλλ° νμν λ°μ΄ν°μ λλ€. μλ₯Ό λ€μ΄ μ¬μ©μκ° μμ²ν μν λͺ©λ‘μ΄λ, μ£Όλ¬Έ λ΄μμ΄ μ΄μ ν΄λΉν©λλ€. View : μΉ μ ν리μΌμ΄μ μμ λ·°(View)λ μ€μ λ‘ λ³΄μ΄λ λΆλΆμ΄λ©°, λͺ¨λΈμ μ¬μ©ν΄ λ λλ§μ ν©λλ€. λ·°λ JSP, JSF, PDF, XMLλ±μΌλ‘ κ²°κ³Όλ₯Ό ννν©λλ€. Controller : 컨νΈλ‘€λ¬λ μ¬μ©μμ μ‘μ μ μλ΅νλ μ»΄ν¬λνΈμ λλ€. 컨νΈλ‘€λ¬λ λͺ¨λΈμ μ λ°μ΄νΈνκ³ , λ€λ₯Έ μ‘μ μ μνν©λλ€. MVC Model 1 μν€ν μ² λΈλΌμ°μ κ° μμ²μ νκ².. 3.3 Spring JDBC 1) Spring JDBC μκ° Spring JDBC JDBC νλ‘κ·Έλλ°μ 보면 λ°λ³΅λλ κ°λ° μμκ° μμ΅λλ€. μ΄λ¬ν λ°λ³΅μ μΈ μμλ κ°λ°μλ₯Ό μ§λ£¨νκ² λ§λλλ€. κ°λ°νκΈ° μ§λ£¨ν JDBCμ λͺ¨λ μ μμ€ μΈλΆμ¬νμ μ€νλ§ νλ μμν¬κ° μ²λ¦¬ν΄μ€λλ€. κ°λ°μλ νμν λΆλΆλ§ κ°λ°νλ©΄ λ©λλ€. Spring JDBC - κ°λ°μκ° ν΄μΌ ν μΌμ? Spring JDBC ν¨ν€μ§ org.springframework.jdbc.core JdbcTemplate λ° κ΄λ ¨ Helper κ°μ²΄ μ 곡 org.springframework.jdbc.datasource DataSourceλ₯Ό μ½κ² μ κ·ΌνκΈ° μν μ νΈ ν΄λμ€, νΈλμ μ 맀λμ Έ λ° λ€μν DataSource ꡬνμ μ 곡 org.springframework.jdbc.object.. 3.2 Spring Test 1) Test κ°μ 1. ν μ€ν μ΄λ 무μμΈκ°? μꡬνλ μμ€μ λ§μ‘±νλμ§ νμΈνκΈ° μν΄ κ²°ν¨μ λ°κ²¬νλ κ³Όμ μ΄λΌκ³ λ§ν μ μμ΅λλ€. μ ν΅μ μΈ ν μ€ν κ°λ μ μμ© νλ‘κ·Έλ¨ λλ μμ€ν μ΄ μ μλνλμ§ νμΈνλ κ²μ λλ€. νμ¬μ ν μ€ν κ°λ μ μ¬μ©μμ κΈ°λ μμ€κ³Ό μꡬ μ¬νμ λ§κ² ꡬνλκ³ λμνλμ§λ₯Ό νμΈνκ³ μ΄λ₯Ό ν΅ν΄ κ²°ν¨μ λ°κ²¬νκ³ , μ΅μ’ μ μΌλ‘ κ²°ν¨ λ°μ΄ν°λ₯Ό κ·Όκ°μΌλ‘ κ°λ° νλ‘μ νΈμ 리μ€ν¬(Risk)μ λν μμΉμ μΈ νλ¨ κ·Όκ±°λ₯Ό μμ¬ κ²°μ κΆμ(νλ‘μ νΈ κ΄λ¦¬μ λ±)μκ² μ λ¬νλ κ²μ λ§ν©λλ€. κ°λ° νλ‘μ νΈ μ΄κΈ°μ κ°λ° μ€κ° μ°μΆλ¬Ό(Work products)μ ν μ€ν κ΄μ μμ 리뷰(Review)νκ³ , ν μ€νΈ μΌμ΄μ€λ₯Ό 미리 λ§λλ κ³Όμ μμ κ²°ν¨μ λ°κ²¬νλ μμ (κ²°ν¨ μλ°© νλ)λ ν μ€ν νλμ μ€μν λΆ.. 3.1 Spring Core λͺ¨λ μ€μ΅ μ½λ(+μ£Όμ) λ§ν¬: νλ‘μ νΈλͺ : diexam01 1) Springμ΄λ? Spring Frameworkλ? μν°νλΌμ΄μ¦κΈ μ ν리μΌμ΄μ μ ꡬμΆν μ μλ κ°λ²Όμ΄ μ루μ μ΄μ, μμ€-μ€ν-μ(One-Stop-Shop) μνλ λΆλΆλ§ κ°μ Έλ€ μ¬μ©ν μ μλλ‘ λͺ¨λνκ° μ λμ΄ μμ΅λλ€. IoC 컨ν μ΄λμ λλ€. μ μΈμ μΌλ‘ νΈλμμ μ κ΄λ¦¬ν μ μμ΅λλ€. μμ ν κΈ°λ₯μ κ°μΆ MVC Frameworkλ₯Ό μ 곡ν©λλ€. AOP μ§μν©λλ€. μ€νλ§μ λλ©μΈ λ Όλ¦¬ μ½λμ μ½κ² λΆλ¦¬λ μ μλ κ΅¬μ‘°λ‘ λμ΄ μμ΅λλ€. νλ μ μν¬ λͺ¨λ μ€νλ§ νλ μμν¬λ μ½ 20κ°μ λͺ¨λλ‘ κ΅¬μ±λμ΄ μμ΅λλ€. νμν λͺ¨λλ§ κ°μ Έλ€ μ¬μ©ν μ μμ΅λλ€. AOPμ μΈμ€νΈλ£¨λ©ν μ΄μ (Instrumentation) spring-AOP : A.. 2.6 JSTL & EL 1) EL(Expression Language) νν μΈμ΄μ κΈ°λ³Έ κ°μ²΄ μ¬μ© μ νν μΈμ΄μ λ°μ΄ν° νμ λΆλ¦¬μΈ νμ - trueμ false μ μνμ - 0~9λ‘ μ΄λ£¨μ΄μ§ μ μ κ° μμμ κ²½μ° '-'κ° λΆμ μ€μνμ - 0~9λ‘ μ΄λ£¨μ΄μ Έ μμΌλ©°, μμμ ('.')μ μ¬μ©ν μ μκ³ , 3.24e3κ³Ό κ°μ΄ μ§μνμΌλ‘ νν κ°λ₯νλ€. λ¬Έμμ΄ νμ - λ°μ΄ν( ' λλ" )λ‘ λλ¬μΌ λ¬Έμμ΄. λ§μ½ μμ λ°μ΄ν(')λ₯Ό μ¬μ©ν΄μ ννν κ²½μ° κ°μ ν¬ν¨λ μμ λ°μ΄νλ \' μ κ°μ΄ \ κΈ°νΈμ ν¨κ» μ¬μ©ν΄μΌ νλ€. \ κΈ°νΈ μ체λ \\ λ‘ νμνλ€. λ νμ - null κ°μ²΄ μ κ·Ό κ·μΉ νν 1μ΄λ νν 2κ° nullμ΄λ©΄ nullμ λ°ννλ€. νν1μ΄ MapμΌ κ²½μ° νν2λ₯Ό keyλ‘ν κ°μ λ°ννλ€. νν1μ΄ Lis.. 2.5 Scope 1) scopeλ? 4κ°μ§ Scope page : νμ΄μ§ λ΄μμ μ§μλ³μμ²λΌ μ¬μ© pageContext (μμ γ ) Request : httpμμ²μ WASκ° λ°μμ μΉ λΈλΌμ°μ μκ² μλ΅ν λκΉμ§ λ³μκ° μ μ§λλ κ²½μ° μ¬μ© νλμ μμ²μ΄ λ€μ΄μμ μλ΅μ΄ λκ° λκΉμ§ HttpServletRequest Session : μΉ λΈλΌμ°μ λ³λ‘ λ³μκ° κ΄λ¦¬λλ κ²½μ° μ¬μ© session κ°μ²΄κ° μμ±λμ΄ μλ©Έλ λκΉμ§ (μμ²μ΄ νλκ° μλλΌ μ¬λ¬ κ°μ μμ²μ΄ λ€μ΄μλ κ³μ λ¨μμλ) μνμ μ§λ₯Ό ν λ μ¬μ©νλ scope, HttpSession Application : μΉ μ΄ν리μΌμ΄μ μ΄ μμλκ³ μ’ λ£λ λκΉμ§ λ³μκ° μ μ§λλ κ²½μ° μ¬μ© νλμ μ ν리μΌμ΄μ μ΄ μμ±λμ΄ μ΄κ² μλ©Έλ λκΉμ§ ServletContext (μμ γ .. 2.4 JSP 1) JSPλ? κ²°κ³Όλ₯Ό μΆλ ₯ν λͺ©μ μΌλ‘ μ¬μ© jspλ μμ²΄κ° λμνλ κ² μλλΌ λͺ¨λ jsp μλΈλ¦ΏμΌλ‘ λ°λμ΄μ λμν΄μ jspλ WebContent μμ μμ. μμ λλ ν 리λ₯Ό λ§λ€μ΄λ λκ³ . 맨 μ μ§μλ¬Έ, μ΄λ° μ§μλ₯Ό λ£λ κ²μ JSPλ₯Ό μ€ννλ WAS λ° κΊ½μ μ μλ° μ½λ 1λΆν° 10κΉμ§μ ν© : JSP λ±μ₯ λ°°κ²½ λ§μ΄ν¬λ‘μννΈμμ ASP(Active Server Page)λΌλ μ½κ² μΉμ κ°λ°ν μ μλ μ€ν¬λ¦½νΈ(script) μμ§μ λ°νν¨ (1998λ ) 1997λ μ λ°νλ μλΈλ¦Ώμ ASPμ λΉνμ¬ μλμ μΌλ‘ κ°λ° λ°©μμ΄ λΆνΈν¨ ASPμ λννκΈ° μνμ¬ 1999λ μ¬λ§μ΄ν¬λ‘μμ€ν μ¦μμ JSPλ₯Ό λ°ν JSPλ μ€μ λ‘ μλΈλ¦Ώ κΈ°μ μ μ¬μ© νμ jsp λ μλΈλ¦ΏμΌλ‘ λ°λκ³ μ΄ λ°λ μλΈλ¦Ώμ΄ μ€νλλ .. 2.3 Servlet 1) Servlet μ΄λ? dynamic web μ€λ₯ https://skypotato-note.tistory.com/136 https://stackoverflow.com/questions/4119448/the-import-javax-servlet-cant-be-resolved μλ° μΉ μ΄ν리μΌμ΄μ (Java Web Application) WASμ μ€μΉ(deploy)λμ΄ λμνλ μ΄ν리μΌμ΄μ μ λλ€. μλ° μΉ μ΄ν리μΌμ΄μ μλ HTML, CSS, μ΄λ―Έμ§, μλ°λ‘ μμ±λ ν΄λμ€(Servletλ ν¬ν¨λ¨, package, μΈν°νμ΄μ€ λ±), κ°μ’ μ€μ νμΌ λ±μ΄ ν¬ν¨λ©λλ€. μλ° μΉ μ΄ν리μΌμ΄μ μ ν΄λ ꡬ쑰 web.xml νμΌ μ€μνλ€ μ λ μλΈλ¦Ώμ΄λ? μλ° μΉ μ΄ν리μΌμ΄μ μ ꡬμ±μμ μ€ λμ μΈ μ²λ¦¬λ₯Ό νλ νλ‘κ·Έλ¨μ.. 2.2 μΉ κ°λ°νκ²½ μ€μ 1) Tomcat λ€μ΄λ°κΈ° λ° μ€μΉνκΈ° Apache Tomcatμ΄λ? μνμΉ ν°μΊ£(Apache Tomcat)μ μνμΉ μννΈμ¨μ΄ μ¬λ¨(Apache Software Foundation, ASF)μμ κ°λ°ν μΈκ³μμ κ°μ₯ λ§μ΄ μ¬μ©λλ WAS(Web Application Server)μ λλ€. μ»΄ν¨ν°μ μ΄μ체μ λ₯Ό μ€μΉν΄μΌλ§ μ»΄ν¨ν°λ₯Ό μ¬μ©ν μ μλ κ²μ²λΌ, μλ°λ₯Ό μ΄μ©νμ¬ μμ±λ μΉ μ΄ν리μΌμ΄μ μ WASκ° μμ΄μΌλ§ μ€νν μ μμ΅λλ€. μ΄λ κ°μ₯ λ§μ΄ μ¬μ©λλ WASκ° μνμΉ ν°μΊ£μ΄λΌκ³ λ§ν μ μμ΅λλ€. μνμΉ ν°μΊ£μ μ€νμμ€ μννΈ μ¨μ΄λ‘μ¨ λꡬλ 무λ£λ‘ μ¬μ©ν μ μμ΅λλ€. μ°Έκ³ λ‘ Tomcatμ 'μκ³ μμ΄'λ₯Ό λ»ν©λλ€. ν°κ³Ό μ 리μ ν°μ΄ μκ°λκΈ°λ ν©λλ€. Tomcat 8λ²μ μ JDK 7μ΄μμμ λμνλ©°.. 2.1 Webκ°λ°μ μ΄ν΄ 1) μΉ νλ‘κ·Έλλ°μ μν νλ‘κ·Έλ¨ μΈμ΄λ€ μ κΈ μΈμ΄ μ κΈ μΈμ΄λ κΈ°κ³ μ€μ¬μ μΈμ΄λΌκ³ λ§ν μ μμ΅λλ€. κΈ°κ³κ° μ§μ μμλ€μ μ μλ λ§λ‘ 'νλ‘κ·Έλ¨ μ½λλ₯Ό μμ±νλ€'κ³ λ§ν μ μμ΅λλ€. μ»΄ν¨ν°λ μ κΈ°λ‘ λμν©λλ€. μ¦, μ κΈ°μ νΈμΈ μΌμ‘λ€(on)μ κΊΌμ‘λ€(off) 2κ°μ§ μν κ°μΌλ‘ λμνλ€κ³ λ§ν μ μμ΅λλ€. λ³΄ν΅ μ«μλ‘ νννλ©΄ μΌμ‘λ€λ 1, κΊΌμ‘λ€λ 0μ μλ―Έν©λλ€. 0κ³Ό 1λ‘ ννλλ μ«μλ₯Ό μ°λ¦¬λ 2μ§μλΌκ³ λ§ν©λλ€. 2μ§μλ‘ μ΄λ€μ§ κ°μΌλ‘ μμ±νλ νλ‘κ·Έλλ° μΈμ΄λ₯Ό κΈ°κ³μ΄(Machine Language)λΌκ³ λ§ν©λλ€. μ«μλ‘λ§ λμ΄ μκΈ° λλ¬Έμ μ μ§λ³΄μλ κ΅μ₯ν μ΄λ ΅μ΅λλ€. μ«μλ‘λ§ λ νλ‘κ·Έλλ° μΈμ΄λ μ¬μ©μ΄ κ΅μ₯ν μ΄λ €μ μ΅λλ€. κ·Έλμ, μ΄ μ«μλ‘ λ λ¬Έμ₯κ³Ό 1:1λ‘ λμνλ κΈ°νΈλ₯Ό.. μ΄μ 1 Β·Β·Β· 10 11 12 13 14 λ€μ