jay.log

posts.

portfolio.

회고

2023년 회고

11분

2024-01-07

1.

2024년이 되기 전에는 회고글을 작성하고 싶었는데, 그러지 못해서 일주일이 지난 지금이라도 작성해야겠다는 생각이 들어 작성하게 되었습니다.

2.

저는 현재 부산에 위치한 키즈플랫폼 애기야가자에 웹/앱 프론트엔드 개발자로 약 1년 반 정도 재직중인 개발자입니다. 취업을 했던 2022년에는 업무에 익숙해지는 것만으로도 힘들었던 시기였던 것 같습니다. 그래도 작년인 2023년은 조금 더 여유가 있었던 한 해였던 것 같습니다. 주어진 업무에 익숙해지기도 했고 제 실력 또한 회사와 함께 성장하였기 때문이 아닐까 싶습니다.

3.

2023년에 제가 회사에서 한 일은 크게 아래와 같습니다.

  • 애기야가자 앱 업데이트 및 유지/보수
  • 애기야가자 앱의 고질적인 버그들 해결
  • 다른 기업과의 마케팅 협업 이벤트 웹페이지 작업
  • 애기야가자에서 운영 중인 스토어 백오피스 작업

정말 많은 일을 했던 것 같은데 이렇게 크게 나열해보니 그렇게 많지만도 않은 것 같습니다.

다른 이벤트 웹페이지나 스토어 백오피스 작업은 중요도가 낮다보니 ReactMaterial 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 ActionFastlane을 통해 배포 자동화부터 공부해보려고 합니다.

알고리즘 공부는 정말 많이 부족한 영역이라 취업 준비했을 때 이후에는 거의 놓다시피 한 분야인데 자료구조부터 조금씩 배워보려고 합니다. 시작하는 것 부터 힘들 것 같은데... 일단 이렇게라도 적어놓아야 행동으로 옮기지 않을까 싶어서 적어봅니다.

7.

이렇게 한 해 회고 및 올해 목표까지 세워봤는데, 내년의 제가 이 글을 보고 부끄러워하지 않도록 노력해야겠습니다.

지금 이 마음이 작심삼일이 되지 않기를...

안녕하세요, 프론트엔드 개발자 이진웅입니다!

확장성이 뛰어나고 유지보수가 용이한 개발 방법론에 큰 관심을 가지고 있습니다.

© jay.log powered by Next.js, Vercel