- Published on
신입이 된 후 작성하는 2023년 회고
- Authors
- Name
- 윤영서
시작하며
2023년은 누가 물어봐도 내 인생의 터닝포인트다!
라고 자신있게 말할 수 있을 정도로 정말 특별한 해였다. 많은 사람들을 만났고 기술적으로 성장했다. 대학생 그리고 취업 준비생이었던 내가 감개무량하게도 연말에 취업을 하게 됐다.
신입으로 들어온지 한 달 차 그리고 2024년의 첫번째 달인 지금, 나에게 너무 특별했던 2023년을 기록해보려 한다.
1월부터 3월까지
프론트엔드로 마음을 굳혔을 때
졸업을 앞두고, 무엇을 할까 한참 고민했던 때가 있었다. 취준을 본격적으로 시작했던 2023년의 10월달보다 흔들렸던 때였던 것으로 기억한다. 물론 나이는 아무것도 아니라고 다들 말씀하시지만 그때는 학교를 늦게 들어가고 1년의 휴학을 했다는 불안감, 그리고 4년제 대학을 나오지 못해 다른 누군가보다 뒤처지는것이 아닐까? 라는 생각에 편입, 방통대, 부트캠프 등... 많은 갈림길을 두고 매일 매일 흔들렸었다.
어느정도 진로가 프론트엔드쪽으로 기울었을때쯤, 노마드코더
라는 교육 플랫폼이 있다는 것을 접하게 됐고 1월 초부터 10주 간 노마드코더 웹기초 10주 스터디(이하 웹기초 스터디)에 참여하게 된다.
전공자였지만 주변에 개발자에 뜻이있는 친구들이 적었던 나는, 개발자 네트워킹에 대한 갈증이 있었다. 그런 나에게 웹기초 스터디는 '취업 목적'이라기보다는 스스로 동기부여를 하고 다른 사람들과 네트워킹을 하기 위한 수단이었다.
아무튼 웹기초 스터디에서 평소대로 행동함에도 그런 내 행동에 고마움을 표현해주는 분들, 내 노력을 알아주시는 분들을 만나며 인격적으로 많이 성장하는 때였던 것 같다.
그때까지만해도 취업은 나와 정말 먼나라 이야기같았고, '저한테 리액트 얘기하지 마세요!', '리액트 스터디 나빠요!'를 농담으로 했었던 기억도 난다.(ㅋㅋㅋ) 리액트가 자바스크립트인줄 몰랐을 정도로 정말 나와 거리가 멀었었다.
4월부터 7월까지
기술적인 성장의 시발점
웹기초 스터디를 무사히 마치고, 4월부터 그토록 멀리했던 리액트 공부를 시작했다.
2월달엔 자바스크립트 문법도 제대로 모른채로 웹기초 스터디를 했고 그 상태로 리액트를 공부하려고 하니 이게 리액트의 문법인지 자바스크립트의 문법인지, 화살표 함수가 뭔지, 클로저는 뭔지 아무것도 몰랐다.
노마드코더의 리액트 기초강의를 들을때엔 state
, rendering
등 정말 하나도 모르고 그냥 타자치기에 바빴던 것 같다. 일단 화면이 그려지니 재밌고, 새로운 것을 배우니 재밌는데...자바스크립트라는 내실이 없으니 정말 밧줄 하나 쥐고 질질 끌려가는 느낌이었다.
리액트 스터디 앞 기수에서 리액트를 공부했던 분들이 이야기를 하시는 것을 보면 내가 저정도로 할 수 있을까? 언제쯤, 얼마나 열심히 해야 저정도를 할 수 있게 될까 하는 생각도 하고, 막연하게 초조한 것도 있었던 것 같다.
아무튼 5월부터 리액트 스터디를 시작했는데, 5월부터 6월까지가 정말 내 인생에서 가장 열정적으로 살았던 때가 아닐까한다. 다른 사람들과 네트워킹하고, 코드 리뷰라는 것도 주고 받아보고, 파일 구조는 어떻게 하면 좋을지, 어떻게 코드를 짜야할지 기술적으로 정말 많이 고민하고 노력했다.
특히 스터디에서 멘토링을 해주시는 분께 리뷰를 받고 티키타카가 된다!
싶었을 땐 엄청난 희열이 느껴졌던 것 같다.
'어 나 좀 하는구나'
리액트 스터디를 하며 나 그래도 컴포넌트 하나는 만드네
하고 판단했을때, 테오의 스프린트라는 또 다른 기회가 찾아왔다.
아무나 참여할 수 있었고 기획 3일 개발 2일 배포 1일이라는 총 6일의 스프린트 동안 팀 프로젝트를 완성하는 것이었다. 나는 협업을 해본 경험이 너무 적었기 때문에 좋은 기회다 싶어 신청하게 됐다.
물론 우여곡절도 많았고 쉽지만은 않았지만, 배포를 무사히 해냈고 내가 담당한 부분에서는 사용자들로부터 불편함에 대한 피드백이 없었다. 또 내 태스크가 끝나고 진행이 더딘 다른 팀원분들의 일까지 맡아서 하게 되었는데, 그게 너무 뿌듯했다. 그리고 테오 스프린트 이전까지는 내 실력에 대해서 자신이 없었는데 팀 내에서 어느정도 팀 플레이어로서의 역할을 해내는 구나!하고 자신감을 얻을 수 있었다.
8월부터 9월까지
이력서에 보탬이 된 협업 경험
리액트 스터디가 끝나고, 친한 지인분이 본인이 하셨던 원티드 프리온보딩 인턴쉽
을 꼭 해보라며 추천해주셨다. 선발을 위한 사전과제가 있었는데, 처음 과제를 딱 봤을땐 어 이거 어떻게 해야하지?
라는 생각부터 들었던 것 같다. 그땐 그만큼 실력이 부족했었는데 운이 좋게도 원티드 프리온보딩 인턴쉽에 붙었고, 4주 간 협업과 프론트엔드 교육을 받게 됐다. 교육의 질도 좋았고 특히나 협업을 통해 베스트 프랙티스를 선정하는 것이 이력서 작성에도 정말 큰 도움이 됐다.
프리온보딩은 개인이 이틀정도 동안 과제를 진행하고, 진행한 개인 과제를 기반으로 팀끼리 논의해 베스트 프랙티스를 선정하는 방식이었다. 이런 방식이니만큼 당연하게도 의견의 잦은 교류가 있어야 했고, 나는 내 의견을 다른 팀원들에게 전파하고 다른 팀원들을 설득하는 것에 많은 노력을 기울였다.
(이런 노력은 추후에 이력서를 쓸 때 정말 많은 도움이 된다... 고맙다 과거의 나!) 분위기도 띄우고 일정조율도 하고 여러가지 노력을 해서인지 마지막 날에는 고맙다는 말을 많이 들었던 것 같다.
운이 좋았던 면접 경험
기존 원티드 포맷의 이력서로 4곳 정도 지원하고나니 아직 내 이력서가 완성되지 않았다는 생각이 들었다. 노션 이력서로 개편해(이전에는 원티드 형식이었다) 지원해야겠다고 생각했는데 정말 운이 좋게도(?) 4곳 중 한곳에 덜컥 붙어버리고 만다. 계획은 틀어졌지만 내가 가고싶다고 말한 적도 있었던 곳이라 그때부터 2주간의 기간 동안 기술 면접을 준비한다.
프론트엔드 기술면접은 내가 대학에서 배운 내용과 달라서... 도화지를 갈아치우고 새로 그림을 그리는 느낌이었다. 주변에 취업을 준비하고 있던 친구들이 있었기 때문에 면접 경험을 물어보고, 면접 질문을 취합해 리스트를 만들어서 달달 외웠었다.
1차 면접 경험은 정말 즐거웠지만 2차 면접에 가지 못했다.
이력서 수정 시작!
아무튼 2주 동안의 기간동안 이력서 수정보다는 면접을 준비했기 때문에 부랴부랴 이력서를 수정하게 된다. 주변에 계신 분들이 정말 많이 도움을 주셨다. 노션으로 내 이력서에 대한 피드백을 정리해주신 분들도 계셨고, 새벽까지 음성 채팅을 통해 가이드를 주신 분도 계셨다. 내가 취업을 한 것에는 그분들의 덕도 정말 크다는 생각이 든다. 회고글을 빌려 다시 한번 감사하다고 말씀드리고 싶다.
10월 15일부터 이력서 수정에 들어갔고 10월 말부터 이력서를 내기 시작했다. 연차나 기술 스택에 상관없이 공고에 지원했고 최종 합격이 된 11월까지 100여 군데를 지원했다. 서류 합격만 따지면 약 10% 정도의 합격률이었다.
기억에 남은 과제
서류 합격 후 과제를 진행한 곳들이 있었는데 기억나는 곳은 Next.js page router + redux를 이용해 5일 동안 과제를 수행해야 하는 곳이었다. 3년 이상 개발자를 뽑는 곳이라 그런지 auth를 직접 다루는 부분도 있었다. jwt 토큰을 ssr에서 다뤄야했고 처음 써보는 redux, 그리고 redux를 ssr에서 사용해야 했기때문에 골머리를 앓았지만 기능 두어개 정도를 제외하고 완성해서 제출했다.
물론 refresh token을 다루는 것도 재밌었지만 제일 기억에 남았던 부분은 private route에 로그인 하지 않고 접근시에 어떻게 처리할까?에 대한 부분이었다.
만약 유저가 private한 route에 로그인 하지 않고 접근하면 리다이렉트를 시키면서 토스트메시지를 보여줘야했는데 이때 요구되는 것이 렌더링되면서 발생하는 깜빡임이 없어야한다는 것이었다. Next를 쓰고 있었기에 react router를 사용하는 것도 아니고, useEffect나 useLayoutEffect를 통해 렌더링하려해도 깜빡임이 일어나기 때문에 CSR이 아니라 SSR로 처리를 해줘야했다. 그런데 토스트메시지를 보여주어야하고 로그인 상태에 따른 라우팅도 이루어져야해서 로그인 상태를 클라이언트 서버에서 검증하고, 리다이렉트도 클라이언트 사이드가 아니라 서버 사이드에서 일어나야했다.
export const TOAST_MESSAGE = {
'100': '🚨 로그인 상태에서만 접근이 가능한 페이지입니다.',
} as const;
//getServerSideProps 내부
if (!context.req.cookies.accessToken && !context.req.cookies.accessToken) {
return {
redirect: {
destination: '/login?needToast=true&type=error&message_code=100',
permanent: false,
},
};
}
그래서 위 코드처럼 getServerSideProps에서는 accessToken과 refreshToken의 유무에 따라 redirect를 하고 메시지를 "code":"내용"으로 상수화해서 redirect된 페이지에서 보여지도록 처리했다.
미완성 기능이 있었음에도 내가 어떤 것을 고려했는지에 대해 충분히 풀어내 작성한 것을 좋게 보셨는지 과제 전형에서는 합격 통보를 받았다. 현재 회사에 입사하는 바람에 해당 회사의 면접에는 갈 수 없었지만 과제를 하면서 새로운 라이브러리들을 조금은 덜 겁내고 사용하는 법을 배웠다. 어려워서 포기하고 싶었던 적도 있었지만 러닝 커브가 있음에도 해냈던 내 자신이 자랑스러웠던 때였다.
2024년 1월
그리고 지금은 데이원컴퍼니의 신입 개발자로 잘 적응하려 고군분투중이다. 어느덧 입사한지 한달이 지났고 회사의 가이드 라인 문서만을 정독하던 나는 회사 컴포넌트의 유닛 테스트의 작성을 마치고 e2e 테스트를 작성하고 있다.
초반에는 첫 사회생활이라 '내가 다른 사람들 눈에 엇나가는 행동을 하진 않을까?', '말실수를 하진 않을까?' 하는 생각들로 매일 매일 힘이 들었다. 팀장님과 1 on 1을 진행했을때 팀장님께서는 '처음이라 그럴 수 있지만 다들 그런걸 신경쓰진 않을 것이다' 하셨고... 말씀하신 것 덕분인지 적응을 한 것인지는 몰라도 이전보다는 이런 것들에 대한 고민이 줄어들었다.
물론 아직도 여러가지 불안함이 있지만 주변에 나와 같은 경험을 해보신 분들께도 조언을 얻으면서 극복해나가려고 노력하고 있다.
올해의 목표
올해는 회사에 잘 적응했다면 작은 것이라도 환경에 기여해보고 싶다. 단순하게 회사에서 내려주는 업무만을 진행해 기여를 하는 것을 뜻하는 것이 아니라, 개발자들의 업무 환경을 개선해 보고 싶다는 뜻이다.
또 일과 일상을 완벽하게 분리하고 싶다. 지난 금요일에 내가 merge 시킨 테스트 코드에 의해 CI가 터졌는데 해결하지 못하면 다음주 월요일에 해결을 해야하는 상황이 올 수도 있었다. 사수분들의 도움 덕분에 해결이 되었는데, 그때 내가 농담반 진담반으로 '사수분들이 아니었으면 제가 주말 내내 이 생각을 할 뻔 했습니다. 감사합니다.'라고 말씀드렸다. 그 말을 듣고 사수분들 중 한 분이 '만약 라이브로 이슈가 터지는 것이라면 신경써야겠지만, 이렇게 CI에서 이슈가 터지는 것이라고 하면 나는 그런 것은 신경쓰지 않으려고 한다, 주말에는 일 생각을 안하려고 한다'고 말씀하셨다. 그런 말을 들으니 내가 일과 일상을 잘 분리하고 있지 않구나 하는 생각이 들었다. 집에 있다가도 슬랙 알림이 오면 확인했고, 퇴근하고나서 PR에 코드 리뷰를 하셨다는 메일이 오면 merge를 하기도 했다. 오래 오래 건강한 멘탈을 가지고 일을 하려면... 확실한 분리를 해야겠다는 생각이 들었다.
마지막으로는 질문을 잘 하는 개발자가 되고 싶다. 평소에 편하게 질문을 할 수 있는 상대가 많아서 몰랐는데 내가 질문을 잘 정리해서 말하지 못하는구나 하는 생각이 들었다. 마음이 급하니 질문을 정리하지 않고 하는 성향이 있는 것 같은데, 컨텍스트가 공유되지 않은 상태에서 그렇게 질문을 하려고 하니까 내가 한 번 설명할 수 있는 말을 두 번 설명해야 하는 상황이 올 때가 있었다. 소통에서의 리소스가 꽤나 많이 든다는 생각이 들어서 이런 부분은 개선해야겠다는 생각이 든다.
나에게 2023년은 정말 의미있는 해였다. 다시는 이런 해가 오지 않을지도 모르지만, 2024년도 나에겐 그런 해이길 바라보면서 글을 마친다.
2023년 안녕!