-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
Delivery Table 문제
22.05.26 00:09 작성 조회수 289
0
답변을 작성해보세요.
1
OMG
2022.05.26
안녕하세요. 딱구 님, 공식 서포터즈 OMG입니다.
해당 에러는 application.yml에서 오타 혹은 띄어쓰기 문제일 확률이 높습니다.
강의자료와 다른 부분이 있는지 확인해주세요.(제공해드리는 프로젝트의 application.yml을 사용해주세요)
확인이 어려울 경우 댓글남겨주세요.
감사합니다.
김설영
질문자2022.05.26
안녕하세요! 답변 감사드립니다.
컴퓨터 한대 더 켜서, 코드도 다시 전부 확인해보고, 특히 yml파일은 혹시 몰라 강의해서 제공해주신 것을 그대로 사용하였습니다.
하지만, yml파일로 해결이 되지 않았어요 ㅠ.ㅠ
그런데, 나름 개인적으로 궁금한 부분이 많아서 확인해본 결과 스프링부트의 버전 문제 일수도 있을 것 같아서 또 다시 질문을 드리게 되었습니다..!
수업에서 제공해주신 jpashop 파일의 build.gradle을 확인해보니 플러그인의 스프링부트(org.springframework.boot) 버전이 2.4.1이고,
제가 사용한 버전은 2.7.0 입니다.
제가 컴퓨터가 두대가 있어서, 한 대는 수업에서 제공해주신 파일(2.4.1)로 실행했고,
공부에 사용하던 컴퓨터로는 2.7.0버전을 그대로 사용하였습니다.
그랬더니 2.4.1버전은 문제없이 아주 잘 실행이 되었고, 2.7.0 버전은 여전히 실행이 안되었습니다.
그 결과,
버전 문제로 생각되어서 구글링을 해보았는데, 스프링부트 2.5부터 hibernate가 초기화되기 전에 data.sql이 먼저 실행되어서 발생되는 오류라고 합니다 (무슨소린지는 못알아들었어요ㅠ)
(참고한 블로그 : https://zzang9ha.tistory.com/371)
그래서 해당 이슈로 고통받은 분들이 공통적으로 아래와 같은 내용을 yml에 추가해서 해결하였다는 분들이 많은데, 저는 이걸로 해결이 안되더라구요..ㅠ.ㅠ 혹시 다른 해결법이 있나? 해서 언급된 모든 방법을 사용해보았는데, 해결이 되지 않습니다..!
그래서 일단 수업을 진행하기 위해서는 버전을 낮춰서 사용해야 할 것 같지만..
혹시 제가 버전을 바꾸지 않고 해결할 방법이 있을까 너무 궁금해서 다시 댓글 남깁니다.
감사합니다!
spring.jpa.defer-datasource-initialization: true
OMG
2022.05.28
안녕하세요. 딱구 님, 공식 서포터즈 OMG입니다.
문제 해결을 위한 과정을 상세히 남겨주셔서 감사합니다.
말씀하신대로 스프링 부트 버전의 문제인가 싶어 강의에서 제공해드리는 프로젝트(딱구님과 제가 공통으로 확인할 수 있는 코드임으로)
로 확인해보았습니다.
build.gradle을
2.4.1 -> 2.7.0으로 올리고 확인해보았는데
실행에 문제가 없었습니다.
단순 버전 문제는 그 아닌 것 같고 그 외 다른 문제로 발생하지 않나 생각합니다.
테스트 환경
- 자바11
- 강의제공 프로젝트
- h2 1.4.200
- gradle 6.8
딱구님과 동일한 증상을 겪으시는 분들은 딱구님의 답변을 참고해주세요:)
감사합니다.
김설영
질문자2022.05.29
아이고.. 시간내서 버전도 바꾸고 확인 해주셔서 정말 감사드립니다.
일단, 선생님께서 버전의 문제가 아니라는 것이 힌트가 되어 확실한 문제가 무엇인지 확인했고, 해결했습니다. 감사합니다.
좀 노가다 방식이긴 하지만, 문제 확인 과정은 다음과 같습니다 ㅎㅎ;;
제 문제의 프로젝트 폴더를 복사해서 새 프로젝트를 만들고,
수업 코드의 src 폴더를 복사해서 붙여넣었습니다. (수업 코드에서 버전만 저와 똑같이 빌드업해서 사용해보려했으나, gradle의 버전도 올려야 하는 것 같아, 일단은 빨리 확인해보고자 이렇게 했습니다)
거기서 이제 제 문제의 프로젝트 폴더의 패키지들을 하나씩 차례로 확인하고, 문제가 생긴 패키지의 클래스파일을 하나하나 확인해 본 결과, Delivery 파일 자체가 문제가 있었습니다.
교차검증을 위하여, 제공해주신 프로젝트 폴더에 제 Delivery 클래스 파일을 넣어보았는데, 똑같은 문제가 생겼습니다.
그래서 다시 눈을 크게뜨고 코드를 비교했는데, 분명히 제 눈에는 오타도 없었고, import 문 다른것도 없었어요.
그래서 눈을 더 크게 떴습니다. 분명 제 클래스파일이 문제가 있는거니까요..! 분명히 제가 실수한게 반드시 있을거라 생각했습니다.
그래서 진짜 자세히 보고, 확대도 해보니... 정말 어이없게도...
ㅋㅋㅋㅋㅋㅋ 저 빨간 밑줄에 가려진 곳에 오타가 있었습니다 ㅠㅠ 분명 언더바를 넣은것으로 보였는데 안넣었더라구요... 저야 문제를 해결해서 너무 기쁜데..
별거 아닌 저 한글자 때문에 서포터즈 선생님께서 고생하셨네요 ㅠㅠ
선생님께서 버전 문제가 아니라고 체크를 해주셔서 망정이지, 아니었으면 또 다른곳에서 몇시간동안 헤메고 있었을 것 같아요. 선생님 덕분에 다행히 문제를 해결했네요.... 감사합니다.....!!!
분명 다른게 없다고 생각한 곳에, 생각지도 못한 오타가 있었네여......
수업때 영한쌤이 자동완성과 자동체크가 좋긴 한데, 단점이 있다고 한 부분이 이 부분일수도 있겠다 싶더라구요.
저렇게 문자열로 컴파일에러 체크가 안되는 부분이 가장 위험하다고 한 부분이 너무 와닿는 순간이었습니다...
그냥 지나가는 말 한마디도 선배의 조언과 같은 김영한 쌤의 강의... 앞으로도 말 한마디도 놓치지 않고 열심히 듣겠습니다.
서포터즈 선생님들께도 친절히 확인도 해주시고, 해결에 도움을 주셔서 정말 감사드립니다.
답변 1