곧 3년차가 되는 개발자가 회고하는 2023년
프롤로그 🎬
올해도 블로그를 성실하게 운영한다는 다짐을 하고 시작했지만, 총 4편의 글만을 쓴 것을 돌아보니, 연말에 이르러 부끄러운 마음이 들었다. 보통 연말이 되면 올해를 돌아보는 그리고 내년을 계획하는 마음이 들기 마련이다. 개발자로서의 한 해를 돌아보며 솔직한 회고를 적어보려고 한다. 내년에는 3년차 개발자로서 시작하게 되며, 그에 따른 목표들을 설정해보려고 한다.
올해는 무슨일들이 있었을까? 📅
올해 별개 없다고 생각했었는데, 돌아보니 몇가지 큰 개발관련 이벤트들이 존재를 했다.
1. 프로덕트 런칭 (2월)
이전 직장의 일이다. 올해 초에 새로운 프로덕트 런칭으로 굉장히 바빴다. 기존에 존재하던 임대인 서비스의 세입자 버전이었고, 서비스 전체가 웹뷰로 구성되어있는 프로덕트 였다. (정확히는 Flutter로 래핑된 풀 스크린 웹뷰). 기간은 12월 말부터 진행하여 2월말까지 약 2달동안 진행했다. 스타트업 특성상 사내 웹 프론트엔드 개발자가 나 혼자였기 때문에 프로덕트 시작부터 끝까지 홀로 진행해야 했다. 이전 작업들도 혼자 진행했던 것은 마찬가지 였지만, 이번 프로젝트는 앱 스토어에 올라가기 때문에 느낌과 책임감이 달랐다. 특히 그냥 웹페이지와는 달리 모바일 앱에서 동작하기 때문에, 그에 상승하는 빠른 UI 반응속도, 수려한 애니메이션, 정확한 history stack, AOS와 IOS 브라우저의 지원 가능 속성 등 웹 페이지보다는 상대적으로 조금더 디테일한 부분에 신경을 써야했다. 이번 프로덕트를 무사히 앱스토어(IOS, AOS)올렸고, 과정동안 많은 인사이트를 얻을 수 있었다. 다만, 동시에 여러가지 아쉬움들도 존재했다.
IOS 앱스토어
AOS 구글 플레이 스토어
2. 강의 보조 튜터 (4월)
2023년에 개발 관련해서 다양한 활동을 해보는 목표가 있었기에, 스파르타 코딩클럽에서 올해 중순에 론칭했던 chatGPT를 활용한 클론코딩
` 보조 튜터를 약 3주일간 맡아 진행했다. 메인튜터 님이 실제 강의를 맡아 진행하셨고, 보조 튜터인 나는 강의에서 다루는 클론코딩들을 GPT를 활용해 실제로 ‘클론 코딩’ 테스트를 하고, 수강생들이 참고할 수 있는 강의자료를 만들었다. 내가 진행했던 클론 코딩 웹 서비스는 “무신사”였다. 무신사를 보면 알겠지만 굉장히 복잡한 UI구조를 가지고 있다.
GPT로 그것도 무신사 웹 페이지를 클론코딩 하기 위해서 굉장히 많은 시도를 했다. 같은 프롬프트를 입력하더라도 다른 UI(html과 css코드)를 뱉었다. 이는 코딩을 모르는 수강생들이 GPT가 뱉어주는 코드를 복사 붙여 넣기 했을 때 강의와 동일한 UI를 얻을 수 없기 때문에, 큰 혼동을 줄 수 있었고, 이를 방지하기 위해 랜덤성 제약을 프롬프트에 항상 명시해 주어야 했다. 추가로 강의 대상이 개발을 해보지 않은 사람들을 대상으로 한 것이라 최대한 개발 용어를 제한하고 누가 들어도 이해할 수 있도록 강의자료를 작성하는데 굉장히 리소스가 많이 들었다.
손 쉽게 따라하는 ChatGPT 클론코딩
3. 직업 교육 (5월)
지인을 통해 송파구에서 진행한 직무 특강에서 강의자로 참여했다. 개발자에 관심이 있는, 그리고 개발자를 준비하고 있는 사람들을 대상으로 IT분야에 대해 설명하는 세션이었다. 대학교 이후 처음으로 남들 앞에서 발표하는 것은 매우 큰 도전이었고, 말로 아이디어를 전달하는 것이 어색하고 낯설었던 나에게는 새로운 시도의 기회였다. 그러나 더 나아가, 향후에는 개발자들을 대상으로 한 세션을 진행하는 것이 목표였고, 이를 위해 다양한 노력을 기울이고자 했다. 이러한 의지와 시도들이 나 자신에게 새로운 가능성을 보여주고, 그 결과로 제안을 받아들였다.
강의 자료는 최대한 심플하게 그리고 글이 많이 들어가지 않게 만들었다. 대략적인 내용은 개발자를 하려는 이유, 현 IT업계에 있는 개발자의 종류, 웹 개발, 프론트엔드 개발, 백엔드 개발, 개발자를 준비하기 위해 필요한 것과 과정들 이었다.
열다섯분 정도가 오셨고, 약 2시간 정도 진행했다. 초반부에만 긴장했지 그 시간이 지나자, 오히려 시간이 부족할 정도로 할 이야기가 많았다. 이 경험이 앞으로 나의 인생에 분명 큰 도움을 줄 거라 생각한다.
4. 이직의 과정 (6월)
나 혼자 개발에 한계를 느끼고, 더 규모 있는 회사에서의 경험을 쌓기 위해 이직을 결심했다. 개발자로써의 근본적인 지식을 다시 굳건하게 쌓아보고자 하는 욕구도 크게 작용했는데 특히, 자바스크립트와 웹 개발에 대한 기본 지식을 다시 공부했던 시간은 과거와는 다른 시각으로 새롭게 이해되었다.
이와 함께 이력서를 다시 정비하고, 원티드와 피그마를 활용해 개인 이력서를 작성하여 제출했다. 총 30군데에 이력서를 제출했고, 3군데에서 서류 통과를 하였다. 나머지에서는 탈락했지만, 이는 아직 부족한 능력을 보완해야 한다는 신호로 받아들였다. 특히, 이전 부터 가고 싶었던 강XXX에 서류 통과를 하였는데, 코딩테스트에서 떨어졌다ㅠㅠ. 다음에는 코딩테스트까지 제대로 준비하여 재도전을 할 생각이다.
이 중 한 회사에서는 최종 면접을 통과하여 현재 재직 중에 있다. 이번 이직 기간이 생각보다 빠르게 마무리되어 매우 기뻤고, 앞으로는 현재의 경험을 더 쌓아 높여 나가며 더 나은 개발자로 성장할 수 있는 또 다른 기회를 얻었다고 생각한다.
5. 새로운 회사 입사 (7월) 🏢
정확히 7월 17일에 새로운 회사에 입사를 하였다. 이전 직장과는 달리, 어느정도 체계가 잡혀있는 개발 프로세스와 내가 그토록 원했던 하나의 서비스를 같이 만들어나가는 프론트엔드 개발자 팀원들이 계셨다! 팀원들의 도움으로 빠르게 업무에 들어갈 수 있었고, 여러가지 피쳐들을 수행하고 있다.
이직한 회사의 생활 👨👩👧👦
이전 직장보다 훨씬 만족스럽게 새로운 회사에서의 생활을 즐기고 있다. 이전에는 혼자서 묵묵히 프로덕트를 개발해 나갔던 반면, 이제는 동료들과 함께 일하며 그들의 코드를 살펴보고 배울 수 있다는 점에서 큰 희열을 느끼고 있다. 함께 문제를 고민하고 나아가는 경험은 정말 이것이 협업이 아닐까하는 만족감을 주고 있다.(이 부분에 대해 글을 작성할 예정이다.)
한편, 동료 개발자들이 내 코드를 검토해준다는 점에서 이전과는 다르게 코드를 작성할 때 신중하게 생각하게 되었다. 더불어 코드 한 줄 한 줄에 대한 이유를 고민하고, 코드 품질 및 패턴에 대해 등한시하지 않고 고민하는 시간을 갖게 되었다. 현재 프로젝트에서는 이전에 없던 컴포넌트 패턴과 코드 구조를 개인적으로 도입하고 있는데, 이를 팀원들과 충분히 공유하고 설명하는 데에 노력하고 있다. (가끔은 이 부분에서 살짝 죄송한 감정이 들기도 한다..🥲 하지만 좋은 패턴들을 같이 공부해서 궁극적으로 유지 보수하기 좋은 프로덕트를 함께 만들고 싶은 바램이 있다)
올해는 프로덕트 런칭을 성공적으로 완료하고, 내년 초에는 프로덕트의 실질적인 개선과 발전에 집중할 시간이 작게나마 주어졌다. 혼자 개발하는 것이 아니라 팀원들과 함께 이야기하고 결정해 나가야 하는 부분에서는 기대와 동시에 책임감도 크게 느껴지고 있다. 제일 중요한건 팀원들과 함께 동일한 목표를 향해 나아가는 것이 이상적인 팀 협업의 핵심이라고 생각한다.
논외로 회사에서 양양사옥에서 나름 워케이션을 한것, 단체로 보홀 워크샵을 간 것은 진짜 기억에 남는다. 스킨스쿠버 🧜🏻♂️, 바이크 🏍️, 바다 🌊(생각보다 동남아가 잘 맞을지도?… 😲)
올해 하반기 시도했던 개발 목표 및 진행중인 것 📚
1. Next.js 딥다이브 feat SSR
이번 Next.js 13 App-router는 기존 프론트엔드 개발 생태계에 큰 충격을 주었다.
React 18버전의 React Sever Component를 실제로 프로덕트 레벨에서 사용할 수 있게 Next.js가 12버전이 나온지 얼마 안됬음에도 불구하고, 빠르게 13버전을 출시했다. RSC이 SSR과 동일한 개념은 절대 아니지만, 기존에 페이지 단위의 SSR의 한계점을 어느정도 극복할 수 있도록하는 솔루션으로서 제시가 된 것이다.
현재 나온 이 기술을 파악하기 위해 나는 전통적인 SSR(과거의 웹)부터 하이브리드 SSR등 그 흐름을 살펴보고, 황준일 개발자의 SSR 직접 구현 포스팅을 보고 똑같이 만들어 보며 SSR에 대한 이해를 높히고 있다. 사실 프론트엔드로 개발을 시작하게 되면 “서버”라는 개념이 처음에는 낯설다.
하지만 이번 Next.js 13버전(직접 DB접근, api 기능등)도 그렇고, 앞으로 프론트엔드 개발자가 서버를 다루게 될 일도 늘어날 것이라고 기대한다.(사실 웹 개발자는 다 할줄 알아야하는게 아닐까? 🧐)
황준일 개발자님의 ‘프레임워크 없이 만드는 SSR’
내가 만들어본 SSR 개인 레포
2. nest.js로 백엔드 서버 개발
앞서 이야기한 내용의 연장선에서, 나는 서버 개발을 배우고자 하는 다양한 동기들을 가지고 있다. 첫 번째 이유는 앞서 언급한 웹 개발자의 역할에서 서버 개발 또한 중요한 부분이라고 생각하기 때문이다. 특히, 프론트엔드 개발을 주로 리액트로 시작했기 때문에, 개발 사고가 리액트 코드 패턴에 갇혀 있는듯한 느낌을 받았다. 그러나 웹 개발 및 프로그래밍은 더 큰 범주 안에서 다양한 코드 작성 방식과 패턴을 포함하고 있다. 리액트는 결국 UI Renderer에 불과하며, 전체적인 프로그래밍에는 더 일반이고 다양한 접근법과 패러다임이 존재한다고 생각한다.
개인적으로 객체 지향에 대한 관심이 크기 때문에, 이를 직접 적용하고 배울 수 있는 영역은 현재로서 리액트보다는 서버 코드에 더 가깝다고 생각한다. 특히, nest.js라는 프레임워크는 초기에 스프링을 참고하여 만들어졌으며, 객체 지향적인 사고와 코드 작성에 적합하다고 판단했다. 그래서 나는 nest.js를 통해 백엔드 서버를 공부하기로 결정했다. 리액트에 국한되지 않는 다양한 프로그래밍 패턴을 익히고자 하며, nest.js로 백엔드를 공부함으로써 얻는 새로운 인사이트를 리액트에도 부분적으로 적용해보고 싶은 계획이다.
하지만 제일 중요한건 프론트엔드 개발자로서의 본분을 잊지말고, 프론트엔드 개발공부에 충실하며, 서버 공부를 진행할 것 같다!
올해의 회고 🤨
막상 글로 적어보니, 아무것도 없을 줄 알았던 한해에 자잘자잘한 이벤트들이 조금 있었다. 작년부터 올해 초까지는 처음으로 개발자로 일을 시작해서 만드는데만 집중했다면, 올해부터는 웹 개발의 깊이와 협업에 초점을 맞춘 한해였다. 내년에는 리얼 3년차 개발자가 되기 때문에 그에 맞는 지식과 개발 생산성을 갖춰야 할 것이다. 사실 올해 개인적으로 만들기로 했던 프로젝트들이 2개 있었는데, 하나도 만들지 못했다. (이건 진짜 의지의 문제이다.) 내년에는 욕심부리지 말고 딱 하나만 제대로 만들자!
내년의 개발 목표 🧑🏼💻
- 남는 맥북으로 홈 서버 셋팅하기
- leet-code를 풀면서 프로그래밍 적 사고 늘리기
- 홈 서버 + 백엔드 서버 + 프론트엔드를 조합한 고규식 블로그 만들기
- “FE개발자의 서버와 친해지기”를 주제로 블로그 글 작성
- 개발자 고규식을 외부에 알리기
내년의 개발 외 목표 😲
- 건강한 Body를 위해 운동
- 본업 이외에 기타 수익을 만들어 보고 싶다. 특히 지식 공유!
- 개발 이외의 아에 안해본 영역을 취미로 만들기.
- 나 자신을 브랜딩 하기.
댓글남기기