공부하는 안경딸기

[MyBatis] 헛짓한 썰 풀기 본문

TanTanBody

[MyBatis] 헛짓한 썰 풀기

안경딸기 2021. 9. 26. 00:01

 

일단 좀 웃고 시작해야겠다.

하하하하하핳하하하하하하핳하하하하하하하하하하

이것은 화가 나서 웃는 것이 아니다. 행복해서 웃는 거야 🤣 엄....

자만심에서 시작된 무한루프

이 모든 원흉은 '난 다 아니깐 내가 아는 대로 하면 됨' 이 생각에서 시작되었다.

항상 으쓱거리다가 삐끗하는 것 같다. 운전도 마찬가지고.

 

처음에 딱 프로젝트 만들었을 때까지만 해도 잘 동작했다. 그런데 이제 mvc에 맞게 package 만들고 mybatis 사용하려고 설정하다가 뭔가 이상해졌다.

내가 만난 문제들

분명히 블로그에서 하라는 대로 했는데 온갖 이상한 error가 길게도 나왔다. (캡처한 게 없네...)

 

Unsatisfied dependency expressed through field ...

Cause: org.apache.ibatis.builder.BuilderException: Mapper's namespace cannot be empty ...

Error creating bean with name ...

등등

 

에러 내용을 대충 해석해보니까 "mapper를 찾을 수 없다", "Bean에 그런 거 없는데?", "mapper에 에러 있나 확인해봐" 이런 해석이 대부분이었다.

이제 에러가 났으면 검색을 해봐야 하니 검색을 했더니 "id가 제대로 되었나 확인해보세요", "SqlSessionFactory 같은 거 설정하세요" 등등 온갖 조언이 나와있었다.

하라니깐 했다. 거의 며칠 동안. 근데 계속 똑같았다.

 

"도대체 뭐가 문젠 가요 컴퓨터님...????????!!!!!!!!!!!!!!!!!!??????????????"

 

결국 검색하고 적용하다가 포기했다. 머릿속에서 계속 꼬이기만 꼬이고 프로젝트 상태도 최악이었다.

 

내가 내린 최종 결론은 "프로젝트 다시 만들자"였다.

초심!

일단 MyBatis를 사용해서 프로젝트를 만드는 블로그의 글을 하나 선정해서 그대로 따라 해 보기로 했다.

내가 다 안다는 자존심 따위는 버리고 초심자 모드로 진행했다.

(참고한 블로그 게시글)

프로젝트 초기 설정

일단 당연하지만 프로젝트 초기 설정부터 다시 했다.

Gradle, Jar, Java11 등등을 선택하고 Dependencies는 lombok 기타 등등을 추가했다.

(프로젝트 생성 과정은 따로 글을 올릴 예정이다)

이제는 눈물겨운 초기 생성 화면

가지런히 따라 하기

진짜 딱 참고한 블로그에 있는 그대로 따라 했다.

이번에는 invalid bound statement (not found)라는 에러가 떴다. 다행인 건 이 에러를 잡는 방법은 블로그에 나와있었다. application.yml 파일에 mapper의 경로를 적어주면 된다는 거였다. 일단 에러 하나는 잡았다.

원상 복귀의 위기

근데 내가 지난 며칠 동안 수도 없이 만났던 그 에러들이 또 나왔다...

'하... 이거 포기 각 잡으라는 하늘의 계시인가? 졸업 작품인데?'라는 생각을 하다가 마지막으로 딱 한 번만 더 블로그의 코드를 쭉 봤다.

 

그러다가 깨달았다. 엄청난걸.

결국은 해피엔딩

mapper.xml 파일에 딱 한 줄이 빠져있었다.

<mapper namespace="com.app.tantanbody.mapper.UserMapper">

밑줄 친 부분이 빠져있었다.

 

다시 처음으로 돌아가서 생각해보자.

나는 분명 저 부분에 관한 에러를 만난 적이 있다.

Mapper's namespace cannot be empty

다시 읽어보니 "Mapper의 namespace는 비어있을 수 없다." 이거다.

그렇다. 난 지금까지 mapper의 namespace를 설정하지 않고 엉뚱한 짓을 계속하고 있었다.

나는 그런 줄도 모르고 엉뚱한 id 타령하면서 집에서 욕이란 욕을 하고 다녔다. (성격 참...)

결론

이제는 console에 빨간 에러 없이 DB에서 데이터 잘 가져와서 화면에 잘 뿌려준다.

제발 글을 잘 읽자. 학교 생활하면서 글 제대로 안 읽어서 틀린 문제가 몇 개 더라?

에러 없는 클린한 화면을 몇 일 만에 보는지...
이 화면을 보기 위해 몇 일을 고생한거지...

Comments