여니의 취준 준비/코딩테스트 (Python)

[스프링 핵심 원리 이해 1] 회원 도메인 설계 및 개발

여니's 2022. 1. 9. 18:35

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

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

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢

www.inflearn.com

게시글 참고 출처 강의 링크 첨부!

 


강의를 들으면서 몰랐거나 얕게 알고 있었던 부분들 중심으로

게시글 작성합니다 +_+

 

 

Enumeration Type (열거 타입)

: 요일, 계절과 같이 한정된 데이터만을 가지는 타입을 의미한다. 

 

public enum Grade {
    BASIC,
    VIP
}

열거상수를 적을 땐 관례로 대문자로만 작성해줘야 한다.

혹시 2개의 단어로 이어져있다면 _ 기호로 연결하는 것이 관례이다.

 

 

사용 방식 

Grade me=Grade.VIP;

 

Member member = new Member(1L, "memberA", Grade.VIP);

 

enum 관련해서 참고하면 좋을 듯하여 첨부하는 게시글 링크

https://techblog.woowahan.com/2527/

 

Java Enum 활용기 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다. 이번 사내 블로그 포스팅 주제로 저는 Java Enum 활용 경험을 선택하였습니다. 이전에 개인 블로그에 E

techblog.woowahan.com

> 아직 나에겐 어려운... 천천히 이해해보자!

 


interface(인터페이스)

: 객체의 사용 방법을 정의한 타입

기본 설계도라고 표현할 수 있다.

실제로 구현된 것은 전혀 없고 껍데기만 존재한다.

 

인터페이스는 상수와 메소드(추상메소드)만 구성 멤버로 가진다.

참고로 기본 클래스는 필드, 생성자, 메소드를 구성 멤버로 가진다.

 

인터페이스의 상수는 public static final 상수명 = 값;

인터페이스의 메소드는 public abstract 타입 메소드명();

> public abstract는 컴파일 과정에서 자동으로 생성된다.


implements (구현)

구현 클래스는 클래스명 implements 인터페이스명{}

인터페이스에서 선언된 추상메소드의 실체를 재정의해준다. 


(예제 정리)

 

 인터페이스

MemberService

MemberRepository

 

구현

MemberServiceImpl 

MemoryMemberRepository

 

클래스

Member

 

열거 클래스

Grade

 


AssertJ란 무엇인가!?

 

AssertJ는 수많은 assertion을 제공하는 자바 라이브러리!

에러 메세지와 테스트 코드의 가독성을 높여준다.

 

Assertions.assertThat(member).isEqualTo(findMember);

isEqualTo는 두 객체의 값이 같은지 비교함!

 

assertThat에는 수많은 메소드가 존재함.

 

https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations

 

JUnit 5 User Guide

Although the JUnit Jupiter programming model and extension model will not support JUnit 4 features such as Rules and Runners natively, it is not expected that source code maintainers will need to update all of their existing tests, test extensions, and cus

junit.org