출처: 스프링 입문(김영한)
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의
스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런...
www.inflearn.com
비지니스 요구사항
회원 등록과 조회하는 기능을 가진다.
db는 정해지지 않았다고 가정한다.
데이터: 회원 ID, 이름
구조
추가 설명
[Spring] 웹애플리케이션 계층구조
Controller클라이언트가 이용할 앤드포인트클라이언트의 요청을 어떻게 처리할 지 정의화면에서 넘어오는 매개변수를 이용해 서비스 객체를 호출하는 역학Service비즈니스 로직 구현Http 통신을 위
velog.io
컨트롤러: 매개변수로 서비스 객체 호출
서비스: 비지니스 로직(중복 회원가입은 안된다 등등) 구현
도메인: entity 즉 클래스 객체를 말한다.
레포지토리: db 접근, 저장 관리
Domain 만들기
Member 클래스 만들기
Repository 만들기
MemberRepository 인터페이스
MemoryMemberRepository (MemberRepository 인터페이스 구현체)
HashMap 사용방법 https://hianna.tistory.com/573
[Java] HashMap key, value 전체 출력하기
map.entrySet() map.keySet(), mep.get() map.keyValue() - value만 가져오기 Iterator forEach (Java 8 이후) 1. map.entrySet() public Set entrySet() map.entrySet() 메소드는 해당 map의 key와 value를 가지는 Set 객체를 리턴합니다. 코드
hianna.tistory.com
테스트 코드 작성
실제 작동되는지 확인하기 위해 테스트 코드를 작성하자.
JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다.
함수 앞에 @Test 어노테이션을 붙인다.
@afterEach 어노테이션을 이용하여 테스트 후마다 repository를 clean한다.
테스트 시 의존성 문제를 해결할 수 있다.
cleanStore함수 정의하기(MemoryMemberRepository.java)
테스트 코드
Assertions.assertThat 함수를 이용해 테스트 결과가 맞는지 확인한다. (assertj의 Assertions 사용, option+enter: static 변수)
Service 만들기
서비스: 이름을 비지니스적으로 짓기
잘 되었는지 확인하려면, 테스트 케이스 작성하기
테스트케이스 작성
command+shift+T: 테스트케이스 구조 만들어준다.
테스트케이스의 함수는 실제 코드에 포함되지않으므로 보기 쉽게 한글로 작성해도 좋다.
테스트케이스의 머리-가슴-배
1. given
기반 데이터
2. when
검증하는 것
3. then
검증부
올바른 오류인지 확인하고, 로그 메세지까지 같은지 확인한다. - 내가 찾는 그 오류가 맞는지 확인
의존성 주입(DI)
test시에 memberRepository가 각각 생성되어 사용한다.
주입하는 방향으로 바뀌면 같은 repository를 사용할 수 있다.
단축키
- option+Enter로 method import, static 변수 만들기
- option+command+V: 변수 추출
- command+P: 함수 변수 정보 알기
- shift+fn+f6: 이름 변경
'Spring > 스프링 입문' 카테고리의 다른 글
DB 접근 기술 (2) | 2023.01.24 |
---|---|
웹 MVC 개발 (0) | 2023.01.22 |
스프링 빈과 의존관계 (0) | 2023.01.22 |
스프링 웹 개발 기초 (0) | 2023.01.21 |
spring 초기 설정 ~ 빌드+실행 (0) | 2023.01.21 |