본문 바로가기
회고

웹 서버 개발자에 도전하는 비전공자의 2022년 회고

by 딱구킴 2022. 12. 31.

나는 30대 초ㅂ..아니 내일이면 중반이 된다.(만나이 도입되면 초반이다 😋) 남들이 보기에 무언가를 새로 시작하기 늦은 나이일지도 모르겠으나, 나는 지금이라도 내가 좋아하는 것을 찾아서 너무 다행이라고 생각하기 때문에, 2022년은 나에게 너무 중요한 해였고, 고마운 해였다. 이 고마운 해의 나를 더 오래 기억해 두고자 회고를 작성해보려고 한다.


"웹"이라는 것을 알게된 일

내 원래 직업은 생명공학 연구원이었기 때문에, 데이터 분석 역량이 필요하여 올해 3월까지만 해도 데이터 분석과 파이썬을 배우고 있었다. 데이터 분석은 너무 재미가 없었음에도 공부를 계속했던 이유는 성장 욕구가 있었기 때문이며, 무언가 정체되는 느낌이 너무 싫었기 때문이다.

 

그러다가 웹 크롤링이라는 신세계를 맛보게 되었다. 내가 짠 프로그램으로 웹의 무언가를 자동으로 가져온다니.. 너무 신기했다. 처음 배우는 크롤링에 제대로 빠져서, 퇴근하고 집에 돌아와서는 그것에만 몰두했던 것 같다. 뭔가 잘 안될때는 새벽까지 붙들고 있다가 조금만 자고 출근하는 그런 일이 반복됐다. 너무 피곤했지만, 한편으로는 너무 즐거웠던 것 같다.

 

내가 배운 보잘것 없는 기술(?)으로 뭔가를 더 해보고 싶었다. 어디에 이걸 적용 해볼 수 있을까.. 생각하다 눈에 들어온 것은 디스코드였다. 즐겨하던 게임은 롤이었는데, 친구와 함께 랭크 게임을 하다가 상대방의 전적을 op.gg까지 들어가서 검색하기가 너무 귀찮았고, 디스코드에 상대 이름만 치면 전적을 쭉 뽑아오는 시스템을 만들면 좋을 것 같았다. 어떻게 할 수 있을까.. 하다가 처음으로 API라는 것을 써보게 되었는데, 바로 "디스코드 봇 API"이다.

 

디스코드 봇 API 문서를 보고, 여러 블로그들을 찾아보면서 성공적으로 전적을 크롤링해오는 봇을 만들어볼 수 있었다. 그 때도, 크롤링을 처음 배울 때 처럼 새벽까지 봇을 만들다가 문제가 생기면 해결하다가 잠도 얼마 못자고 출근하는 그런 시간을 반복했고, 헤로쿠라는 무료 배포 사이트까지 찾아가면서 배포를 해두고 내가 없어도 봇이 일을 24시간 하도록 해두었다.(그 때는 이게 배포인지 몰랐지만..)

 

디스코드 봇에 가위바위보, 운세 검색 등의 잔기능만 구현해두고 잘 사용하고 있다가, 문득 게임 약속 같은 것을 정해두면 참여자들을 태그해주고 일정이 다가왔음을 알려주는 그런 기능을 넣어보고 싶었다. 그 때만 해도, 나는 API라는게 정확히 무얼 하는건지도 몰랐고, 구글 캘린더 API라는게 있는지도 몰랐을 때였기 때문에, 단순하게 "아! 달력 기능을 해주는 웹 페이지를 만들어야되는 거구나!"라고 생각했다.

 

그렇게 처음으로 웹 이라는 것을 알게되었고, 이를 실현하기 위해 공부를 시작하게 되었다.


파이썬에서 자바로

개발자 인맥이란 아무도 없을 수밖에 없던 내게 단비같은 인맥이 한분 계신다. 혼자서 해결할 수 없던 어려움이 닥쳤을 때 마다 방향을 제시해주시던 감사한 분이다. 웹 공부를 할 때 무엇을 해야할지 몰랐기에, 그분께 조언을 구하게 되었다. 그 분 덕분에 웹 프레임워크라는 것을 알게 되었고, 한국은 자바 공화국(...)이라서 자바에 대한 정보가 많다는 것을 알게 되었다.

 

나는 회사에 다니면서 공부를 해야했기에, "한국어" 정보가 더 많은 자바로 웹 프레임워크를 배워봐야겠다고 다짐했다. 가볍게 디코봇에 심을 목적이었다면 파이썬으로 구현을 해보려 했겠지만, 개발자로의 전직을 할 의사가 있었기에, 이왕이면 제대로 배워보고 싶다는 마음 때문이었다. 그렇게, 약 3개월 간 열심히 배웠던 파이썬이라는 언어를 놓아주고, 4월 중순 부터 남궁성 님의 자바의 정석 유튜브 강의를 열심히 들었다.

 

남궁성 선생님 덕분에 객체지향이라는 것을 알게되었고, 캡슐화, 추상화, 다형성, 상속 등 여러가지 중요한 개념들을 상세하게 알 수 있었다. 참 좋은 강의인 것 같다. 자바를 처음 시작하는 분들께는 항상 해당 강의와 책을 추천드리는 편이다.

 

남궁성 선생님의 자바의 정석 유튜브
남궁성 선생님의 자바의 정석 책


스프링 웹 프레임워크를 만나다

어느 정도 자바 언어에 대한 기본적인 개념을 깨달았다고 생각할 때 쯤, 단 하나의 개발자인맥 선생님께서 스프링 웹 프레임워크 온라인강의를 들어볼 것을 추천 해주셨다. 그 중에서도, 인프런의 김영한 선생님을 추천 해주셨고, 무료로 열려있는 강의를 들어보니 성향이 잘 맞는것 같아 주저하지 않고 나머지 강의를 구매했다. 그 때는 직장을 다닐 때였으므로, 모든 로드맵을 플렉스 할 수 있었다.(후회 없음!)

 

그 때부터 내 생활 습관이 달라졌던 것 같다. 출퇴근 시간에 노래만 들으면서 다녔던 내가, 여러 인터넷 강의와 기술 관련 블로그들을 챙겨보기 시작했고, 퇴근 후에는 영락없이 컴퓨터를 켜서 게임에 접속하던 내가, 인프런에 접속하기 시작했다. 억지로 한것이었다면 지금까지 유지해오지 못했을 텐데, 매일이 너무 즐거웠다. (그 즐거움이 계속 유지되어, 7개월째 공부를 하고 있다.)


처음으로 웹페이지를 만들어보다

김영한 선생님의 JPA 활용 1편 + 로드맵 1의 MVC2까지를 다 듣고 나서, 간단한 게시판을 만들어보고자 했다. 너무 수업만 들어서 지치기도 했었고, 리프레쉬 할 시간이 필요했기에, 리프레쉬를 프로그래밍으로 하기로 했다. 무언가를 만드는 것이 너무 재밌었기 때문에..

그런데 막상 시작해보니, 그동안 공부했던 시간이 무색하게도 아무것도, 시작조차도 할 수 없었다. 이어서 드는 감정은 좌절감이었다. "그렇게 공부를 했는데, 아무것도 못하는 상태라고..?"라는 생각이 들었다.

 

좌절만 하고있기 보다는 고쳐나가야만 했다. 하나하나 차근차근 다시 구현 해나가며 원리를 되짚어보기로 했다. 당시에 수업을 들으면서 정리해둔 자료가 있어서 다행이었다. 그 자료를 하나하나 다시 훑어보면서 게시판을 만들어나가기 시작했다. 부족한 점은 강의 영상을 다시 보거나, 구글링을 통해 해결하면서 나만의 게시판을 만들게 되었다. (사실 Velog를 클론코딩 해보려고 했지만 실패했으므로 게시판이라고 표현했다.)

 

지금은 소스 코드를 들여다보기 무서운 그 때 당시 만들었던 것
노션에 작성해 둔 그 때의 기록


REST API 찍먹해보기

처음 게시판은 서버사이드 렌더링을 이용한 게시판이었기 때문에, 클라이언트 사이드 렌더링은 어떻게 하는지 궁금했다. 때마침 내가 좋아하는 유튜브 개발바닥의 호돌맨님께서 인프런에 강의를 하나 올리셨고, 심지어 REST API를 이용해 구현하는 블로그였다. 고민 없이 바로 지른 후에, 영상을 보면서 찍먹 해보기로 결심했다. 해당 강의 덕분에 github 꿀팁, QueryDSL, Vue.js까지.. 생각보다 많은 것을 찍먹 해볼 수 있었다. 또한, REST API가 돌아가는 큰 그림도 알 수 있었다.


백엔드 개발자가 되고싶은 욕심이 생기다

REST API를 찍먹 해볼 때까지만 해도, 개발자를 직업으로 가질 생각이 있었지만, 나이 때문에 두려워 쉽게 도전하지 못하고 있었다. 솔직히 우울했다. 이 좋아하는 일을 좀만 더 일찍 만났다면 어땠을까... 라는 생각이 들었기 때문이다. 30대 개발자라는 키워드로 많은 글들을 찾아보니 부정적인 분들 반, 긍정적인 분들 반이었던 것 같다.

 

그러다 우연히 최원진님이 본인도 30대에 개발자가 되셨다며, 못할 것은 없다고 응원한다는 댓글을 남긴 글을 봤다. (글을 다시 찾아보려 했는데 찾지 못했다.) 이 분의 글과 학습 연대기(?) 등을 보면서 느낀 점이 참 많았다. "하겠다고 생각하고 정말로 이루어 내셨구나, 나이는 정말 상관 없구나"라는 생각과 동시에, "나도 할 수 있겠다."라는 생각이 들었다.

 

그 생각이 든 시점부터, 다니던 회사를 관두고 백엔드 개발자에 도전하기로 다짐했다.


회사를 관두고 나서

그동안 일을 하면서 모아둔 돈이 꽤 있었기 때문에, 약 6개월 정도 금전적인 문제는 없을 것이라고 판단되어 9월에 회사를 그만뒀다. 그리고 나서, 그동안 하고 싶었으나, 회사를 다니면서 하기에는 부담이 됐었던 사이드 프로젝트와 스터디 인원들을 모집해 진행 해보기로 했다.

 

사이드 프로젝트

첫 번째로 사람을 모아 진행했던 사이드프로젝트다. UI/UX 디자인은 얼마 없는 내 친구가 도와주기로 해서 너무 고마웠다. 본인에게도 도움이 되었으면 좋았을텐데, 사실 친구의 실력에 비해 우리가 만들 수 있는 범위가 작아서(하찮은 것 밖에 만들줄 몰라서) 미안했다. 하지만, 프론트 개발자와의 협업 경험에 의의를 두고 있다고 말해줘서 고맙기도 했다. 프론트 개발자분은 hola라는 사이트에서 모집을 해서 진행을 했다.

 

처음 진행하는 협업 사이드 프로젝트다 보니, 나에게는 더 의미가 깊었던 것 같다. 중간에 SpringSecurity라는 큰 난관을 만나서 팀원 분들께 양해를 구하고 2주 간 인증 기능 구현에만 매달려보기도, 리플렉션의 정확한 동작을 몰라 많은 에러를 내보기도, 연관관계로 인한 예외를 많이 터트려보기도 하면서 크게 성장할 수 있었던 것 같다. 중간에 프론트 개발자분께서 취업이 되어, 현재는 잠정 중단 상태이나 해당 사이드 프로젝트 덕분에 프론트엔드 개발자는 어떻게 일을 하는지, 서로 소통을 어떻게 해야되는지 등을 배울 수 있던 좋은 기회였다.

 

사이드 프로젝트 깃허브
사이드 프로젝트 관리 노션


스터디

처음으로 모집한 스터디는 "이펙티브 자바" 스터디인데, 그 때 듣고 있던 원티드 프리온보딩 챌린지의 멘토님이 강력 추천해주신 책이기 때문이다. 해당 스터디를 모집할 때, 감사하게도 좋은 분들께서 신청을 해주셨다. 현재도 진행 중이며, 책에서도, 스터디원 분들께도 많은 것을 배워가는 시간이기 때문에 잘 모집했다는 생각이 든다.

 

이 외에도, 토비의 스프링 읽기, Real-mySQL 읽기, 리얼 월드 스터디 등 많은 스터디를 하고있는데, 다양한 사람들에게 다양한 인사이트를 배울 수 있고, 다른 의견을 수용할 수 있는 자세를 배워가는 것 같다. 만약 누가 스터디를 참여할까 고민중이라면, 나는 주저 없이 참여 해보라고 말해주고 싶다.

 

이 외에도 개인적으로 모던 자바인 액션, 오브젝트, 디자인 패턴 등을 공부하고 있다.

이펙티브 자바 스터디


우아한 테크코스 프리코스

사실 우테코는 참여할 생각도 못했었다. 이유는 알고리즘을 전혀 몰랐기 때문에, 코딩 테스트를 잘 통과할 자신이 전혀 없었기 때문이다. 하지만, 이번에는 우테코가 전면적으로 코딩 테스트를 없애고, 프리코스를 참여할 기회를 준다고 했기에, 이는 꼭 해봐야겠다고 생각했다.

 

가볍게 시작했으나, 생각보다 너무 많은 것들을 배울 수 있었다. 클린 코드를 작성하는 방법 부터, 메소드를 분리하는 방법, 클래스를 분리하는 방법, 더 나아가 단위 테스트를 작성하는 방법까지... 내가 지난 날에 작성해왔던 코드들이 꽤 냄새가 나는 코드임을 깨달을 수 있는 시간이었다. 결과는 탈락이었지만, 그래도 한달 간 정말 많은 것을 배울 수 있었다.

 

내년에 프리코스에 또 참여해 볼 의향이 있으며, 프로그래밍 입문자든, 직장인이든 간에 프리코스 참여를 무조건 해보시라고 권고하고싶다.


취업 도전기

결론부터 말하자면 한 30군데는 탈락한 것 같다. 그 중에서 면접을 5번 정도 볼 수 있었는데, 면접을 갈 때마다 느낀것은 "내 기본기가 생각보다 너무 많이 부족하다"라는 것이다. 기술만 알면 전부인줄 알았는데, 그게 아니었던 것이다.

 

면접에서 떨어지는 것은 정말 마음이 아프다. 반면에, 면접에 갈 때마다 배우는 것들이 많았다. 주로 기억나는 것은 "왜 멱등성이 중요할까", "자바가 제공하는 자료구조들에 대해서 아는가", "DB의 인덱스에 대해 아는가"... 등 아주 기본적인 질문들이 주로 기억난다. 공부를 제대로 했다면 대답할 수 있었던 것들일 것이다. 나는 그저 기술을 "사용"하는 것이 성을 쌓는 일인줄 알았는데, 그것은 그저 모래성에 불과했던 것이다.

 

나는 마음을 고쳐먹고, 기본기에 충실해보기로 다짐했고, 위에서 언급한 스터디들을 열어서 진행하고 있다. 내년부터는 슬슬 또 여러 군데에 지원해볼 계획이다. 밑바닥(?)부터 시작하여 많은 실패를 겪으며 쌓아올라가는 것을 좋아해서, 주로 스타트업들에 지원해볼 계획이다. 아무래도 스타트업에서는 바로 실무투입이 될 인재를 원할 것이므로, 그에 맞춰서 학습을 해두어야겠다.

 

자바+스프링 관련 기본기 학습에 좋은 선생님을 한분 소개드리고자 한다. 특히, 자바 코드를 조작하는 다양한 방법과 이펙티브 자바 강의를 추천드린다. 백기선 선생님 인프런

 

가끔 xxx하면 xxx공부 안한겁니다<- 라는 주제로 유튜브에 영상을 올려 뼈를 때리신다.(이미 저는 연체동물이 되었습니다.) 그런 영상을 보면 학습 방향을 올바르게 잡을 수 있는 기회가 되니, 마음 아프더라도 유튜브에서 한번쯤 보시는 것을 추천드린다. 뭘 모르는지 알게되니 아주 좋은 영상임이 분명하다.


내년의 계획

이제는 실무를 경험하고 싶기 때문에, 취업을 목표로 공부할 계획이다. 물론, 네카라쿠배토당야, 몰두센을 갈 기회가 있다면 무조건 가겠지만, 나는 스타트업부터 시작 해보고싶다. 생명공학 연구원으로써 일할 때에도, 조금 큰 기업보다는 스타트업이 내 정서에 맞았던 것 같다. 내가 성장하기도 하면서, 회사가 성장하는 것을 볼 수 있기 때문이다.

 

내년에는 모래성이 아닌 진짜 성을 쌓아볼 생각이다. 기본기에 충실한 주니어 개발자가 되어야겠다. 모르고 사용하는 것 보다는 알고 사용하도록 하자.

 

또한, 북 스터디는 꾸준히 유지할 계획이다. 책이 끝난다고 그대로 끝내는게 아니고, 또 다른 책을 찾아서 공부할 계획이다. 힘들수 있겠지만, 취업을 해서도 공부는 꾸준히 유지 해나갈 계획이다. 내가 좋아하는 공부를 한다는 것이 정말로 즐겁고 행복하다.

 

내년이면 벌써 서른 셋이다. 하지만 누군가에게는 아직 서른 셋이다. 하고 싶은 일을 찾은 것에, 그리고 적어도 20년은 더 할수 있음에 감사하도록 하자. 앞으로의 인생이 너무 기대가된다.

댓글