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

2022. 7. 19. 23:54·성장이야기/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시간만 더 써보자 하고 했던 생각이 지금까지의 노력이 물거품으로 되지 않게 해 줬다. 마지막으로 한번 더 안 하고 포기했다면.. 이틀간의 시간이 어떤 결과물도 만들어지지 못한 채 사라지는 거니까... 

 

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

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

'성장이야기 > TIL' 카테고리의 다른 글

220721 TIL 할 수 있다면 할 수 있다. - 피카소  (0) 2022.07.21
220720 TIL 목적을 잊지 말자  (0) 2022.07.20
220718 TIL 우선순위가 이게 맞나 싶지만 우선 진행해  (0) 2022.07.18
220717 TIL 상대방의 말을 귀담아 듣자!  (0) 2022.07.17
220716 TIL 또 다시 시작 레벨테스트  (0) 2022.07.16
'성장이야기/TIL' 카테고리의 다른 글
  • 220721 TIL 할 수 있다면 할 수 있다. - 피카소
  • 220720 TIL 목적을 잊지 말자
  • 220718 TIL 우선순위가 이게 맞나 싶지만 우선 진행해
  • 220717 TIL 상대방의 말을 귀담아 듣자!
seungjjun
seungjjun
  • seungjjun
    개발이야기
    seungjjun
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 성장이야기
        • TIL
        • 주간회고
      • Java
        • Spring
        • Spring Security
      • 트러블슈팅
      • Kafka
      • OS
      • Network
      • 메가테라
      • Database
      • Algorithm
      • Git
      • HTML
      • CSS
      • 독서
      • 컴퓨터 이해하기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    메가테라 주간회고
    graphQL
    항해플러스
    주간회고
    항해99
    메가테라
    Til
    이커머스 프로젝트
    redis
    개발일지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
seungjjun
220719 TIL 포기하기 전에 마지막으로 한 번 더
상단으로

티스토리툴바