소프트웨어분야 전문성을 키우기 위한 노력들
첫째, 저는 팀원들의 기술적 성장을 위해, 주도적인 역할을 하고자 노력했습니다.
회사에는 프론트와 백엔드 개발을 총괄할 수 있는 대표 두 분이 계셨지만, 자사 서비스 개발과 클라이언트 미팅 등으로 바빴기 때문에 사수가 없는 것과 마찬가지였습니다. 그래서 저와 비슷한 시기에 입사한 동료 개발자들이 오롯이 하나의 제품을 완성해야 했습니다. 그러나 다들 처음 접하는 개발환경과 기술 스택으로 프로젝트가 구성되었기 때문에, 프로젝트 진행 속도가 더뎠습니다. 클라이언트가 원하는 기한에 맞추려면 현재 진행하는 속도보다 더 빠르게 개발해야 했고, 그러려면 빠르게 새로운 지식을 습득해야 했습니다. 이러한 문제상황을 해결하기 위해 동료들에게 참여 의사를 물어 사내 스터디를 조직했고, 주 1회 4개월간 사내에 쓰이는 기술과 관련된 2개의 스터디(자바스크립트, 타입스크립트)를 진행했습니다. 그 결과, 혼자 학습했을 때보다 더 많은 분량을, 더 깊게 학습할 수 있었고 프로젝트에 대한 진행 속도도 이전보다 빠르게 진행할 수 있었다고 생각합니다. 또한 프로젝트 전체의 코드 품질 또한 기존보다 더 향상되었던 것은 물론입니다.
둘째, 단순히 코드만 작성하는 것이 아니라, 거시적인 시야에서 사내 소프트웨어에 적용된 아키텍처와 디자인 패턴을 학습하고자 끊임없이 노력하며, 이해를 넘어서 활용하는 것을 목표로 합니다.
이미 개발된 웹 앱을, 클라이언트의 요구로 네이티브 앱으로 만들어야 하는 상황이 있었습니다. 이러한 문제 상황에 좀 더 유연하게 대처하고자, 다행히 회사에서는 기존 웹 앱을 클린 아키텍처 구조로 프로젝트를 설계했습니다. View를 책임지는 프레임워크와 의존성이 적다 보니, 웹 프로젝트 코드의 상당 부분을 앱에서도 재활용할 수 있었기 때문입니다. 그때 아키텍처의 중요성에 대해서 절감할 수 있었습니다. 그 모습을 보며, 저 역시 아키텍처를 아는 것이 중요하다고 생각하게 됐고 꼭 제 것으로 만들고 싶었습니다. 그래서 사내 프로젝트와 비슷한 구조로, 사이드 프로젝트를 진행하며 (현재도 진행 중) 왜 그렇게 작성했는지 하나하나 따져보면서 공부했습니다. 또 배우고 학습한 내용을 블로그에 정리하여 동료와 타 개발자들에게도 공유했습니다. 그 결과, 소프트웨어를 바라보는 시야가 넓어졌을 뿐만 아니라, 부분적이지만 활용할 수 있는 능력도 갖추게 되었습니다.
셋째, 동료들이 참고할 수 있을 만한 좋은 코드를 작성하려 노력합니다.
제가 생각하는 좋은 코드란 동료가 같은 문제상황을 마주했을 때, 해결 방법에 대한 로직을 함수화하여 더 짧은 시간 안에 문제를 해결할 수 있도록 도움을 주는 코드입니다. 동료 네 명과 동시에 한 프로젝트를 개발하다 보니, 같은 문제를 다른 사람이 중복해서 마주하는 경우가 잦았습니다. 이러한 상황을 줄이기 위해, 개발하기 전에 중복되는 로직을 함수화하여, 쉽게 해결할 수 있도록 도왔습니다. 빠르게 개발하는 데 도움이 됐을 뿐 아니라, 유지보수 측면에서도 중복된 코드가 줄어듦으로써 프로젝트의 품질을 향상하는데, 도움을 줄 수 있었습니다.
넷째, 끊임없이 컴퓨터과학 기초 지식 습득을 위해 노력합니다.
저는 비전공 출신 개발자로서, 전공자보다 기본적인 CS 지식이 부족합니다. 특히 자료구조를 활용해, 알고리즘을 작성하는 데 많은 어려움을 느낍니다. 혼자서 공부하고자 몇 차례 시도했지만, 지속해서 학습하는 데 계속 실패했습니다. 이러한 문제상황을 극복하기 위해, 올 1월부터는 개발자 커뮤니티(인프런)를 통해서 저보다 더 뛰어난 실력을 갖춘 개발자분들을 모집했고 주 1회 코딩테스트 스터디를 진행하였습니다. (2022/01~2022/03)
다섯 번째, 기획 능력과 서비스 운영 경험을 쌓기 위해 노력합니다.
현재 회사는 자체 서비스도 개발하지만, 자금 조달을 위해 외주 프로젝트를 진행한다는 점에서 SI 업체와 유사합니다. 따라서 클라이언트로부터 이미 완성된 형태의 기획안을 전달받아 개발합니다. 기획적인 측면 고려할 필요가 없는 상황에서 개발하고 있어, 제겐 비즈니스
와 기획
이라는 블랙박스와 같은 영역이 존재합니다. 이러한 간극을 메꾸기 위해, 사이드 프로젝트를 통해 기획자 2분, 백엔드 개발자 1분, UI/UX 디자이너 1분과 여운
이라는 여행 기록 서비스에서 크로스 플랫폼 앱 개발의 프론트엔드를 담당하고 있습니다. 여기서 회사에서 경험할 수 없던 기획과 팀원 모집 등 다양한 의사결정에 참여하면서, 시장의 관점에서 소프트웨어를 바라보는 관점을 갖추는 데 많은 도움을 받고 있습니다. 또 5월 중순까지 개발 완료 후, 배포할 계획이며 그 이후에는 꾸준히 서비스를 고도화해나갈 생각입니다. 이를 통해, 회사에서 경험하지 못한 서비스 고도화와 유지 보수 경험을 얻고자 합니다.
'생각정리' 카테고리의 다른 글
[Blog] 개발 블로그를 시작하는 방법 (2) | 2023.11.28 |
---|
댓글