-
스프링의 등장 - 순수 자바 코드에서 스프링까지 1Spring/Spring 2022. 1. 15. 03:07728x90반응형
스프링의 등장 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반응형'Spring > Spring' 카테고리의 다른 글
스프링의 등장 - 순수 자바 코드에서 스프링까지 3 , IoC(제어의 역전)와 Di 그리고 등장하는 스프링 (0) 2022.01.16 스프링의 등장 - 순수 자바 코드에서 스프링까지 2 (0) 2022.01.16 SOLID - SRP, OCP, LSP, ISP, DIP (0) 2022.01.14 객체 지향 프로그래밍 (OOP, Object-Oriented Programming) (0) 2022.01.13 Spring (0) 2022.01.13