회고

오늘은 두 번째 릴레이 프로젝트를 진행하였다. 이번에 맡은 프로젝트는 OCR 이용해 스캐닝을 해주는 주제였다. 구현해야 하는 기능은 Google api 이용한 OCR 기능(Image to Text), 파일 업로드(front/back end) 세 가지로 나뉘어 있었다. 우선 다른 한 팀원과 함께 파일 업로드 front-end 기능 개발 역할을 맡았고, 개인보다는 팀으로써 완성도 있는 결과물을 만들고 싶었다. 구현해야할 기능은 간단했지만, 팀원과 하나의 컴퓨터로 페어 프로그래밍을 시도해보며 좋았던 부분과 스스로 아쉬웠던 점이 공존한 것 같다.

좋았던 부분

  • 한 줄의 코드라도 서로 토의하며 심도있게 프로그래밍을 해볼 수 있었다.
  • 팀원과 같이 디버깅해보며 버그를 빠르게 해결할 수 있었다.
  • 서로의 코드에 대해서 코드 리뷰를 실시간으로 할 수 있었다. 작은 타이핑 실수부터 설계 결함까지 소스코드에 대한 피드백을 빠르게 할 수 있고, 이를 통해 보다 방어적인 프로그래밍을 할 수 있었다.
  • 지식 공유를 하며 서로 배울 수 있었다.

구체적으로 파일 업로드 후 데이터를 받아오질 못하는 이슈가 발생하였다. form 태그에서 submit 타입 이벤트를 처리하면 자동으로 새로고침이 되는 문제였다. 이를 해결하기 위해서는 두 가지 방법이 있었다.

  1. button type 변경 후 click 이벤트 받아 처리하도록 변경
    => 모바일 웹에서 동작하지 않는 이슈가 존재한다고 함...

  2. form 태그 onSubmit 속성에서는 새로고침 안되도록 막고, submit 타입 이벤트 리스너를 등록하여 요청 로직 처리
    => onSubmit 속성에 "return false" 하여 새로고침 이벤트 전달 막음
    => form 요청 로직은 이벤트 리스너 콜백함수에서 처리

결과적으로 마지막 방법이 적합하다고 생각하여 반영하였다. 처음에는 버그 원인에 대해 전혀 감을 잡지 못하였지만, 팀원이 StackOverflow에서 유사한 이슈를 찾으며 빠르게 해결할 수 있었다.

스스로 아쉬웠던 점

이슈 해결을 위한 새로운 방법을 제시할 때, 팀원을 확실하게 이해시키지 못한 부분이 있었다. 찾아보고 이해한 것을 잠깐 생각 정리하고 말했어야 하는데.. 결국 논리 흐름이 중간에 끊기고 말았다. 말하기 전에 스스로 생각 정리하는 습관이 필요한 것 같다.

팀원과 페어 프로그래밍을 하며, Back-end 담당하는 팀원들과는 활발하게 커뮤니케이션 진행을 하지 못하였다. 결국 소스 코드 병합하는 과정에서 어려움이 있었다. 다른 팀원들과 필요한 요구사항을 빠르게 커뮤니케이션 했어야 하는데, 시간이 촉박하여 서로 미뤘던 점이 아쉬웠던 부분이다.

Learning

  • 파일 업로드 기능을 구현하며 미디어 유형을 나타내는 Content-Type header에 대해 이해가 부족하여 학습하였다.

  • form 태그 submit 동작 이해가 부족하여 알아보았다.