티스토리 뷰

graphQL project를 진행하다가 resolver에서 막혀 도움 없이는 해결할 수 없는 상황까지 왔다.

시간은 흘러가고 코드를 봐도 시뻘건 에러만 보이니 이러다 5월이 될 것 같은 불길함이 올라와

취업 전에 완성하려고 마음먹었던 두 개의 project 중 하나인 이슈관리시스템을 만들기로 했다.


Spring boot 2.1.4,  MySQL 기반의 rest API로 만들 것이고, 

완성 후 graphQL과 다른 점을 느끼고 경험하는 것이 최종 목표다.

 

평소처럼 spring Initialize에서 필요한 설정을 해준 

프로젝트를 열어 추가로 필요한 dependencies와 yml을 설정하였다.

이미 graphQL project에서 경험해봤기 때문에 빠르게 설정 후 run을 했더니 쉽게 넘어가는 법 없다고 에러가 났다.

Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
    pl.allegro.tech.boot.autoconfigure.handlebars.HandlebarsProperties.applyToViewResolver(HandlebarsProperties.java:42)
The following method did not exist:
    org.springframework.boot.autoconfigure.template.AbstractTemplateViewResolverProperties.applyToViewResolver(Ljava/lang/Object;)V
The method's class, org.springframework.boot.autoconfigure.template.AbstractTemplateViewResolverProperties, is available from the following locations:
    jar:file:/C:/Users/user-pc/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.1.4.RELEASE/d5f8b3f7835a23b4dfd8d1489d265c1e426e317b/spring-boot-autoconfigure-2.1.4.RELEASE.jar!/org/springframework/boot/autoconfigure/template/AbstractTemplateViewResolverProperties.class
It was loaded from the following location:
    file:/C:/Users/user-pc/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.1.4.RELEASE/d5f8b3f7835a23b4dfd8d1489d265c1e426e317b/spring-boot-autoconfigure-2.1.4.RELEASE.jar

Action:
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.boot.autoconfigure.template.AbstractTemplateViewResolverProperties

길고 긴 에러 중 Action 부분을 검색을 해봤더니 익숙한 어노테이션 하나가 나왔다.

이 어노테이션 …. 왠지 모르게 그리운 향기가 난다….

이전 경험으로 많이 봤던 @EnableJpaAuditing를 일단 설정하였지만….

이젠 @SpringBootApplication 내부 안에 설정되어 있다는 것을 너무나 잘 알고 있다.

그러니 사용하지 않는 방향으로 진행하기 위해 변경사항이 생겼는지 확인하기 위해 다시 한 번 실행하였고,

아래와 같은 에러로 변경된 것을 알 수 있었다.

Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class

Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).


참으로 많이 본 에러가 나오셨다.

경험과 검색 결과를 통합하여 MySQL을 호출하지 못해 생긴 문제인 것 같다는 결론을 내렸고, 

맨 처음으로 build의 설정에 문제가 있는지 MySql dependencies가 있는지 확인하였다.

잘 설정된 것을 확인됐으니, yml 파일을 확인하기 전 앞으로 사용할 몇 가지 기능을 추가하였다.

 

처음에는 설정도 다 해줬는데 뭐가 문제인가 싶어 옆에서 같이 공부하던 학원 동기와 함께 찾아봤는데

30분 정도의 삽질 끝에 문제를 찾을 수 있었다.

사진상의 첫 번째 줄에 해당하는 spring의 스펠링을 틀린 것이었다.

오늘도 왠지 모를 느낌을 받으며 설정을 끝냈으니 이제 내부 구현을 시작하겠다.

 

- 회고 -

한번 경험한 것이라고 어떤 것이 문제인지 금방 알아차리고 변경할 수 있었다. 

물론 오타의 문제였기 XML 파일 설정까지 해줄 경우 

이런 식으로 오타가 생긴다면 찾아내기 힘들 것 같다는 느낌을 받았다.

maven 기반으로 개발해본 경험이 없으므로 나중에 한번 적용해보고 비교하는 경험도 해보고 싶다.



3주 내내 에러만 처리해서 진짜 별로 남은 것도 없다 생각했는데 그건 아닌 것 같다. 

에러 보는 것도 꽤 익숙해졌고, 전에는 스트레스받았는데 지금은 그냥 해탈한 것 마냥 "음~ 왔구나." 

하면서 슬슬 해결할 수 있었다. 



현업에 나가본 적 없는 신입이니 할 말은 아닐 수도 있지만 공부하는 단계이니만큼

나 혼자 할 만큼 했고, 이제 더는 어떻게 해야 할지 모르는 상태에 도달했을 때 집착해서 시간 낭비를 하지 않고, 

누군가의 도움을 받아 빠르게 해결하거나 아니면 다른 것을 하면서 공부하는 법을 배운 것 같다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함