개발일기

SQL오류 해결

초롱불 2021. 5. 9. 05:39

개발을 하면서 하루 종일 막혔던 부분이 해결됐을 때 느껴지는 카타르시스는 엄청나다.

퍼즐 게임을 하면서 느끼는 쾌감과 비슷한데 더 좋은 것은 퍼즐 게임은 그저 게임으로 끝나지만

개발일은 가치있는 생산물로 연결된다는 점에서 좋다.

나는 이 기쁨 때문에라도 개발일을 계속하는 게 나쁘지 않다고 생각하고 있다.

 

오늘 하루종일 매달렸던 문제를 풀었을 때도 앞서 말하던 즐거움이 느껴졌다.

이번에 생긴 문제는 내 머릿속에서는 아무 문제가 없다고 생각하던 일에서 문제가 나타났다.

원래 잘 작동하던 작가 게시판이 존재했고 그 작가 게시판의 작동 원리를 토대로 출판사 게시판,

연재처 게시판으로 추가 확장을 하니 작가 게시판에서 문제가 나타났다.

 

애초에 다른 게시판을 추가하는 것은 원래 작가 게시판 영역과는 다른 영역이었기에 이해할 수 없는 일이었다.

작가DAO와 출판사DAO, 연재처 DAO가 달랐고 컨트롤러 뷰 영역도 모두 각각이었기에 추가만으로 잘 작동하던

작가 게시판이 작동하지 않을 리가 없었다.

 

하지만 이건 내 머릿속에서의 일이었고 혹시 모른다는 가정 아래에서 점검을 시작했다.

나는 아직 배우는 단계인만큼 내가 잘못 이해하고 머릿속에서 도식화 해놓은 문제가 있을지도 모른다고 여기면서였다.

기본적으로는 내가 아는 지식을 기반으로 문제가 생기고 있는 지점이 어디인지 왜 작동하고 있지 않은지 체크하면서 들어갔다. 

 

뷰에서 나타나지 않은 건 작가 이름과 페이지네이션이었다.

검색을 하면 작가 이름이 80개 나오긴 했지만 페이지네이션은 여전히 나오지 않았다.

한 페이지에 80개이고 검색을 했을 때 나오는 작가 이름은 80개 이상이 되어야만 했기에

페이지를 구성하는 것에서 문제가 있는 듯했다.

SearchCount클래스에서 페이지를 만드는 수식에 문제가 있는지 체크했다.

문제는 없었다.

그 다음으로 체크한 곳이 mapper의 sql이었다.

애초에 건드린 적이 없다고 여기던 곳이었기에 체크하지 않을 곳이었다.

집중적으로 체크한 곳은 내가 뭔가를 했던 장소, 그러니까 출판사와 연재처를 추가했던 DAO, Controller 영역이었다.

그런데 여기서 문제를 발견했다.

바로 동적 sql문 부분에서 if 조건이 있어야 하는 곳에 조건이 없었던 것이다.

아마 작가mapper를 따라서 출판사, 연재처mapper를 구성할 때 단축기 실수 등의 이유로 조건문을 지워버린 듯했다.

그래도 나는 내가 mybatis 문법을 제대로 이해하면서 읽어나가다가 빠진 부분을 확인하고 여기서 문제가 있었다는 것을 캐치해냈다는 것에서 만족했다. 무엇보다도 나를 하루 종일 가로막고 있던 일을 풀어냈다는 것에서 성취감을 느꼈다.

문제를 마주했을 때는 언제나 답이 있고 나는 그 답을 찾을 수 있으리라는 자신이 생기는 경험이었다.

영화 인터스텔라에서 봤던 명언은 정말 멋진 것 같다.

 

우린 답을 찾을 것이다. 늘 그랬듯이. (We will find a way. We always have.)