일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바
- C언어
- JAVA SPRING
- php 프로그래밍
- 백준
- programmers
- php
- php 프로그래밍 입문 3판
- php 프로그래밍 입문
- 배열
- 최단 경로
- php 프로그래밍 입문 솔루션
- php 프로그래밍 입문 연습문제
- 플러터 개발환경 설정
- spring
- php 프로그래밍 입문 예제
- 스프링
- 파이썬
- 플러터
- 페이코 추천인코드
- Flutter
- 자바 스프링
- 한정 분기
- Java
- 페이코 추천인
- 페이코 친구코드
- C
- 페이코 초대코드
- php 프로그래밍 입문 문제풀이
- SWEA
- Today
- Total
목록Java Spring (96)
ImJay

[Java Spring] 2-17. 관심사의 분리 1. 애플리케이션을 하나의 공연이라 생각해보자. 각각의 인터페이스를 배역(배우 역할)이라 생각하자. 그런데! 실제 배역 맞는 배우를 선택하는 것은 누가 하는가? 2. 로미오와 줄리엣 공연을 하면 로미오 역할을 누가 할지 줄리엣 역할을 누가 할지는 배우들이 정하는게 아니다. 이전 코드는 마치 로미오 역할(인터페이스)을 하는 레오나르도 디카프리오(구현체, 배우)가 줄리엣 역할(인터페이스)을 하는 여자 주인공(구현체, 배우)을 직접 초빙하는 것과 같다. 디카프리오는 공연도 해야하고 동시에 여자 주인공도 공연에 직접 초빙해야 하는 다양한 책임을 가지고 있다. 3. 관심사를 분리하자 배우는 본인의 역할인 배역을 수행하는 것에만 집중해야 한다. 디카프리오는 어떤 여..

[Java Spring] 2-16. 새로운 할인 정책 적용과 문제점 1. 할인 정책을 애플리케이션에 적용해보자. 2. 할인 정책을 변경하려면 클라이언트인 OrderServiceImpl 코드를 고쳐야 한다 public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 3. 문제점 발견 우리는 역할과 구현을 충실하게 분리했다. OK 다형성도 활용하고, 인터페이스와 구현 객체를 분리했다. OK OCP, DIP 같..

[Java Spring] 2-15. 새로운 할인 정책 개발 1. 새로운 할인 정책을 확장해보자. - 악덕 기획자: 서비스 오픈 직전에 할인 정책을 지금처럼 고정 금액 할인이 아니라 좀 더 합리적인 주문 금액당 할인하는 정률% 할인으로 변경하고 싶어요. 예를 들어서 기존 정책은 VIP가 10000원을 주문하든 20000원을 주문하든 항상 1000원을 할인했는데, 이번에 새로 나온 정책은 10%로 지정해두면 고객이 10000원 주문시 1000원을 할인해주고, 20000원 주문시에 2000원을 할인해주는 거에요! - 순진 개발자: 제가 처음부터 고정 금액 할인은 아니라고 했잖아요. - 악덕 기획자: 애자일 소프트웨어 개발 선언 몰라요? “계획을 따르기보다 변화에 대응하기를” - 순진 개발자: … (하지만 난 ..

[Java Spring] 2-14. 주문과 할인 도메인 실행과 테스트 1. main > java > hello.core 패키지 내에 OrderApp 클래스 생성 2. 코드 작성 package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; public class OrderA..

[Java Spring] 2-13. 주문과 할인 도메인 개발 1. main > java > hello.core 에 discount 패키지 생성 2. DiscountPolicy 인터페이스 생성 3. 코드 작성 package hello.core.discount; import hello.core.member.Member; public interface DiscountPolicy { /** * @return 할인 대상 금액 */ int discount(Member member, int price); } 4. FixDiscountPolicy 클래스 생성 5. 코드 작성 package hello.core.discount; import hello.core.member.Grade; import hello.core.me..

[Java Spring] 2-12. 주문과 할인 도메인 설계 1. 주문과 할인 정책 회원은 상품을 주문할 수 있다. - 회원 등급에 따라 할인 정책을 적용할 수 있다. - 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) - 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수도 있다. (미확정) 2. 주문 도메인 협력, 역할, 책임 2-1. 주문 생성: 클라이언트는 주문 서비스에 주문 생성을 요청한다. 2-2. 회원 조회: 할인을 위해서는 회원 등급이 필요하다. 그래서 주문 서비스는 회원 저장소에서 회원을 조회한다. 2-3. 할인 적용: 주문 ..

[Java Spring] 2-11. 회원 도메인 실행과 테스트 1. 앞서 클래스 다이어그램은 정적이고, 객체 다이어그램은 동적이라고 설명한 바 있다. 2. 이전 시간 클래스 다이어그램을 바탕으로 프로그램을 작성하였다. 이번에는 실행과 테스트로 객체 다이어그램에 대한 프로그램을 제작해보자. 3. hello.core 패키지 내에 MemberApp 클래스 생성 4. 코드 작성 package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; public class MemberA..

[Java Spring] 2-10. 회원 도메인 개발 1. java/hello/core 에 member 패키지 생성 2. member 패키지에 Grade enum 생성 3. 코드 작성 package hello.core.member; public enum Grade { BASIC, VIP } - 회원 등급은 일반 회원, VIP 회원으로 나뉜다고 조건에서 정했다. 4. member 패키지에 Member class 생성 5. 코드 작성 package hello.core.member; public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade..

[Java Spring] 2-9. 회원 도메인 설계 1. 회원 도메인 요구사항 - 회원을 가입하고 조회할 수 있다. - 회원은 일반과 VIP 두 가지 등급이 있다. - 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 2. 회원 도메인 협력 관계 - 도메인 협력 관계는 기획자들도 볼 수 있는 그림이다. 3. 회원 클래스 다이어그램 - 클래스 다이어그램은 도메인 협력 관계를 바탕으로 개발자들이 구체화한 그림이다. - 클래스 다이어그램은 실제 서버를 실행하지 않고, 클래스들만 분석해서 볼 수 있는 그림이다. 4. 회원 객체 다이어그램 - 클래스 다이어그램에서 MemoryMemberRepository 가 들어갈지, DbMemberRepository 가 들어갈지 동적으로 결..

[Java Spring] 2-8. 비즈니스 요구사항과 설계 1. 회원 - 회원을 가입하고 조회할 수 있다. - 회원은 일반과 VIP 두 가지 등급이 있다. - 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 2. 주문과 할인 - 정책 회원은 상품을 주문할 수 있다. - 회원 등급에 따라 할인 정책을 적용할 수 있다. - 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) - 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 3. 요구사항을 보면 회원 데이터, 할인 정책 같은 부분은 지..