인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

비랑님의 프로필 이미지
비랑

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA, DB 연동 관련 오류 질문

작성

·

77

0

안녕하세요 영한님 JPA 활용1 강의의 JPA와 DB 설정, 동작확인 파트를 실습하다가 오류가 생겨 질문남겨요

3시간 동안 검색해도 해결하지 못했어요..

 

MemberRepository 테스트 시

캡처.PNG.webp

아래와 같은 오류가 발생해 해결하고자 합니다.

 

아마 application.yml 쪽 문제 같은데 강의와 똑같이 따라했는데도 불구하고 오류가 발생하네요..

H2는 확실히 켜고 테스트 시도했습니다.

 

아래는 강의를 보며 따라한 프로젝트입니다.

https://drive.google.com/file/d/1BvWBkoHE0fjdIFABmGeiOMDLuG-pKdwP/view?usp=sharing

답변 2

0

안녕하세요. 구민욱님, 공식 서포터즈 y2gcoder입니다.

저는 다음과 같이 세팅했을 때 성공한 것 같습니다!

  1. h2 db 버전 확인 및 실행: 2.2.224를 설치하고 실행 후 test db까지 만들어줬습니다!

  2. 인텔리제이 test 시 build tool 을 gradle 로 변경: Settings > Build, Execution, Deployment > Build Tools > Gradle 에서 Run tests using 또한 gradle 로 변경해주었습니다!

    image.png
  3. Spring Boot 3, JUnit 5 에 맞게 필요없는 애노테이션 제거: 해당 버전 부터는 위에 @ExtendWith 애노테이션을 붙일 필요가 없습니다! 제거해주십쇼

    image.png

 

위 까지 해주신 뒤 실행했을 때 테스트가 성공했습니다 🙂

 

image.png

 

감사합니다.

비랑님의 프로필 이미지
비랑
질문자

application.yml에서
spring:

datasource:

url: jdbc:h2:mem:testdb

이렇게 메모리 모드로 바꿔주니까 되긴하는데 이러면 뭐가 문제인거죠...?
댓글 달아주셔서 감사합니다.


테스트 실행 시 이런 다른 오류도 발생하는데 자바 버전 문제일까요?

asd.PNG.webp

혹시 설치하신 h2 db의 버전이 다를까요?

제가 드린 답변에서 1번 부분이 마음에 걸립니다!

아마도 2.2.224 버전이 아니라서 그랬을 수도 있을 것 같습니다!

보통 환경 세팅 문제에서는 학습하시는 분마다 다양한 문제들이 발생할 수 있기 때문에 확답을 못드려 죄송합니다 ㅜ

비랑님의 프로필 이미지
비랑
질문자

H2 버전은 2.2.224로 실행된다고 하셔서 지우고 다시 깔았습니다. 홈의 db파일도 삭제했구요

근데 test db를 생성하신다는게 제대로 이해가 안됐어요

xfxf.PNG.webp

근데 test db를 생성하신다는게 제대로 이해가 안됐어요

=> 홈에 db 파일을 생성하는 과정을 위의 말로 표현했습니다!

image.png

위의 DB 파일을 생성하는 과정입니다!

비랑님의 프로필 이미지
비랑
질문자

네네 저거 그대로 다했는데... 안되네요
코드 외적으로 버전이나 환경설정 때문에 오류 날 때 진짜 미치겠네요..

나중 알바 갔다와서 더 시도해보겠습니다
답글 달아주셔서 감사합니다

공감합니다..

의외로 컴퓨터를 재부팅했을 때 되는 경우도 더러 보았습니다 🙂

파이팅입니다!

비랑님의 프로필 이미지
비랑
질문자

h2를 계속 메모리모드로 강의를 진행하면 나중에 강의와 똑같이 하는데에 지장이 있을까요?

그리고 지금 wsl을 사용해서 h2.sh를 실행하고 있는데 jpashop.mv.db파일이 리눅스 루트 쪽으로 만들어져서 그걸로 연결하는데 혹시 이게 문제가 될수도 있을까요?
감사합니다.

메모리 모드로 했을 때는 애플리캐이션을 종료할 때마다 데이터가 날아간다는 점에서는 불편할 수 있을 것 같습니다!

가급적이면 윈도우 OS에서 학습하시는 분들께는 h2.bat 을 사용해서 윈도우 자체에서 실행하는 방향으로 말씀드리는 것 같습니다!

혹시나 영한님이나 다른 서포터즈 분들도 볼 수 있도록 해놓겠습니다!

도움이 되지 못해 죄송합니다

비랑님의 프로필 이미지
비랑
질문자

아닙니다 꾸준히 답글 달아주셔서 감사합니다

비랑님의 프로필 이미지
비랑
질문자

오류 해결했습니다.
아무래도 wsl 환경에서 h2.sh로 실행한게 문제였던 것 같아요
윈도우에 자바 설치하고 powershell에서 h2.bat로 실행하니까 정상적으로 동작합니다

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 구민욱님.

JPA와 DB 설정, 동작확인 파트를 실습하시면서 발생한 java.lang.IllegalStateException: Failed to load ApplicationContext 오류에 대해 안내드리겠습니다. 이 오류는 주로 스프링 애플리케이션 컨텍스트 로딩 과정에서 문제가 발생했음을 나타내며, 여러 가지 원인이 있을 수 있는데요, 특히 설정 파일인 application.yml 또는 application.properties의 설정 오류가 흔한 원인입니다.

문제 해결을 위한 주요 확인 사항은 다음과 같습니다:

  1. 데이터베이스 연결 확인: H2 데이터베이스가 실행 중인지 확인해 주세요. H2 콘솔에 접속해서 데이터베이스 상태를 점검하는 것도 좋습니다.

  2. application.yml 설정: 데이터 소스 URL, 사용자 이름(username), 암호(password), 그리고 JPA 관련 설정들이 올바르게 설정되어 있는지 확인하세요. 가끔 빈 공간이나 잘못된 들여쓰기도 문제가 될 수 있습니다.

    • 여기서 jpa.hibernate.ddl-auto 옵션이 제대로 설정되어 있는지, spring.datasource.url이나 spring.datasource.driver-class-name이 올바른지 점검해 주세요.
  3. Test Configuration: @SpringBootTest와 같은 애노테이션이 테스트 클래스에 올바르게 적용되었는지 확인하고, @ActiveProfiles("test")를 사용하여 테스트 프로파일을 사용하는 것도 확인해 주세요.

질문하신 내용을 바탕으로 몇 가지 유사한 질문 및 답변 URL도 추천드립니다:

각 링크에서 제공하는 내용이 설정 오류 해결에 유용할 수 있을 것으로 보입니다. 추가적인 정보나 오류 메시지의 구체적인 내용을 포함해 질문을 좀 더 상세하게 주시면, 보다 집중적인 도움을 받을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

비랑님의 프로필 이미지
비랑

작성한 질문수

질문하기