코딩공작소
Springboot3 실습 (1) - 개발환경 및 테스트 환경 세팅 본문
처음에는 그레이들을 세팅해주고 새로고침을 해서 의존성들을 받아와준다.
그리고는 첫 시작이 되는 자바 애플리케이션을 만든다.
이렇게 기초 세팅 완료!
스프링 부트 스타터
- spring-boot-starter-web : Spring MVC를 사용해서 RESTful 웹 서비스를 개발할 때 필요한 의존성 모음
- spring-boot-starter-test : 스프링 애플리케이션을 테스트하기 위해 필요한 의존성 모음
- spring-boot-starter-validation : 유효성 검사를 위해 필요한 의존성 모음
- spring-boot-starter-actuator : 모니터링을 위해 애플리케이션에서 제공하는 다양한 정보를 제공하기 쉽게 하는 의존성 모음
- spring-boot-starter-data-jpa : ORM을 사용하기 위한 인터페이스의 모음인 JPA를 더 쉽게 사용하기 위한 의존성 모음
@SpringBootApplication
1. @SpringBootConfiguration : 스프링 부트 관련 설정을 나타내는 애너테이션
2. @ComponentScan : 사용자가 등록한 빈을 읽고 등록하는 애너테이션
3. @EnableAutoConfiguration : 자동 구성을 활성화하는 애너테이션
build.gradle 의존성 추가하기
스프링 데이터 JPA, 인메모리 디비, 롬복 사용 의존성을 추가하였다.
MVC단은 쉬운 부분이니까 설명은 생략하고,
application.yml 설정 파일에 sql 파일을 설정을 등록하면 사용할 수 있다.
그리고 애플리케이션을 실행해주고 포스트맨을 실행해주면!
당연하게도 리포지토리 단에서 설계한 멤버들을 전부 조회한다.
- 프레젠테이션 계층 : HTTP 요청을 받고 비즈니스 계층으로 전송
- 비즈니스 계층 : 모든 비즈니스 로직 처리
- 퍼시스턴스 계층 : 모든 스토리지 관련 로직 처리
스프링 부트3의 테스트 코드
기본적으로 given - when - then 절을 많이 사용한다.
그리고, JUnit, AssertJ를 가장 많이 사용한다.
- @DisplayName : 테스트 이름 명시
- @Test : 테스트를 수행하는 메서드
설정 후 테스트 실행 시, 성공 실패여부 확인 가능
@BeforeAll | 전체 테스트 시작 전 1회 실행 / 메서드는 static 선언 / 클래스 단위 |
@BeforeEach | 테스트 케이스 시작 전마다 실행 / 함수 단위 |
@AfterAll | 전체 테스트 끝나면 1회 실행 / 메서드는 static 선언 / 클래스 단위 |
@AfterEach | 테스트 케이스 끝마다 실행 / 함수 단위 |
AssertJ는 JUnit와 함께 검증문의 가독성을 높여주는 라이브러리
테스트에 쓰이는 여러 검증함수들을 제공한다.
컨트롤러에서 테스트 클래스를 생성할 수 있다.
- @SpringBootTest : 테스트용 애플리케이션 컨텍스트라는 것을 만든다
- @AutoConfigureMockMvc : MockMvc를 생성하고 자동으로 구성한다. 애플리케이션을 서버에 배포하지 않고도 테스트용 MVC환경을 만들어 요청 및 전송, 응답 기능을 제공하는 유틸리티 클래스.
/test API 를 테스트하는 코드를 작성한다.
- perform() : 요청을 전송하는 역할을 하는 메서드
- accept() : 무슨 타입으로 응답을 받을지 결정하는 메서드
- andExpect() : 응답 검증
- jsonPath : 응답값의 값을 가져오는 메서드
'어플리케이션개발 > springboot실습' 카테고리의 다른 글
Springboot3 실습 (5) - Oauth2로 로그인/로그아웃 구현 (0) | 2024.04.11 |
---|---|
Springboot3 실습 (4) - JWT로 로그인/로그아웃 구현하기 (0) | 2024.04.03 |
Springboot3 실습 (3) - 스프링 시큐리티(로그인, 회원가입) (1) | 2024.04.02 |
Springboot3 실습 (2) - 기본 CRUD 화면 개발 (1) | 2024.03.27 |
Springboot3 실습 (2) - 기본 CRUD REST API 개발 (0) | 2024.03.27 |