개발 관련 공부/스프링 김영한 로드맵16 [스프링 기본] 3. 스프링 핵심 원리 이해2 -객체 지향 원리 작용 새로운 할인 정책 개발 기획자가 말을 바꿔서 VIP 회원 기존 1000원 할인 대신 10% 할인으로 바뀐 상황. DiscountPolicy를 구현한 RateDiscountPolicy를 만든다. 기존 FixDiscountPolicy랑 똑같은데 VIP인 경우 return price * discountPercent / 100; 으로 바뀐다. RateDiscountPolicy discountPolicy = new RateDiscountPolicy(); @Test @DisplayName("VIP는 10% 할인이 적용되어야 한다.") void vip_o() { //given Member member = new Member(1L, "memberVIP", Grade.VIP); //when int discount = d.. 2022. 10. 10. [스프링 기본] 2. 스프링 핵심 원리 이해1-예제 만들기 프로젝트 생성 https://start.spring.io/ 사이트로 가서 zip 파일을 생성-다운 후 인텔리제이에서 임포트 임포트 방법: 압축 푼 파일 위치로 가서 해당 파일의 build.gradle 선택 후 프로젝트로 열기 일단 순수 자바로 개발하고 추후 점점 스프링의 요소들을 추가해 나갈 것이다.(스프링 부트는 환경 설정을 편리하게 하려고 사용한 것.) 비지니스 요구사항과 설계 & 회원 도메인 설계 회원 회원 가입과 조회 가능. 일반 회원과 VIP 회원 존재. 회원 db는 자체 db로 할지 외부 시스템과 연동할지 미확정. 주문 회원들은 상품을 주문할 수 있는데, 회원 등급에 따라 할인 정책 다름.(VIP는 무조건 1000원 할인) 할인 정책은 회사의 사정으로 변경 가능성이 높은 상태. 변경 가능성이 .. 2022. 10. 7. [스프링 기본] 1. 객체 지향 설계와 스프링 스프링이란? 이런 애들을 모두 통틀어 스프링 생태계라고 부른다. 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용할 수 있다. '스프링' 이라는 단어는 문맥에 따라 달리 사용한다. 스프링 DI 컨테이너 기술 스프링 프레임워크 스프링 생태계 스프링의 핵심: 스프링은 자바 기반이고 자바는 객체 지향 언어 -> 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 객체 지향 프로그래밍? 캡 상 추 다 캡슐화 상속 추상화 다형성 객체 지향 프로그래밍은 유연하고 변경이 용이함. 스프링은 다형성이 가장 중요! 역할(인터페이스)과 구현(인터페이스를 구현한 클래스, 구현 객체)를 분리. 클라는 인터페이스만 알면 된다. 내부 구조는 몰라도 됨=내부구조가 바뀌어도 영향 x -> 변.. 2022. 10. 5. [스프링 입문] 섹션 7 AOP AOP가 필요한 상황 AOP가 무엇인지 살펴보기에 앞서... 먼저 회원가입 시간, 회원 조회 시간을 측정하고 싶다고 하자. public Long join(Member member) { long start = System.currentTimeMillis(); try { validateDuplicateMember(member); //중복 회원 검증 memberRepository.save(member); return member.getId(); } finally { long finish = System.currentTimeMillis(); long timeMs = finish - start; System.out.println("join " + timeMs + "ms"); } } /** * 전체 회원 조회 */.. 2022. 9. 29. [스프링 입문] 섹션 6. 스프링 DB 접근 기술 H2 데이터베이스 설치 설치하고 실행하면 이런 옛스러운 윈도우 창이 뜬다. 파일로 직접 접근하는건 좋지 않으므로 url을 localhost: 어쩌구 test 로 바꿔주고 연결 누르면 mysql 워크벤치같은 화면이 뜬다. 여기서 sql문을 작성하고 실행할 수 있다. id와 name을 가지고 pk가 id인 테이블을 만들어주었다.(id는 자동 증가) 관리를 쉽게하기 위해 sql/ddl.sql을 만들어 위 내용을 기록한다. 스프링 JdbcTemplate 학교 그리고 싸피에서 배운 jdbc는 db에서 뭔가 하고싶을때마다 conn=.. pstmt=...를 일일히 치고 try-catch로 묶어야하는 번거로운 방식이었다. 하지만 이 jdbcTemplate은 순수 JDBC의 반복 코드를 대부분 제거해준다. 레포지토리 폴.. 2022. 9. 27. [스프링 입문] 섹션5. 회원 관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 홈 컨트롤러와 html 파일을 추가한다. package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } Hello Spring 회원 기능 회원 가입 회원 목록 이전 강의에서 만들었던 index.html 대신 home.html이 뜬다. 그 이유는 컨트롤러가 정적 파일보다 우선순위가 높기 때문이다. l.. 2022. 9. 21. 이전 1 2 3 다음 반응형