성능에 대한 당근 개발자의 피드백
당근 개발자가 "성능"보다 중요하다고 조언한 것
바닐라코딩 프론트엔드 부트캠프 수료생 프로젝트를 발표하는 자리에 당근 개발자 분들이 참석하여 피드백 해주셨습니다.
한 번쯤 이런 고민을 해본 적이 있을 것이다.
“이 코드를 더 최적화할 수 있을까?”
“이렇게 하면 성능이 더 좋아지겠지?”
개발자는 늘 성능을 중요하게 여긴다. 리액트에서는 렌더링 성능을 고려해 useMemo를 쓰고, 불필요한 리렌더링을 막기 위해 상태 관리를 최적화한다.
하지만 이 영상 속 당근 개발자는 성능보다 더 중요한 것이 있다고 말한다. 그리고 그 이야기는 꽤나 설득력 있었다.
당근 개발자의 의견을 듣고 나 또한 많은 생각이 들었다.
코드를 작성하는 것은 퍼즐을 맞추는 것과 닮았다.
수많은 조각을 하나하나 맞춰가면서 전체 그림을 완성해나가는 과정.
그런데 가끔 우리는 너무 작은 조각 하나에 집착하느라, 정작 전체 그림을 놓쳐버리기도 한다.
영상 속 3D 스도쿠 게임은 단순한 프로젝트가 아니었다. 리액트라는 프레임워크를 사용해 3D 인터랙션을 만들고, 사용자가 자연스럽게 즐길 수 있도록 설계되었다.
이 과정에서 성능 최적화는 중요했지만, 그보다 더 중요한 것이 있었다.
바로 사용자가 이 게임을 경험하는 방식, 그리고 개발자가 유지보수할 수 있는 코드였다.
개발자라면 누구나 한 번쯤 성능 최적화의 유혹에 빠진다. 불필요한 렌더링을 줄이기 위해 코드를 복잡하게 만들고, 네트워크 요청을 최소화하기 위해 트릭을 사용한다.
하지만 우리가 개발하는 것은 결국 사람이 사용하는 제품이다.
너무 성능에 집착하다 보면, 정작 사용자 경험을 해치는 경우도 생긴다.
예전에 피드백에 참여했던 한 개발자가 말했다.
“최적화보다 중요한 것은 유지보수 가능성과 코드의 명확성이다.”
코드가 읽기 쉬워야 다음 사람이 쉽게 이해하고 유지보수할 수 있으며, 팀원들이 함께 일하기 쉬워진다.
그리고 궁극적으로, 좋은 사용자 경험을 제공할 수 있다.
이 영상을 보고 나서 나도 생각해보았다. 나는 지금까지 어떤 선택을 해왔을까?
리팩토링을 하다가 성능을 위해 코드의 가독성을 포기한 적은 없었을까?
더 나은 사용자 경험보다 퍼포먼스 최적화를 우선했던 적은 없었을까?
우리가 개발자로서 만들어야 하는 것은 단순히 빠른 코드가 아니다.
이해하기 쉬운 코드, 협업하기 좋은 코드, 그리고 사용자에게 가치를 주는 코드.
그것이야말로 우리가 더 신경 써야 할 부분이 아닐까 싶다.
이 글을 읽고 있는 당신도 한 번쯤 고민해보면 좋겠다.
우리는 너무 성능에 집착하고 있지는 않은가?
조금 더 사람을 위한 코드를 작성할 수는 없을까?
좋은 코드란 단순히 효율적인 코드가 아니다. 좋은 코드란, 개발자의 마음을 움직이고, 사용자에게 의미 있는 경험을 제공하는 코드다.