성장

2023년을 돌아보며

mechaniccoder 2024. 1. 2. 00:03

2024년 새해가 밝았다. 2023년 개발자로서의 나는 얼마나 성장했고 어떤 것이 부족하며 앞으로 어떻게 할지 글을 쓰며 정리해보려 한다.

얼마나 성장했을까?

2023년 1월의 나와 지금의 나를 비교해봤을때 얼마나 성장했을지를 생각해봤다.

  1. 상태 관리와 컴포넌트를 설계하는 역량

컴포넌트 설계의 경우 함수형 프로그래밍을 학습한게 영향이 있었다. 순수한 부분과 순순하지 않은 부분을 구분 짓고 사고를 확장시켜 이를 컴포넌트 설계에도 적용하려고 했던 것이 도움이 됐다.

상태 관리는 Redux, Tanstack Query와 같이 여러 상태 관리 라이브러리를 써보면서 공통되는 원칙을 기반으로 한게 도움이 됐다. 최소한의 데이터를 상태로 정의하며 이를 가져오도록 selector를 사용하되 컴포넌트에서는 최대한 작은 데이터를 가져오도록 하는 것이 공통된 부분이라고 생각한다.

  1. 테스트 코드를 작성하는 역량

이펙티브 소프트웨어 테스팅이라는 책을 읽었던게 많은 도움이 되었다. 이 책을 읽고 테스트를 작성할때 명세 테스트를 기반으로 버그가 발생할 수 있는 범위와 경계를 생각하며 테스트하기 시작했다.

어떤게 부족할까?

  1. JavScript, React에 대한 깊은 지식

프런트엔드로서 사용하는 주요 도구라고 생각한다. 이제는 추상화된 인터페이스 및 동작원리를 아는 수준이 아니라 내부적으로 코드가 어떻게 동작하는지를 알아야 한다고 생각한다. React만 언급했지만 JavaScript도 마찬가지다. 좀 더 내려가 V8엔진 수준에서 어떻게 동작하는지 알아야 더 높은 수준에 도달할 수있다고 생각한다.

  1. 클라우드 지식과 이를 활용한 경험

프런트엔드 개발자도 클라우드를 잘 활용해야 한다고 생각한다. Serverless와 Edge computing의 활용도가 올라가고 있고 정적 리소스는 스토리지와 CDN을 사용한다. SSR이 여러 앱에서 활용되고 있는 만큼 서버에 관한 지식과 이를 배포하고 운영하는 능력도 갖춰야 한다.

무엇을 할까?

부족한 것을 보완하며 잘하고 있는 것은 더 잘 할 수 있도록 해야할 것이다.

  1. JavaScript, React등 사용하는 도구를 깊이 이해하자

V8엔진과 React 내부의 동작원리를 이해하며 어떻게 해야 이 도구들을 더 잘 활용할 수 있을지 고민하자

  1. 클라우드 지식 학습과 이를 활용한 경험

AWS 클라우드를 학습하는 시간도 따로 챙기며 간단한 사이드 프로젝트에 이를 활용해보자. 추가적으로 회사에서 AWS가 어떻게 활용되고 있는지 내 것으로 만드는 것도 좋은 방법이라고 생각한다.

  1. 웹에 대한 지식과 깊이

웹 기술에 대한 전문성을 쌓아서 실무에서 마주한 어려운 문제들을 해결하거나 앱을 고도화하는 것에 활용할줄 아는 개발자로 성장하고 싶다. 이를 위해선 결국 HTTP, 웹 브라우저를 깊이 있게 이해해야 한다. 현재 web.dev 사이트를 통해 학습중이고 2024년에는 이 사이트에 있는 내용들을 온전히 내 것으로 소화할 것이다.

마치며

확실히 코딩을 처음 시작했을때의 성장 속도보다는 더뎌진게 느껴진다. 그때는 성장을 했다기보다는 기본적인 지식도 모르는 상태이다 보니 조금만 알아도 성장했다고 느꼈기 때문일 것이다. 지금은 성장했다고 느끼기 위해선 많은 고민들과 값비싼 경험들을 지불해야한다고 생각한다. 우리가 RPG 게임 캐릭터를 키울때 레벨이 올라가면 더 많은 경험치가 필요한 것처럼 말이다. 가끔은 이렇게 느려진 성장속도로 인해 불안하고 초조해질때가 있다. 그럴때마다 나를 믿고 나아갈 수 밖에 없다고 생각한다. 물론 잘못된 방향으로 우직하게 나아가는 것 만큼 미련한 것은 없기 때문에 이에 대한 피드백은 해야할 것이다.