Spring
스프링 입문 - 회원 웹 기능 - 홈 화면 추가
스프링 입문 - 회원 웹 기능 - 홈 화면 추가
2022.05.19홈 화면을 추가해 보자. 아주 단순하게, 회원을 등록하고 조회할 수 있는 버튼(링크)가 있는 사이트를 만들어 보자. 컨트롤러 폴더에 HomeController 라는 이름으로 파일을 만들었다. 이렇게 작성을 했다. "/"는 뭐냐면, locahost:8080으로 딱 들어오면, home()이 호출이 된다. 그러면 home.html이 호출이 되야 할 것이다. template에서 hom.html을 생성해주자. home.html의 html은 강의록에 있는 것을 복사해서 넣었다. 서버를 run시켜보자. localhost:8080의 화면이다. 그리고 회원 가입링크를 누르면, localhost:8080/members/new 로 가게 했고, 회원 목록을 누르면 localhost:8080/members 로 가게 했다. 물론..
스프링 입문 - 자바 코드로 직접 스프링 빈 등록하기
스프링 입문 - 자바 코드로 직접 스프링 빈 등록하기
2022.05.19저번시간에는,@Service, @Repository, @Autowired, 등을 이용하여 컴포넌트 스캔으로 스프링 컨테이너에 스프링빈으로 자동으로 등록하고, 연결하는 것을 자동으로 했는데, 이번시간에는, 자바 코드로 하나하나 직접 스프링 빈을 등록해보도록 하겠다. MemberService와 MemberRepository의 @Service, @Repository, @Autowired 애너테이션을 제거하고 진행하도록 하자. (MemberController 는 그대로 둔다.) 지우고나서 돌려보면, 당연히 스프링이 올라올 때 컴포넌트 스캔이 안되므로, MemberService가 스프링빈에 등록되어있지 않다. 그래서 이처럼 오류가 난다. 컴포넌트 스캔방식 말고, 직접 등록하는 방식에 대해 알아보자. SpringC..
컴포넌트 스캔과 자동 의존관계 설정
컴포넌트 스캔과 자동 의존관계 설정
2022.05.18지금까지 우리는, MemberService와 MemberRepository를 만들었다. 그리고, Member객체도 만들고, 서비스를 통해서 멤버가 가입할 수 있고, 리포지토리에 저장이 되고, 리포지토리에서 꺼내올수 있는 이러한 로직들을 만들었고, 테스트도 만들었었다. 이번시간에는, 화면을 붙이고 싶은데 그럴려면 먼저 컨트롤러와 view템플릿이 필요하다. 회원가입하고, 회원가입된 결과를 html로 뿌려주고, 이러한 것들을 하려고 한다. 그럴려면, 멤버 컨트롤러를 만들어야 하는데, 멤버 컨트롤러가 멤버서비스를 통해서 회원가입을 하고, 멤버서비스를 통해서 데이터를 조회할 수 있어야 한다. 이렇게 되는 것을 "서로 의존 관계가 있다." 라고 표현한다. (멤버컨트롤러가 멤버서비스를 의존한다.) 이 작업을 Spri..
스프링 입문 - 회원 서비스 테스트
스프링 입문 - 회원 서비스 테스트
2022.05.18이번 시간에는 회원 서비스 클래스를 테스트 해볼 것이다. 이전시간에 테스트를 할 때는, 이렇게 패키지를 만들어서 직접 했는데, 엄청 편하게 하는 방법이 있다. 테스트 하고싶은 클래스에 커서를 두고 , cmd+shift+t 를 누르면 Creat New Test를 누를 수 있다. 테스팅 라이브러리는 Junit5를 선택하고, 클래스 이름은 MemberServiceTest라고 지정한다. 그리고 테스트할 메서드를 선택체크 해주면 된다. OK를 누르면, 이렇게 자동으로 테스트 껍데기를 만들어 준다. 생성된 위치는 test폴더에 service패키지에 만들어졌다. 이제 하나씩 작성해보자. 테스트 코드를 제외한 실제 동작하는 코드들은, 한글로 네이밍하는 것이 관례적으로 금기되었는데, 테스트 코드는 영어권 사람들과 일하는..
스프링 입문 - 회원 서비스 개발
스프링 입문 - 회원 서비스 개발
2022.05.17회원 서비스 클래스를 만들어보자. 회원 서비스는, 회원 리포지토리와 도메인을 활용해서 실제 비즈니스 로직을 작성하는 것이다. service라는 이름으로 패키지를 생성했다. 그리고 여기에 MemberService 라는 이름으로 클래스를 생성했다. 서비스를 작성해 보자. private final MemberRepository memberRepository = new MemoryMemberRepository(); 일단, 회원 서비스를 만들려면, 회원 리포지토리가 있어야 한다. public Long join(Member member) { memberRepository.save(member); return member.getId(); } 그리고, 회원 가입을 만들어보자. 회원가입은 memberRepository에..
스프링 입문 - 회원 리포지토리 테스트 케이스 작성
스프링 입문 - 회원 리포지토리 테스트 케이스 작성
2022.05.17개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹 어플리케이션의 컨트롤러를 통해서 해당 기능을 실행 해볼 수 잇는데, 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnuit이라는 테스트 프레임워크로 테스트를 실행할 수 있다. test폴더의 java 의 hello의 hellospring 폴더에 repository 라는 이름의 패키지를 만들었다.(보통 테스트 패키지 이름은 기존 패키지와 동일하게 지정한다) 그리고 클래스를 생성해주는데, 테스트할 클래스이름 뒤에 test를 붙여서 이름을 지정해주는 것이 관례다. 얘는 다른데서 쓸 것이 아니기 때문에, 굳이 public으로 만들지 않아도 된..