Dev. Life

굿닥에서의 3개월 수습기간을 마치며

DevOwen 2020. 9. 22. 02:15

 

 

안녕하세요 오웬입니다.

저는 지난 6월, 굿닥에 웹 프론트엔드 개발자로 입사하여 3개월동안 수습기간을 진행하였습니다. 오늘은 수습기간을 마치는 기념(?)으로 그 회고를 해 보려고 합니다. 지난 3개월동안 제가 느끼고 경험했던 것들, 그리고 굿닥이라는 회사에 대해 소개하는 글을 짧게 작성해 보도록 하겠습니다.

 

입사 첫 날

입사 첫 날 느꼈던 설렘과 긴장감을 아직도 기억합니다. 제 개인적으로 정규직 오퍼를 받은 회사였고, 정말 깊은 고민을 해서 결정한 회사여서 기대감도 있었고 한편으로 걱정도 있었습니다.

"과연 내가 가서 잘 할 수 있을까?"

 

그렇게 입사 첫 날이 시작되었고, 회사에 가서 기본적인 회사 소개와 본부별 소개를 듣고 장비를 받아서 환경설정을 하다 보니 하루가 정말 빠르게 지나갔던 것 같습니다. 그리고 첫 날 저희 스쿼드 소속 개발자 분들과의 티타임도 가졌는데, 짧은 시간동안 이야기를 나누었지만 정말 좋은 분들이 모여 있었던 것 같아 앞으로의 생활이 기대가 되었던 것 같습니다.

입사 첫 주는 현재 굿닥에서 어떤 일을 하고 있고, 웹 프론트엔드 프로젝트가 어떤 것들이 진행되고 있는지 설명을 듣고 그러면서 React.js + TypeScript + Redux + Redux-saga를 가지고 작은 튜토리얼을 진행했습니다. 위의 기술 스택은 굿닥에서 제일 많이 쓰이고 있는 조합이어서 익숙해질 필요가 있었습니다. 사실 굿닥에 오기 전까지는 주로 Vue.js를 사용했어서 React.js가 익숙하진 않았지만 쓰다보니 금방 적응할 수 있었던 것 같아요. Redux, TypeScript, Redux-saga도 마찬가지구요. 물론 아직 배워할 것들은 정말정말 많지만 ㅠㅠ

 

문화

가장 좋았던 점은 사람을 배려해 준다는 느낌을 많이 받았습니다. 회사에서 가장 막내고 들어온지 얼마 안 되었던 저에게도 항상 "오웬은 어떤 프로젝트를 해 보고 싶어요?", "어떤 기술에 관심이 많아요?" 라고 물어봐 주시면서 제가 좋아하고 잘 할 수 있는 일을 할 수 있도록 배려해 주셨습니다. 그 점에서 처음 맡게되는 업무도 큰 걱정 없이 편안하게 마음을 먹고 일을 할 수 있었고, 맡은 작업을 완성도 있게 잘 해야 겠다는 생각이 들었던 것 같아요 ㅎㅎ

회사에서 지향하는 방향은 Lean, Measurable, Trustful 입니다. 물론 어느 하나 제대로 하긴 쉽지 않은 가치이지만, 이렇게 나아가려고 모든 구성원들이 노력하고 고민하는 흔적이 보였습니다. 매일 아침 15분 정도씩 데일리 스크럼을 하면서 협업하는 동료들과 이슈를 공유하고, 개발을 하면서 측정 가능한 지표(Tracking이 가능한 데이터)를 진짜 최대한 뽑아내려고 노력합니다. 마지막으로 서로가 서로를 믿어주면서 그 믿음이 느껴지니 더 책임감을 가지고 일을 하게 되는 것 같더라구요!

일정 산출을 할 때에도 기본적으로 조금 버퍼를 두고 산출을 하는 편입니다. 이유는 너무 타이트한 일정을 연속해서 잡게 되면 금방 지치기 쉽고 불가피하게 퀄리티를 포기하게 될 때가 많아서 인데요. 우리가 때로는 연차나 반차를 쓰고, 회의가 많이 잡힐 때도 있고 그렇다 보니 이렇게 버퍼를 두는 일정 산출 방식이 오히려 더 현실적이면서 도달 가능한 목표라는 생각이 들기도 합니다. 그래도 가능하면 주어진 업무를 최대한 빠르게 끝내려고 개인적으로 노력하고 있습니다.

야근을 지양하는 (말로만이 아닌 진짜로) 문화도 살짝 생소하지만(? ㅋㅋㅋ) 좋았습니다. 가능하면 정시퇴근을 할 수 있게 일정 산출을 하도록 권장하고 실제로도 정말 필요에 의한 경우가 아니라면 저는 야근을 하지 않았습니다. 길게 보았을 때 지치지 않고 갈 수 있도록 회사가 많은 신경을 쓴다는 느낌을 받아서 감사했어요 ㅎㅎ 덕분에 퇴근하고 온라인 컨퍼런스도 듣고, 운동도 하고, 약속도 가고 그럴 수 있어서 행복했습니다. (그렇다고 일이 널널하다는 건 절대 아닙니다... 오해 ㄴㄴ)

 

첫 프로젝트

첫 프로젝트는 사내에서 필요한 어드민을 개발하는 업무를 맡았습니다. 전국에 만개가 넘는 병원들과 제휴를 맺고 매일매일 병원으로부터 들어오는 CS를 처리해야 하는데, 기존에는 엑셀 시트에 데이터를 쌓아서 처리하는 방식으로 일을 진행했었어요. 데이터가 쌓이면서 좀 더 히스토리를 파악해야 할 필요성도 생기고, 중복되는 CS들을 효율적으로 처리하기 위해서 어드민의 필요성이 제가 입사하기 전부터 있어왔고, 입사하면서 첫 프로젝트로 맡게 되었습니다.

기본적으로 React+TypeScript+Redux+Redux-saga를 가지고 작업하였으며, UI 컴포넌트의 경우 아토믹 디자인 패턴으로 디자인 톤을 한결같이 유지하며 중복을 줄이고 빠르게 개발할 수 있는 방식을 도입했습니다. 사내 어드민이다보니 디자인 리소스를 다른 프로젝트에 비해 많이 투입하기 어려워 상당 부분은 Ant Design을 가지고 작업을 진행하기도 하였어요.

사실 많은 회사에서 만들고 있는 어드민이고, 기술적으로 엄청나게 어려운 부분이 있는 작업은 아니었지만 저는 그 가운데서 유저의 사용성을 조금이라도 더 좋게 하는 방법을 고민하려고 노력했었습니다. 비즈니스 로직과 컨트롤러, 뷰를 구분하는 작업을 잘 못해서 코드 리뷰에서 많은 피드백을 받았던 기억이 아직도 생생하네요 ㅎㅎㅎ

 

이것이... MVC 패턴인가... ㅋㅋ

 

코드를 아무 생각 없이 기계적으로 짜게 되면 일정 규모가 넘어가면서 복잡도가 급증하기 시작하고 유지보수가 너무 힘들어진다는 점을 절실하게 깨달았어요. 그러다 보니 자연스럽게 리팩토링, 디자인패턴, 여러가지 오픈소스 등에도 관심이 가게 되었습니다. 앞서 말씀드린 것처럼 일정에 버퍼를 넣어서 산출하다보니 모르는 개념이 나왔을 때 너무 조급해하지 않게 공식 문서를 보면서 공부할 수 있었던 것 같습니다.

배포의 경우 스크립트는 gulp로 작성해서 AWS S3에 jenkins CI/CD를 가지고 배포 자동화를 진행했습니다. AWS 빼고는 다 처음 써보는 도구들이라 처음에는 삽질도 많이 하고 주변에 많이 물어보면서 조금씩 익숙해진 것 같아요. 배포 파이프라인을 자동화 할 수 있는 부분은 최대한 자동화 하는 것, 그리고 단순하게 해서 휴먼 에러의 가능성을 낮추는 것이 코드를 짜는 부분만큼이나 개발을 하는데 큰 영향(시간적으로나 노력적으로나)을 끼친다는 점을 이 프로젝트를 통해서 알게 되었던 것 같습니다.

 

그래도 어떻게 v1.0.0 으로 배포는 했네요 ㅠㅠㅠ

 

많은 분들의 도움으로 다행히...? 배포를 마쳤고 지금은 운영팀에서 잘 쓰고 있다고 합니다 ㅎㅎ

이 프로젝트가 끝난 이후로 지금은 메인으로는 앱 내 커뮤니티에 여러가지 기능(feature)들을 개발하고 있으며, 서브로는 잡다한 웹 프론트엔드 업무들을 열심히 처리하고 이슈도 열심히 쳐내고 있는 중입니다 ㅋㅋㅋㅋㅋㅋ

 

JIRA + Confluence + Bitbucket (feat. Notion, Ulysses)

저희 팀은 기본적으로 협업 메신저로는 슬랙을 사용하고 이슈 트래킹은 JIRA, 사내 위키 등 문서 관리는 Confluence, Git은 Bitbucket으로 하고 있습니다. 아틀라시안의 이 삼총사(?)를 이렇게 조화롭게 써보는 경험은 처음하는데 참 막강한 것 같아요 ㅋㅋㅋ 슬랙과의 호환성도 좋아서 여러모로 편하게 개발하고 있습니다. 

일부 팀에서는 노션을 쓰기도 하는데요. 사실 각자의 장단점이 있어서 명확하게 뭐가 더 낫다라고 말할 수는 없겠지만, 각자의 장점을 잘 활용해서 열심히 양쪽 다 쓰려고 노력합니다.(물론 그러다 보면 조금 혼란스럽기는 해요 ㅎㅎ) 겹치는 기능들이 많아서 그런 것들은 가능하면 전사가 통일해서 쓰는 것도 좋다고 생각합니다 :) 물론 이건 사람마다 다르게 생각할 수 있고 제 개인 의견이에요.

이와 별도로 저는 개인적인 메모는 종이노트나, Ulysses라는 애플 전용 생산성 소프트웨어를 사용해요. 사실 노션하고 되게 비슷해서 노션을 쓰시는 분들은 굳이 율리시스를 유료로 쓰실 이유는 없다고 생각합니다. 저같은 경우 그림을 그려야 하거나 하는 메모는 종이 노트에, 개인적인 이슈나 일정, 메모, 학습 내용은 율리시스로 관리하고 있습니다 ㅎㅎ

위에 언급한 생산성 도구들은 다 정말 장점이 확실히 있어요! 뭐가 제일 좋다라기 보다는 팀에 맞게 쓰는 것이 중요하다는 생각입니다 ㅎㅎ

 

사람들

사람들이 정말 좋습니다. 제가 느끼기에는 저는 회사에서 많은 사랑을 받고 있다고 생각해요 ㅎㅎ 영어 이름을 쓰고 직급이 크게 없고 (PO, Manager, 경영진 등의 구분은 있습니다) 서로 상호존대를 하는 문화다 보니 수평적인 소통이 가능한 것 같아요. 많은 분들이 제 의견을 들어 주시려고 귀를 열어 주시고, 그래서 저도 제 의견을 주저하지 않고 이야기 합니다. 물론 제가 틀린 말을 할 때도 있어요. 제가 잘못 알고 있거나 이해가 충분하지 않은 개념들은 최대한 자세하게 알려주시려는 분들이 많아서 그런 점에서 정말정말 감사하고 ㅠㅠ 항상 열심히 잘 들으려고 귀를 열고 다닙니다 ㅎㅎㅎ

일을 할 때는 일에 무섭게 집중하지만, 슬랙 채널에서는 시도때도 없이 잡담을 합니다. ㅋㅋ 너무 항상 경직되어 있지 않으려고 노력해요. 때로는 너무 잡담을 많이 해서 대학교 동아리 하던 시절로 돌아간 느낌이 들기도 합니다 ㅋㅋㅋㅋ 연령대가 비슷하신 동료분들이 많아서 그런 점도 저한테는 좋은 것 같아요.

너무 자주는 아니고 가끔씩 회식을 합니다. 한달 혹은 두달에 한번? 코로나 때문에 원래 더 자주 모여서 놀았는데 지금은 그러지 못한다고 해요 ㅠㅠ 8월 초에는 회식준비 위원회에 참여했었는데, 2주 전부터 기획회의 시작하고 직접 음식, 술, 놀거리, 게임, 소품 등등 다 준비해서 거의 회식이 아닌 파티 수준의 판을 벌였는데 ㅋㅋㅋ 아직도 잊지 못할 추억으로 남아 있습니다.(기억도 잊엊...)

 

직접 준비한 빵...
직접 준비한 음식...
직접 준비한 술..

 

 

앞으로의 목표

정규직 전환에 다행히도 성공했으니 이제 굿닥에서 새로운 목표는 크게 두 가지 정도입니다.

첫 번째로는 기술적인 성장입니다. 개발자로서, 엔지니어로서 회사에서 대체될 수 없는 실력의 사람이 되고 싶고 그러기 위해서 제가 정말 잘 할 수 있는 영역을 찾아 치열하게 파고들 생각입니다. 웹 프론트엔드 개발자이기에 당연히 웹 프론트엔드 개발을 잘 하는 것이 가장 중요하다고 생각합니다. React, Vue, Angular 모두 골고루 이해를 하고 어떤 문제를 풀기 위해 필요한 도구를 잘 갖다 쓸 수 있으며, 필요할 때는 빠르게 prototyping을 할 수 있고, 성능 최적화를 할 때 여러가지 방법을 제시할 수 있는 사람이 되고 싶어요. 웹 프론트엔드 뿐만 아니라 서버, 앱, 데이터, ML/DL 등등 다양한 분야를 넓게 아는 사람이 되고 개발자/비개발자 구분 없이 소통을 잘 할 수 있는 사람이 되고 싶습니다.

두 번째로는 비즈니스적인 성장입니다. 제가 기여한 프로덕트가 회사 매출에 긍정적인 영향을 끼치고, 사용자들이 유입이 되고, 그들로부터 좋은 피드백을 지속적으로 받는 경험을 하고 싶습니다. 어렸을 때 창업을 하고 싶었고, 지금도 그 마음이 없지는 않지만 지금은 역량을 키울 때라고 판단해서 여기에 집중하고 있어요. 다만, 회사를 키우는 부분에 좀 더 주도적인 역할을 할 수 있게 된다면 이후에 창업을 혹시 하게 되더라도 이러한 경험이 도움이 될 것 같다는 생각이 드네요. 회사가 추구하는 미션인 언택트 의료 플랫폼으로써 많은 사람들에게 필요한 서비스를 줄 수 있는 좋은 제품을 만드는데 당분간은 집중하고자 합니다. 

 

3개월이라는 시간동안 제가 굿닥에 있으면서 보고 경험했던 회사와 그곳에서 작게나마 성장한 것 같은(?) 저의 이야기를 적어 보았습니다. 읽어주셔서 진심으로 감사드리고, 궁금하신 점은 자유롭게 댓글로 남겨주시면 답변 드리도록 할께요!