2달 계약으로 진행한 프리랜서 업무가 마무리되고 있어 한 번 회고해 보면 좋을 것 같고,
혹시 개발자 프리랜서에 대해 좀 궁금하신 분이 있으실까 하여 글을 적어보려고 한다.
왜 프리랜서?
프리랜서를 선택했던 상황은 이러했다.
대학교에서 학업을 병행해야 했기 때문에 일주일 풀로 근무할 수는 없었고,
다음 학기에는 지금과 상황이 달라질 수 있기 때문에 긴 기간의 계약은 어려웠다.
이러한 상황 때문에 정규직을 하기엔 어려웠다.
그래서 학교 사람들과 가볍게 프로젝트를 하거나 프리랜서 두 가지 선택지가 있었던 것 같다.
처음에는 가볍게 프로젝트를 하려고 했으나 프리랜서를 원하는 회사와 미팅을 할 기회가 생겼고,
두 곳의 회사와 미팅을 했다. 한 곳은 AI(CV)를 다루고, 나머지 한 곳은 설비를 다루고 있었다.
미팅
회사와 처음 만났을 때 미팅을 진행했는데,
여태 면접은 많이 봤지만 프리랜서 미팅은 정말 새로운 느낌이었던 것 같다.
분위기도 다르고 나에게 원하는 능력치도 다르다.
능력치?
필요한 능력치에 대한 얘기를 짧게 해 보자면
프리랜서는 회사에 적응하는 시간이 길어져서는 안 된다. (특히 계약 기간이 짧다면)
회사에서 사용하고 있는 기술 스택에 익숙해야 하고, 익숙하지 않다면 익숙해지는 데에 문제가 없음을 보여줘야 하는 것 같다.
두 회사 중 설비를 다루고 있는 회사를 선택했는데 이유는 아래와 같다.
다양한 이유가 있었지만 우선 구성원들이 준 인상이 좋았고,
GraphQL을 사용해보고 싶었는데 이 회사에서 이 스택을 핵심 기술로 사용하고 있었다.
그래서 이 회사와 2달간의 계약을 맺고 업무를 시작하게 되었다.
첫 번째 스프린트 시작 시작
처음 간단히 아키텍처에 대한 설명을 듣고 프로젝트를 전달받게 되었다.
React + GraphQL로 되어있는 SPA 프로젝트였고, 전반적으로 잘 짜여있었다.
폴더 구조에 대해 개선할 점이 보였지만 직접 폴더 구조를 수정하기에는 기간이 너무 짧았다..
개선할 점이 보여도 물리적인 한계가 있다는 게 프리랜서의 단점인 것 같다.
그래서 정리 후 간단히 전달만 드린 상태이다.
아무튼 첫 번째 스프린트에 개발해야 할 부분들을 확인하고 개발을 시작했다.
GraphQL
GraphQL의 첫인상에 대해 말해보자면,
장단점이 있었지만, REST API에 익숙해져 있어서 인지 몇 가지 단점이 도드라져 보였다.
GraphQL가 익숙하지 않아 잘못 사용했을 가능성도 있지만 많은 타입 가드들이 필요했고 코드들이 깔끔하게 짜이지 않았다.
특히 depth가 있는 데이터를 다룰 때면 더욱 복잡해졌다.
그리고 apollo-client에서 제공해 주는 useQuery는 React-Query에 비해 조금 아쉬운 부분들이 있었다,
비동기 처리에 필요한 옵션이 부족하다는 인상을 받았다.
특히 React-Query에서 제공하는 enabled라는 옵션을 자주 사용하는데, 이 옵션이 없어 불편한 점이 많았다.
두 번째 스프린트 시작
프리랜서로서 참여했던 스프린트였기 때문에 그럴 수도 있지만, 첫 스프린트에는 부족한 부분이 많이 보였다.
전에 월말 회고에도 언급했지만, 스프린트의 피드백 과정도 없었고 구성원들에게 전달이 제대로 되지 않아 같은 목표를 바라보는 느낌이 아니었다.
그래서 이 문제점을 최대한 개선해 보자 마음을 먹고 두 번째 스프린트를 준비했다 두 번째 스프린트에서는 첫 스프린트에 비해 개선된 점이 있었다.
칸반을 더 활용하고, 상황 공유를 더 유동적으로 할 수 있도록 노력했던 것 같다. (스프린트 초기에 기말고사가 겹쳐있어 정말 정신없었던 기억이 있긴 하다 ㅠ)
아무튼 개발을 진행했고, 첫 스프린트에 비해 개발 난이도가 높았다.
복잡한 컴포넌트도 있었고 여러 가지 이유로 복잡한 훅을 만들기도 해야 했다.
이 스프린트를 진행하면서 훅을 만드는 능력이 조금 향상된 것 같다고 느끼고 있다.
마무리
두 번의 스프린트와 함께 2달간의 프리랜서 업무가 마무리되었다.
자신이 다양한 기술 스택을 가지고 있고, 조금 더 자유로운 삶을 원한다면 프리랜서를 고민해 봐도 괜찮을 것 같다고 생각한다.
자신이 사용해보고 싶은 스택이 있지만, 현재 회사에서 사용하고 있지 않다면 사용해 보기 쉽지 않아 사이드 프로젝트를 통해 업무 시간 외에 사용해 볼 수 밖에 없다.
하지만 프리랜서는 자신이 원하거나 사용해보고 싶은 스택을 사용하는 회사를 갈 수 있다는 점이 매력적인 것 같다.
이전 회사에서 GraphQL을 써보고 싶어도 쓸 수 있는 기회가 없었다.
하지만 프리랜서로 근무할 회사를 찾을 때는 GraphQL을 사용하는 회사를 어렵지 않게 찾을 수 있었고,
이 회사에서 업무와 함께 이 스택을 사용해볼 수 있어서 이 점이 참 매력적인 것 같다.
하지만 본인이 팀워크를 중요하게 생각한다면 업무 중에 재미를 못 느낄 것 같다.
프리랜서는 정규직이 아니기 때문에 회사의 소스코드나 이런저런 정보들은 대부분 차단된다.
또, 회사마다 다르겠지만 같이 업무를 진행하더라도 내가 팀원이라는 느낌을 받지는 못했다.
처음에는 이런 점들이 조금 서운하게 느껴졌지만 지금 와서 생각해 보면 당연한 것 같다.
아무튼 프리랜서로서의 업무가 마무리되었고, 대학교를 졸업하기 전까지는 프리랜서의 형태로 근무를 하게 될 것 같다.
그리고 현재 개강까지 한 달 정도 남은 상태인데 거취를 결정하지 못한 상태이다.
이 고민은 월말 회고에서 조금 더 적어볼까 한다.