Spring Boot

[Spring Boot] 스프링 DB 접근 기술

seung_hyeon 2024. 12. 27. 17:57

메모리에 저장한 후 서버가 내려가면 데이터가 메모리에서 사라짐

→ 해결 : 데이터베이스에 데이터들을 저장 후 관리

 

순수 JDBC 개발 너무 어려움 -> 스프링이 중복으로 다 제거 (JDBC 템플릿 기술 제공) -> 애플리케이션에서 데베로 SQL을 편리하게 날림 -> JPA라는 기술이 DB에 쿼리(등록, 수정, 삭제) 날려줌 

JPA : 객체를 바로 DB에 쿼리 없이 저장, 관리 가능

  • H2 데이터베이스 (교육용으로 좋음)

https://www.h2database.com/html/main.html -> All platform 다운로드

 

 

  • 처음 실행 시

→ 처음 생성 시 home에 test.mv.db 파일이 존재해야 함

 

  • 처음 생성 이후

파일로 접근 시 애플리케이션, 웹 콘솔 동시 접근 안될 수도 있음 

→ 해결 : 소켓을 통해서 접근 (여러 군데서 접근 가능)

 

 

- H2 실행 시 발생한 에러

 

[Spring Boot] H2 '페이지를 열 수 없음'

h2 콘솔 재실행 시 '페이지를 열 수 없음' 페이지가 뜸 해결 방법 1. 포트 충돌 확인 현재 포트 8082 사용하는 프로세스 확인lsof -i :8082 → 8082 사용 안 하고 있음  2. H2 서버의 실행 포트 확인lsof

shyeeon.tistory.com

 

 


 

→ null값을 인서트 하면 db가 들어왔을 때 자동으로 id값을 채워줌

 

 

 


  • 스프링 통합 테스트

@SpringBootTest 

스프링 컨테이너와 테스트를 함께 실행

 

@Transactional 

테스트를 실행할 때 transacion을 먼저 실행하고 그다음에 DB에 데이터를 인서트 쿼리하고 다 넣은 후 테스트가 끝나면 롤백해 줌

→ DB에 데이터가 남지 않아 다음 테스트에 영향 주지 않음

 

 

스프링 통합 테스트 중 발생한 에러

 

[Spring Boot] 스프링 통합 테스트 에러

회원가입 test 실행 시 발생한 에러 발생원인 Java 9 이상부터 JDK가 Java Agent 로딩 방식에 대해 더 엄격해졌기 때문, Mockito 라이브러리가 내부적으로 사용하는 inline-mock-maker 기능을 사용할 때

shyeeon.tistory.com