본문 바로가기
JAVA Spring

Spring 기본편 시작

by ppirae 2022. 3. 14.

 

이번 스프링 기본편 목표입니다.

member 패키지를 생성하고 ENUM으로 Grade(회원등급) 선언해줍니다.

member 패키지 안에 class Member 만들고 , 생성자, getter, setter 설정해줍니다.

package hello.core.member;

public class Member {

    private Long id;
    private String name;
    private Grade grade;

    //생성자와 getter, setter를 생성해준다.
    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(String name) {
        this.name = name;
    }

    public Grade getGrade() {
        return grade;
    }

    public void setGrade(Grade grade) {
        this.grade = grade;
    }
}

member 패키지 안에 MemberRepository 인터페이스와 MemberService 인터페이스를 만듭니다.

DB가 정해지지않은 가정하에, MemoryMemberRepository를 만듭니다.

MemberSerivce의 구현 MemberServiceImpl을 만듭니다.


hello.core 아래 memberApp 클래스를 만들어 main에서 눈으로 기능을 테스트합니다.

눈으로 직접 결과를 확인가능(memberA)

현재까지 작성한 코드들은 스프링과 관계가 없는 순수한 자바코드 입니다.
이제 test폴더에서 member 패키지를 만들고 MemberServiceTest 클래스를 생성하여 test로 기능을 테스트합니다.

package hello.core.member;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;

public class MemberServiceTest {
    //build때는 main 코드만 나가고 test코드는 배포에서 빠진다
    //main에서는 눈으로 검증하나 test에서는 눈으로 찾지않아도 오류 결과를 편하게(빠르게) 볼 수 있다
    //현업에서 test코드는 선택이 아닌 필수이다

    MemberService memberService = new MemberServiceImpl();

    @Test
    void join() {
        //given
        Member member = new Member(1L, "memberA", Grade.VIP);

        //when
        memberService.join(member);
        Member findMember = memberService.findMember(1L);

        //then
        Assertions.assertThat(member).isEqualTo(findMember);
    }
}

테스트를 통과하면 초록색, 실패하면 빨간색으로 편하게 통과 확인
만들고 보니 이러한 문제점이 있다.

내일은 주문과 할인 도메인 설계를 하겠다.


인프런 김영한님의 스프링 핵심 원리 - 기본편을 듣고 작성한 글입니다.

https://inf.run/maWn

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 

'JAVA Spring' 카테고리의 다른 글

관심사의 분리와 AppConfig  (0) 2022.03.16
주문과 할인 도메인  (0) 2022.03.15
회원관리예제 웹MVC 개발  (0) 2022.01.23
스프링 빈과 의존관계  (0) 2022.01.20
스프링 입문 - 회원 관리 예제, 백엔드 개발  (0) 2022.01.19

댓글