1.
2024년이 되기 전에는 회고글을 작성하고 싶었는데, 그러지 못해서 일주일이 지난 지금이라도 작성해야겠다는 생각이 들어 작성하게 되었습니다.
2.
저는 현재 부산에 위치한 키즈플랫폼 애기야가자에 웹/앱 프론트엔드 개발자로 약 1년 반 정도 재직중인 개발자입니다. 취업을 했던 2022년에는 업무에 익숙해지는 것만으로도 힘들었던 시기였던 것 같습니다. 그래도 작년인 2023년은 조금 더 여유가 있었던 한 해였던 것 같습니다. 주어진 업무에 익숙해지기도 했고 제 실력 또한 회사와 함께 성장하였기 때문이 아닐까 싶습니다.
3.
2023년에 제가 회사에서 한 일은 크게 아래와 같습니다.
- 애기야가자 앱 업데이트 및 유지/보수
- 애기야가자 앱의 고질적인 버그들 해결
- 다른 기업과의 마케팅 협업 이벤트 웹페이지 작업
- 애기야가자에서 운영 중인 스토어 백오피스 작업
정말 많은 일을 했던 것 같은데 이렇게 크게 나열해보니 그렇게 많지만도 않은 것 같습니다.
다른 이벤트 웹페이지나 스토어 백오피스 작업은 중요도가 낮다보니 React
와 Material UI
같은 디자인 라이브러리를 사용하여 빠르게 작업하는데 몰두했다면, 앱은 정말 유지/보수도 잦고 가장 중요한 프로덕트였기 때문에 새로운 기술을 도입하거나 아키텍쳐를 변경한다는 것이 쉽지 않았습니다. 하지만 반대로 그렇기 때문에 새로운 기술과 아키텍쳐를 도입했어야 했습니다.
기존 앱 프로덕트에 쌓여있던 레거시 코드는 삭제했을 때 어떤 사이드 이펙트가 발생할지 알 수 없었으며, 코드를 작성하신 분이 이미 이직하셔서 어떤 의도로 작성하셨는지에 대해서 파악이 너무 힘들어 유지보수 및 확장에서 문제가 많았습니다. 이를 해결하기 위해 개발팀 분들과 상의하여 4분기에는 새로운 프로젝트에 기존 레거시 앱에서 기능을 마이그레이션하기로 결정하였습니다.
마이그레이션을 하면서 상태관리 방법을 Recoil
+ React Query
로 변경하였으며, 좀 더 직관적으로 파일을 관리할 수 있도록 아키텍쳐도 변경하였습니다. 이 과정에서 기존 레거시 코드를 복붙만 하는 것이 아니라 로직 개선도 하였으며, 컴포넌트들도 좀 더 재사용 할 수 있는 단위로 쪼개어 관리할 수 있도록 만들었습니다.
4.
하지만 이 과정에서 제 코드의 신뢰도에 대해서 고민하게 되었습니다.
기능 단위로 완성하여 유닛 테스트를 진행할 때 마다 버그가 지속적으로 보였기 때문입니다. 테스트 코드를 작성하려면 시간이 걸리니까 조금 더 빠르게 결과물을 만들어내려고 했던 것이 코드의 신뢰성을 많이 떨어트리게 되었고, 제가 작성한 코드가 완성이 되면 지금 서비스 중인 어플리케이션과 교체될 것인데 과연 버그없이 잘 동작할 것 인가? 에 대한 걱정이 들기 시작했습니다.
이 과정에서 테스트 코드를 도입해야할 생각이 들기 시작하였고, 동시에 원티드에서 진행하는 프리온보딩 수업을 통해 함수형 코딩에 대해 알게 되었습니다. 위 두 경험을 통해 앞으로 작성할 코드는 계산
, 액션
을 함수로 관리하고 뷰
와 로직
을 분리하여 작성하도록 하기로 하였습니다. 또한 각각의 계산과 액션을 함수 단위로 관리하게 되니 테스트 코드를 작성하는 것도 훨씬 수월하게 되었습니다. 테스트 코드는 우선은 Chat GPT
의 도움을 받아 작성하고 있으나 조금 더 공부해서 직접 짜보는 것이 내년 목표중 하나가 될 것 같습니다.
5.
작년에 React Native
에 대해서도 더 자세히 공부할 수 있었던 것 같습니다. 마케팅 팀 입장에서는 앱 외부에서 우리 앱의 원하는 페이지로 이동시킬 수 있어야 했는데, 제대로 동작하지 못하는 경우가 많았습니다. 하지만 이를 해결해기위해 App Scheme
을 우리 어플리케이션에 추가하여 다이나믹링크나 푸시메세지를 통한 네비게이션 이벤트를 완벽하게 핸들링 할 수 있게 되었습니다.
6.
이렇게 2023년 한 해를 돌아보니 많이 성장한 것 같으면서도, 아직도 성장에 대한 갈증이 많이 있습니다.
2024년에는 좀 더 자기개발에 집중할 수 있는 한 해가 되면 좋을 것 같은데요, 2024년의 목표를 세워본다면 크게 4개 정도로 잡아볼 수 있을 것 같습니다.
- 개발서적 읽기
- Next.js 공부하기
- CI/CD 도입하기
- 알고리즘 공부하기
개발서적은 구체적으로 클린코드
, 리팩토링
, 쏙쏙 들어오는 함수형 코딩
, 한 권으로 읽는 컴퓨터 구조와 프로그래밍
, 객체지향의 사실과 오해
, 프로그래머의 뇌
는 읽어보려고 합니다. 클린코드와 리팩토링은 다시 읽어보는 것이라 새로운 관점에서 읽어볼 수 있을 것 같아 선정했고, 한 권으로 읽는 컴퓨터 구조와 프로그래밍은 비전공자인 제가 부족한 CS 지식을 채우기 위해 읽어보려고 합니다. 그리고 타입스크립트 관련 서적들도 읽어볼려고 합니다. 지금도 사용은 하고 있지만, 더 좋은 구조로 사용하는 방법에 대해서 알아보고 싶어서가 이유입니다.
또한 SSR
이 트랜드가 된 지금 Next.js
를 많은 기업에서 필요로 하고있어서 다시 배워보려고 합니다. Next 13
이 되면서 많은 기능이 바뀌었다고해서 새롭게 배워봐야할 것 같습니다. 또한 애기야가자에서도 SEO 노출이 필요해서 Next.js
를 도입하는 것을 고려 중이라 미리 공부하면 업무에도 도움이 될 것 같아 공부해보려고 합니다.
CI/CD
도입은 우선 앱의 모든 로직을 계산과 액션, 데이터로 분리해야하는 작업도 필요하며, 테스트 코드 작성도 도입해야하는지라 시간이 많이 걸릴 것 같아서 Git Action
과 Fastlane
을 통해 배포 자동화부터 공부해보려고 합니다.
알고리즘 공부는 정말 많이 부족한 영역이라 취업 준비했을 때 이후에는 거의 놓다시피 한 분야인데 자료구조부터 조금씩 배워보려고 합니다. 시작하는 것 부터 힘들 것 같은데... 일단 이렇게라도 적어놓아야 행동으로 옮기지 않을까 싶어서 적어봅니다.
7.
이렇게 한 해 회고 및 올해 목표까지 세워봤는데, 내년의 제가 이 글을 보고 부끄러워하지 않도록 노력해야겠습니다.
지금 이 마음이 작심삼일이 되지 않기를...