자바웹프로그래밍21 [Spring] 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 새로운 할인 정책 개발 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우리의 기획자님 께서 기존에 1000원 씩 할인해주던 정책에서 10%를 할인해주는 정책으로 갑자기 바꾸고 싶다고 한다... 이에 대응한 정률할인정책 을 추가해보자. 구현체를 하나 새로 만들었다! package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy{ priv.. BackEnd/Spring 2022. 2. 1. [Spring] 스프링 핵심 원리 이해1 - 예제 만들기 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 이번시간에는 Spring이 왜 나왔는지 를 이해하기 위해하는 단원으로 잘못된 코드로부터 시작하여 점점 유지 보수가 편한 코드로 바뀌어가는 과정을 확인하는 시간 이였다. 블로그에는 일부 코드들은 생략하여 올리지 않았습니다. 1. 회원 도메인 설계 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 먼저 회원 클래스를 통하여 설계할 구조를 파악하였다. 서비스 인터페이스를 구현한 impl 과 MemberRepository 인터페이스를 만든다. 구현체는 언제든 변경 가능하다. 다만 class 다이어그램만으로는 runtime때 동적으로 설정되는 관계를 알기 어.. BackEnd/Spring 2022. 1. 31. [Thymeleaf] 레이아웃 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 레이아웃 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이전 템플릿 조각에서는 코드 조각을 갖고와서 내가 원하는 부분에 추가하는 방식 이였다면 (내 코드 공통 부분) 예를 들어서 layoutMain(내 코드) 메인 컨텐츠 결과는 다음과 같습니다. 우선 http://localhost:8080/template/layout 에 접속하면 컨트롤러가 작동하여 "template/layout/layoutMain" 의 뷰로 이동하게 된다. layoutMain 에서는 로 인하여 head 부분을replace하기위해 공통부분인 base를 끌어온다. 이.. BackEnd/Thymeleaf 2022. 1. 30. [서평] 처음 해보는 Servlet & JSP 웹 프로그래밍 저의 돈으로 직접사서 직접 완독해본후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할것이며, 단점은 단점대로 언급할 것 입니다. 처음 해보는 Servlet & JSP 웹 프로그래밍 저자 : 오정임 출판 : 루비페이퍼 발매 : 2017.03.22. 2021/8/18 ~ 2021/09/03 1) 책의 표지 2) 단원별 구성 3) 읽은소감 우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다. Q 이 책을 읽기 전에 필요한 수준/ 지식은? => JAVA 언어정도는 어느정도 알아야 읽을 수 있습니다. 막 문법을 익히신 분들께 JAVA 복습겸 보면 좋은것 같습니다. Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까? => 웹개발 에서 JAVA 하면 떠오르는 것이 S.. Life/Book Record 2022. 1. 28. [Thymeleaf] 블록 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 블록 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 블록은 HTML 태그가 아닌, 타임리프의 유일한 자체 태그이다. 블록은 each 문에서의 불편한점을 보완하는데, 어떤 부분을 보완하는지는 다음 코드를 살펴보자. 컨트롤러와 뷰 코드는 다음과 같다. @GetMapping("/block") public String block(Model model){ List list = new ArrayList(); list.add(new User("UserA", 10)); list.add(new User("UserB", 20)); list.add(n.. BackEnd/Thymeleaf 2022. 1. 28. [Thymeleaf] 속성 값 설정 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 속성 값 설정 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 타임리프에서 속성값을 지정할때는 th:* 와 같이 속성을 적용하면 기존 속성을 대체한다. 만약 기존 속성이 없다면 새로 만든다. 우선 컨트롤러부터 하나 만들어 봅시다. @GetMapping("/attribute") public String attribute() { return "basic/attribute"; } 아주 간단한 컨트롤러 입니다. 이제 이를 처리할 뷰는 다음과 같습니다. 속성 설정 속성 추가 - th:attrappend = - th:attrprepend = -.. BackEnd/Thymeleaf 2022. 1. 27. [Thymeleaf] URL 링크 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. URL 링크 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 타임리프에서 URL을 생성할 때는 @{...} 문법을 사용하면 된다. 우선 간단한 컨트롤러부터 하나 만들어 봅시다! @GetMapping("link") public String link(Model model){ model.addAttribute("param1", "data1"); model.addAttribute("param2", "data2"); return "basic/link"; } 이를 처리할 뷰 또한 다음과 같습니다. URL 링크 basic url hello que.. BackEnd/Thymeleaf 2022. 1. 26. [Spring] 회원 관리 예제 - 웹 MVC 개발 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 섹션 5. 회원 관리 예제 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1. 회원 웹 기능 - 홈 화면 추가 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 컨트롤러 하나를 추가해 주었다. package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeControl.. BackEnd/Spring 2022. 1. 14. [Servlet, JSP] RequestDispatcher와 요청 재지정 RequestDispatcher " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 RequestDispatcher 객체에서 제공하는 메소드를 이용하여 요청 재지정을 할때는 재지정하는 자원이 반드시 현재 자원과 동일한 웹 어플리케이션에 있어야만 합니다. 우성 재지정 메소드를 확인해 봅시다. 1) forward(ServletRequest request, ServletResponse response) : 요청을 다른 자원으로 넘긴다. 2) include(ServeltRequest request, ServletResponse response) : 다른 자원의 처리 결과를 현재 페이지에 포함시킨다. RequestDispatcher 객체 생성 " data-ke-type="html"> .. BackEnd/Servlet, JSP 2022. 1. 13. 이전 1 2 다음