2021년 회고록

들어가며

2021년도 벌써 끝이 나버렸고, 늘 그렇듯 회고를 하며 올해를 돌아보았다.

특이하게도 올해는 기술적인 도전보다는 내적 갈등과 고민이 가득했던 것 같다. 상반기에 있었던 사건부터 회사를 옮긴 하반기에 겪었던 일들까지 스트레스를 한가득 받았다. 이 정도로 스트레스를 받았던 적이 있었나 싶을 정도로 너무 힘들었다.

하지만 그 스트레스들을 통해서 고민하고, 얻게 된 것들도 있었다. 평소에 깊이 생각해 보지 않은 것에 대한 근원적인 질문을 던져보게 되었고, 크게 신경 쓰지 않았던 부분들이 생각보다 많은 영향을 준다는 것을 깨닫게 되었다.

2021년 회고록의 내용은 그다지 즐겁지 않을 것 같고, 기술적인 성장보다는 내적인 고민과 성장이 더 컸던 한 해로 기록될 것 같다.

1. 애자일이란 무엇인가?

작년에 동료와 함께 스크럼으로 일하면서 막연하게 느껴졌던 애자일이라는 것의 개념이 어렴풋이 손에 잡히는 듯 보였다. 하지만 올해의 경험으로 신기루처럼 그 어렴풋함이 그대로 사라져 버렸다. 결국 도대체 애자일이란 무엇일까? 라는 근본적인 질문을, 다시 스스로 해보게 되었다.

2. 팀으로 일한다는 것

3. 올해 진행했던 프로젝트들

Example
// CardnewsListPage.tsx
export const query = gql`
  query CardnewsListPage_CardnewsList($pagination: PaginationInput) {
    cardNewsList(pagination: $pagination, order: { createdAt: DESC }) {
      nodes {
        ...Cardnews_CardnewsItem
      }
      totalCount
    }
  }
`;

export default function CardnewsListPage() {
  const { data } = useCardnewsListPage_CardnewsListQuery({
    variables: {
      pagination: {
        page,
        perPage,
      },
    },
  });

  return (
    <ul>
      {data?.cardNewsList.nodes.map((node) => (
        <li key={node.id}>
          <Cardnews cardnews={node} />
        </li>
      ))}
    </ul>
  );
}

// Cardnews.tsx
export const fragment = gql`
  fragment Cardnews_CardnewsItem on CardNews {
    id
    title
    description
  }
`;

interface Props {
  cardnews: Cardnews_CardnewsItemFragment;
}

export default function Cardnews({ cardnews }: Props) {
  return (
    <article>
      <h2>{cardnews.title}</h2>
      <p>{cardnews.description}</p>
    </article>
  );
}

이는 Relay의 usePreloadedQuery - useFragment의 관계를 (완벽하지는 않지만) 따라 하려고 한 부분이다. Ondemandlatino를 개발했을 때처럼 GraphQL을 사용하기 위한 query, mutation을 한곳에 몰아넣지 않고 각 component와 같은 위치에 선언한 것이다.

덧붙여, operation name의 convention도 Relay와 동일하게 가져갔다. 이름이 길어져 codegen을 사용했을 때 hooks의 이름도 함께 길어지는 단점도 있었지만, 어느 component에서 어떤 데이터를 요청했는지 한 눈에 알 수 있어서 편하게 느껴지기도 했다.

다만 아쉬운 점은 실제로 제품을 운영하는 상태에서 유지보수를 하거나 새로운 기능을 추가해 볼 수 있는 기회가 없다는 것이다. 제품을 처음부터 개발할 떄는 분명 좋다고 느꼈지만, 유지보수에도 유용할 것인가는 미지수이기 때문에 반쪽짜리 실험이 되어버리고 말았다. 다음번에는 꼭 Relay를 이용해 개발한 제품을 운영하며 유지보수 해보고 싶다.

4. 그 밖의 일들

5. 마치며

2021년은 많은 것을 느끼고, 고뇌했던 한 해였다. 기술적인 성장보다는 내적인 성장을 더 많이 할 수 있었으며, 이를 통해 내 안에 자리 잡고 있던 편견들의 일부를 깰 수 있었다. 개발자로서 기술적인 성장을 많이 하지 못했다는 것은 너무나 아쉽지만, 성장의 공간이 비어버린 만큼 내년에는 좀 더 공격적으로 그 공간을 채워 넣을 수 있으리라 기대하고 있다.

내년 초가 되면 현재 몸담은 곳을 떠나 새로운 곳에 합류하여 일하게 된다. 새로운 도전들과 새로운 동료들이 너무나 기대된다. 나 역시 새로운 곳에서 나의 성과를 증명하기 위해 치열하게 달릴 예정이고, 제품을 “만드는 것” 보다는 “잘 만드는 것”에 더 초점을 맞출 예정이다. 이제는 그런 노력을 함으로써 주변 동료들에게 건강한 영향을 주어야 한다고 생각한다.

덧붙여, 내년에는 next step에 대한 고민을 시작 해볼 생각이다. 나는 tech lead가 되어야 할까 manager가 되어야 할까?


참고