package hello.core.member;
// 이 줄은 패키지 이름을 선언합니다. 패키지는 Java에서 관련된 클래스와 인터페이스를 조직화하는 데 사용됩니다.
public class MemberApp {
// 이 줄은 'MemberApp'이라는 public 클래스를 선언합니다.
public static void main(String[] args) {
// Java 애플리케이션의 진입점인 'main' 메서드를 선언합니다. 이 메서드는 'String' 배열을 매개변수로 받으며, 프로그램이 실행될 때 실행됩니다.
MemberService memberService = new MemberServiceImpl();
// 'MemberService' 인터페이스의 구현체인 'MemberServiceImpl'의 인스턴스를 생성하고, 이를 'memberService'라는 변수에 할당합니다.
Member member = new Member(1L, "member1", Grade.VIP);
// 'Member' 클래스의 인스턴스를 생성합니다. 이때 생성자에 ID는 '1L', 이름은 "member1", 등급은 'Grade.VIP'로 지정합니다.
memberService.join(member);
// 'memberService'의 'join' 메서드를 호출하여, 위에서 생성한 'member' 객체를 등록합니다.
Member findMember = memberService.findMember(1L);
// 'memberService'의 'findMember' 메서드를 호출하여 ID가 '1L'인 회원의 정보를 조회하고, 그 결과를 'findMember' 변수에 저장합니다.
System.out.println("new member = " + member.getName());
// 콘솔에 "new member = "라는 문자열과 함께 'member' 객체의 'getName()' 메서드를 호출한 결과를 출력합니다. 이는 등록된 회원의 이름을 출력합니다.
System.out.println("find Member = " + findMember.getName());
// 콘솔에 "find Member = "라는 문자열과 함께 'findMember' 객체의 'getName()' 메서드를 호출한 결과를 출력합니다. 이는 조회된 회원의 이름을 출력합니다.
}
}
package hello.core.member;
// 이 줄은 패키지 이름을 선언합니다. 패키지는 Java에서 관련된 클래스와 인터페이스를 조직화하는 데 사용됩니다.
import org.assertj.core.api.Assertions;
// Assertions 클래스를 import합니다. 이 클래스는 assertj라는 라이브러리의 일부로, 테스트 검증을 위해 다양한 assertion 메소드를 제공합니다.
import org.junit.jupiter.api.Test;
// JUnit 5의 Test 어노테이션을 import합니다. 이 어노테이션은 메소드가 테스트 메소드임을 나타냅니다.
public class MemberServiceTest {
// 'MemberServiceTest'라는 public 클래스를 선언합니다.
MemberService memberService = new MemberServiceImpl();
// 'MemberService' 인터페이스의 구현체인 'MemberServiceImpl'의 인스턴스를 생성하고, 이를 'memberService'라는 변수에 할당합니다.
@Test
// '@Test' 어노테이션은 이 메소드가 JUnit에 의해 실행되는 테스트 메소드임을 나타냅니다.
void join() {
// 'join'이라는 테스트 메소드를 선언합니다.
//given
Member member = new Member(1L, "member1", Grade.VIP);
// 테스트 상황 설정: 'Member' 클래스의 인스턴스를 생성하며, 생성자에 ID는 '1L', 이름은 "member1", 등급은 'Grade.VIP'로 지정합니다.
//when
memberService.join(member);
// 테스트 실행: 'memberService'의 'join' 메서드를 호출하여, 위에서 생성한 'member' 객체를 등록합니다.
Member findMember = memberService.findMember(1L);
// 테스트 실행: 'memberService'의 'findMember' 메서드를 호출하여 ID가 '1L'인 회원의 정보를 조회하고, 그 결과를 'findMember' 변수에 저장합니다.
//then
Assertions.assertThat(member).isEqualTo(findMember);
// 테스트 검증: 'Assertions' 라이브러리의 'assertThat' 메서드를 사용하여 'member' 객체와 'findMember' 객체가 동일한지 검증합니다.
}
}
'SPRING > Spring' 카테고리의 다른 글
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기]주문과 할인 도메인 개발 (0) | 2024.05.02 |
---|---|
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기] 주문과 할인 도메인 설계 (0) | 2024.05.02 |
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기] 도메인 개발 (0) | 2024.05.02 |
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기] 프로젝트 개발 환경과 요구사항 (0) | 2024.05.02 |
[스프링| 스프링 핵심 원리 | 기본편 | 객체 지향 설계와 스프링] SOLID (1) | 2024.05.01 |