회원 도메인 개발

  • Member 패키지 생성 후 아래의 클래스를 추가

Grade 클래스

  • Enum으로 회원의 등급을 관리하기 위한 클래스
  • BASIC과 VIP 등급으로 구성

MemberRepository

  • 회원 저장소에 대한 인터페이스
  • save와 findById 두 개의 메소드

MemoryMemberRepository

  • MemberRepository의 구현체
  • 자바의 HashMap을 이용하여 회원 정보를 저장

Member

  • 회원에 대한 정보가 들어있는 클래스
  • id, name, grade 필드를 만들고 이에 대한 setter와 getter를 생성
  • TIP: Windows 기준 Alt + Insert를 입력하여 쉽게 생성 가능

MemberService

  • 회원 동작에 대한 인터페이스
  • join(가입)과 findMember 두 개의 메소드

MemberServiceImpl

  • MemberService 인터페이스의 구현체
  • 관례적으로 인터페이스에 대한 구현체가 하나일 때는 인터페이스 이름에 Impl을 붙여 네이밍 함
  • 여기서 MemberRepositroy를 사용하게 되는데, 해당 객체가 비어있으면 NPE가 발생하기 때문에 MemoryMemberRepository()를 호출하여 객체를 할당함
    • 다형성에 의해 MemberRepository가 아닌 MemoryMemberRepository의 메소드가 호출됨
  • TIP: Windows 기준 Ctrl + Shift + Enter로 새미 콜론까지 자동 완성 가능

 

※ 본 게시글은 인프런의 스프링 핵심 원리 - 기본편(김영한)을 수강하고 정리한 내용입니다.

회원 도메인 설계

회원 도메인 설계

회원 도메인 요구사항

  • 회원 가입 / 조회
  • 회원 등급 : 일반 / VIP
  • 회원 데이터 : 자체 DB / 외부 시스템 연동(미확정)

회원 도메인 협력 관계

회원 클래스 다이어그램

회원 객체 다이어그램

※ 본 게시글은 인프런의 스프링 핵심 원리 - 기본편(김영한)을 수강하고 정리한 내용입니다.

비즈니스 요구사항과 설계

회원

  • 회원 가입 / 조회
  • 회원 등급 : 일반 / VIP
  • 회원 데이터 : 자체 DB / 외부 시스템 연동(미확정)

주문과 할인 정책

  • 회원은 상품을 주문 가능
  • 회원 등급에 따라 할인 정책 적용
  • 할인 정책은 모든 VIP는 1000원 할인(고정금액 할인) / 나중에 변경 가능
  • 할인 정책은 변경 가능성이 높으며, 오픈 직전까지 결정을 미루고자 함
    • 인터페이스를 만들고 구현체를 변경할 수 있도록 설계

 

※ 본 게시글은 인프런의 스프링 핵심 원리 - 기본편(김영한)을 수강하고 정리한 내용입니다.

프로젝트 생성

개발 환경

  • JDK 11
  • IDE : InteliJ

이번 챕터에서는 순수 자바의 기능을 이용해서 개발을 진행함

  • 다음 챕터인 스프링 핵심 원리 이해2부터 객체 지향을 적용해가며 문제를 해결해나갈 것임
    • 스프링은 뒷부분에서 적용 예정
  • 이번 챕터에서는 스프링을 사용하지 않을 것이지만, 프로젝트 세팅은 스프링 부트로 하면 편하기 때문에 스프링 부트로 프로젝트 생성

프로젝트 세팅(https://start.spring.io)

  • Project : Gradle Project
  • Spring Boot Version : 가장 안정화된 최신 버전
  • Project Metadata
    • Group : hello
    • Artifact : core
    • Java 11
    • 나머지는 설정된 그대로
  • Dependencies
    • 설정하지 않음
  • Generate 후 압축을 풀고 인텔리제이에서 build.gradle이 있는 위치로 Open as Project
    • 처음 시작 시 라이브러리 설치에 약간의 시간이 소요됨
    • build.gradle 설정 변경 시 인텔리제이 우측 상단의 “Gradle” 클릭하여 새로고침 필요
  • [Option] Settings → gradle 검색 → Build and run using / Run tests using을 InteliJ IDEA로 변경
    • gradle 보다 더 빠르게 실행 가능

 

※ 본 게시글은 인프런의 스프링 핵심 원리 - 기본편(김영한)을 수강하고 정리한 내용입니다.

+ Recent posts