목록Spring (293)
코드 그라데이션
주문과 할인 도메인 개발 할인 정책 인터페이스 DisCountPolicy // 할인 정책 인터페이스 public interface DiscountPolicy { /** * @return 할인 대상 금액 */ int discount(Member member, int price); } 정액 할인 정책 구현체 FixDiscountPolicy // 정액 할인 구현체 public class FixDiscountPolicy implements DiscountPolicy { private int discoutnFixAmount = 1000; // 1,000원 할인 @Override public int discount(Member member, int price) { if (member.getGrade() == Gra..
주문과 할인 도메인 설계 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) **주문 도메인 협력, 역할, 책임 # 참고 : 실제로는 주문 데이터를 DB에 저장하겠지만, 예제가 너무 복잡해 질 수 있어서 생략하고, 단순히 주문 결과를 반환한다. 주문 도메인 전체 주문 도메인 클래스 다이어그램 주문 도메인 객체 다이어그램 1 회원을 메모리에서 조회하고, 정액 할인 정책(고정 금액..
회원 엔티티 Grade public enum Grade { // 고객 등급 BASIC, VIP } Member // 회원 엔티티 public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName..
회원 도메인 설계 회원 도메인 요구사항 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 회원 도메인 협력 관계 [기획자들도 볼 수 있는 그림] 회원 클래스 다이아그램 [개발자가 구체화한 것] 서버를 실제 실행하지 않고 분석해서 볼 수 있는 그림 회원 클래스 다이아그램 [서버가 켜졌을 때 실제 사용하는 인스턴스끼리의 참조 관계도] 회원 서비스 : MemberServiceImpl
build.grade plugins { id 'java' id 'org.springframework.boot' version '2.7.16' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'inflearn' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter..