
안녕하세요! 저는 대덕소프트웨어마이스터고등학교에 재학 중인 1학년 지도현입니다.
웹 프론트엔드를 주로 공부하고 있고, 최근에 창체 동아리에서 진행한 인턴십 프로젝트가 끝난 김에 회고를 작성하며 프로젝트를 다시 돌아보는 글을 쓸 겁니다.

사실 제가 진행한 프로젝트는 마감 날짜까지 완성하지 못했습니다..
프로젝트의 진행 기간은 원래 1주였습니다. 하지만 1주라는 기간은 한 번도 제대로 된 협업 프로젝트를 진행해 본 적이 없는 햇병아리들에게는 빠듯하고 부족한 시간이었습니다.
그렇게 한 주 한 주 늘려가며 개발을 했고, 결국 3주 만에 API 연동만 남겨두고 마감을 했습니다.
뒤에서 소개하겠지만, 실패만 남은 것은 아니었습니다.
COCO는 기숙사와 학교에서 고장 또는 파손된 물품들을 커뮤니티 게시판 형식의 민원으로 올려, 담당자 선생님들이 한눈에 확인할 수 있도록 한 서비스입니다. 기존에는 학교나 기숙사의 불편한 점을 해결하려면 담당자 선생님께 일일이 직접 말씀드려야 했던 불편함이 있었는데, 민원을 게시판 형식으로 처리하면서 학생들과 선생님들의 불편함을 덜 수 있습니다.

저는 프로젝트를 진행하면서 크게 느낀 점이 있습니다. 저를 포함한 팀원들이 버전 관리자인 깃에 대한 기초가 제대로 잡혀있지 않았다는 것입니다.
깃은 협업을 위해 필수적인 기술인데, 그런 기술도 제대로 다루지 못해 코드가 날아가고, 충돌이 발생하며, 오류가 뜨는 등 많은 시행착오를 겪었습니다.
프로젝트를 진행하며 꾸준히 느꼈습니다. 깃을 활용하지 못하니까 협업이 불가능하다는 것을...
개발을 시작하기 전에 깃을 공부했더라면 어땠을까 하는 생각이 듭니다..
프로젝트를 한다면 가장 필수적인 것이 또 있습니다.
바로 회의인데요.
회의라면 학교에서 학급 회의도 했었고 그냥 하면 되는 거 아닌가? 그게 뭐가 중요함?
라고 생각했었습니다.
하지만 생각을 해보니 좋은 프로젝트를 마감 기간 안에 끝내려면 원활한 회의가 필수적이라는 결론에 이르렀습니다. 그러나 저희 팀의 회의는 그다지 원활하지 않았습니다.
왜 회의를 하고, 어떤 주제를 상의하려고 모였는지 팀원들이 모두 알아야 회의가 진행될 수 있는데, 저희 팀은 그 부분에서 미숙했습니다. 그래도 의견 통합은 필요했기 때문에 꾸준히 회의를 진행했습니다.
회의 때 가장 많이 나온 말이
그래서 저희 왜 모였죠?
라는 말이였습니다...
회의를 하는 법도 공부해야겠네요.
막상 팀 프로젝트를 하다 보니 정해야 할 것도 많고, 명세도 짜야 하고…
저는 바로 코드를 짜면 되는 줄 알았지만, 그렇지 않았습니다…ㅎ
사실 저희는 마감 3일 전부터 API 연동을 시작했습니다.
저는 Axios를 통한 API 연동은 처음이었고, 실제로 서버에서 데이터를 받아오는 것도 처음이라서 시간을 1주일 정도 잡아놓고 진행하려고 했습니다.
그러나 시간이 부족해 결국 울며 겨자 먹기로 코드를 짰습니다.
저는 처음에 좌절을 했습니다
fetch는 그냥 api주소만 입력하면 창에 보였는데 axios는 뭐고 인터셉터는 또 뭐야..
이런 마음으로 시작했지만, 5시간 동안 같은 개념만 반복했습니다. 코드 리뷰도 달아야 하고, 코딩도 해야 하는데, 언제 다하지...라는 생각만 들었습니다.
여기서 멈추고 싶지는 않았고, 1초라도 빨리 API 연동을 하면서 이 답답함을 풀어내고 싶었습니다. 처음에는 학교 선배님들의 API 연동 코드를 참고해보았습니다.
선배님들의 코드는 깔끔하게 정리되어 있었고, 제가 모르는 문법과 함수들이 대부분이었습니다.
저는 선배님들의 코드를 그대로 따라 했지만, 당연히 버그가 발생했습니다.
(js파일에 ts를 썼는데 되겠냐고..;)
계속해서 마감일이 다가오고, 코드를 어떻게 짜야 하는지 모르겠으며, 언제까지 이 문제를 붙잡고 있어야 할지 의문이 들었습니다.

저는 이런 시간을 의미 없게 쓰고 싶지 않았기 때문에, 결국 비장의 선택을 하기로 했습니다.

선배님 도와주세요ㅠㅠㅠ

이렇게 선배님이 직접 제 코드를 보시면서 하나하나 알려주셨고, 선배님 덕분에 API 명세를 따라 연동 코드를 다 완성할 수 있었습니다!
결국 마감 날이 되었고, COCO는 동아리 선배님들 앞에서 서비스를 발표하였습니다.
배포가 아직 되지 않았던 터라 API 연동도 완료되지 않은 상태에서 마감을 하게 되었습니다..
그래도 선배님들은 너그럽게 봐주셨고, 여기서 끝나는 것이 아니라 저희의 코드를 하나씩 보시면서 피드백도 해주시고 리팩토링도 해주시면서 코드를 짜는 방법을 많이 알려주셨습니다.
선배님께서 피드백을 해주신 시간은 정말 유익한 시간이였습니다.
제 코드를 제가 보며 아쉬운 부분을 고쳐나갔고 새로운 기술들이나 동작 원리들도 많이 배웠습니다.
(선배님 정말 감사합니다😊)

사실 아직 하고 싶은 말이 많고 겪은 일들도 이야기하고 싶지만 블로그를 최대한 짧고 굵게 쓰고 싶어서 최대한 간추려봤습니다. 🙃
저는 처음 실패를 경험했지만 실패에는 실패만 있는 것이 아니었습니다. axios 연동하는 법, api 명세 보는 법, 인터셉터, 로컬 스토리지, 쿠키, 리스폰스/리퀘스트 등등 개발자로서 필수적인 지식을 많이 얻었고 저에겐 유의미한 시간이었습니다.
프로젝트를 끝내지 못한 것은 앞으로의 2보 전진을 위해 1보 후퇴했다고 생각합니다.ㅎ 서로 시행착오도 많았고 아쉬운 점도 많았던 프로젝트지만 끝까지 포기하지 않고 프로젝트에 참여해준 엔트리 인턴십 팀원들에게 진심으로 고맙고, 직접 코드까지 보시면서 피드백해주신 엔트리 선배님들께 압도적 감사합니다.
제 글은 여기까지입니다. 시간을 내어 읽어주셔서 감사합니다.

감사합니다.