민트 인턴 후기 – 이나윤님

민트기술에서 약 6개월 동안 보조 배터리 공유 서비스 “아잉” 관련 개발에 참여하며 인턴십을 진행하였습니다.

소프트웨어를 전공으로 해서 3년이 넘는 시간을 공부해왔지만 뚜렷한 진로를 결정할 수 없었습니다. 무엇이 하고 싶은지 결정할 수 없어 고민하던 때에 학업을 잠시 중단하고 민트기술에서 인턴십을 진행하게 되었습니다.

저는 민트기술이 개발하고 서비스 중인 보조 배터리 공유 서비스 “아잉” 관련 백엔드부터 웹, 프론트엔드까지 전반적인 개발에 함께 참여하게 되었습니다.

개발에는 루비 온 레일즈를 사용하였는데, 루비와 레일즈 모두 익숙하지 않았을 뿐만 아니라 프레임워크조차 생소했습니다. 개발하면서 루비 온 레일즈에 익숙해지라는 사장님의 말씀에 따라 간단한 이슈를 맡아 개발하기 시작하였습니다. 처음에는 뷰 부분 위주의 이슈를 주로 맡아 루비 온 레일즈 동작 방식에 대해 파악하였고 사수님의 도움과 인터넷, 책을 참고하며 루비 온 레일즈에 익숙해지기 시작하면서 기능 구현과 같은 이전보다 복잡한 이슈도 맡아 처리하였습니다.

인턴십 기간 동안 아잉 관리자 페이지의 자잘한 뷰 수정부터 기능 구현까지 다양한 이슈에 참여하였습니다. 개발은 마일스톤에 따라 진행하였는데, 마일스톤의 목적에 부합하는 이슈를 할당받아 마일스톤 기한 내에 구현하기 노력하였습니다. 특히 기억에 남는 이슈는 아잉 현장 관리자 기능을 구현하는 이슈였습니다. 해당 이슈는 루비뿐만 아니라 자바스크립트를 이용해서 여러 가지 기능을 구현해야 하는 이슈였는데 기능 중 하나는 AJAX를 이용해서 화면 전환 없이 페이지 일부에만 변경된 데이터를 표시하는 것이었습니다. AJAX를 구현해본 적도 없을뿐더러 이곳에서 AJAX라는 것을 처음 접하게 되었고, 자바스크립트 역시 익숙하지 않은, 잘 모르고 생소한 것들로 인해 이슈를 처리하는 과정은 난관의 연속이었습니다. 그렇지만 개발 기한을 맞추기 위해 개발사항을 단계별로 나누고 구현 가능한 부분은 최대한 스스로 해내려고 하였습니다. 다만 모르는 것은 인터넷과 책을 참고하고 동기 인턴님과 사수님께 여쭤보며 해결해나갔습니다.

위와 같은 기능 구현의 어려움으로 인해 기억에 남기도 했지만 무엇보다도 해당 이슈에 코드 리뷰가 많았기 때문에 기억에 남습니다. 고작 해봐야 친구들과 혹은 공모전에서 프로젝트를 진행한 게 전부이다 보니 코드 리뷰를 제대로 진행해본 적이 없어 어려움을 겪었습니다. 처음엔 제가 짠 코드에 대해 리뷰를 달아주시는 것을 고치는 데에 급급했지만 이후에는 왜 그렇게 리뷰를 달아주셨는지에 대해 생각하고 참고자료를 찾아보며 또 다른 공부를 할 수 있었습니다. 해당 이슈는 다른 개발자분들의 코드 리뷰를 받으면서 기능을 잘 구현하여 마무리할 수 있었습니다.

인턴십을 진행하며 코드 리뷰가 단순히 더 좋은 코드를 짜기 위한 것뿐만 아니라 기존에 있던 코드들과의 통일성을 지키기 위한 것임을 알게 되었습니다. 이를 통해 각각의 회사가 가지고 있는 코드 컨벤션이 얼마나 중요한지도 알게 되었습니다. 위의 내용을 바탕으로 저 또한 다른 개발자분들의 코드를 리뷰하였으며 깃랩 위키에 적혀있는 회사 코드 컨벤션을 참고하며 리뷰를 남겼습니다.

약 6개월이라는 시간 동안 크고작은 이슈를 할당받아 개발을 진행하였고 대부분 머지되어 실제 프로그램에 적용되었습니다. 비록 커다란 프로그램에서 아주 작은 기능 하나를 구현한 것이지만 이것을 시작으로 점차 더 복잡하고 주요한 기능을 구현할 수 있다고 생각하였고 인턴십을 시작하기 전의 저에게서는 찾아볼 수 없었던 자신감이 생겼습니다. 모든 것에 미숙하던 저에게 일을 맡기고 제가 좀 더 나은 방향으로 나아갈 수 있도록 도와주신 사장님과 회사 사람들께 정말 감사했습니다.

민트 인턴 후기 – 이종민님

4학년 1학기가 끝나갈 때쯤 학교 공지사항에 인턴십 프로그램 신청 안내가 올라왔고 여러 기업 리스트 중에서 민트기술에 신청서를 냈다. 대학교에서 여러 프로그래밍 수업과 과제를 했었지만, 막상 다른 사람들이 실제로 사용할 프로그램을 만들어보라고 하면 만들 자신이 없었다. 게다가 협업도 대학교 조별 과제는 사실상 혼자 만드는 거나 다름이 없었기에 협업에 대한 개념도 없었다. 이러한 상황에서 합격 소식을 들었을 땐 걱정이 앞섰다. 하지만 다른 한편으로는 실제 회사 생활은 어떤지, 실무에서는 어떤 언어와 툴을 사용하는지, 협업은 어떻게 돌아가는지 등을 배울 기회라는 점에서 기대감도 컸었다.

입사 첫날 모든 게 처음이라 낯설어서 쭈뼛쭈뼛 회사에 들어와 인사하고 다른 인턴 동기와 함께 대표님과 면담을 진행했다. 첫날에는 민트기술이 어떤 회사인지, 어떤 일을 하고 있는지, 서비스의 구조는 어떤지에 대한 소개를 들었다. “아잉”이라는 보조배터리 공유 서비스를 담당하게 되었는데 서버가 ruby on rails로 만들어져 있었다. ruby와 ruby on rails 모두 이름만 들어보고 실제로 사용해 본 적이 없는 것들이었다. 그래서 첫 주는 거의 레일즈 공부에 시간을 보냈다. 그래도 공부하다 보니 루비는 파이썬과 비슷한 느낌의 언어였고(하지만 사용하면 사용할수록 파이썬과 컨셉 자체가 다른 언어라는 게 느껴졌다.) 레일즈는 ‘설정보다 규약’이라는 이념답게 처음에 규칙을 파악하는데 고생했지만, 규칙을 익히고 나니 편하게 개발할 수 있었다.

회사 생활은 내가 생각했던 것보다 더 수평적이었다. 이슈를 만들어 올리고 문제를 해결해서 머지 리퀘스트를 보내면 팀원 모두가 코드를 보고 리뷰를 해준다. 나도 다른 사람들의 코드를 보며 새로운 아이디어를 얻기도 하고 개선할 점을 알려주며 리뷰를 한다. 회사에는 냉장고에 음료와 간식이 항상 구비되어 있고 점심값도 회사에서 지원해줘서 회사 사람들과 함께 점심을 먹으러 간다.

개발 환경으로 모두 맥을 사용하고 있어서 나도 회사에서 맥os를 처음 사용해 봤다. 윈도우와 상당히 다른 환경이지만 ‘계속 쓰다 보면 적응하겠지’라고 생각했는데 결국 적응하지 못하고(집에서는 계속 윈도우를 쓰는 점이 큰 거 같다.) 단축키 세팅을 윈도우와 비슷하게 바꿔버렸다. 그래도 아이맥이 화면이 넓어서 개발할 때 좋았다. 서비스가 AWS에서 돌아가고 있었기 때문에 AWS를 다뤄볼 기회도 있었다.

어느새 6개월의 시간이 지나갔고 인턴도 끝나간다. 졸업 후 취직을 하면 회사에 잘 적응할 수 있을까 걱정하던 나에게 인턴십은 정말 좋은 경험이었고 많은 걸 배울 수 있었다. 특히, 대학 과제 프로젝트가 아닌 실무 프로젝트 진행에 대한 자신이 없었는데 자신감도 생겼다. 좋은 사람들과 함께 일할 수 있어서 감사했고 어서 코로나19도 끝나서 회사도 쭉쭉 성장했으면 좋겠다.

민트기술 인턴 후기 – 김영호님

대학교에서 단순히 컴퓨터에 대한 지식, 코딩에 대한 지식만 쌓아왔지 실제로 활용해 본 적 없던 나는 입사한 첫 날 걱정이 앞섰다. 외부프로젝트의 ios 버전을 인턴 2명이서 맡게 되었기 때문이다. ios 개발이라고는 저번 학기에 들었던 수업에서 한 3개월의 경험밖에 없던 난 당연히 걱정이 생길 수 밖에 없었다. 또한 내가 대학에서 배웠던 지식은 알고리즘, 자료구조, 오토마타 등 이론에 대한 지식밖에 없었는데 이 프로젝트에서 요구하는 건 그런게 아니었다. 
 

내가 프로젝트를 진행하는데 있어서 필요한 지식은 크게 5가지였다. 
IOS 앱개발에 필요한 지식, BLE 통신, 데이터베이스, 서버 API통신, 마지막으로 git에 대한 활용법. 
이 5가지 중 내가 갖고 있던 지식은 3개월 동안 배운 IOS 개발에 필요한 지식이 다였기에, 걱정이 많이 앞섰다. 
 
프로젝트는 다음과 같은 순서로 진행됐다. 

  1. UI 구현 
  1. 내부 API 구현 
  1. 외부 API 구현 
  1. 테스트케이스 실험 

 
내가 느끼기에는 UI 구현이 가장 어려웠다. xcode와 swift에 익숙치 않아 많은 시행착오를 겪었기 때문이다. 내가 알고 있는 앱개발에 필요한 지식은 극히 일부라서 UI구현에 필요한 지식을 일일이 다 검색해가면서 찾았다. 개발에 가장 지장이 되었던 것은 앱에 대한 가이드라인이 따로 존재하지 않는다는 것이었다. 가이드라인이 없어 기존에 있던 안드로이드 버전을 참고해가면서 프로젝트를 진행해야 됐는데 심지어 안드로이드 개발도 잘 몰라 진행사항이 매우 더뎠다.  
또한 기존의 난 git에 대한 지식이라고는 push, pull 밖에 없었다. 대학에서 깃을 다루긴 했지만 다 개인과제였기 때문에 따로 브랜치를 만들 이유가 없었기 때문이다. 그래서 git에 대해 알아가는 데 또 시간이 걸렸다. 
 
그러나 시간이 지나면서 이런 애로사항들이 하나 둘 해결됐다. 회사에 출근해 하루종일 구글링하고 남들의 코드를 보면서 오토레이아웃, 세그웨이 등 UI구현에 필요한 전반적인 지식이 쌓이고 안드로이드 또한 어떤 방식으로 동작하는 지 알게 되자 진행속도가 상당히 빨라졌다. 구글을 보는 시간보다 코드를 보는 시간이 많아졌고 점차 자신감이 생겼다. 또 git은 회사분들께서 너무 자세하게 설명해주셔서 금방 사용법을 알게 되었다. git을 활용해 클론을 따고, 브랜치를 만들고, Merge Request를 하는데 내가 진짜 프로그래머가 된 기분이었다. 프로그래머의 기본은 협업인데 협업을 하는 방법을 알았기 때문이다. 그렇게 UI 구현은 2주만에 끝났다. 
 
다음으로는 내부 API 구현을 진행했는데 이 때 BLE통신, 데이터베이스 등을 배웠다. 프로젝트를 진행하면서 가장 많은 시간을 할애한 것이 BLE통신이었다. 애초에 BLE가 뭔지도 몰랐던 난 이 기능을 앱에 구현하면서 코딩보다 정보를 찾는 데 시간을 다 썼다. IOS에서 지원해주는 Core Bluetooth가 어떻게 동작하는 지 부터 peripheral이 뭔지, Service가 뭔지, characteristic이 뭔지 차근차근 알아갔다. 그 뒤에는 제품과 핸드폰 기기와의 통신에 필요한 프로토콜을 이해하는데에 또 많은 시간을 할애했다. 이 단계에선 사수분의 도움을 많이 받았다. 사실 처음 프로젝트를 맡았을 때부터 사수분이 정해졌지만 그 동안 오기때문에 혼자 진행하려고 노력했지만 진행속도가 너무 더뎌져 도움을 요쳥했다. 이 때 사수셨던 승리씨는 원래 따로 진행하시던 프로젝트가 있음에도 불구하고 너무 친절하게 가르쳐주셔서 감사했다. 이렇게 BLE통신을 구현했을 때의 심정은 말로  다 할 수 없다. 
그 다음엔 데이터베이스를 구현했는데 이 과정은 생각보다 빨리 끝났다. 따로 이해해야할 지식은 없고 어떻게 써야 되는 지만 알면 됐기 때문이다.  이렇게 내부 API 또한 2주만에 끝났다. 
 
이 때 되게 나한테 놀랐던 것은 불과 한 달만에 UI구현과 내부 API를 구현했다는 것이다. 그리고 코딩에 상당이 자신감이 붙은 나를 발견했다. 앞으로 프로젝트를 진행하면서 어떤 어려움이 닥쳐도 해낼 수 있을 거란 생각이 들었다. 
 
뒤로는 외부 API 통신을 하게 되었다. 여기서 생각보다 많은 시간을 할애했는데 그 이유는 클라이언트 쪽에서 서버 API 통신에 대한 규격같은 것을 아예 제공해주지 않았기 때문이다. 따라서 내가 기존에 있던 안드로이드 소스를 일일이 분석해가면서 규격을 찾아내고 구현했는데 이 과정에서 많은 시간이 걸렸다. 하지만 막막해보였던 이 또한 하니까 되더라. 
 
이렇게 막막했던 프로젝트 중 3가지를 끝냈을 때 난 전에 적었던 진행에 필요한 5가지에 대한 전반적인 지식이 생겼다. 불과 한달 조금 넘겨서 말이다. 내가 걱정했던 것은 기우였다는 것을 알게 되었고 이젠 난 개발에 대해 자신감이 생겼다. 과장을 조금 더하면 이대로 바로 취직해도 먹고 살 수 있겠다는 생각이 들었다. 가장 중요한 건 앞으로 개발하는데 어떤 어려움이 닥쳐도 해낼 수 있을 거란 생각이었다. 물론 시간이 많이 걸릴 수는 있지만 불가능하지 않다는 확신이 들었다. 
이후에는 원래 테스트케이스를 실험하면서 오류를 잡아내야 했지만 클라이언트 측에서 갑작스레 UI를 변경해 변경된 UI를 구현해내는데 시간이 많이 걸렸다. 또 UI를 좀 더 상세하게 고치면서 이제는 새로운 지식을 쌓기보단 알고있던 지식을 활용하는 반복작업이 시작됐고 그 후에야 테스트케이스를 실험했고 프로젝트는 거의 끝이 났다. 
 
프로젝트를 진행하고 나서 새삼 느낀 것은 회사의 분위기가 굉장히 자유롭다는 것이다. 사장님과의 면담시간중 ‘I LIKE I WISH’라는 것을 했는데 I LIKE 는 회사에서 좋았던 것, I WISH는 회사에 바라는 것을 얘기하는 것이었다. 이 때 내가 I WISH 시간에 얘기한 것이 2일뒤에 반영이 되었는데 상당히 놀랐다. 인턴에 불과한 나의 얘기를 반영하는 게 쉽지 않은 일이기 때문이다. 내가 갖고 있던 IT업계 회사에 대한 선입견이 여기서 많이 없어졌다. 보통 IT업계를 생각하면 회사에서 시키는 대로 일만하고 야근도 밥먹듯이 하는 그런 회사가 생각났었지만 민트기술에 와서 다 그렇지는 않다는 것을 깨달았다. 출근 시간도 9~10시 사이 자유롭고 퇴근도 눈치보면서 퇴근하는 그런 분위기가 전혀 없어서 일하는 2달동안 너무 좋았었다. 
 
이렇게 2달동안 인턴을 하면서 난 하나의 프로젝트를 맡게 되어 거의 끝을 냈다. 이제 난 기초적인 개발을 할 수 있게 되었고 회사에 대한 많은 선입견이 사라졌다. 또한 내가 전공하고 있는 소프트웨어에 더 많은 애정이 생겼다. 가장 좋은 건 코딩에 대한 자신감이 생겼다는 것이다. 이렇게 언제든 그만둘 수 있는 인턴에게 하나의 프로젝트를 맡겨주신 사장님과 프로젝트를 진행하면서 도움을 주셨던 회사 사람들께 너무 고마웠다.