보호되어 있는 글입니다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cFAdVK/btq3nSY6EHp/YByZ9bAnkT1UXJEen07n9K/img.png)
MVC패턴 컨트롤러(CONTROLLER) : 클라이언트(http)의 요청을 받아서 파라미터를 검증, 비지니스 로직을 실행한다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다 모델(MODEL) : 뷰에 출력할 데이터를 담아둔다. 뷰가 필요한 데이터를 모두 모델에 담아 전달해주는 덕분에 뷰는 비지니스 로직이나 데이터 접근을 몰라도 되고 화면을 렌더링 하는 일에 집중할 수 있다 뷰(VIEW) : 모델에 담겨있는 데이터를 사용하여 화면을 그림 출처 : www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/OOmyj/btq3bOwf27P/KgfNnCDmnHIeMWEPQYV191/img.png)
HttpServletResponse역할 - Htttp 응답 메세지 생성 (HTTP응답코드 지정, 헤더생성 ,바디생성) - 편의 기능 제공(Content-Type, 쿠키, Redirect) 0. HttpServletResponse 사용법 ResponseHeaderServlet.java package hello.servlet.basic.response; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest;..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dC4wcn/btq2BDib7vV/MaE9Q7VycD0jkegCKROFN0/img.png)
1. GET방식 - 쿼리 파라미터 - URL의 쿼리 파라미터에 데이터를 포함해서 전달 - 검색이나 필터, 페이징등에서 많이 사용함 - ex) http://localhost:8080/request-param?username=zoooo&age=500 package hello.servlet.basic.request; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import j..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/yKags/btq2kB5ciT0/8WJK4rFmDb7qdI5kFPyznK/img.png)
- 강의 : 인프런 스프링 MVC - 인텔리제이 / 자바11 - 스프링 부트 환경에서 ㄱㄱ (스프링부트가 톰캣 서버를 내장하고 있어 톰캣 설치 없이 서블릿 코드 실행 가능하기 때문) hello.servlet.basic.HelloServlet package hello.servlet.basic; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOEx..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/pR7Da/btq2hIRNuEc/lvnTP0kKFyIlpIfjv4ZAVK/img.png)
- 드디어 스프링으로 변경해보기 AppConfig.java package com.hello.core; import com.hello.core.Order.OrderService; import com.hello.core.Order.OrderServiceImpl; import com.hello.core.discount.DiscountPolicy; import com.hello.core.discount.RateDiscountPolicy; import com.hello.core.member.MemberRepository; import com.hello.core.member.MemberService; import com.hello.core.member.MemberServiceImpl; import com.hello..
- AppConfig.java를 추가하여 관심사 분리 / 이것도 순수 자바로만 구현 - 기존 MemberServiceImpl.java, OrderServiceImpl.java 에서는 인터페이스와 구현체 모두 의존하고 있어 DIP를 위반하고 있다 문제 : FixDiscountPolicy를 RateDiscountPolicy로 변경하는 순간 OrderServiceImpl의 소스 코드도 변경해야하는 번거로움이 있음 해결 : 이를 분리하기 위해 AppConfig를 만들어 수정 AppConfig.java / 애플리케이션 전체를 구성하기 위해 구현 객체를 생성하고 연결하는 책임을 가지는 별도의 설정 클래스 package com.hello.core; import com.hello.core.Order.OrderServi..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/unUXT/btq2kDBTKvv/XvFdkwzDGqpBnvS6DKJdkK/img.png)
- 회원 도메인에 이어서 주문, 할인 / 이것도 순수 자바로만 구현했을때 DiscountPolicy.interface / 할인대상금액 package com.hello.core.discount; import com.hello.core.member.Member; public interface DiscountPolicy { int discount(Member member, int price); } FixDiscountPolicy.java / 할인대상금액 인터페이스 구현 package com.hello.core.discount; import com.hello.core.discount.DiscountPolicy; import com.hello.core.member.Grade; import com.hello.cor..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/KoNDz/btq2gK3OsZp/Jvij5Lta6fKk7gcFW2THb1/img.png)
강의 : 인프런 스프링 핵심 원리 - 기본편 - 인텔리제이 처음 써 봄 - java11 - 프로젝트는 start.spring.io에서 생성(압축해제-> build.gradle 오픈) 회원 도메인 / 순수 자바로만 구현했을 때(spring x) Grade.enum / 회원등급 package hello.core.member; public enum Grade { BASIC, VIP } - enum 참고 : itmining.tistory.com/149 , www.tcpschool.com/java/java_api_enum Member.java / 회원 - id, 이름, 등급 package hello.core.member; public class Member { private Long id; private Stri..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/k1Jo1/btqLblT5ugf/CZAycc6XielV0089ewO5b1/img.png)
회원 관리 예제 - 웹 MVC 개발 홈 화면 추가 (HomeController 추가) package hello.hellospring.controller; import hello.hellospring.domain.Member; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } res..
- Total
- Today
- Yesterday