신입 프론트엔드 개발자로 4개월을 보내며
🧶 든 생각 타래
😂 경험한 프론트엔드 일의 기쁨과 슬픔
📚 경험한 것과 배운 것
🧐 고민한 커리어 정체성
🪡 다짐하는 하반기 목표에 대해 적어보았습니다.
Table of contents
Open Table of contents
🧶 상반기 생각 타래
취업 과정 중 가장 큰 행운은
작년 12월, 프로그래머스에서 운영하는 KDT 과정을 수료하고, 2달 동안 한 회사의 채용 전형을 진행했다. 운이 좋게도 유일하게 지원했던 그 회사에 합격해서 올해 3월부터 에듀테크 스타트업에 신입 프론트엔드 개발자로 일하게 됐다. 신입은 여러 군데 지원해봐야 한다는 말을 많이 들었지만, 일하고 싶다는 생각이 드는 회사를 더 이상 찾을 수가 없었다. 지금 다니는 회사는 전형을 진행할수록, 회사를 알아볼수록 점점 더 ‘여기서 일하고 싶다’는 생각이 드는 회사라 이곳에 집중하고 싶었다. 취업 과정 중 내가 만난 가장 큰 행운은 일하고 싶고 나와 fit이 맞는 회사를 찾을 수 있었던 것이 아닐까 싶다. 개인적으로 회사에 합격하는 것보다 일하고 싶은 회사를 찾는 것이 더 행운이란 생각이 든다. 취업 준비를 할 때, 어떤 것도 하고 싶다는 생각이 들지 않는 게 가장 큰 고민거리였다. 그때는 취업했다는 사람보다 ‘재밌다’, ‘하고 싶다’고 말하는 사람들이 더 부러웠다. ‘하고 싶다’는 감각이 날이면 날마다 오는 게 아니란 걸, 정말 소중히 여겨야 하는 거란 걸 그때 깨달았다. 그때 이후로 하고 싶은 게 생기면, 그 감정을 그냥 지나치지 말고, ‘어이구, 어서 오세요, 어서 오세요’ 하면서 극진히 귀빈 대접을 해야겠다는 생각이 들었다. 어떤 말에도 쉽게 훼손될 수 없도록 말이다.
웹 퍼블리셔 경력이 도움 될까?
취업 준비할 때, 웹 퍼블리셔 경력을 적는 게 득일지 실일지 고민을 많이 했었다. 마크업이 무슨 개발이냐며 후려치는 사람을 많이 봐서 그렇다. 결론만 말하면 회사마다 다를 것이다. 나는 채용 공고에 마크업 관련 서술이 있어서 면접에서 웹 퍼블리셔 경력을 강조했다. 내 경우에는 도움 됐던 것 같다. 채용 과제에서 마크업 관련 부분을 인상 깊게 봐주셨던 것 같고, 웹 퍼블리셔로 일하며 느꼈던 갈증을 중심으로 프론트엔드를 선택한 계기를 설명하니 좀 더 설득력 있는 답변이 된 것 같다. 그냥 기분 탓일 수도 있다. 하지만 실무를 하면서도 마크업이 생각보다 큰 비중을 차지한다고 느꼈다. 또, 어떤 회사는 마크업 잘하는 사람이 간절하게 필요할 수도 있으니 내가 마크업에 자신이 있다면 자신있게 어필해도 좋을 듯 싶다.
이 기분 절대 영원하지 않다
웹 퍼블리셔에서 프론트엔드 개발자로의 전직을 마음먹은지 2년 만의 취업이었다. 취업한 후 가장 큰 변화는 나 자신을 소개할 때 ‘프론트엔드 개발자 지망생’이 아닌 ‘프론트엔드 개발자’라고 말할 수 있게 된 것이다. 나를 개발자라고 소개할 수 있다는, 드디어 어딘가에 소속되었다는 소속감이 주는 효과는 굉장했다! 사실 지난 몇 년 동안 참 우울한 봄을 보냈다. 급격한 일조량 증가가 우울증의 원인이 되기도 한다는데, 그래서인지 반짝이는 것을 볼 때마다 애써 꾹꾹 눌러두었던 불안이 스멀스멀 피어오르는 듯한 기분이 들었다. 이번 봄은 달랐다. 피부에 닿는 봄 햇살의 따끈함, 흐드러지게 핀 밤 벚꽃이 온전히 아름답게만 느껴져서 봄이 처음 만난 계절처럼 낯설었다. 영원히 불행할 것처럼 절망에 빠져 지내던 날들이 어떻게 이렇게 전생같이 느껴질 수가 있나 싶어서 어이가 없을 지경이다. 하지만 이 평온조차도 영원하진 않을 거다. 다시 또 끝없는 무력감에 사로잡힐 때, 지금 이 어이없음을 떠올리고 싶어서 구구절절 적어보았다.
어떤 개발자가 되고 싶은가?
나 자신을 ‘개발자’라는 한 단어로 손쉽게 소개할 수 있게 되면서 안정감을 얻었지만, 그와 동시에 다시 또 ‘개발자 커리어 쌓기’라는 새로운 항해를 시작한 기분이 들었다. 바로 이전의 ‘개발자로 취업하기’ 항해에서 나는 어떤 목표를 가지고 운항했는지 돌아보면, 그냥 ‘남들만큼만 하자’고 생각했던 것 같다. 그래서 문제가 많았다. 남들만큼 하지 못하니 우울하고, 남들 따라오다 여기까지 온 거라 스스로 충분히 길을 잃어보며 쌓았어야 할 내공이 부족했다. 그래서 이번엔 꼭 내 배의 방향키를 내가 잡고 싶었다. 누군가 어디로 가고 있는지 물었을 때, 어디로 가고 있는 배라고 말할 수 있기를 바랐다. 그럼 이 배는 어디로 가야 할까? 나아갈 방향을 정하기 위해서 지난 4개월 동안, 나에게 ‘앞으로 어떤 개발자가 되고 싶은가?‘에 대해 질문했다. 답을 찾기 위해서 나에게 프론트엔드 개발은 잘 맞는지, 잘 맞다면 그 이유는 무엇인지, 나는 개발자로서 어떤 부분은 잘하고, 어떤 부분은 부족한지, 학습은 어떤 기준으로 우선순위를 정해야 할지 등에 대해 고민했다.
😂 프론트엔드 일의 기쁨과 슬픔
기쁨
4개월 동안 프론트엔드 실무를 경험하면서 이 일이 나와 잘 맞다고 느꼈다. 프론트엔드와 백엔드 중에서 고민하는 분에게 혹시 도움이 될 수 있을까 해서 내가 프론트엔드와 잘 맞다고 생각한 이유를 적어볼까 한다.
우선 우리 서비스의 UI에서 정말 사소한 버그를 발견했다고 하자. 나에게 직접 수정할 수 있는 권한이 없다고 하면, 그 상황을 참을 수 있는가? 나는 아니다. 생각만 해도 답답하다. 그래서 나한테는 프론트엔드가 맞다고 생각했다. 갑자기 TMI를 풀자면, 나는 대학생 시절 여러 팀플에서 PPT를 도맡았었다. 준비한 자료를 잘 보여주는 방법을 고민하는 것도 좋아했지만, PPT에 적힌 정보가 정확한지, 오타는 없는지 가장 마지막에 확인하는 사람이 나여야 직성이 풀리는 타입이었다. 그런 취향과 맞는 것 같기도 하다. 유관 부서와 커뮤니케이션하는 일도 좋아하기 때문에 기획, 디자인, 백엔드 등 여러 직무의 동료들과 협업하는 일도 잘 맞다.
하지만 뭐니 뭐니 해도, 프론트엔드 일의 가장 큰 기쁨은 나의 작업이 유저 편의성에 직결된다는 점이다. 다른 팀원이 UI를 개선해서 긍정적인 앱 리뷰를 받은 적이 있는데, 내가 한 작업이 아닌데도 괜스레 뿌듯했다. 그걸 보면서 나도 유저 편의성을 개선해서 유저로부터 긍정적 피드백을 받고 싶다고 생각했다.
슬픔
반면, 프론트엔드 일의 가장 큰 슬픔은 마감의 최전방에 있다는 사실이다. 서비스 개발의 가장 마지막 단계이기 때문에 배포 당일까지 수많은 수정사항과 QA 이슈에 대응해야 한다. 또, 기획이나 디자인 변경 사항에 따라 코드가 얼마 안 가고 버려지기도 한다. 코드 수명이 짧은 편이다 보니 코드 퀄리티를 높이기 위해 많은 시간을 할애하는 것이 부담스럽게 느껴지기도 한다. 기획, 디자인, 백엔드 등 많은 유관 부서와 작업이 이어져 있기 때문에 유관 부서의 작업 방식에 따라 생산성이 좌우되기도 한다. 그리고 유저 편의성과 직결되는 작업이라는 것은 때론 슬픔이 되기도 하는데, 긍정적 리뷰뿐 아니라 부정적인 앱 리뷰도 프론트엔드 이슈인 경우가 많다.
📚 경험과 배움
in 회사
온보딩 기간
입사 후 첫 1달은 온보딩 프로젝트를 하면서 서비스 코드 구조와 팀 내 코드 컨벤션을 파악하는 시간을 가졌다. 당당하게 할 얘기는 아니지만, 타입스크립트 에러와 git 에러, RN 빌드 에러와 싸우는 시간이 절반이었던 것 같다. 그래도 그 덕에 이제는 git 에러에 의연하게 대처할 수 있게 되었다.
처음에 ‘서비스 코드를 완전히 분석해야지’하는 마음으로 코드를 읽어 나가니 당최 진도를 나갈 수가 없었다. 팀원분이 폴더 구조, routing, 반응형 처리, 회원 인증 여부를 확인하는 로직, hook 등을 먼저 파악해보라는 조언을 해주셨는데, 도움이 많이 됐다. 우선순위 설정의 중요성을 느꼈다. ‘온보딩도 평가받는 거겠지?’ 하는 생각 때문에 한 줄 한 줄 완성도를 높이려고 시간을 많이 들였는데, 코드 완성도에 집중하는 것보단 자주 재사용되는 컴포넌트가 왜 이렇게 설계됐는지 히스토리를 파악하는 데에 좀 더 시간을 썼으면 좋았겠다는 생각이 든다.
팀원분들이 빌드 에러 시 해결 방법이나 컴포넌트 설계에 대한 고민을 문서로 많이 남겨주셔서 도움을 많이 받았다. 그때, 문서의 소중함을 많이 느꼈고 나도 문서를 잘 작성하고 싶다고 생각했다. 처음 한 달 정도는 매일 새로 알게 된 사실에 대해서 기록해뒀었는데, 다시 보니 지금의 나를 반성하게 된다. 꾸준히 기록하는 게 정말 쉽지 않은 일이라는 걸 매 순간 느끼지만, 그래도 기록을 남길 수 있도록 노력해야겠다.
런칭 프로젝트 작업
2달째부터는 변경된 BM에 맞춰 프론트를 개발하는 실무에 투입됐다. 5월에 런칭되는 프로젝트가 2개라 5월까지 바쁘게 일했다. 처음엔 ‘내가 이 미팅에 껴도 되나?’ 하는 고민을 많이 했었는데, 팀원분들이 미팅 있을 때마다 꼬박꼬박 태그하고 챙겨주신 덕분에 빠르게 이 팀에 소속감을 느낄 수 있었다. 기간 안에 충분히 해낼 수 있는 정도의 일을 분배해주고, 맡은 영역에 대해서는 담당자로서 타 팀과 커뮤니케이션할 수 있게 해주신 점도 좋았다. 디자이너, 기획자, 백엔드 개발자, QA와 협업을 시작하면서 커뮤니케이션에 들이는 리소스가 크다는 걸 실감했다. 자연스레 더 효율적으로 커뮤니케이션하기 위해 고민하게 됐다. 아주 작지만 커뮤니케이션 할 때 이것만은 꼭 지켜야겠다는 게 생겼다.
- 메시지는 확인하자마자 바로 이모지를 찍는다.
- 사소한 거라도 공개 채널에서 논의하자. (과거의 슬랙 스레드들이 히스토리 파악하는 데에 큰 도움이 됐다)
- 작은 부분이라도 기획서, 디자인 시안은 정확한 내용을 담을 수 있도록 업데이트를 요청한다.
리팩토링 및 사용성 개선
런칭 이후에는 아쉬웠던 부분에 대한 리팩토링과 기능 개선 작업을 진행했다. 그동안 쌓아두었던 버그 티켓을 처리하는 작업을 했는데, 유저의 불편함을 해결하는 일이라는 생각이 들어서 재밌게 작업했다.
소프트 스킬
팀에서 배우는 것 중 가장 인상 깊은 건 소프트 스킬이다. 팀원 모두가 상대방이 기분 상하지 않도록 말 한마디 한마디에 세심하게 신경 쓰고 있다는 게 느껴진다. 그러면서도 ‘이건 좀 아니다.’ 싶은 부분들에 있어서 솔직하게 얘기를 하되, 유머러스하게 풀어내는 방식이 정말 인상 깊었다. 작은 사고가 있었을 때, 한 팀원이 팀원 개인에게 책임을 묻기보다 시스템적으로 정비하는 시간이 됐으면 좋겠다고 말씀하신 적 있는데, 그때 정말 감탄했다. 그 덕분에 팀원 개인이 압박을 느끼지 않을 수 있는 분위기가 만들어진 것 같다. 일정에 쫓겨서 지칠 수 있는 때에도 부정적인 이야기를 하지 않고, 다들 농담으로 분위기를 푸는 것도 참 좋다. ‘저런 사람은 누구라도 같이 일하고 싶은 사람이겠구나’ 하는 생각이 들어서 본받고 싶은 팀원들이 있다. 갑자기 팀 자랑 시간이 됐는데, 하나 더 자랑하자면, 같이 입사한 동기에게 많이 배우고 있다. 나의 단점이 너무 많은 것을 신경 쓰고 고민한다는 건데, 동기 분이 본인만의 심지가 단단히 박혀있는 분이라 조언을 많이 구하고 있다. 요새 사회인으로서 쉽게 당황하지 않는 능력, 쉽게 비관하지 않는 능력이 필요하다고 절감하는데, 그런 점에서 동기를 본받고 싶다.
in 커피챗
커피챗을 하면서 역시 사람을 직접 만나야지만 들을 수 있는 이야기가 있다고 느꼈다. 개발자 취업을 준비하고 있는 분, 이제 막 취업한 신입 개발자, 주니어 개발자, 시니어 개발자를 만났는데, 커피챗마다 느낀 점이 다 다르다. 그래서 더 다양한 사람들을 만나서 더 다양한 이야기를 듣고 싶다고 생각했다. 커피챗을 하면서 기억에 남았던 얘기가 몇 가지 있다.
- 어떤 회사가 궁금하면 기업 탐방이나 커피챗을 적극적으로 요청해라.
- 회사를 선택할 때, 기술팀이 메인인 회사인지 고려해라.
- 프론트엔드 개발자도 인프라를 잘 이해해야 한다.
- 나 스스로 충분히 실패해보는 시간을 가져야 한다.
개인적으로 해외에 계신 개발자분과 커피챗을 했을 때, 한 대 얻어맞은 듯한 기분이 들었다. 해외 취업에 관심이 있어서 요청했던 커피챗이었는데, 그 커피챗을 하고 내가 말로만 해외 취업에 관심 있다고 떠들고 다니고 실제로는 알아본 게 하나도 없다는 걸 깨달았다. 스스로 검색해도 잘 안 나온다는 핑계를 대고 있었는데, 사실 해외 취업 관련된 내용을 영어로 검색해본 적이 없었다. 이제까지 취업 준비하면서 했던 것처럼 가고 싶은 나라의 업계 트렌드는 어떤지, 가고 싶은 나라에는 어떤 기업이 있는지 알아보는 게 당연한 건데, 영어에 자신 없다는 이유로 회피하고 있었다. 저번 달까지만 해도 ‘컴공 학사를 따야 하나?’, ‘정처기를 공부해야 하나?’ 고민하면서 여기저기 휘둘리고 있었는데, 커피챗 이후로 생각이 많이 정리됐다. 또, 내가 정말 해외에서 일해보고 싶어 한다는 사실을 알게 되기도 했다. 외국에서는 라이브 코딩과 페어 프로그래밍 능력을 중요하게 본다는 조언을 주셔서 이제부터 조금씩 연습해보려고 한다.
in 스터디
입사한 후에 스터디 커뮤니티에 들어가 이펙티브 타입스크립트 스터디를 하고 있다. 초반에 타입스크립트로 삽질을 많이 해서 타입스크립트 공부의 필요성을 느꼈기 때문이다. 책을 절반 넘게 읽을 수 있었던 건 모두 스터디 덕분이다. 각자 타입스크립트 코드를 어떤 식으로 작성하고 있는지나, 함께 참여하고 있는 챌린지 과제에 대한 이야기를 나눠볼 수 있어서 좋다.
또, CS 공부에 대한 필요를 느껴서 알고리즘 스터디와 면접 대비용 CS 책을 읽는 스터디에 참여 중이다. 근육을 키우는 일이랑 비슷하게 느껴져서 조금씩 꾸준히 하려고 했는데, 갈수록 참여를 많이 못 하게 됐다. 나한테 지금 가장 필요한 공부가 무엇인지 스스로 정리해보는 시간을 가져야 할 것 같다.
회사에서는 아티클을 읽고 프론트엔드 클린 아키텍처를 이해해보는 스터디를 하고 있다. 코드 결합도를 낮추기 위한 방법을 고민하기 위해 시작된 스터디인데, 더 좋은 코드, 더 좋은 구조를 고민하는 분위기 속에서 일할 수 있어서 좋다.
요새 함께 모각공하는 친구들과 데일리 회고를 하는 중인데, 하루를 다시 곱씹어보고 오늘 쌓은 경험치를 기록할 수 있어서 좋다. 스터디 커뮤니티 안에 있는 것만으로도 도움이 많이 돼서 취직한 후에도 같이 공부하는 친구들을 만드는 게 중요하다는 걸 느꼈다.
about 나
실무를 하면서 나는 어떤 것은 잘하고, 어떤 것은 부족한지에 대해 알게 됐다. 나는 요구사항이 정확히 무엇을 의도한 건지 파악하는 것과 서비스의 버그를 찾는 것을 잘하는 것 같다. 그에 반해 빠르게 구현하는 능력과 애니메이션과 같이 보다 퀄리티있는 UI 개발을 위한 상상력은 부족한 편인 것 같다. 또, 개발을 할 때, 어느 정도는 포기해야만 마감을 할 수 있다는 사실을 배웠는데, 포기할 부분은 빠르게 포기하는 강단이 부족하다. 또 하나의 소득이 있다면, 내가 어떤 형태의 일을 재밌어하는지 알게 됐다. 고백하자면, 취업 준비를 하면서 개발이 재밌다고 느껴지는 순간이 별로 없었다. 그래서 ‘이런 내가 개발자가 될 수 있을까?’ 하면서 별의별 생각을 다 했다. 그러다 지금 재직 중인 회사의 사전 과제를 하면서 오랜만에 개발이 재밌다고 느꼈다. 그때, 깨달았다. 나는 요구사항 안에서 퀄리티를 높이는 작업에 재미를 느낀다는 걸. 기획, 디자인, 개발을 다 할 때보다 기획과 디자인은 위임하고 개발에 전념했을 때 능률이 더 높다는 사실을 알게 되었다.
🧐 커리어 정체성
사실 일한 지 4개월 된 내가 ‘나의 몇십 년 개발 인생의 커리어 정체성은 뭐다!’라고 말하는 게 말도 안 되는 일이다. 10년 전의 나는 내가 10년 후 개발자가 되어 있으리라고는 생각도 안 해봤을 거다. 10년 동안 꿈도 바뀌었고, 직무도 바뀌었고, 회사도 바뀌었다. 그럼 반대로 그동안 변하지 않은 게 있을까 고민해봤다. 에디터가 되고 싶었을 때도, NGO 활동가가 되고 싶었을 때도, 개발자가 된 지금도, 문제를 해결하는 사람이 되고 싶다는 바람만은 변하지 않았다. 그래서 너무 진부한 대답일 수 있지만, 나는 ‘문제를 해결하는 개발자가 되고 싶다’고 말할 수밖에 없을 것 같다. 이번 하반기에는 가까운 곳부터 시작해 나의 문제, 우리 팀의 문제를 해결하는 데에 집중하고자 한다.
진부한 결론이긴 하지만 나름 많이 고민했다. 특히 공부할 게 너무 많아서 앞으로 어디에 집중해서 공부해 나가야 할지 고민을 안 할 수가 없었다. 그때 가장 도움이 됐던 글이 있다. 개발자의 평생공부라는 글이다. 여기서 말하는 3가지 지침이 가장 와닿았다.
- 지금 다니고 있는 회사에서 하는 일을 잘하기 위해서 노력하는 것이 가장 좋은 공부다.
- 새로운 기술을 익히는 최선의 방법은 스스로 문제를 정의한 다음 새로운 기술을 이용해서 그 문제를 풀어보는 것이다.
- 필요할 때 필요한 기술을 익힐 수 있는 것이 능력이다. 그 능력을 키워라.
🪡 하반기 목표
내 문제가 무엇일까 생각해봤을 때, 필요할 때 필요한 기술을 익히는 능력이 부족하다고 느꼈다. 웬만한 문제를 해결할 수 있을 만큼 개발 생태계가 잘 마련되어 있는데, 영어를 못해서 그 생태계를 충분히 활용하지 못한다는 생각이 들었다. 영어로 된 문서를 읽는 게 두렵지 않을 만큼 영어를 공부하고, 오픈소스 코드를 많이 읽으려고 한다. 진로를 고민하며 여러 갈래 길을 방황하다 결국 개발자가 되기를 선택한 이유 중 하나가 자신의 지식과 노하우를 아낌없이 공유하는 오픈소스 생태계가 부러워서였다. 오픈소스에 기여하는 경험을 통해 나도 이 오픈소스 생태계의 일원이라는 자부심을 느껴보고 싶다. 내가 가장 못 할 것 같은 일을 해내서 그동안 ‘나같은 사람이 어떻게 이런 걸 해~‘하며 스스로를 무시했던 나에게 보란듯이 자랑하고 싶다.
일하기 좋은 팀을 만들기 위해 노력하고 싶다. 요즘 관심을 가지고 있는 질문은 ‘함께 재밌게 일하기 위해선 어떻게 일해야 하는가?‘이다. 또, 다른 팀과 어떻게 더욱 효율적으로 협업할 수 있을지에 대한 고민이 있는데, 하반기에는 실제로 여러 방법들을 시도해볼 수 있으면 좋겠다.
유저 편의성을 높여서 긍정적인 피드백을 받아보고 싶다. 유저는 무엇을 불편해하는지 이해하기 위해서 유저 보이스를 듣는 일에도 관심을 가지고, 서비스도 자주 사용해 보려고 한다. 최근에 프론트엔드 개발자와 기획자의 관점 차이가 있다는 걸 알게 되었는데 무척 흥미로웠다. 프론트엔드 개발자는 유저의 사용성을 최우선으로 고려하는 반면, 기획자는 사용자가 원하는 대로만 가는 게 늘 옳은 것은 아니라는 관점을 가지고 있는 것 같다. 이러한 관점 차이를 헤아리며 내 일이 비즈니스에 효과적으로 기여할 수 있는 방법을 고민해보고 싶다.
하반기에는 더 많은 사람과 커피챗을 하고, 나도 상대에게 인사이트를 줄 수 있는 사람이 되고 싶다. 특히 문제를 해결하는 사람들의 이야기를 많이 듣고 싶다. 사회 문제를 해결하는 데에 내가 기여할 수 있는 부분이 있다면 적극적으로 참여하고 싶다. 또, 기술과 관련해서 덕질하는 분야를 만들고 싶다.
사실 이 글은 3개월 수습 기간에 대한 회고였지만, 자그마치 1달 동안이나 글을 완성 못해서 상반기 회고가 됐다. 꽤나 호기롭게 적었지만 나는 워낙에 갈대 같은 사람이기 때문에 지금도 ‘이런 걸 목표로 삼아도 되나?’, ‘너 뭐 돼? ㅠ 너가 몰 알아? ㅠ’ 하면서 잎새에 이는 바람에 괴로워하고 있다. 하지만 이대로 계속 고치다가는 6개월 회고가 될지도 모르니 이 글을 이만 놓아주려고 한다. 오히려 하반기의 내가 이 글을 조목조목 반박해주면 기쁠 것 같기도 하다. 그만큼 많이 성장할 수 있기를. 그리고, 하고 싶은 일을 조금 덜 미루는 어른이 되기를.