민트기술에서 약 6개월 동안 보조 배터리 공유 서비스 “아잉” 관련 개발에 참여하며 인턴십을 진행하였습니다.
소프트웨어를 전공으로 해서 3년이 넘는 시간을 공부해왔지만 뚜렷한 진로를 결정할 수 없었습니다. 무엇이 하고 싶은지 결정할 수 없어 고민하던 때에 학업을 잠시 중단하고 민트기술에서 인턴십을 진행하게 되었습니다.
저는 민트기술이 개발하고 서비스 중인 보조 배터리 공유 서비스 “아잉” 관련 백엔드부터 웹, 프론트엔드까지 전반적인 개발에 함께 참여하게 되었습니다.
개발에는 루비 온 레일즈를 사용하였는데, 루비와 레일즈 모두 익숙하지 않았을 뿐만 아니라 프레임워크조차 생소했습니다. 개발하면서 루비 온 레일즈에 익숙해지라는 사장님의 말씀에 따라 간단한 이슈를 맡아 개발하기 시작하였습니다. 처음에는 뷰 부분 위주의 이슈를 주로 맡아 루비 온 레일즈 동작 방식에 대해 파악하였고 사수님의 도움과 인터넷, 책을 참고하며 루비 온 레일즈에 익숙해지기 시작하면서 기능 구현과 같은 이전보다 복잡한 이슈도 맡아 처리하였습니다.
인턴십 기간 동안 아잉 관리자 페이지의 자잘한 뷰 수정부터 기능 구현까지 다양한 이슈에 참여하였습니다. 개발은 마일스톤에 따라 진행하였는데, 마일스톤의 목적에 부합하는 이슈를 할당받아 마일스톤 기한 내에 구현하기 노력하였습니다. 특히 기억에 남는 이슈는 아잉 현장 관리자 기능을 구현하는 이슈였습니다. 해당 이슈는 루비뿐만 아니라 자바스크립트를 이용해서 여러 가지 기능을 구현해야 하는 이슈였는데 기능 중 하나는 AJAX를 이용해서 화면 전환 없이 페이지 일부에만 변경된 데이터를 표시하는 것이었습니다. AJAX를 구현해본 적도 없을뿐더러 이곳에서 AJAX라는 것을 처음 접하게 되었고, 자바스크립트 역시 익숙하지 않은, 잘 모르고 생소한 것들로 인해 이슈를 처리하는 과정은 난관의 연속이었습니다. 그렇지만 개발 기한을 맞추기 위해 개발사항을 단계별로 나누고 구현 가능한 부분은 최대한 스스로 해내려고 하였습니다. 다만 모르는 것은 인터넷과 책을 참고하고 동기 인턴님과 사수님께 여쭤보며 해결해나갔습니다.
위와 같은 기능 구현의 어려움으로 인해 기억에 남기도 했지만 무엇보다도 해당 이슈에 코드 리뷰가 많았기 때문에 기억에 남습니다. 고작 해봐야 친구들과 혹은 공모전에서 프로젝트를 진행한 게 전부이다 보니 코드 리뷰를 제대로 진행해본 적이 없어 어려움을 겪었습니다. 처음엔 제가 짠 코드에 대해 리뷰를 달아주시는 것을 고치는 데에 급급했지만 이후에는 왜 그렇게 리뷰를 달아주셨는지에 대해 생각하고 참고자료를 찾아보며 또 다른 공부를 할 수 있었습니다. 해당 이슈는 다른 개발자분들의 코드 리뷰를 받으면서 기능을 잘 구현하여 마무리할 수 있었습니다.
인턴십을 진행하며 코드 리뷰가 단순히 더 좋은 코드를 짜기 위한 것뿐만 아니라 기존에 있던 코드들과의 통일성을 지키기 위한 것임을 알게 되었습니다. 이를 통해 각각의 회사가 가지고 있는 코드 컨벤션이 얼마나 중요한지도 알게 되었습니다. 위의 내용을 바탕으로 저 또한 다른 개발자분들의 코드를 리뷰하였으며 깃랩 위키에 적혀있는 회사 코드 컨벤션을 참고하며 리뷰를 남겼습니다.
약 6개월이라는 시간 동안 크고작은 이슈를 할당받아 개발을 진행하였고 대부분 머지되어 실제 프로그램에 적용되었습니다. 비록 커다란 프로그램에서 아주 작은 기능 하나를 구현한 것이지만 이것을 시작으로 점차 더 복잡하고 주요한 기능을 구현할 수 있다고 생각하였고 인턴십을 시작하기 전의 저에게서는 찾아볼 수 없었던 자신감이 생겼습니다. 모든 것에 미숙하던 저에게 일을 맡기고 제가 좀 더 나은 방향으로 나아갈 수 있도록 도와주신 사장님과 회사 사람들께 정말 감사했습니다.