[라이너 팀원을 소개합니다] Software Engineer 제제
Q : 당신은 누구신가요?
이름 : 제제
포지션 : 프론트엔드 엔지니어
소개 : 제제~🎵 어서 나무에 올라와~ 🎶 즐겁게 개발 중인 주니어 프론트엔드 엔지니어 제제라고 합니다.
Q : 라이너팀의 프론트엔드 엔지니어가 하는 일은 무엇인지 상세하게 설명해주세요!
라이너의 플랫폼은 크게 웹, 모바일, 브라우저 익스텐션이 있고, 프론트엔드 엔지니어 분들은 각자의 경험과 장점을 살릴 수 있는 플랫폼에서 개발중이예요. 각 플랫폼에서는 코드의 안정성을 높이는 지속적인 업데이트와 함께 더 나은 기술을 적용한 신규 기능을 개발하고 있습니다.
지금까지 웹 플랫폼에서는 JavaScript, React 기반으로 <SEO>, <새로운 컬러테마 및 라벨>, <구독 관리>, <유튜브 하이라이트 관리>와 같은 유저 획득 증가와 사용성 향상에 기여할 수 있는 프로젝트를 진행했어요. 새롭게 시작하는 프로젝트에서는 기존 레거시를 걷어내고, TypeScript, Next.js 기반으로 최적화된 라이너 웹을 선보이려고 하고 있어요.
라이너의 메인 프로덕트라고 할 수 있는 브라우저 익스텐션에서는 <유튜브 하이라이트>, <구글 검색 결과 스캐너>, <SNS 공유 기능>과 같이 어디에서나 라이너의 효용을 느낄 수 있도록 개발이 진행되고 있어요. 가변하는 웹 페이지의 UI 속에서 안정적으로 동작하기 위해 더욱 더 주의를 기울이고 있어요.
모바일은 웹과 유사하게 운영되고 있었지만, 지금까지 많은 리소스가 투입되진 않았어요. 곧 시작될 프로젝트에서 대대적으로 UI/UX 모두 사용자에게 최적화된 모습으로 개편될 예정이에요.
Q : 라이너의 프론트엔드 엔지니어가 가진 기회는 무엇인가요?
제가 참여했던 일들을 생각해보며 적어봤는데, 3가지 기회를 찾았어요.
첫 번째는 아직 도입되지 않은, 활용 가능한 기술 스펙이 많다는 것이에요. 그래서 주도적으로 새로운 기술을 도입하고 적용해볼 수 있어요. 한 예로, 라이너 개발 문화를 만들어 나가면서 코딩 컨벤션을 통일하자는 논의가 있었어요. 그 과정에서 prettier와 eslint, lint-staged, husky의 초기 세팅에 제가 주도적으로 기여했고, 이를 적용해 엔지니어링 플래닛의 업무 퍼포먼스를 상승시킬 수 있었어요. 또 완전히 새로운 기능을 출시하는 프로젝트가 많이 있고, 프로젝트마다 어떤 기술을 적용할 것인지 고민이 필요한 환경이 갖춰져요. 이러한 고민을 통해 새로운 프로젝트에서는 TypeScript, Next.js, react-query, CSS in JS 등의 도입 및 전환이 이루어질 예정이에요.
두 번째는 다양한 플랫폼을 통해 개발 스펙트럼을 넓힐 수 있다는 점이에요. 라이너 웹, 모바일, 브라우저 익스텐션 모두 각기 다른 환경에서의 개발이 요구됩니다. 새로운 지식을 습득함과 동시에 기존 개발 지식을 더욱 탄탄히 할 수 있는 기회가 있어요.
세 번째는 나의 노력과 결과를 반영하여 코드의 완성도를 높일 수 있다는 점이에요. 프로젝트를 진행하며 기존 코드를 리팩토링하고, 레거시를 걷어내면서 코드의 안정성을 높이는 경험을 할 수 있어요. 이를 통해 오래 지속될 수 있는 코드 설계에 대한 고민을 할 수 있다는 점이 기회라고 생각해요.
Q : 라이너의 프론트엔드 엔지니어가 가진 책임은 무엇인가요?
이 질문을 보니 개발 산정을 잘못하여 기한을 넘어서 개발을 마무리했던 경험이 생각나네요. 저는 이 경험을 통해 2가지 배움을 얻었어요.
- 자신의 실력에 대한 냉정한 평가가 필요하다.
- 기한에 쫓기는 상황에서도 코드 퀄리티를 버려서는 안 된다. 이는 코드 안정성뿐만 아니라, 서로에 대한 약속이자 신뢰라고 생각한다.
스타트업 특성상 빠른 속도로 임팩트를 내야 하기에 제품의 코드에 업무 퍼포먼스를 해치는 레거시가 많이 생길 수 있습니다. 그럼에도 프로젝트의 가장 끝 단에 맞닿아 있는 프론트엔드 엔지니어는 작은 기능 개발이나, 사소한 디버깅일지라도 사소하게 넘기지 않고 좀 더 깨끗하고 최적화된 코드를 작성하기 위해 노력해야 한다고 생각해요.
Q : 라이너에서 가장 성취, 성장 했다고 느낀 경험을 들려주세요!
팀원들이 사용할 코딩 컨벤션을 처음부터 직접 세팅하고 관리한다는 것(eslint, prettier, husky, lint-staged 등)이 가장 성취하고 성장했다는 경험이었어요. 이는 업무 퍼포먼스를 증가시킬 수 있는 라이브러리를 제안하거나, 새로운 기술 스펙 도입 등에 있어 한 사람 한 사람이 주도적으로 제안할 수 있는 환경 덕분이라고 생각해요.
또 다른 경험으로는, 웹 플랫폼에서 벗어나 브라우저 익스텐션에 많은 유저들이 사용하는 기능을 배포한 것이 있어요. 대부분의 라이너 사용자들이 매일 보는 구글 검색 결과 페이지에 내가 만든 기능이 들어갔고, 실제로 많은 유저들이 사용해준다는 것이 놀라웠어요.
Q : 라이너에서 지금 제제가 풀고 있는 문제, 앞으로 풀어야 하는 문제를 들려주세요!
현재 새로운 기능 출시를 우선으로 개발이 이루어져 있어 코드에 최적화되지 않은 부분이 많이 있어요. 더 효율적인 개발 퍼포먼스를 위해 팀원 모두가 재사용할 수 있는 코드를 작성해가고자 합니다. 사실 일부 코드들은 특수한 환경에서만 재사용할 수 있도록 된 경우가 많아 효율이 떨어지기도 하는 문제가 있어요. 이런 문제들을 해결하기 위해 테스트 코드를 도입해 코드의 안정성을 높이고자 합니다. Jest 와 같은 테스트 프레임워크에 경험이 있으신 분이 합류하신다면 이 문제를 해결하는 데 큰 힘이 될 것 같아요.
이 외에도 새롭게 TypeScript, Next.js, react-query를 안정적으로 도입하는 방법을 고민 중이며, 순수 JavaScript 로 이루어져 있는 브라우저 익스텐션에도 React를 도입하여 퍼포먼스를 향상하고, 최적화할 수 있는 방법을 찾는 것도 지금 저와 프론트엔드 엔지니어들이 풀고 있는 문제예요.
Q : 제제가 라이너와 함께 이루고 싶은 목표가 있다면?
라이너는 저의 잠재력을 믿고 응원해주시는 분들로 가득한 온기 넘치는 곳이고, 매일매일 제품과 함께 성장하며 즐겁게 개발할 수 있는 곳이에요. 라이너에게 도움받고, 응원받은 만큼 더 많은 사용자들이 사용하고 더 좋은 사용자 경험을 제공할 수 있도록 항상 고민하면서 라이너의 성장을 직접 이끌어 가고 싶어요. 다른 서비스 위에서 라이너의 가치를 전달하는 것이 아니라, 라이너, 바로 그 위에서 라이너의 온전한 가치를 전달할 수 있도록 매력적인 서비스를 만들고 싶어요.
Q : 마지막으로 프론트엔드 엔지니어로 지원할 미래의 동료들에게 하고 싶은 이야기가 있나요?
지금 당장은 미숙할지라도, 매일매일 폭풍 성장해서 실력으로 찍어누를 수 있다는 자신감을 가지신 분들! 수동적인 자세로 개발을 받아들이는 것이 아니라, 내 머리로 생각해서 능동적으로 문제를 헤쳐 나가는 멋진 분과 함께 개발할 수 있으면 좋겠어요.
라이너의 성장과 함께 즐겁게 개발해봐요!
(끝)