H2 데이터베이스 설치
- 교육용으로 적합
- 개발, 테스트 용도로 가볍고 편리
- 웹 화면 제공
H2 데이터베이스 설치를 위해 https://www.h2database.com/ 에 접속한 뒤, 원하는 버전을 선택해 설치한다.
(H2 데이터베이스 홈페이지)
스프링 부트 2.x > 1.4.200 버전 다운로드
스프링 부트 3.x > 2.1.214 버전 이상 다운로드
압축을 풀고,
`h2` 파일에 들어가 `bin`폴더로 들어간다.
맥
- `chmod 755 h2.sh` 로 권한을 줘야 실행이 된다.
- `./h2.sh` 으로 h2.sh 파일을 실행한다.
윈도우
- `./h2.bat` 로 h2.bat 파일을 실행한다.
정상 생성이 되지 않는 경우, url의 `:` 부분 앞 아이피 부분을 지우고, `localhost`로 수정하면 접근할 수 있다.
(H2 데이터베이스 실행 화면)
JDBC URL
1. 최초 한 번은 `jdbc:h2:~/test` 로 접속하여 들어간 다음, 다시 나온다.
2. `dir`(맥은 `ll`) 로 `~/test.mv.db` 파일이 생성됐는지 확인한다.
3. 이후부터는 `jdbc:h2:tcp://localhost/~/test` 로 접속하여 들어간다.
> 참고 <
`jdbc:h2:~/test` 로 파일을 통해 다양한 곳에서 접근하면 오류가 발생
`jdbc:h2:tcp://localhost/~/test` 로 파일이 아닌 소켓을 통해 다양한 곳에서 안전하게 접근
만약 문제가 생기면, `~/test.mv.db` 파일을 삭제한 뒤 다시 실행한다.
예를 들어
drop table if exists member CASCADE;
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
);
이런 식으로 작성하여 member table 을 생성할 수 있다.
스프링 통합 테스트
- 테스트 클래스 위에 @SpringBootTest, @Transactional 스프링 빈을 추가한다.
- @Autowired 로 사용할 클래스를 불러온다.
@SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행
@Transactional : 테스트를 완료한 뒤 항상 rollback 하여 DB에 반영되지 않도록 한다.
@Commit : @Transactional 이라도 commit 하여 DB에 저장된다.
> 참고 <
- 운영 DB와 테스트 DB를 보통 따로 준비한다.
- 순수한 자바 단위 테스트가 스프링 컨테이너, DB와 연결된 테스트보다 좋은 테스트이다.
예시 코드
@SpringBootTest
@Transactional
class MemberServiceIntegrationTest {
@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;
// @Commit
@Test
void 회원가입() {
Member member = new Member();
member.setName("spring100");
Long saveId = memberService.join(member);
Member findMember = memberService.findOne(saveId).get();
Assertions.assertThat(member.getName()).isEqualTo(findMember.getName());
}
}
출처 | 스프링 입문(김영한) - 인프런
'💠프로그래밍 언어 > Java' 카테고리의 다른 글
[Spring] AOP 는 무엇일까 ?? (0) | 2024.12.30 |
---|---|
[Spring] 순수 JDBC, JdbcTemplate, JPA, 스프링 데이터 JPA (0) | 2024.12.30 |
[Spring] 스프링 빈 등록하는 2가지 방법 (컴포넌트 스캔, 직접 등록) !! (1) | 2024.12.20 |
[Spring] View 를 처리하는 방법들 (Static, Template, API) (1) | 2024.12.20 |
[Spring] 스프링 프로젝트 생성, 라이브러리, 빌드하기 (0) | 2024.12.20 |