프론트엔드 개발 2년 쯤에 (1)
✏️

프론트엔드 개발 2년 쯤에 (1)

Description
2년간의 프론트엔드 개발 경험을 되돌아보기 1편
Tags
Published
Published January 5, 2022

나의 백그라운드

음성인식 개발, 개발자와 비개발자 그 사이 어딘가

프론트엔드 개발자로서 일을 한 지 만으로 2년이 되었다. 프론트엔드 개발 전에는 약 2년 정도 차량용 음성인식 관련하여 개발자와 비 개발자 사이 그 어딘가에서 자체 언어 기반의 스크립트를 작성하거나 개인적으로 필요한 도구들을 작업하였다.
특정 하드웨어나 환경에 디팬던시가 생기는 것이 구조적으로 답답했다. 또한 내가 상상한 CS나 프로그래밍 지식과 역량은 전혀 필요 없고 단순 스크립트 작업만 하는 것도 내 성향과는 잘 맞지 않았다. 배포되는 버전이 정말 완벽한 버전이어야 되는 특징 (양산된 후에 업데이트를 하려면 공장에 직접 가서 자동차 하나하나 USB 꽂아서 업데이트 해야 하는 경우도 아주 가끔 발생하였다. 때문에 나름대로 체계적인 개발 프로세스는 배울 수 있었다. 하지만 결국 가장 트랜디한 웹 개발 그중 프론트엔드에 매력을 느끼고 전향하게 되었다.
그렇게 현재 프론트엔드 엔지니어로서 두 번째 회사를 재직 중이고 만 2년 동안의 느낀 점과 2021년의 회고를 짧게 남겨보려 한다.
notion image

2021 회고

같은 길을 걷는 동료들이 많이 생겼다.

어쩌다 보니 나는 사수라든지 주위에 훌륭한 개발자가 되겠다는 목표를 갖고 같은 길을 걷고 있는 동료들이 그동안 많이 없었다.
2021년은 조금 달랐다. 이직을 하고 이런저런 활동을 하면서 같은 곳을 바라보고 나아가는 소중한 동료들을 많이 얻었다. 그동안은 혼자 공부하고, 혼자 고민하고, 혼자 뒹구는 것에 더 익숙했지만 (사실 지금도 약간은….) 함께라는 것은 더 큰 에너지가 된다는 것을 느낀다.
앞으로도 서로 좋은 시너지를 냈으면 좋겠다. 내 주위 모든 동료에게 감사하고 앞으로도 좋은 관계를 위해 더 노력할 것이다.

리액트로의 전환

프레임워크는 중요하지 않다 라는 말이 있다. 나도 공감한다. 하지만 구인, 구직 시장의 관점에서 같은 역량이라면 우리가 사용하는 프레임워크를 프로덕션 레벨에서 사용한 경험이 있는 사람을 선호하는 것도 어찌 보면 당연하다.
그동안 나는 실무에서 Vue만 사용하였었다. 기술이야 앞으로 언제 어떻게 바뀔지 모르지만 내가 느끼기에는 현재 프론트엔드 구인 시장에서 React 개발자를 찾는 것이 8할 정도는 되는 것 같다. 우리 모두가 "프레임워크는 중요하지 않아요."라고 말은 하지만 현실에서는 당장 퍼포먼스를 낼 수 있는 React 개발자를 선호하는 회사들을 많이 보았다.
그래서 항상 실무에서 React를 사용하고 싶은 욕구가 있었는데 드디어 2021년에는 React로 프로젝트를 진행하였다. 역시 프레임워크는 중요하지 않다는 말을 직접 증명하듯이 2~3개월 정도가 되었을 때는 Vue를 사용할 때보다도 훨씬 우아하게 문제를 해결하고 결과물을 낼 수 있었고 지금은 오히려 React를 다루는 게 훨씬 편해졌다.

나는야 주니어 잡(?)개발자! (나의 강점을 찾다.)

그동안 스스로 인지하지 못했는데 나는 나름 많은 경험을 했다. (얕고 넓은..?)
뭐든 직접 해보아야지 직성이 풀리는 성격 때문일까? 대충 생각나는것들만 적어보더라도
  • 사내에 gitea젠킨스 서버를 만들었다.
  • 위의 서버를 직접 조립하고 레이드 구성까지 하였다.
  • WebRTC서버를 만들어 도커로 빌드하여 공공기관에 배포하였다.
  • 서버리스 펑션으로 webhook 브릿지를 만들어 사내 메신저와 다른 서비스의 integration을 만들기도 했다.
  • Gitlab RunnerGithub ActionsCI/CD 스크립트도 작성하였다.
  • 다국어를 위해 구글 스프레드시트로 다국어 json파일을 만들거나 업무 효율을 위해 google app script를 작성하였다.
  • AWSEC2, S3, Lightsail, Lambda, Route53 등등 서비스를 사용해 보았다.
  • AWS뿐만 아니라 Azure, GCP의 비슷한 서비스들을 사용해보았다.
  • 백엔드도 필요하다면 DB 서버를 올리거나 서비스를 사용해서 깔짝였다. (Nest.js나 핫하다는 ORM 까지도 했으니 자바스크립트 생태계는 대부분(?) 한 번씩 다 건드려 본 것 같다.)
  • 프로덕트에 어울리는 지라 워크플로우를 설계하고 전파하였다.
  • 프로젝트에 어울리는 Git 브랜치 전략을 만들고 Git 사용법 세미나를 주최하였다.
  • 효율적인 협업 환경을 위해 각종 협업 도구생산성 도구 들의 사용법을 전파하고 교육 하였다.
  • 등등
좋은 교육기관이나 부트캠프 등에서 교육받고 온 개발자들을 볼때마다 나는 길거리 출신 프론트엔드 같다. (라떼는 갓프링, 갓이쿼리, 갓이에스피면 엄지척이었..)
조금이라도 해본 것과 한 번도 해보지 않은 것은 큰 차이가 있다.
물론 당연히 위에 나열한 것들은 “능숙하다.”, “잘한다.” 보다는 “해보았다.”, “뭔지는 대충 안다.” 정도이다. 오히려 지금은 그때 정확히 뭘 했었는지 기억도 안 나는 것들이 더 많은 것 같다.그래서 나는 단순히 해보았다 라는 것이 강점이 될 것이라고 생각을 크게 못 했다.
2021년, 이직과 여러 활동들을 통해 전보다 좀 더 다양한 환경과 개발자들과 소통하였다. 그러면서 나의 (잡스러운) 경험들이 전체를 이해하고 소통하는 데 힘이 되고 강점이 될 수 있다는 걸 알게 되었다.
예를 들어 Next.js를 통해 SSG 프로젝트를 S3 와 서버리스 환경에 퍼블릭으로 배포하고 서빙한다 했을 때 생성된 스태틱 자체는 /AAA/BBB.html 이고 실제로 접근해야 하는 경로는 /AAA/BBB 라면 앞단의 람다든 Cloudfront function에서 해당 스태틱으로 rewrite 시켜 줄 수 있냐고 요청한다거나 CI나 CD스크립트도 무엇이 필요한지 요청하거나 직접 만질 수 있었다. 만약 내가 여러 경험이 없었다면 "이거 안 돼요~ 해주세요~" 하지 않았을까?
앞으로도 다양한 경험을 많이 해서 넓고 적당히 깊은 지식과 전문 분야 (현재는 프론트엔드)의 역량을 키우도록 노력해야겠다.
짧게 쓰려던 글이 점점 길어져서 2편에서는 2년 동안 프론트엔드 개발을 하면서 느낀 점을 정리 해 보아야겠다.