μ€νλ§ MVC 1νΈμ κ°μ λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. HttpServletRequest μμ ν¬μ€ν μμ μλΈλ¦Ώμ κ°λ°μκ° μμ² λ° μλ΅ μ 보λ₯Ό νΈλ¦¬νκ² μ¬μ©ν μ μλλ‘ μ§μνλ©°, μ΄λ WASκ° HTTP μμ² μ μμ² λ° μλ΅ κ°μ²΄λ₯Ό μλ‘ λ§λ λ€ μλΈλ¦Ώ κ°μ²΄λ₯Ό νΈμΆνλ κ³Όμ μ κ±°μΉλ€λ κ²μ μ€λͺ νμλ€. μλΈλ¦Ώμ κ°λ°μκ° HTTP μμ² λ©μμ§λ₯Ό νΈλ¦¬νκ² μ΄μ©ν μ μλλ‘ κ°λ°μ λμ μμ² λ©μμ§λ₯Ό νμ± νκ³ , κ·Έ κ²°κ³Όλ₯Ό HttpServletRequestλΌλ κ°μ²΄μ λ΄μμ μ 곡νλλ°, ν΄λΉ κ°μ²΄λ₯Ό μ΄μ©νλ©΄ λ€μκ³Ό κ°μ μ 보λ₯Ό νΈλ¦¬νκ² μ‘°νν μ μλ€. 1. Start Line: HTTP λ©μλ, URL, 쿼리 μ€νΈλ§, νλ‘ν μ½ 2. ν€λ: ν€λ μ‘°ν 3. λ°λ: form νλΌλ―Έν° νμ μ‘°ν, λ©μμ§ λ°λ..
μ€νλ§ MVC 1νΈμ κ°μ λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μΉ μλ², μΉ μ ν리μΌμ΄μ μλ² μΉ μλ² (Web Server) HTTP κΈ°λ°μΌλ‘ λμνλ©°, μ£Όλ‘ μ μ 리μμ€λ₯Ό μ 곡νλ€. Nginxλ Apacheκ° μΉ μλ²μ μνλ€. μΉ μ ν리μΌμ΄μ μλ² (WAS - Web Application Server) HTTP κΈ°λ°μΌλ‘ λμνλ©°, μΉ μλ²μ κΈ°λ₯μ ν¬ν¨ν¨κ³Ό λμμ λμ HTML, HTTP API, JSPμ κ°μ νλ‘κ·Έλ¨ μ½λλ₯Ό μ€νν΄ μ ν리μΌμ΄μ λ‘μ§μ μνν μ μλ€. Tomcatμ΄ λνμ μΌλ‘ WASμ μνλ€. μΉ μλ²μ μΉ μ ν리μΌμ΄μ μλ² μΉ μλ²λ μ μ 리μμ€λ₯Ό, μΉ μ ν리μΌμ΄μ μλ²λ μ ν리μΌμ΄μ λ‘μ§μ μ£Όλ‘ λ΄λΉνλ€κ³ νμ§λ§, μΉ μλ²λ νλ‘κ·Έλ¨μ μ€ννλ κΈ°λ₯μ ν¬ν¨νκΈ°λ νκ³ μΉ μ ν리μΌμ΄μ ..
μ€νλ§ ν΅μ¬ μ리μ κ°μ λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. λΉ μ€μ½νλ? λ§ κ·Έλλ‘ λΉμ΄ μ‘΄μ¬ν μ μλ λ²μλ₯Ό λ»νλ€. μ§κΈκΉμ§λ μ€νλ§ λΉμ΄ μ€νλ§ μ»¨ν μ΄λμ μμκ³Ό ν¨κ» μμ±λμ΄ μ€νλ§ μ»¨ν μ΄λκ° μ’ λ£λ λκΉμ§ μ μ§λλ€κ³ νμ΅νμλλ°, μ΄κ²μ μ€νλ§ λΉμ΄ κΈ°λ³Έμ μΌλ‘ μ±κΈν€ μ€μ½νλ‘ μμ±λκΈ° λλ¬Έμ΄λ€. μ€νλ§μ λ€μκ³Ό κ°μ΄ λ€μν μ€μ½νλ₯Ό μ§μνλ€. 1. μ±κΈν€: κΈ°λ³Έ μ€μ½νλ‘ μ€νλ§ μ»¨ν μ΄λμ μμκ³Ό μ’ λ£κΉμ§ μ μ§λλ κ°μ₯ λμ λ²μμ μ€μ½νμ΄λ€. 2. νλ‘ν νμ : μ€νλ§ μ»¨ν μ΄λλ νλ‘ν νμ λΉμ μμ±κ³Ό μμ‘΄ κ΄κ³ μ£Όμ , μ΄κΈ°νκΉμ§λ§ κ΄μ¬νκ³ κ·Έ μ΄μ κ΄λ¦¬νμ§ μλ 짧μ λ²μμ μ€μ½νμ΄λ€. 3. μΉ κ΄λ ¨ μ€μ½ν 3-1 request: μΉ μμ²μ΄ λ€μ΄μ€κ³ λκ° λκΉμ§ μ μ§λλ μ€μ½νμ΄λ€. 3-2 sess..
μ€νλ§ ν΅μ¬ μ리μ κ°μ λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μμ‘΄κ΄κ³ μ£Όμ μμ μμΌ ν΅μ μ²λΌ μ ν리μΌμ΄μ μμ μ§μ μ νμν μ°κ²°μ 미리 ν΄λκ³ , μ ν리μΌμ΄μ μ’ λ£ μμ μ μ°κ²°μ λͺ¨λ μ’ λ£νλ μμ μ μ§ννλ €λ©΄ κ°μ²΄μ μ΄κΈ°νμ μ’ λ£ μμ μ΄ νμνλ€. μ€νλ§μ μ΄λ¬ν μ΄κΈ°ν/μ’ λ£ μμ μ μ΄λ»κ² μ§νν κΉ? μ€νλ§ λΉμ κΈ°λ³Έμ μΌλ‘ 'κ°μ²΄ μμ± → μμ‘΄ κ΄κ³ μ£Όμ 'μ λΌμ΄νμ¬μ΄ν΄μ κ°μ§λ€. λΉμ΄ κ°μ²΄λ₯Ό μμ±νκ³ μμ‘΄κ΄κ³ μ£Όμ μ΄ λͺ¨λ λλ μ΄νμ λ°μ΄ν°λ₯Ό μ¬μ©ν μ μλ μ€λΉκ° κ°μΆ°μ§λ κ²μ΄λ―λ‘, λ°μ΄ν° μ΄κΈ°ν μμ μ μμ‘΄ κ΄κ³ μ£Όμ μ΄ λͺ¨λ μλ£λκ³ λ λ€μμ νΈμΆν΄μΌ νλ€. μ±κΈν€ λ°©μμμ μ€νλ§ λΉμ λ€μκ³Ό κ°μ μ΄λ²€νΈ λΌμ΄νμ¬μ΄ν΄μ κ°μ§λ€. (1) μ€νλ§ μ»¨ν μ΄λ μμ± → (2) μ€νλ§ λΉ μμ± → (3) μμ‘΄ ..
μ€νλ§ ν΅μ¬ μ리μ κ°μ λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μ‘°ν λΉμ΄ 2κ° μ΄μμΌ λ λ¬Έμ μ @Autowiredλ νμ μΌλ‘ λΉμ μ‘°ννκΈ° λλ¬Έμ, μ€μ λ‘λ λ λ§μ κΈ°λ₯μ μ 곡νμ§λ§ ac.getBean(DiscountPolicy.class)μ μ μ¬νκ² λμνλ€. μ΄λ DiscountPolicyμ νμ νμ μ΄ λ κ° μ΄μ μ‘΄μ¬ν κ²½μ° @Autowiredλ ν κ°κ° μλ μ€νλ§ λΉμΌλ‘ λ±λ‘λ νμ νμ ν΄λμ€μ κ°μλ§νΌ μ€λ³΅λ λΉμ μ°Ύκ² λκ³ , NoUniqueBeanDefinitionExceptionμ΄ λ°μνκ² λλ€. κ·Έλ λ€κ³ ν΄μ νμ νμ μΌλ‘ λΉμ μ‘°ννλ κ²μ μλμ κ°μ΄ λ κ°μ§ λ¬Έμ μ μ΄ μ‘΄μ¬νλ€. 1. DIPλ₯Ό μλ°°ν¨κ³Ό λλΆμ΄ μ½λμ μ μ°μ±μ΄ λ¨μ΄μ§λ€. 2. λΉ μ΄λ¦μ λ€λ₯΄μ§λ§ νμ μ΄ λμΌν κ²½μ° λ¬Έμ λ₯Ό..
μ€νλ§ ν΅μ¬ μ리μ κ°μ λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μμ‘΄κ΄κ³ μ£Όμ λ°©λ² μμ±μ μ£Όμ μμ±μλ₯Ό ν΅ν΄ μμ‘΄ κ΄κ³λ₯Ό μ£Όμ λ°λ λ°©λ²μΌλ‘, μμ±μ νΈμΆ μμ μ λ± ν λ²λ§ νΈμΆλλ©° λΆλ³ νΉμ νμμ μΈ μμ‘΄ κ΄κ³ μ£Όμ μ μ¬μ©λλ€. μμ±μκ° ν κ°λ§ μμ κ²½μ° μ€νλ§ λΉμ νν΄μ @Autowiredλ₯Ό μλ΅ν΄λ μλμΌλ‘ μμ‘΄ κ΄κ³κ° μ£Όμ λλ€. @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepositor..
μ€νλ§ ν΅μ¬ μ리μ κ°μ λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μ±κΈν€ ν¨ν΄ ν΄λμ€μ μΈμ€ν΄μ€κ° 1κ°λ§ μμ±λλ κ²μ 보μ₯νλ λμμΈ ν¨ν΄μ΄λ€. μ€νλ§μ΄ μλ μμν DI(Dependency Injection) 컨ν μ΄λλ₯Ό μ΄μ©νλ€κ³ κ°μ ν΄λ³΄μ. DI 컨ν μ΄λμΈ AppConfigλ μλ‘μ΄ μμ²μ΄ λ€μ΄μ¬ λλ§λ€ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±νμ¬ λ°ννλλ°, νΈλν½μ΄ μ¦κ°ν μλ‘ μμ±λλ κ°μ²΄κ° λ§μμ§μ λ°λΌ λ©λͺ¨λ¦¬ λλΉλ μ¬ν΄μ§λ€λ λ¨μ μ΄ μ‘΄μ¬νλ€. μ΄λ¬ν ν΄κ²°λ°©μμΌλ‘μ¨ κ°μ κ°μ²΄λ λ± 1κ°λ§ μμ±λλλ‘ νμ¬ κ°μ²΄λ₯Ό 곡μ νκ²λ μ€κ³νλ λ°©λ²μ μ΄μ©ν μ μλλ°, ν΄λΉ λ°©λ²μ΄ μ±κΈν€ ν¨ν΄μ μ΄μ©νλ κ²μ΄λ€. public class SingletonService { private static final SingletonService ..
μμ ν νμΌμ add νλ €κ³ νλ μλμ κ°μ μ€λ₯κ° λ°μνμλ€. fatal: Unable to create 'νλ‘μ νΈ κ²½λ‘/.git/index.lock': File exists. Another git process seems to be running in this repository, e.g.an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process remove the file manually to continue. 컀λ°μ νλ κ³Όμ μμ μ΄μ΄λ μλν°κ° λ°λ‘ μμκΈ° λλ¬Έμ νμΌμ μμ νλ λ°©λ²μ μ ννμλ€. νλ‘μ νΈκ° μλ κ²½λ‘ μμ..