ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022년 6월 26일 TIL - 가장 중요한 게 뭔지 잡아내야 한다 (2)
    Today I Learned 2022. 6. 27. 00:35

     

    컨디션 관리를 위해 오전에 자전거 30km를 타고 점심을 먹고 돌아온 뒤 메가테라 백엔드 트레이닝 웰컴 키트로 받은 장비들을 하나씩 사진 찍고 설치해보고 있던 중, 팀원분들의 다급한 호출이 있었다. 어제 트레이너님이 팀원분께 간단한 웹 서버 기반 To Do List 프로그램을 만들어볼 것을 제안해 모든 팀원 5명의 짝 프로그래밍을 통해 해당 프로그램을 구현해보기 위함이었다.

     

     

    보여지는 모습은 이게 다였다. 이 정도면 어렵지 않게 도전해볼 수 있을 것 같아 구현을 바로 시작했다. 먼저 순차적으로 제목을 만들고, 텍스트 필드와 버튼을 만들고, 텍스트 필드에 입력한 내용을 버튼을 누르면 리스트에 출력되도록 HTTP 요청 method 중 POST를 통해 텍스트 필드에 입력한 내용을 받아오도록 했다.

     

    내용을 받아오는 과정에서 인코딩, 디코딩 관련 이슈가 있었지만 트레이너님의 도움을 받아 관련 이슈를 구글링해 해결법을 찾을 수 있었다. 입력을 받아 리스트로 출력되도록 하는 부분까지는 문제없이 수행할 수 있었다. 이제 X 버튼을 눌렀을 때 각 리스트 내용에 어떻게 취소선 처리를 해줄지 생각해봤지만 좋은 방법이 생각나지 않았을 뿐더러, X 버튼을 각 리스트 옆에 추가해주는 과정에서 처리 과정에 외형적으로는 드러나지 않는 오류가 있어 리스트의 인덱싱이 의도하던 대로 되지 않는 문제도 발견되었다.

     

    팀원분들과 협의를 거쳐 다른 팀원분이 트레이너님께 도움을 요청했다. 트레이너님으로부터 돌아온 답변은 의외였다. 어느 부분의 처리에 문제가 있는지 같이 찾아보게 되지 않을까 기대했지만, 현재까지 짜여진 소스코드가 구조적으로 작업의 처리 단위나 클래스가 명확히 나눠져 있지 않아 이 구조에서 해법을 찾아내는 것이 의미가 없다는 답변을 들었다. 보다 자세한 상황을 설명하기 위해 프로그램을 구현한 과정을 설명했고, 트레이너님께 피드백을 받았다. 지난 주차에 주어진 강의들이 프로그램을 구현하기 위해 어떤 과정을 거쳤는지, 어떻게 구조가 만들어지는지를 파악하고 있어야 한다는 점이었다.

     

    결국 핵심은 작지만 '가장 필수적인' 단위였다. 작은 사이클을 자주 거치면서 그 사이클의 순간에는 작은 프로그램만을 만든다 해도, 그 프로그램은 적어도 가장 필수적인 기능은 갖추고 있다. To Do List에서 가장 중요한 게 뭔지 생각해보면, 리스트의 내용을 볼 수 있도록 하는 것이다. 단지 순차적으로 프로그램이 어떻게 보인다고 해서 그 보이는 순서대로 만들면 프로그램이 커지는 과정에서 그것들을 다시 재구조화하는데 문제를 겪을 것이다. 일요일 오후, 저녁을 모두 쏟아가며 TDD의 가장 중요한 포인트가 무엇인지 생각해볼 수 있는 하루였다.

     

     

     

    댓글

Designed by Tistory.