본문 바로가기
TIL

언제나 조져지는 건 나였다 (22.08.23 TIL)

by winteringg 2022. 8. 23.


어제 ~ 오늘 오전 알레르기 때문에 몸 상태도 안좋고 퀘스트 과제도 너무 오래 지연되어서 기분이 계속 다운되어 있었다. 언제까지고 다운되어 있을 수는 없으니 정신 차리고 스스로 너무 기죽지 말자고, 다음 퀘스트 한 번 조져보자고 되뇌며 자신 만만하게 다음 퀘스트로 진입했다. 하지만 언제나 조져지는 건 나였다ㅋ.ㅋ 슬롯머신 게임을 만드는 퀘스트였는데 랜덤 숫자별로 적립되는 금액이 달라지는 게임이었다.

처음에 읽어 봤을 때는 음? 할 만 한데?라고 생각하고 들어갔는데 그게 밤늦은 시간까지 이어졌다. 지금 막 끝내고 til을 쓰고 있으니, 중간에 쉬는 시간도 있긴 했지만 어쨌든 거의 한 4~5시간을 붙잡고 있었나 보다,, 빠르게 과제를 끝내신 다른 동기분의 수학적/논리적 두뇌가 절실하게 필요한, 또 한편으로는 부러워지는 순간이었다. 중간 중간 테스트를 해보면서 잘못된 값들이 나오면 계속해서 고치고 고치고 또 고치고. 이제 다 됐다 싶었을 때 마지막에 제출하기 전 테스트를 해봤는데 마지막에 변수 재할당 부분 연산 결과가 또 계속 잘못 나와서 거기서 시간을 많이 썼다. 아무리 코드를 들여다봐도 제대로 쓴 것만 같은데, 실행해보면 연산처리가 연결된 부분들이 다 이상한 값이 나왔다. 그래서 그 변수값을 출력하는 프린트 코드를 연산하는 코드마다 한 줄씩 다 넣고 돌려봤는데, 이중 for 문 안쪽에서 값이 처리되지 않는 걸 발견했다. 처음에는 이게 왜 잘못된 건지 찾지 못했어서 결국 한 줄 한 줄씩 손으로 메모장에 적으면서 (ㅠㅠ여기서 시간이 오래 걸렸다.) 계산해보니 배열의 인덱스에 접근하는 'numbers[i]' 를 쓸 때, 이중 for문 안쪽의 변수인 'j' 를 넣지 않고 상위 for문의 변수인 'i' 를 넣어서 생긴 문제였다. 이런 간단한 문제를 한 시간동안 찾고 있었던 거다. 너무 오래 내 코드만 보고 있어서 정신이 혼미해진 걸까? 어쨌든 결국은 끝내기는 했다. 코드가 잘못되면 일단 큰 부분에서 찾기 보다 작은 부분부터 실수한 건 없는지 확인하며 점점 범위를 확장하는 시야를 가져야겠다고 생각했다.

그리고 또, 만약 이번 주차 강의 영상을 제대로 보지 않고 반복문 개념만 안 상태에서 과제에 도전했다면 절대 풀지 못했을 것 같다. 강의 영상에 나온 패턴을 쓴 것도 있었기 때문이다. (+이건 어제 문제 이해를 못하는 나를 붙잡고 옆에서 계속 설명해주며 이해하는 걸 도와준 Boni 에게 감사의 인사를 전합니닷😂) 몇달 전 자바 기초부터 배울 때 반복문과 배열 파트에서 이해가 안갔는데도 쌓여있는 진도 핑계를 대며 조금 얼렁뚱땅 넘어간 적이 있었다. 그게 지금 스노우볼이 되어서 이렇게 다시 또 쩔쩔매고 있나보다. 여기서도 확실하게 잡고 가지 못하면 나중 되서는 오늘을 그리워하며 후회할 지도 모른다. 이렇게 문제를 많이 풀게 해주는 환경에 감사하자!

어쨌든 최종.ver, 최최종.ver, 최최최최최종.ver 까지 테스트 한 후에 PR 까지 올리고 나서 다른 분들 코드를 한 번 구경해봤는데 간단하게 구현하신 분도 있고, 내 기준엔 조금 신박한 방법으로 구현해내신 분도 계셨다. 내 코드가 그분들 것 보다 더 복잡하고 우당탕탕 스파게티 코드 같긴 해도, 오래 걸려서 작성한 과제물이다 보니 내 새끼 같은 느낌도 들고 결국 해낸 뿌듯함도 생기긴 했다. 이게 바로 부모의 마음? (농담) 하지만 항상 코드 작성을 하며 느끼는 건데, 이런 저런 방법들도 생각해보고 고민해봐야 리팩토링 이라는 작업도 가능한 것인데, 나는 너무 쉽게 만족을 해버리거나 한 방향으로밖에 생각하지 못해서 리팩토링 할 부분을 잘 못찾는 것 같다. 이 부분은 짝 프로그래밍 시간 때 다른 사람과 함께 코드를 치다 보니 더 느낄 수 있었다. 더 이상 고칠 곳이 보이지 않는데 내 타임이 다 끝나고 짝의 턴이 되자마자, 바로 중복을 찾고 리팩토링 하는 걸 보고 그제서야 "아..!!!!!!" 하고 놀라곤 했다. 아샬님 강의에서도 계속 고민하고 질문하고 토론을 반복하는 것이 참 중요하다고 하셨었다. 이제까지는 좋아보이는 코드를 발견하면 나도 적용해 봐야겠다고 생각만 하고 깜빡하곤 했는데, 매일 있는 오후 코드 리뷰 시간에 다른 분들 코드 중에 참고할 만한 것이 있으면 내 코드에도 바로 적용해보고 해야겠다.


action plan : 오늘 커밋한 퀘스트들 셀프 리뷰 후 리팩토링 해보기

댓글