Spring/Spring
스프링의 등장 - 순수 자바 코드에서 스프링까지 1
jddng
2022. 1. 15. 03:07
728x90
반응형
스프링의 등장 1 - 과거 순수 자바 코드
과거에는 어떻게 개발을 했고, 왜 스프링이 등장하게 되었는지 알아보자.
회원 클래스 다이어그램
위 클래스 다이어그램으로 순수 자바 코드를 작성해보자. 또한 순수 자바 코드를 작성하면서 단위 test도 진행해보자.
'역활'과 '구현'을 잘 나누어서 구현하자.
이제 코딩을 시작해보자. 단 코딩할때 유의할점.. 바로 단위 테스트이다. 실무에서도 중요한게 항상 단위 테스트를 작성하여 에러가 없는지 확인하낟. 위 클래스 다이어 그램대로 코딩을 했으면 바로 단위 테스트를 해보자.
회원 등록 단위테스트
package hello.core.member;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
public class MemberServiceTest {
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);
}
}
주문 도메인 클래스 다이어그램
위와 같이 추가 요구사항이 발생하였다. 아직 할인 정책을 둘중에 어느것으로 적용할지 정하지 못한 상황이다. 우리는 이와 같은 요구사항일 때 할인 정책을 interface로 구현하여 나중에 회사가 요구하는 할인정책을 역활로 지정해주면 된다.
주문 단위 테스트
package hello.core.order;
import hello.core.member.*;
import hello.core.order.Order;
import hello.core.order.OrderService;
import hello.core.order.OrderServiceImpl;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
public class OrderServiceTest {
MemberService memberService = new MemberServiceImpl();
OrderService orderService = new OrderServiceImpl();
// 단위 테스트가 중요하다 순수 자바 코드로 테스트!
@Test
void createOrder(){
Long memberId = 1L;
Member member = new Member(memberId, "memberA", Grade.VIP);
memberService.join(member);
Order order = orderService.createOrder(memberId, "itemA", 10000);
Assertions.assertThat(order.getDicountPrice()).isEqualTo(1000);
}
}
단위 테스트를 한다는건 순수 자바 코드로 테스트 할 수 있다는 점이다. 그러니 처음 배울때부터 단위 테스트를 계속 실행하자.
728x90
반응형