220719 TIL 포기하기 전에 마지막으로 한 번 더

오늘은 드디어! 이틀 동안 고민하고 고민하던 책의 평점순에 따라 책 목록을 보여주는 기능을 구현했다.

사실 평점순으로 나열하는 기능은 오후 4시쯤 구현을 했다. 진짜 어제부터 계속 고민하던 문제라서 평점이 내림차순으로 정렬이 된 걸 보고 정말 정말 기뻤다. 

오늘 고민했던 내용들을 적어 놓은 건데 2번째 내용이 어제부터 계속 고민했던 부분이다. 

그런데 오늘 문득 String형 자체를 내림차순 할 수 있지 않을까? 생각을 했다 어제부터 계속 내림차순 하려면 int형처럼 숫자형이여 된다는 생각을 계속하고 있었다. 그래서 쓸데없이 List 평점만 가져온다는 생각을 계속하고 있었다. 그럴 필요 없이 책 정보가 담긴 csv파일 맨 앞에 평점을 써준 뒤 이 String자체를 내림차순 하면 될 것 같다는 생각을 했다. 

String형의 List를 내림차순 하면 맨 앞글자를 기준으로 내림차순 하는데 맨 앞글자를 숫자로 하면 내가 원하는 내림차순이 되었다.

근데 평점이 10점이 넘어가서 두자릿수가되면 문제가 발생했다. 3, 5, 12, 4 이 숫자들을 내림차순 하면 순서가 당연히 12, 5, 4, 3 이런 식으로 될 줄 알았는데 5, 4, 3, 12 이렇게 내림차순이 되는 걸 알 수 있었다. 나는 이걸 보고 아니 도대체 왜 이런 거야 생각을 한참 하고 있었는데 이 상황을 동료들에게 공유했는데 동료 한분이 맨 앞 숫자를 기준으로 내림차순 한다는 걸 발견하셨다. 그러니까 12를 12 자체로 보는 게 아니라 12에서 1만 비교하는 것이었다. 그래서 순서가 5, 4, 3, "1"2 이렇게 되는 게 당연했다. 나는 보이지 않던 문제가 동료분에게 보이는 걸 보고 문제가 있으면 공유해서 다양한 시각으로 보는 것도 나쁘지 않겠다는 생각을 했다.

평점이 두자릿수가 되면 안 된다는 걸 깨닫고 평점은 무조건 한자릿수로 나와야겠다는 생각을 하게 되었다.

일단은 한자릿수에 대해서라도 평점순으로 내림차순 하는 문제를 해결해서 진짜 좋았다. 

 

그런데.... 기쁨이 가시기도 전에 뭔가 잘못되었다는 것을 알게 되었다. 이 기능은 프로그램을 시작하기 전에 csv파일에서 수동으로 평점을 입력했을 때만 내림차순으로 나열이 되었다. 프로그램을 시작해서 평점 주고 싶은 책에 평점을 주면 오류가 발생한다. 즉, 프로그램을 시작했을 때 미리 입력된 책에 대해서만 딱 한번 평점순으로 정렬이 되고 평점 주는 기능은 구현이 되지 않았다.

평점을 줬을 때도 책의 목록이 평점순으로 반영되게 하는 게 최종 목적인데...

불과 2시간 전만 해도 이 기능을 구현하지 못해서 포기해야겠다는 생각을 하고 있었다.

이틀간 시간을 써도 해결이 되지 않는 문제였기 때문에 너무 많은 시간을 쓰고 있다는 생각에 빨리 포기하고 다른데 집중하는 게 맞는 거 같아서 포기하려고 했었다. 진짜 해결할 수 없을 것 같은 높은 벽에 부딪힌 느낌이었다.

 

포기하는 심정으로 동료분에게 "저 이 기능 구현하는 거 포기할까 봐요"라는 말을 했다. 그랬더니 동료분께서 뭐가 문제인지 물어봐서 pop을 통해 문제를 다시 같이 살펴봤는데 내가 생각하지 못했던 부분을 짚어 주셨다. 

근데 문제가 해결된게 아니라서 동료들에게 저 평점 기능 포기하겠습니다. 하고 선언을 했다.

그러고 나서 혼자 포기하기에는 지금까지 썼던 시간들이 너무 아깝다는 생각이 계속 들었다.

뭔가 한 부분만 딱 고치면 될것같은 느낌이라 진짜 진짜 진짜 마지막으로 다시 한번 짚어주신 부분을 바탕으로 코드를 작성하니까 드디어! 프로그램이 원하는 방향으로 작동이 되었다.

책들이 평점순으로 내림차순 되어있는 상태이다.

여기서 불편한 편의점에게 5점을 추가해주면 총 누적된 평점을 누적된 클릭수로 나눈 결과값이 나온다. 

 

불편한 편의점이 평점이 제일 높아져서 맨 위로 순서가 바뀐 것을 볼 수가 있다.

너무 뿌듯.. 코드는 개판이지만;;

 

진짜 진짜 진짜 포기하려고 했었는데 지금까지 썼던 시간들이 너무 아까워서 쉽게 포기하지 못하고 있었다. 안되면 포기하자는 심정으로 마지막으로 1시간만 더 써보자 하고 했던 생각이 지금까지의 노력이 물거품으로 되지 않게 해 줬다. 마지막으로 한번 더 안 하고 포기했다면.. 이틀간의 시간이 어떤 결과물도 만들어지지 못한 채 사라지는 거니까... 

 

역시 뭐든지 끝까지 포기하지 않고 하는 게 가장 중요하다는 걸 또 한 번 깨닫는 하루였다.

앞으로는 진짜 포기할까 생각이 들 때 바로 포기하지 않고 마지막으로 한번 더 시도하자!