티스토리 뷰
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주 내내 에러만 처리해서 진짜 별로 남은 것도 없다 생각했는데 그건 아닌 것 같다.
에러 보는 것도 꽤 익숙해졌고, 전에는 스트레스받았는데 지금은 그냥 해탈한 것 마냥 "음~ 왔구나."
하면서 슬슬 해결할 수 있었다.
현업에 나가본 적 없는 신입이니 할 말은 아닐 수도 있지만 공부하는 단계이니만큼
나 혼자 할 만큼 했고, 이제 더는 어떻게 해야 할지 모르는 상태에 도달했을 때 집착해서 시간 낭비를 하지 않고,
누군가의 도움을 받아 빠르게 해결하거나 아니면 다른 것을 하면서 공부하는 법을 배운 것 같다.
'개발 일지 > <Project> restAPI-ims' 카테고리의 다른 글
Domain 지식과 소통에 대한 고찰 (0) | 2019.05.09 |
---|---|
회원 정보 수정 mapping error (0) | 2019.04.25 |
Mockito를 이용한 user Repository test 구현하기. (0) | 2019.04.24 |
- Total
- Today
- Yesterday
- 프로그래머스
- @Autowired
- 자바스크립트
- 멀티모듈
- 회고
- Spring Boot
- homebrew
- 한 입 크기로 잘라먹는 리액트
- header
- mapping
- HTTP
- body
- web
- JAR
- MySQL
- Java
- spring-boot
- 개발일지
- Spring
- RequestHandler
- JavaScript
- graphQL
- 인텔리J
- 스터디 회고
- springboot
- Request Handler
- 일지
- 모듈
- Gradle
- 개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |