Spring 강의(24)
-
[13강]
스프링 빈과 의존관계 스프링 빈을 등록하고, 의존관계 설정하기 MemberController를 만들어보자. 이렇게 작성해두면 기능은 없으나 스프링이 처음 실행될 때 스프링 컨테이너라는 통이 생기는데 이 통에 @Controller 어노테이션이 붙으면 MemberController라는 객체를 만들어서 스프링이 컨테이너에 넣어두고 관리한다. -> 스프링 빈이 관리된다. 이제 이 안에서 service 객체를 만들 것인데 이런 식으로 new로 생성할 수도 있겠지만 스프링이 관리하게 되면 다 스프링 컨테이너에 등록을 하고 스프링 컨테이너에서 받아서 쓰도록한다. 그러면 딱 하나만 등록되어 그걸 사용하면 된다. MemberController는 스프링 컨테이너가 뜰 때 생성되는데 그 때 생성자를 호출한다. 그런데 생성자..
2023.02.02 -
[12강]
MemberService 코드를 테스트 해보자 MemberService 클래스에서 ctrl + shift + t를 누르면 자동으로 Test 클래스를 만들어준다. 테스트 코드는 given - when -then으로 나누어 작성하면 좋다. given - 뭔가가 주어졌을 때 when - 이것을 실행하면 then - 결과가 이게 나와야 한다. join() Test 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 @Test void join() { //given - 뭔가가 주어졌을 때 Member member = new Member(); member.setName("hello"); //when - 이것을 실행하면 Long saveId = memberService.join(member); //then -..
2023.02.02 -
[11강]
회원 서비스 클래스를 만들어보자. MemberService 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package hello.hellospring2.service; import hello.hellospring2.domain.Member; import hello.hellospring2.repository.MemberRepository; import hello.hellospring2.repository.MemoryMemberRepository; import java.util.Optional; public class MemberService { private final MemberRepository memberRepository = new..
2023.02.02 -
[10강]
회원 리포지토리 테스트 케이스 작성 개발한 기능을 실행해서 테스트할 때 자바의 main 메소드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행한다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한 번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다. save() Test 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package hello.hellospring2.repository; import hello.hellospring2.domain.Member; import org.junit.jupiter...
2023.02.02 -
[9강]
회원 도메인과 레파지토리를 만들어보자. 먼저 domain과 repository라는 디렉토리를 만들고 그 안에 각각 Member 클래스, MemberRepository 인터페이스, MemoryMemberRepostiory 클래스를 만든다. 1. Member 클래스 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package hello.hellospring2.domain; public class Member { private Long id; //시스템이 정한다. private String name; //고객이 정한다. public Long getId() { return id; } public void setId(Long id) { this.id =..
2023.01.30 -
[8강]
회원 관리 예제 - 백엔드 개발 비즈니스 요구사항을 정리하자. 회원 도메인과 회원 도메인을 저장하고 불러올 수 있는 레파지토리를 만들자. 회원 레파지토리가 정상 작동하는지 테스트 케이스를 작성하자. 실제 비즈니스 로직이 있는 회원 서비스를 개발하자. 정상 작동하는지 회원 서비스 테스트를 만들자. - junit이라는 테스트 프레임 워크로 만들 것 1. 비즈니스 요구사항 정리 데이터 : 회원id, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 ex) 중복 가입 불가 리포지토리 : DB에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, ex) 회원, 주문, 쿠폰 등등 ..
2023.01.30