-
2022년 7월 13일 TIL - 무엇을 시도해도 안 될 때는 눈 딱 감고 뒤로 돌아가기Today I Learned 2022. 7. 13. 23:56
이월 결정 이후 1주일 반 정도가 지난 이월 4주차 수요일을 지나고 있다. 오늘은 이월 이후 진행된 날들 중 가장 집중력과 텐션이 떨어지는 것 같다는 느낌이 들었다.
오후 2시까지 짝 프로그래밍을 진행하고, 3시 30분 즈음까지는 어제 올렸던 깐깐한 계산기의 소스코드를 복기하고 트레이너님이 올려주셨던 코드리뷰에 답글을 달았다. 그리고 Todo List 구현에 돌입했다. 지난 주차에 몇 번 완성해 본 Todo List였기에 지난 주차까지의 내용은 금방 구현하고, 파일 입력, 출력 기능을 추가해볼 수 있을 것이라 생각했다. 먼저 하나의 소스 코드 상에서 지난 주차까지 다뤘던 부분들은 작동되도록 완성하고, 작동하는 소스코드의 메서드와 클래스를 분리한 뒤, 파일 입출력 기능을 추가하는 것을 계획했다.
지난 주차 대비 JPanel들의 계층 구조를 약간 다르게 해 입력을 받는 Panel이 할 일 목록이 출력되는 Panel이 들어가는 contentPanel에 포함되도록 시도했었는데, 다른 Panel들을 의존하는 순서가 다소 엉켜 버튼을 눌렀을 때 할 일 목록 Panel이 갱신되는 과정에서 초기화되지 않은 Panel 변수를 참조하는 문제가 계속해서 발생했다. 저녁 8시 이후 1시간 30분 가량을 붙잡고 있어도 해결이 될 기미가 보이지 않았다.
뒤엉킨 구조를 계속해서 붙잡고 있을 수는 없었다. 꼬여 있는 실타래가 도저히 풀릴 기미가 보이지 않으니 꼬인 부분을 아예 쳐내버리고 끊긴 부분의 실을 다시 이어붙여보자고 마음을 먹었다. 애써 작성해 놓았던 입력 Panel과 할 일 목록 Panel이 contentPanel에 추가되는 부분과, contentPanel을 갱신하는 부분을 소스코드에서 지워버렸다.
꼬여 있던 부분을 지우고 나니, 할 일 목록 Panel 클래스에서 정의해 놓았던 Task들을 하나씩 불러와 Panel을 만들고, Panel을 추가해주는 메서드를 어느 위치에 넣어주어야 하는지 보이기 시작했다. 할 일 목록 Panel을 갱신하는 작업이 필요한 지점에서 할 일 목록 Panel을 참조할 수 있도록 의존성을 부여해주는 등 구조를 다시 구성하는 작업을 꾸역꾸역 마칠 수 있었다.
작업 과정에서 중간중간 올바른 방향성으로 진행하고 있는지 체크하면서 지나치게 잘못된 방향으로 가지 않도록 해야 하는 것과, 돌이키기 어려울 정도로 작업의 방향이 엇났다는 생각이 들면 그때까지 한 것들이 아쉬울지라도 눈 딱 감고 뒤로 돌아가는 것도 더 나은 구조 확립을 위한 방법이라는 것을 느꼈던 하루 일과였다.
'Today I Learned' 카테고리의 다른 글
2022년 7월 15일 TIL - 어떻게 해야 기록을 잘 할 것인가? (0) 2022.07.15 2022년 7월 14일 TIL - 지나친 추상화는 오히려 가독성을 저해한다 (0) 2022.07.14 2022년 7월 12일 TIL - 메서드를 사용할 때는 구체적인 작동 방식도 확인하자 (0) 2022.07.12 2022년 7월 11일 TIL (0) 2022.07.11 2022년 7월 10일 TIL - 결과물의 도출과 완벽주의 (0) 2022.07.10