2022년 코딩국비교육 수료생의 회고
2022년은 나에게 의미가 큰 한 해였다.
개발자로 직무전환을 하겠다고 다짐한 해이기 때문이다.
30대 중반으로 현실적으로 직무전환을 할 수 있는 마지막 기회라고 생각했었던 한 해이기도 했다.
그래서 더 과감했고, 더 열정적이었다. 러닝커브를 가파르게 만들기 위해 나름 노력했던 기간이기도 하다.
그 2022년을 회고해 보겠다.
코딩과의 첫 만남
코딩을 처음 접했던 것은 중학생 때이다.
지금 정확한 이유가 생각나진 않지만 학교에서 코딩 교육을 해주었다. 그 때, 게임을 만들 수 있게 해준다고 해서 열심히 따라 했으나 스무고개 게임을 만들어서 엄청 실망했던 기억이 난다. 게임이라고 하면 RPG나 스타크래프트만 떠올렸던 것 같다.
이 때의 경험 때문이었을까? 개발은 누구나 할 수 있는 것이라는 생각이 있었고, 나도 시간을 조금만 투자하면 앱을 뚝딱 만들 수 있을 것만 같은 자신감이 있었다. 그래서 아이폰이 국내에 들어오고 앱개발에 관심이 높아졌을 때쯤, IOS 개발 책을 샀었다. 방학기간 안에 앱을 만들어보겠다고 호기롭게 시작하고는 겨우 계산기 하나 만들고 방학이 끝났던 기억도 있다.
[2022 상반기]
업무효율을 위한 코딩 학습
2022년 초, 팀장 자리가 공백인 팀에서 부팀장 직책으로 일을 하게되면서 보고를 위해 팀원들의 성과를 분석하고 인사이트를 도출해내야하는 일을 했었다. 글로벌하게 서비스하는 기업이 클라이언트였는데, 대부분의 업무를 구글 스프래드시트를 활용해서 처리했다.
내가 팀원들의 퍼포먼스 분석하기 위해서는 아래의 순서가 필요했다.
[1] DB에서 팀원 관련 데이터 추출 > [2] 여러개의 구글 스프레드시트들로 정리(매일 업데이트)
> [3] 5개의 스프레드시트 파일로 엉켜있는 자료를 공유받음 > [4] 분석을 위해 만든 스프레드시트에 연결해서 성과 측정
> [5] 한달이 지나면 공유해준 직원이 해당 시트 재사용을 위해 자료 삭제 > [6] 공유해준 담당자에게 백업 파일을 요청 해서 다시 연결함
처음 한 달은 기존 방법을 따르고, 두번 째 달부터 미리 백업을 해서 [6]번 의존성을 끊어냈다.
몇달을 이렇게 처리하면서 활용중인 다양한 업무 툴의 api로 대체할 수 있는 자료를 받을 수는 없는지 계속 확인 했었다.
이 때, api를 쓰는 방법을 잘 모르긴 했으나 클라이언트가 구글이었던 직전 프로젝트에서 개발자와 협업을 하기위해 코딩 공부를 하고 있었기 때문에 api만 있으면 어떻게는 사용할 수 있을 것이라는 자신감이 있었다.
결국 활용중인 외부 서비스의 api로는 원하는 정보를 얻을 수 없다는 결론이 나왔다.
사실 다른 문제도 있었다. [1], [2]번 작업을 하는 직원이 항상 늦어서 1~2일 지연된 자료를 받아 본다는 것이었다. 이 때문에 팀원들과 미팅 하거나 클라이언트와의 미팅에서 최근 자료를 요청하면 난처했었다. 그래서 아래와 같은 생각을 하게되었다.
만약 내가 데이터 베이스에 접근이 가능하다면?
SQL을 학습하여 DB에 저장된 팀원들의 정보를 실시간으로 받아오면,
1) 미팅에서 최신 자료로 보고 할 수 있고
2) 퍼포먼스에 문제가 생겼다면 즉각적으로 해당 팀원에게 코칭을 할 수 있겠네?
위와 같은 생각을 하니 갑자기 설레이기 시작했다.
그래서 바로 SQL과 이를 효과적으로 활용하고 자동화 하기위해 웹개발도 학습하게 되었다.
그렇게 강의 수강을 완료하고 자신감이 차올랐을 때, [1], [2]번을 담당하던 직원에게 DB 접근 권한을 요청했다.
이 때까지만 해도 코딩으로 문제를 해결 할 수 있을 것이라는 생각에 행복했었다.
DB 접근 요청 거절 그리고 퇴사
거절을 받기까지 한달 정도 걸렸던 것 같다.
처음에 왜 DB 접근 권한이 필요한지, 어떻게 사용할 계획인지 등 자세한 사항을 요구해서 다 알면서 왜그러나 생각했었다.
그 데이터 때문에 빨리 달라고 요청하고, 오류 있다고 다시 확인해달라고 요청하고, 초기화 되었다고 백업본 달라고 요청하는 등..
많이 시달렸어서 당연히 고맙게 생각하고 권한을 줄 것이라고 착각 했었다.
알고보니 그 담당 직원은 [1], [2] 단계를 담당하는 것이 아닌 [2]만 담당 하던 것이었다.
즉, [1]을 담당하는 클라이언트에게 허락을 받아야 나에게 권한을 줄 수 있었기 때문에 질문이 많았던 것이다.
한달간 업무에 필요한 범위에 대해서만 읽기권한만 달라 했지만 결국 거절을 당하고 말았다.
그 때의 심정은.. 내 노력이 다 물거품이 되는 듯한 기분이었고, 더 참을 수 없던 것은
효율적으로 개선할 수 있는 방법과 기술을 갖춘 내가 비효율적으로 일을 해야한다는 무력감이었다.
그래서 이 때, 과감하게 사표를 냈다.
짧은 웹개발 학습 경험이었지만, 지금 직무 전환을 하지않으면 평생을 후회 할 것만 같았다.
퇴사 시 노티스 기간이 2~3달 이었기 때문에 그동안 국비 코딩 교육을 찾고 지원하기 시작했다.
그렇게 공백 기간을 최소화 하여 본격적인 코딩 교육에 참여할 수 있었다.
[2022 하반기]
코딩국비교육의 시작과 좌절 그리고 적성을 찾다! - 백앤드
호기롭게 코딩 교육을 시작하고 한달만에 알게되었다.
1) 나는 코딩을 하나도 몰랐다.
2) 내가 수강했던 코딩 강의는 그냥 따라 치기만 하는 비전공자 취미용 강의였다.
3) 코딩을 하려면 이렇게나 많은 것들을 알아야 하는지 몰랐었다.
역시 사람이 성장하려면 무지의 지를 깨달아야하는 것 같다.
이미 퇴사는 했고, 교육과정은 아직 5개월이나 남았으니, 내 머리를 믿고 가보기로 했다.
(M자 탈모가 진행되고 있으니 분명나는 코딩을 잘해낼 것이라고 확신했다.)
정말 열심히 했고 리액트 훅에서는 잠시 좌절을 했었다.
그리고 실습을 하면서 나는 백앤드가 더 적성에 맞는 다는 것을 알게 되었다!
사실 나는 국비 교육을 수강하기 전까지 프론트앤드를 좋아할 줄 알았다.
백앤드는 뭔가 지루하고 어렵고 힘들기만 할 줄 알았는데..
너무 재미있었다. 심지어 리눅스 명령어를 칠 때면 컴퓨터와 대화를 하고 있는 것 같아서 더 알고 싶어졌다.
당연하게 프론트앤드로 취직한다고 생각해서 백앤드는 같은 언어로 찍먹만 하려고 node.js 백앤드가 커리큘럼에 있는 교육과정을 선택했었다. 하지만 이 점 떼문에 취업을 준비하고 있는 지금 고생을 하고 있다.
node.js 백앤드는 상대적으로 취업 시장의 파이가 작기 때문이다ㅠㅠ
총 3번의 팀 프로젝트
첫번째 프로젝트는 기본 틀이 짜여있는 스켈레톤 코드를 받아서 이력서 공유 플랫폼을 완성시키는 프로젝트였다.
개인적으로 이 프로젝트가 없었다면, 교육을 완주할 수 없었을 지도 모른다고 생각한다.
팀원 구성에서 백앤드 취업을 희망하는 사람은 혼자였지만, 밸런스를 위해 백앤드와 프론트앤드 각각 3명으로 구성되었었다. 그러다보니 백앤드로 취업을 희망하는 내가 더 나서게 되었고, 내가 코드를 작성해서 문제를 해결하면 다른 백앤드 팀원이 내 코드를 참고해서 담당 기능을 구현하는 순서로 진행되었다. 배포를 위해 리눅스를 다뤄야하는 부분도 교육기관에서 제공해주는 녹화 강의를 보며 혼자 해결했다.
이 경험 덕분에 비전공과 나이에 대한 압박에서 벗어나서 자신감을 얻고 지속할 수 있는 에너지를 충전했었다.
두번째 프로젝트는 기획부터 시작해서 파이썬을 활용한 데이터 분석까지 해야했던 프로젝트였다.
첫번째 프로젝트의 경험으로 자신감이 가득했던 때라 거침없이 문제 해결을 위해 달려 들었었다. 기본 틀이 없고 DB도 MongoDB에서 MySQL로 변경되면서 막막했었는데, 자신감 하나로 밤을 새우면서 VM설정하고 거기에 MySQL 설치부터 연결까지 스스로 해결하고 팀원들에게 공개하면서 1차 때와 유사한 경험을 한번 더 하게 되었다.
지금 생각해보면 정말 좋은 경험이었지만, 전공생 백앤드 팀원이 한 명이라도 있었다면 더 많은 것을 효율적으로 배울 수 있었을 것 같다.
세번째 프로젝트는 기획부터 시작해서 파이썬을 활용한 AI까지 적용해야했던 프로젝트였다.
앞선 두 번의 프로젝트 경험으로 자신감이 치사량까지 차있던 때라 백앤드를 혼자 해도 괜찮다고 선언해 버렸다. 백앤드를 Node.js로 배우는 교육과정의 특성상 대부분의 수강생들이 프론트앤드로 취업을 희망하였다. 그러다 보니 백앤드 취업을 희망하는 팀원이 전혀 없는 팀도 있었기 때문에 이런 나의 선언을 모든 팀원이 반겨주었다.
몇일만에 이 발언을 약간 후회하게 되었다. 그 이유는 '외로움' 때문이었다. 프론트 3명, 백앤드 1명 그리고 AI 1명으로 구성되다보니 AI를 담당하는 팀원과 나는 자주 외로움이 가장 힘들다는 말을 했었던 것이다. 문제가 발생했을 때 함께 고민할 사람이 없다는 점은 생각보다 많이 외로웠다. 역시 사람은 사회적 동물이다.
특히, 2차 프로젝트까지는 도움을 주시는 코치님들께서 자신감을 주기 위해 노력해주셨다면, 마지막 3차 프로젝트에서는 코치님께서 포폴로 쓸 수 있도록 많은 시도를 할 수 있게 키워드를 제공해 주셨다.
이렇게 세 번의 프로젝트를 겪으면서 배운 것은 아래의 키워드들로 설명할 수 있을 것 같다.
첫번째 프로젝트: CRUD + API + 자신감
두번째 프로젝트: MVC 패턴 + SQL 쿼리 + 외부 API + 공식문서 등
세번째 프로젝트: 미들웨어 + 벨리데이션 + 트렌젝션 + 로깅 + 오류 알람 + HTTPS + 메모리 스왑 등
총 1번의 개인 프로젝트
개인 프로젝트는 두번째 프로젝트 종료 직후에 시작했으며, 기술 블로그를 만드는 것이 목표였습니다.
두번째 프로젝트를 진행하는 동안 카카오 데이터 센터에서 화재가 나면서 카카오와 티스토리 등의 서비스에서 장애가 발생하였고 이는 개발에도 큰 영향을 미쳤습니다.
최대한 공식문서를 보면서 문제를 해결하려고 하지만 수많은 선배님들의 경험으로 기록된 티스토리 블로그는 빠르게 해결책을 얻거나 오류 해결을 위한 키워드를 인지는데 큰 도움이 되었기 때문입니다.
그래서 "내 기술 블로그 만큼은 내 홈서버에서 저장해 두고 사용하자!" 라는 목표로 시작하게 되었습니다. 물론 추후 확장을 위해 회원 가입 기능과 회원들의 게시글 작성 기능을 만들어 두긴 했습니다. 또한 이 기술블로그를 기반으로 제가 만드는 사이드 프로젝트들을 모두 연결시키려고 합니다.
개인 프로젝트를 하면서 프론트앤드 코드까지 직접 작성하다보니 프론트앤드에서 예상보다 시간이 많이 소요되는 경험을 하고 있습니다. 이는 역시 백앤드를 선택하길 잘했다는 생각으로 이어지고 있습니다.
취업준비 시작
내가 수료한 코딩 국비교육은 2022년 06월 27일부터 2022년 12월 16일까지였다. 하지만 교육이 종료된 12월 16일 이후에도 교육기관에서 모의면접과 모의기술면접 등 취업을 위한 프로그램들을 추가로 제공해 주고 있어서 놀라고 있는 중이다.
사실, 교육기간 중에는 프로젝트에 올인을 해서 코테나 기술면접 공부는 많이 부족했기에 이렇게 모의면접을 제공해 주니 큰 도움이 되었다.
게다가, 채용을 희망하는 기업들과의 매칭으로 면접 기회를 얻기 좋고 하루에 여러 회사 면접을 볼 수 있어서 시간을 효율적으로 쓸 수 있는 점이 큰 장점이라고 생각된다. 나의 경우 교육기관의 기업소개 프로그램으로 총 4개 업체의 면접 기회를 받을 수 있었다.
아직은 교육기관의 기업소개 프로그램 이외의 지원은 하고 있지않은 상태이다. 이유는 아래와 같다.
1) Node.js 백앤드는 주로 스타트업에서 채용하는데, 스타트업에 대한 투자시장이 많이 위축되어 채용공고가 많이 줄었다.
2) 개인 프로젝트로 개발중인 블로그에 글을 게시하고 본격적인 지원을 하려고 합니다.
3) 코딩 테스트도 유형별로 한 문제라도 풀어보고 지원하려 합니다.
[마무리]
백앤드 개발자에 한 걸음 남았다.
호기롭게 퇴사하고 국비교육에 참여했던 것이 벌써 6개월이 넘었다는 것이 믿겨지지 않는다.
한 분야의 전문가가 되는데에는 1만 시간이 필요하다는 '1만 시간의 법칙'을 믿기에 압축성장을 하고자 하루종일 코딩 공부만 하며 6개월을 보냈다.
12시간 x 6일 x 4주 x 6개월 = 1,728시간
6개월간 코딩 공부에 어림잡아 1,728시간을 투자하였고, 1만 시간을 채우려면 이런 노력을 3년간 해야한다.
능력있는 동료가 있는 조직에서 실무를 하며 3년 뒤에는 자신있게 전문성을 갖춘 백앤드 개발자라고 나를 인정할 수 있었으면 좋겠다.
잘하고 있으니 너무 조급하지말고 꾸준히 성장만 하자!
화이팅!