이직을 준비할 때 내가 했던 노력들.

Ssabae·2020년 12월 29일
7
post-thumbnail

이 글을 적는 계기

NextStep에서 진행하는 우아한테크캠프 Pro의 서브 코너인 네트워킹 데이에 이직에 관련된 고민을 올린적이 있었습니다.

그 고민을 적고 몇주 뒤 새로운 회사에서 일하는 기회가 생겼고 이직을 마음먹고 준비했던 사항에 대해서 정리해보라는 포비의 권유에 간만에 이렇게 블로그를 작성하게 되었습니다.

History

저는 SI에서 근무중이고 위에서 시키는 일들의 도메인이 어떤것이건 무작정 개발을 했었습니다.
그래서 이력을 보면 되게 화려해보일 수 있겠지만 실제로 그 일들의 깊이가 깊지 않습니다.
그 동안 해봤던 프로젝트들을 간략하게 나열만 하자면

  • 안드로이드 하이브리드 웹앱 개발
  • 리눅스 자동설치 패키지 구성
  • 싱글보드 컴퓨터(라즈베리파이)를 이용한 IoT
  • Wowza 서버를 이용한 360' 라이브 영상통화(스트리밍)
  • 공공기관 SI (혼자서 Android, iOS, Backend, Frontend 모두 담당)
  • 로봇 팔 IDE 개발
  • Docker를 이용한 Web Base IDE
  • 등등 수많은 일들...

대충만 봐도 전혀 일관성이 있지 않은 프로젝트들입니다.

그렇게 계속 주어진 일들만 하고있던 와중에 저에게 Backend 프로젝트를 혼자 담당하게 될 기회가 생겼습니다.

프로젝트의 기초 뼈대를 만들고 하나하나씩 구성해가면서 Backend의 재미를 느끼고 있었고
퇴근 후 다음날 개발해야할 부분에 대한 자료들을 찾아보고 잠이들때까지 구상을 하거나 그동안 잘못 짜여진 코드들을 수정할 생각을 하며 잠에들었습니다.

그렇게 Spring 개발에 한창 재미가 들었을 무렵 이 분야만 하고싶다는 욕망이 머릿속에 심어졌던거 같습니다.

나도 멋진 Backend 개발자가 될 수 있을까...?
밑져야 본전이니까 한번 마음먹고 열씸히 해보자!

이렇게 저의 도전은 시작 되었습니다.

내가 했던 것들

1. 1일 1커밋

하나의 습관을 만들기 위해서는 100일의 시간이 필요하다고 합니다.
100일만 노력하면 그것이 습관이되어 자연스레 거부감없이 매일매일 할 수 있는 상태가 됩니다.

그래서 100일동안 빠지지 않고 적어도 하루에 1커밋을 하는 목표를 세웠습니다.

  • 의미가 없는 커밋이라도 괜찮다. 나는 1일 1커밋의 습관을 들이는것이다.
  • 적어도 하루에 3~4시간씩은 꼭 공부를 한다.
  • 3~4시간 공부를 못했으면 다른날 못한만큼 더 많이 한다.
  • 공부하면서 정리한것을 Git에 정리하여 올린다.
  • 약속은 최대한 잡지 않는다.
  • 약속이 있다면 그 전날 새벽 또는 점심시간을 이용하여 커밋을 한다.

그렇게 TIL (Today I Learn) 이라는 운동을 하였고
매일매일 습관적으로 공부하는 인생이 시작되었습니다.

2020/12/30
해당 블로그 작성시의 Git 상태

2021/04/21 근황
지금은 281일이 지나고 있습니다.
지금생각해도 1일 1커밋은 시작하길 잘했다는 생각이듭니다.

2. 잠을 줄이기

일하면서 공부하는게 쉽지 않습니다.

퇴근하고 밥먹고 씻고 공부할 준비를 하면 적어도 8~9시정도는 될것입니다.
공부할 시간을 확보하려면 하루 일과에서 필수적인 시간(밥, 출퇴근, 일)은 놔두고 다른곳에서 시간확보를 해야합니다.

그래서 저는 잠을 줄였습니다.
(개인적으로 회사와 집이 가까워서 남들보다 출퇴근에 대한 시간 Save가 많았습니다)

제가 공부했을때의 일과 사이클을 간단하게 설명하자면

  • 08시 기상
  • 09시 ~ 18시 근무 (밥먹고 남는 점심시간엔 쪽잠)
  • 19시 저녁 식사
  • 20시 ~ 22시 1차 취침
  • 22시 ~ 05시 공부
  • 05시 ~ 08시 2차 취침

위 사이클로 3~4개월정도 한거 같습니다.
요즘에는 밥먹고 바로 자는게 안좋은거 같아서 1차 취침을 건너띄고 2시~4시 정도에 잠에 듭니다.

잠을 줄인것에 대한 보상으로 주말중에 하루는 오후 늦게까지 잠을 잔다거나 밀려있는 유튜브 채널 영상을 보거나 넷플릭스 감상 또는 맛있는 안주에 소주한잔 하면서 하루를 편하게 사용합니다.

3. 블로그 작성

공부를 하다가 대충 알고 넘어가는 경우는 굉장히 흔하게 발생됩니다.
내가 정말 A를 잘 이해했는지에 대한 검증은 A를 모르는 직장동료나 친구에게 A를 이해시키게 설명을 해봄으로써 실감할 수 있을겁니다.
저는 주변에 그런 동료나 친구가 없기에 다른것으로 대처해야 했습니다.

저는 그것을 블로그로 대신하였습니다.

블로그는 불특정 다수에게 공개가 되는곳이라 이론이나 기술에 대한 검증이 많이 필요합니다.
내가 이해한게 정말 맞는건지 잘못된 지식으로 남에게 설명을 하고있는것이 아닌지 하나하나 찾아가면서 지식을 다듬어가는 과정이 들어가게 됩니다.
그러면서 내 머릿속에 구체화 머릿속에 오래오래 남게됩니다.

그리고 블로그를 작성하는 가장 큰 이유는 사람의 기억은 흐릿해지거나 조작되기 마련입니다.

그래서 블로그에 글들을 추후에 다시한번씩 찾아보면서 흐릿했던 기억을 다시 선명하게 남기는데에 큰 도움이 됩니다.

4. 코딩 테스트 연습

저는 알고리즘을 공부 하기 전에 코딩테스트에 대한 두려움이 있었습니다.
내가 이런것도 못풀면 내 능력에 대한 자괴감이 들게 뻔했기 때문입니다.

대부분의 회사에서 서류통과가되면 코딩테스트를 진행하고 있어 알고리즘 공부는 불가피한 선택입니다.
매도 먼저맞는게 낫다고 무작정 알고리즘을 공부하지도 않고 문제부터 풀어봣습니다.
프로그래머스 라는곳에 가입을 하고 하나하나 천천히 알고리즘 문제를 풀었습니다.

처음에는 정말 풀수 있는게 많이 없었습니다.
하지만 알고리즘에도 요령이 있고 방법과 패턴이 있습니다.
많이 풀수록 많이 보이고 다양하게 보입니다.
그래서 무조건 많이 풀어보려 노력했습니다.

  • 난이도 있는 문제는 3시간 이상 투자하지 않는다
  • 난이도가 낮은거 같은데 방법을 모르는거 같으면 1시간 이상 할애하지 않는다.
  • 풀이 방법을 보는건 부끄러운게 아니다. 내가 모르는것이라 그렇다.
  • Leet Code, Hackerrank 등 영어로 된 사이트에 익숙해져야 한다.
    • 많은 회사에서 코딩테스트를 영어 사이트에서 진행한다.(문제, 툴 설명이 전부 영어)
    • 한 회사에서도 코딩테스트 시험보는 사이트들이 여러가지이다. (무엇이 걸릴지 모른다)
    • 다양한곳을 경험하여 많은 방법들을 습득하는게 좋다

프로그래머스에서 레벨 1, 2에 해당하는 문제는 모두 풀었습니다.
LeetCode는 정말 좋은 문제들이 많습니다.
대부분의 경력직 코딩테스트는 프로그래머스의 1~3레벨의 수준에서 나온다고 보면됩니다.

알고리즘 공부는 유료강의보다는 Youtube 영상 의주로 공부하는것이 훨씬 더 도움이 된거 같습니다.
유료강의는 대부분 문제하나 올려놓고 어떻게 푸는지에 대해서만 설명만 해줍니다.
그런것보다는 LeetCode 가서 비슷한 문제에 해설을 보는것이 더 시간과 비용을 아낄 수 있습니다.

저에게 도움이 되었던 유튜브 채널입니다.
이자리를 빌어 승지니어님과 권오흠님에게 감사하다는 말씀 전하고싶네요.

Domain 지식개발 및 다른 공부 때문에 알고리즘은 요즘 너무 신경을 못쓰고있었지만
추후에 하루에 한문제씩 푸는 연습을 진행할 계획이 있습니다.
그때는 혼자가 아닌 여러명이서 같이 진행하는 방식의 스터디를 만들어 진행할 생각입니다.

5. Spring 개발자 커뮤니티 형성

혼자서 외롭게 공부하면서 겪게되는것이 궁금한 사항에 대해서 문의할곳이 많이 없다는것입니다.

그래서 공통된 사람을 모으기 위해 카카오톡 오픈 채팅방을 만들었습니다.

커뮤니티에서 좋은점은 새로운 키워드를 들을 수 있다는겁니다.
다양한 질문 / 응답 속에서 모르는 키워드들이 나오면 한번씩 검색하면서 지식의 범위를 넓힐 수 있습니다.
그러면서 자연스레 공부할것들도 많아지고 제 자신도 점점 성장해 나간다는것을 실감합니다.

다른분이 하는 질문에 대한 답변을 할때도 블로그와 마찬가지로 한번 더 검증을 하여 선명한 기억을 살리는데 많은 도움이 됩니다.

그리고 답변이 없고 혼자 해결한 경우, 해결 방안에 대해서 공유하는것을 권장하고있습니다.
이 부분은 정말 좋은 문화로 자리매김한거 같아서 뿌듯합니다

커뮤니티 운영에서 가장 조심해야 하는 사항은 친목 / 정치 / 종교 라는것을 저는 잘 알고있던지라 대화의 내용이 그쪽으로 흘러들어가는것을 차단하는것에 집중하였습니다.

개인적인 이야기들이 많아지면 다른 사람들로 하여금 지루하거나 소외감을 느낄 수 있어 기술적인 이야기만 하도록 운영하는데 힘을 썼습니다.

현재는 자연스레 기술이야기만 하는 문화가 형성이 되었고 개인적인 이야기로 흘러들어간다고 느끼면 각각 자제하는 분의기가 형성이 되었습니다.

같이 카카오톡에서 Spring Boot에 대해서 이야기 하고싶으신 분은 아래 링크로 접속해주세요
Spring Boot Q&A 및 팁

6. 최대한 많은 면접보기

기술면접은 정말 어렵습니다.

저 같은 경우 Backend에 대한 경력이 많지 않아 면접관의 기준에 충족하기는 더욱더 힘들었습니다.

하지만 면접을 자주보길 추천하는 이유는 면접을 보면 볼수록 내가 모르는 분야를 찾을 수 있다는겁니다.
그리고 내가 생각하는것을 잘 전달하여 말할 수 있는 능력을 키울 수 있습니다.

면접은 자주 보면 볼수록 합격 기회도 많아지고 내가 더 성장하는 밑 거름이 됩니다.

이 파트는 민감한 부분이 많아서 자세한 사항은 패스하도록 하겠습니다.

7. 서로서로 자극받기

공부는 누구나 하기 힘들고 고달픈거 같습니다.
공부를 해야겠다는 욕구가 사라지기도하고 자기자신과 어느정도의 타협을 통해서 공부가 느슨해집니다.
그럴때일수록 자극을 받는게 중요한거같습니다.
저는 그럴때 Youtube에 자극영상, 동기부여 이런 영상을 찾아서 보면서 그런 유혹들을 뿌리칩니다.

그리고 우아한테크캠프Pro 멤버들끼리 모여 만든 Discord가 있습니다.
여기서 멤버들이 공부 시작과 끝나는 시간을 작성합니다.

여러명이서 공부하고 있다는것을 보면 저도 자극을 받아서 공부를 미루지 않게 되는 계기가 되는거 같습니다.

마무리

2020년에 코로나라는 큰 사건이 있어 다들 힘든 한해였지만
역으로 자연스레 공부할 수 있는 환경과 변명을 만들어 주는게 아닐까 싶습니다.

약속은 최대한 미룰 수 있고 재택으로 출퇴근시간을 아끼면서 공부가 가능했었습니다.

개발자는 평생 공부해야하는 직종이니 만큼 미리미리 해두면 반드시 좋은 결실이 있다고 확신합니다.
앞으로도 계속 공부하는것을 소흘히하지 않을거고 지속적으로 꾸준히 성장해 나갈겁니다.

글 읽으시면서 궁금한 점이나 문의사항은 llsb156@gmail.com 메일로 보내주시기 바랍니다.

긴 글을 읽어주셔서 감사합니다.

profile
Front-End 부터 Back-End 까지 잘 하고 싶은 개발자

1개의 댓글

comment-user-thumbnail
2021년 9월 26일

글 잘 읽었습니다ㅎㅎ
글을 읽으면서 정말 열심히 학습한 것이 느껴지네요..정말 대단하시다고 생각해요!
저도 많은 자극이 되었습니다! 감사합니다!

답글 달기