민트기술에서 2024년 3월부터 2024년 6월 인턴십을 진행했습니다.
인턴십 선택 이유
학부생 때 경험하는 프로젝트는 대부분 부족한 자원과 짧은 기한에 쫓겨, ‘서비스가 기획한 대로 동작하는가’에 매몰되기 쉽습니다. 때문에 ‘왜 이 프레임워크를 쓰는 것이 적합한가’, 또는 ‘이 코드가 충분히 좋은 코드인가’ 등을 고민하기보다는 정해진 시간 내에 필요한 기능을 구현해 내기에 급급했습니다.
졸업하기 전, 이를 위한 돌파구가 간절했습니다. 마지막 학기를 앞두고 있는 시점에서 고민 끝에 인턴십을 신청하게 되었고, 결론부터 말하자면, 민트기술에서의 인턴십 경험은 역량있는 개발자로 발돋움하기 위한 갈증을 해소하기에 충분했습니다. 민트기술의 인턴 지도 계획서에 적힌 짝프로그래밍과 주간회의는 가장 적합한 해결책이 되어줄 것이라 믿었고, 홈페이지의 인턴후기를 통해 확신을 가졌습니다. 민트 기술에 지원했던 선택은 높은 신뢰의 결과로 돌아왔습니다.
업무환경
저는 4개월 동안 ‘안전보건 시스템’이라는 웹 프로그램 개발에 주력하였습니다. 많은 메뉴와 높은 사용자 트래픽을 갖는 것이 특징인 웹사이트로, Svelte와 SvelteKit을 사용한 풀스택 개발을 진행하였습니다. 그 과정에서 다양한 자바스크립트 런타임과 typeORM, storage 등을 경험해 볼 수 있었습니다. 일부 메뉴를 선오픈하여 사용자 피드백을 받아 문제를 해결하는 실무 과정이 특히 인상 깊었습니다.
여러 개의 메뉴와 기능을 구현하며, 데이터베이스 작업, API 개발, UI 구현 등 다양한 작업을 수행하였습니다. 프론트, 백엔드 분야에 대한 나눔 뿐만 아니라, 메뉴에 따른 분업도 딱히 두지 않아서, 다른 팀원의 코드에 나의 작업을 더해가는 일도 빈번합니다. 덕분에 타인의 코드를 더 잘 읽어낼 수 있게 되었고, 저 또한 읽기 좋게 코드를 작성하려는 노력을 하게 되었습니다.
유연근무제와 자율 출퇴근이 보장된 환경에서, 대다수의 개발 인원과 닉네임으로 소통하는 방식은 협업의 편리함을 체감케 했습니다. 협업의 정점을 몸소 배웠던 시간은 다름 아닌 주간 회의였습니다. 각자 본인의 업무와 프로젝트 진행 상황을 공유하고, 새롭게 알게 된 지식과 겪은 어려움, 문제 해결의 실마리를 찾아 나눕니다. 혼자 해결하기 어려운 문제들을 자유롭게 의견을 제시하며 지혜를 모았던 주간회의는 집단 지성의 영향력을 실감하게 했고, 학부생으로서 겪었던 협업에서 차원을 넘어선 배움의 깊이를 충족시켜주는 현장이었습니다.
인턴십을 통해 얻은 것들
인턴십 기간에 계속되는 문제 상황을 겪으면서 느낀 것은, 맡은 과제에 대해서 충분히 집중적으로 고민할 시간이 주어진다는 것입니다. 기억나는 어려움 중에 열려있는 탭 간 이동 시 새로고침이 발생하지 않도록 하는 Tab UI 구현이 있었는데 그 요구사항을 맞추기 위해 약 일주일의 시간이 걸렸습니다. 시행착오를 겪고 다방면으로 해결책을 모색하며 문제에 몰입할 수 있는 환경은 해결 가능성과 성취감을 높였습니다. 또한, 그 과정에서 도움을 청하면 얼마든지 같이 고민해 주는 동료들이 있습니다.
이번 인턴십을 통해 많은 하드 스킬과 소프트 스킬을 얻었습니다. 효율적인 코드 작성, CS 이론의 실무적 적용(예: 데이터베이스의 View를 적재적소에 ORM을 이용해 적용해보기, 같은 메뉴에 대해 PUT, PATCH 메서드를 다르게 사용해보기), 엣지 테스트 케이스를 고려하는 방법, 그리고 주저하지 않고 소통하는 능력 등 다양한 기술을 익혔습니다.
특히, 매주 주간회의를 준비하면서 내가 한 업무와 배운 점을 정리하고 공유하는 법을 배운 것이 가장 큰 성과 중 하나였습니다. 이는 현대 개발자에게 꽤나 중요한 스킬이라고 생각합니다. 나의 업무를 체계적으로 정리하고 명확히 공유함으로써, 팀원들과의 원활한 소통과 프로젝트의 효율적인 진행이 가능해집니다. 이러한 능력은 개인의 성장을 돕고, 팀 전체의 성과를 높이는 데 크게 기여합니다. 인턴십을 통해 이 과정을 미리 연습해 볼 수 있는 좋은 기회가 되었습니다.
일주일에 한 번씩 진행되는 원온원에서는 업무에 집중된 목표를 거시적인 관점으로 환기하며 개발자 생태계를 이해하는 시간을 가졌고, 궁극적으로는 업무에도 도움을 받았습니다. 면담을 통해 당면한 기술적 어려움에 대한 보다 심층적인 해결 방법을 구한다거나, 최신 기술 동향이나 프로토콜 또는 프레임워크의 역사 등에 대해 같이 살펴보기도 했습니다. 에러핸들링, git을 이용한 형상 관리 등 개발자가 가져야 하는 마음가짐에 대한 조언과 자격증, 건강, 시즌과 인생의 목표, 팀원들과 함께 성장할 수 있는 환경 등 개발자의 삶을 계속 살아가기 위한 값진 조언들도 얻을 수 있었습니다.
결론
저는 인턴으로 마무리하기엔 너무 아쉬웠기에, 정직원으로 전환해서 민트기술과 계속 함께 하고 있습니다! 수평적이고 협업이 활성화된 문화 속에서 좋은 개발 습관과 업무지식을 쌓을 수 있었고, 살아있는 지식을 터득함으로써 직업의식과 자부심까지 얻을 수 있었습니다. 더 나은 개발자이자 더 나은 인간으로 성장하는 발판이 되었다고 생각합니다.
민트기술에서의 경험은 다양한 문제 해결 경험을 통해 실무 능력을 강화할 수 있었고, 이에 제대로 된 실무경험과 새로운 기술활용에 대한 수요가 있는 분들은 민트기술에서의 인턴십 과정을 적극 추천합니다. 분명 개발능력 안팎으로 발전하는 자기 개발의 장이 되어줄 것입니다.