220716 판을 갈아엎는 용기가 필요해

샨티(shanti)·2022년 7월 16일
0

TIL

목록 보기
42/145
post-thumbnail

하루를 마무리 하기 전, 오늘 있었던 일들을 잔잔히 되짚어봅니다.
성공과 실패의 모든 요소에서 '배울 점'을 찾아내어 기록하고,
더 성장하는 내일의 나를 위해 'action plan'을 세웁니다.

처음(?)으로 아침 TIL을 쓰는 것 같다.
매일 밤이 되어야 그래도 배운게 있겠거니~ 하고 당연스럽게 늦은 시간이 되어야 TIL을 끄적였는데..

어제. 좀 더 정확히는 오늘 새벽 ㅎㅎ
과제를 하다가 질문이 생겨서 동료 둘에게 질문을 했는데 크게 배운 것이 있어 이를 정리하고 하루를 시작해보려 한다.

TIL에 간간히 등장하는 마카오뱅크 과제.
금요일 오후 도전과제로 주어졌던 건 우리가 배운 마카오뱅크의 업그레이드 버전인데 1인용 마카오뱅크가 아니라 2인용 마카오뱅크였다.

두 사람의 계좌정보, 잔액, 거래정보가 한 윈도우 창에 떠서 거래가 이루어지면 서로에게 '출금', '송금' 과 같은 거래정보가 노출되고 잔액까지 표시되는 프로그램을 만들어보는 것이었다. 특히 지난주에 파일 입출력 기능을 배웠기 때문에 csv 파일에 거래정보를 저장한 뒤 프로그램을 종료했다가 다시 켜더라도 이전 정보를 그대로 패널에 노출하는 것이 조건이었다.

지난주부터 발목을 잡았던 도메인모델, 특히 Account라는 모델을 혼자 생각해내기 어려웠던 터라 '한 모델에 두 사람의 계좌 정보가 있는 것이 과연 맞느냐'라는 트레이너님의 피드백과 질문이 생각나 아무 생각 없이 각 사람의 account 모델을 따로 생성했다.

그리고 꾸역 꾸역 강의를 인출해보기도 하고, 영 풀리지 않는 부분은 동료의 코드를 참조해가면서 제한된 3시간 동안 몇개의 기능 구현을 제외하고 과제를 제출했다.

사실 어제 빨리 자고싶은 마음이 컸던 터라 과제가 남아있는게 부담이었는데, 할 일을 다 못한 건 결국 하루를 끝낼 수 없다는 말과 같기에 다시 컴퓨터 앞에 앉았다.

다른 것들은 그래도 구현할 엄두가 나는데, 프로그램 재실행 시에 갱신된 잔액을 표기하는 것만큼은 아-무리 생각해도 그 방법을 생각해낼 수가 없었고...
결국 그 시간에 자리에 있던 동료 두 명에게 코드를 봐 줄수 있냐고 요청했다.

그리고 이어진 약 30분정도의 대화 시간...

이런 저런 이야기를 하면서 결국 코드를 다시 짜야겠다는 결론에 도달하게 되었다.

사실 나는 이 코드를 어떻게든 업그레이드 시키고, 이 구조에 무언가를 추가하면 되겠지 라고 생각했다.
하지만 동료는 '때로는 어느 일정 부분을 백지화한 다음 다시 그려나가는 것이 오히려 명확하고 빠를 때도 있다'는 중요한 말을 해 주었다.

그 얘기를 듣자 마자 갑자기 1주차 때 홀맨님이 아주 짧지만 묵직하게 말씀하셨던 것이 생각났다.

최적화와 최적의 선택은 다르다.

아.. 나는 잘못된 구조 속에서 어떻게든 최적화를 하려 노력했지만 이는 프로그램 전체의 구조, 그리고 배움의 영역에서 살펴보았을 때 결론적으론 잘못된 방향이었다.

그러면 여기서 스스로에게 던지는 중요한 질문.

나는 왜 내 코드의 일부분, 또는 상당부분을 백지화 시킬 생각을 하지 않았을까?

  1. 다시 해도 이만큼 구현할 수 있다는 확신이 없다.
    이 부분이 중요한 것 같다. 다시 하더라도 이만큼 구현해 낼 수 있다는 확신이 나에겐 없었던 것 같다. 지금의 결과물은 그래도 두군데 빼고는 '돌아가니까'. 구색은 맞췄으니까. 그것 때문에 잘못된 결과물을 손에서 놓지 못한 채 어떻게든 심폐소생 시키려 노력하는 것 같다.

  2. 마치 나라는 사람이 부정당하는 기분이다.
    이건 프로그래밍의 영역 뿐만이 아니라 다른 것도 마찬가지인 것 같은데... 아니 그냥 '실수'했으면 다시 하면 되는데 그게 왜 나라는 사람이 약간 부정당하는 것 같은 기분인지 모르겠다.
    그냥... 그렇게 느껴진다.
    내가 투입한 시간, 노력, 에너지 등등. 그게 다 부정을 당해버리는 기분이라 어떻게든 인정받게 되고자 얘를 놓지 못하는 것 같다.
    프로그래밍이 마치 '놀이'처럼 느껴져도 지금과 같을까?
    놀이라면... 블록 쌓기 놀이라면...
    쌓다가 무너지더라도 그게 내 자신을 부정당하는 결과는 아닌데. 그냥 다시 쌓아올리고, 타인에게 도움을 구하고, 누군가와 같이 쌓아올리면서 그 속에서 즐거움을 느끼면 되는데...

얼마전에 또다른 동료와 이야기하면서 내가 '자기 확신'이 너무 부족해보인다는 이야기를 들었는데, 그래 맞는 말인 것 같다.
다른건 잘 모르겠지만 적어도 지금 배우고 있는 이 프로그래밍의 영역에서 만큼은 아직까지 확신이 없다. 그래서 더 흔들리고 어려운 것 같다.

그렇담 내가 잘 해낼 수 있을 거란 자기 확신을 가지고, 잘못된 부분을 발견했을 때 어떻게 하면 과감히 갈아엎는 시도를 할 수 있을까?

나는 '코딩 도장'에 이를 해결할 수 있는 어느정도의 해법이 존재한다고 생각한다.
사실 매주 오전에 제공되는 '코딩 도장' 문제의 난이도가 나에게는 아주 쉬운 편이 아니기에 근 1시간을 1문제 푸는 데 오롯이 쏟고 있지만...
좀 더 익숙해지고 1시간에 여러가지의 방법을 통하여 문제를 풀어낼 수 있는 지식과 숙련도가 쌓인다면.

한 문제를 하나의 방법으로 풀어내고, 이를 다시 리셋한 후 또다른 방법으로 시도하고...
그리고 또다시 풀어낸 뒤 리셋하여 이와는 다른 방법을 또다시 생각해내고.

이 과정이 반복되다 보면 내가 풀어낸 방법, 또는 결과에 집착하지 않고 리셋, 빌드 하는 것이 좀 더 편안해지지 않을까.

물론 한번에, 베스트프랙티스에 가까운 방법으로 문제를 해결하면 좋겠지만...

지금 나에게 필요한 것은 조금 더 과감하게 판을 갈아엎는 용기와 시도, 그리고 다시 할 수 있을거라는 믿음인 것 같다.

이번주는 강의 과제가 아닌 게시판을 만들어보는 레벨테스트 주간이다.

또다시 무언가를 테스트 받고 또 내가 가진 능력(별것도 없지만)을 한껏 치켜 올려야 하는 것이기에 역시나 지난주보다도 더 잠을 못자겠구나~ 싶은 생각부터 들지만.

그래도 새로운 생명을 심고 피어나게 하기 위해 겨우내 단단하게 얼었던 땅을 경작해야 하듯이.
더 나은 방향의 프로그램을 만들기 위해 단단하게 꼬여있던 판을 한번쯤은 뒤엎고, 지우고, 날리는 용기가 필요한 때인 것 같다.

이번주도, 그리고 오늘도 잘 해보자.

샨티 화이팅.

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글