*처음 프로젝트 생성할 때 아무 dependency도 설정하지 않으면 스프링 부트가 스프링 코어의 핵심 라이브러리만 의존
비즈니스 요구사항과 설계
회원
가입, 조회.
등급: 일반, VIP
회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)
주문과 할인 정책
회원은 상품을 주문할 수 있다.
회원 등급에 따른 할인 정책
VIP: 고정 금액 1000원 할인 (나중에 변경 될 수 있다.)
할인을 적용하지 않을 수도 있다. (미확정)
우선 스프링을 사용하지 않고 자바로만 개발
도메인 협력관계: 기획자도 볼 수 있는 그림
회원 클래스 다이어그램: 인터페이스, 클래스 간 관계. 정적 사항.
회원 객체 다이어그램: 실제 인스턴스 간의 참조. 런타임에 동적으로 결정되는 사항
주문 도메인 협력, 역할, 책임
1. 주문 생성: 클라이언트는 주문 서비스에 주문 생성을 요청한다.
2. 회원 조회: 할인을 위해서는 회원 등급이 필요하다. 그래서 주문 서비스는 회원 저장소에서 회원을 조회한다.
3. 할인 적용: 주문 서비스는 회원 등급에 따른 할인 여부를 할인 정책에 위임한다.
4. 주문 결과 반환: 주문 서비스는 할인 결과를 포함한 주문 결과를 반환한다.

실무에서는 동시성 문제가 있어 HashMap 대신 ConcurrentHashMap을 사용
*자동완성: ctrl+shift+enter
*main 메서드 생성: psvm+enter
*println 메서드 생성: soutv+enter
*변수 생성: ctrl+alt+v