SI에서 살아남기, 프로젝트 후기 #2

SI에서 살아남기, 프로젝트 후기 #2

프로젝트
프로젝트
카테고리
Daily
작성일
2024-10-11
태그
작성자
꾸생
상태
공개

🏃‍♂️ 갑작스런 파견

8월 중순 갑작스러운 파견 소식에 마음이 싱숭생숭했다. 새로운 장소와 업무 환경에 적응해야 했고, 그것도 두 달이라는 짧은 기간이라 더 했다. 진행하던 업무 도중 파견을 가야했기 때문에 마음이 편하진 않았다.
전달받은 내용은 두 달 일정에 React를 사용한 프로젝트가 전부다. 육하원칙은 아니더라도 what까지만 이라도 알려줬으면 좋았을 텐데, 아무런 정보를 알 수가 없었다.
React라고만 들었지 사실 Next.js를 사용했고, 이런 점들을 보면 회사가 프런트엔드 직무를 어떻게 생각하는지 알 수 있다. 그래도 본사에서 경험할 수 없는 최신 기술 스택과 여러 명의 프런트엔드 개발자와 협업할 수 있다는 점에서 스스로 위안을 해본다.
이번 경험담은 개발적인 부분과 사람을 대하면서 중요한 것 2가지가 포인트다.

🙇‍♂️ 태도가 전부다

파견지는 을지로, 업무 환경은 나쁘지 않았고 자율 출근(9~11시)도 좋았다. 개방감 있는 사무실과 CTO가 있었고 본사와 업무 환경이 많이 달라 이질감은 있었다. 직급은 있지만 개발자는 눈치를 안 보는 수평적 느낌이 강했고, 대략 프로젝트 관리 팀, 기획 팀, CTO, 프런트엔드 팀(+외부인력), 백엔드 팀(+외부인력), 인프라 팀, QA 팀(외부인력) 으로 운영되고 있었다. 나름 명확한 업무 분담과 체계가 잡혀있어 보였다.
의아한 건 프런트엔드 담당자가 4명이나 있는데, 굳이 2명을 더 투입한 이유를 전혀 모르겠다. 업무의 양이 그렇게 많지 않았고 수정된 기획과 버그를 잡는 업무만 남아 보였다. 내부 사정은 잘 모르지만 부서 내에서도 왜 투입됐는지 아무도 모른다.
들어보니 CTO님도 입사한 지 한 달 채 안 됐고 여러 명의 퇴사자, 회사 전체적으로 인사이동이 잦은 상황이다. 뭔가 그럴만한 이유가 있어 보인다.

😈 사람이 제일 어려워

두 달 동안 두 번의 다툼을 목격했다. 기획자와 인프라 팀원에 엄청난 언성과 퇴사자까지 생긴 이슈, 하나는 기획자와 개발자의 사소한 언쟁(?)이다.
하루는 기획자와 인프라 팀원이 긴급한 회의를 하던 중 책임 소재로 언성이 높아졌고 사무실을 나와서 까지 싸우는 일이 생겼다. 경찰을 부르라는 둥 소란이 커졌고 이후 인프라 팀원은 몇 번에 면담 후 자리에서 사라졌다. 자연스럽게 해당 일은 마무리가 됐고 감정적인 행동은 안 좋은 결과를 낳는다는 걸 다시금 증명해 줬다.
기획개발 사이에 딜레마가 존재한다 보는데, 우선순위 상 개발이 기획에 의존하는 구조라 변경이 잦거나 혹독한 기획으로 시달린 개발자는 기획자에게 매우 수동적이고 적대시한다.
단순 라디오(Radio) 버튼에 디폴트 값을 넣을지 안 넣을지 의견 충돌이 있었고 사소한 언쟁인지 싸움인지는 애매하다. 두 분 모두 부산 사투리로 인해 격양된 분위기 때문이다.
라디오(Radio) 버튼은 여러 선택 값 중 한 가지만 고르는 UI이므로, 기획 의도에 따라 기본 값 유무는 달라질 수 있어 의도를 들어보고 진행하는게 타당해 보이고, 개인적으로 잦은 변경과 자질이 의심되는 기획자를 경험해 본 적이 있어 나만의 대처 방법이 있지만 영업 비밀이다 🤫
결국 프로젝트는 사람이 진행하는 일이기 때문에 개개인의 태도가 무엇보다 중요한 것 같다.

🌸 개발자 파라다이스는 없다

notion image
notion image
Props Drilling, Wrapper Hell을 말로만 들었지 현실에서 볼 줄은 몰랐다. 그 덕분에 꽤나 고생했다. 이후 중요한 비지니스 로직에 기획이 변경되어 갑작스럽게 맡았고, Props Drilling 말고도 기존 코드가 복잡해 일주일 넘게 야근에 찌들었다.
내가 팀원이었다면 개선을 적극적으로 어필할 만한 것들이 몇 가지 있는데, 한 번 정리해 본다.

1. 각자도생, 온보딩 부재 🏃‍♂️

notion image
팀원은 같은 목표를 향하는 동료이고, 내 수고를 덜어주고 내가 덜어줄 수 있으니 앞 길을 터줘야한다.
프로젝트 도중 투입된 상황이니 히스토리나 개발에 필요한 가이드가 있으면 좋은데, 제때 받지를 못하고 초반에 방치됐다. CTO님이 바빠 직접 챙기지 못한 것 같지만, 다른 팀원을 통해서라도 인수인계를 받았으면 좋았을 텐데, 결국 스스로 물어보고 알아가려니 시간이 더 걸린 듯 하다. 물론 CTO님도 합류한 지 한 달밖에 안 됐고, 그 분도 온보딩 없이 어려움을 겪었던 게 아닐까 하는 합리적 의심이 든다.

2. 프런트엔드 업무에 퍼블리싱도 있다 🎨

퍼블리싱만 따로 전담하는 분이 계셨다. 페이지별로 컴포넌트를 나누어 CSS를 작성해주면, 결과물을 토대로 프런트엔드 개발자가 작업하는 방식이다. Next.js 기본 css 모듈 방식으로 스타일링했는데, 그러다 보니 프런트엔드 개발자는 재활용할 수 있는 컴포넌트를 제때 나누지 못하고 주는 데로 사용할 수밖에 없어 중복되는 코드가 많았다. CSS를 하나도 건드리지 않아도 되는 장점은 있지만 한 군데 수정이 생기면 여기저기 찾아 수정 해야하는 불상사가 생기고 구조 또한 복잡해져 골치아프다.

3. 규칙과 합의 그리고 평화 🕊️

프로젝트 별 파일, 폴더 명이 달랐는데 너무 거슬렸고 한 폴더에 모든 파일을 넣는 것도 불편했다. 최적화 고려 없이 무수히 렌더링이 솟구치는 뷰포트는 날 화나게 만들었다. 팀의 코드 작성 가이드라인을 만들어 일정 수준으로 코드를 작성하는 게 얼마나 중요한지 다시 느꼈다. useEffect 난발과 함수로 구분되지 않은 케스케이딩식 코드들.. 무수히 많았다. 코드 리뷰가 있거나 어느정도 규칙이 필요해 보였다.