본문 바로가기
Programming/하루 일기

30대 비전공자에서 해외 개발자가 되기까지 - 국비교육 (2)

by peter paak 2024. 4. 8.
728x90

국비교육을 하기로 한 것은 매우 단순한 이유였다.

 

유명한 부트캠프는 300만원 이상의 금액을 지불해야했고,

교육 및 공부를 제대로 하려면 하루 종일 시간을 투자해야했다.

 

당시 영어 교육 아르바이트를 하며 취업준비를 했는데,

아르바이트를 그만두면 수입원이 없는 나에게 국가에서 매달 지급하는 36만원의 교육비는 가뭄에 단비 같은 존재였기 때문이다.

 

만약이 돈에 여유가 있다면 FLab이나 NextStep같은 교육기관에서 교육을 들었으면 어땠을까 싶다

 

국비교육기관

당시 평촌에 거주했던 나는 가까운 강남으로 학원을 알아보기 시작했다

2018년 당시는 IT붐의 피크였고, 그에 편승하기 위해 많은 국비교육학원들이 우후죽순 생겨나기 시작했다

 

6개월의 기간동안, 4개월은 자바와 스프링 기초를 배우고

남은 2개월 동안 총 2개의 프로젝트를 만들 수 있었다.

 

수강을 시작하면서 목표는 하나였다.

약 40명 정도의 수강생 중에 가장 우수한 실력으로 수료를 하는 것이었다.

 

당시 개발자 붐으로 수강생의 절반은 나와 같은 비전공자였고,

나머지는 모두 대학교를 재학중인 전공생들이었다.

재학중인 전공생들보다 뛰어난 실력으로 졸업을 한다면

수료할 때 쯤 취업을 할 수 있을 거란 막연한 생각을 가지고 있었다.

 

당시, 개발을 시작하기 전 또 다른 다짐이 있었는데

그건 바로 개발 공부를 할 때 영어로 학습하는 것이었다.

 

미국에서 인턴을 할 때 정말 나를 힘들게 했던 것은

분명히 학교에서 배웠음에도 불구하고

영어로 배우지 못했기 때문에 알아 듣지도, 설명하지도 못하는 것이었다.

 

그래서 만약 내가 커리어를 바꾸게 된다면,

영어로 공부하겠다고 마음먹었고

그 결정은 지금의 커리어에 많은 영향을 끼쳤다

 

다행히 개발이란 분야는 대부분이 영문으로 되어 있었고

유데미나 유튜브에서 기초강의를 듣고, 문서를 찾아보면서 이해를 하려 했다.

이해한 내용은 영어로 나 자신한테 설명하려고 했었는데

그러다보니 자연스럽게 많은 내용을 들을 수 있었고

들은 만큼 말할 수 있는 기초가 되었다.

 

취업 준비 - 3가지 실수

두번째 프로젝트를 끝날 무렵 취업준비를 하기 시작했다.

 

당시는 네카라쿠배 위주로 넣었었다.

첫번째 프로젝트를 어느 팀보다 잘 만들었고,

수강생들이 나에게 물어볼 만큼 인정받았었기 때문이다
(물론 내 생각일 수도 있다)

 

당시에는 개발이 쉬워보였고, 나 정도면 쉽게 취업할 줄 알았다

지금 생각하면 정말 터무니 없는 생각이고, 무식하다면 용감한 시기가 바로 이때였다

이때 이후로 향후 4년간은 끝없이 겸손해지는 시기가 되었다

 

당연하게도 여지없이 탈락의 고배를 연달아 마셨는데

만약 다시 준비한다면 아래 3가지를 고치고 싶다

(그래도 네카라쿠배는 가기 힘들 것 같다)

 

1. 알고리즘

알고리즘은 해결할 수 있는 능력이 매우 중요하다. 

흔히 하는 실수는 알고리즘의 개념을 공부하는데 많은 시간을 쏟는 것이다

 

알고리즘은 결국은 잘 풀어야 한다.

 

단순한 brute force 방식으로 풀지도 못하는데 최적화 할 수는 없다.

알고리즘을 학문적으로만 다가가다 보니

정작 실제 알고리즘을 어떻게 푸는지도 몰랐다.

 

다양한 문제를 풀면서 나만의 논리로 문제를 푸는 수 있는 능력을 만들고

문제를 또 풀어보면서 최적화 했다면 어땠을까 싶다

 

2. 프로젝트 리뷰

프로젝트를 만들 때는 정신없이 만든다

프로젝트가 끝나면 어떻게 구현했는지 조차 잊어버린다

 

당시에는 프로젝트만 만들면 끝이라고 생각했다.

단순히 포트폴리오만 예쁘게 만들면 뽑아줄 줄 알았다

그래서 개판으로 짜여진 나의 코드는 항상 탈락의 고배를 마실 수 밖에 없었다

 

현업에서는 어떤 문제가 있었고, 어떻게 해결해나갔는지를 듣고 싶어한다.

 

예를들어, 리액트와 스프링으로 SPA(Single Page Application)로 개발을 했는데.

이유는 그냥 핫해서 라는 어처구니 없는 이유로 시작했다.

 

지금이라면 SPA의 어떤 장점과 단점이 있어서 사용했고,

개발하는 도중 어떤 문제가 있었는데, 어떻게 해결했다, 그래서 어떤 결과가 도출되었는지

등을 설명했을 것이다

 

이렇게 프로젝트를 개발해 놓고, 좀 더 개선할 부분을 고민하고

더 나은 방법으로 문제를 해결했다면 어땠을까 싶었다


3. 기술의 이해

마지막으로는 내가 사용하는 기술의 이해가 거의 없이 사용했다.

 

예를들어 면접 질문 중, @Transactional 어노테이션이 동작 방식을 물어보는 질문을 받은 적이 있다

프로젝트를 구현하느라 무지성으로 사용했었기에 당연히 대답을 할 수 없었다.

현업에서는 사용하는 기술이 어떻게 동작하는지 모르면 오류나 문제해결에 굉장히 어려움을 겪게 된다.

 

@Transactional은 기본적으로 AOP의 힘을 빌려 동작한다.

중복되는 트랜잭션을 열고 커넥션을 획득하고 트랜잭션을 commit 혹은 rollback하는 방식을 한곳에서 관리할 수 있게 만들고, 

내부적으로는 auto_commit=false로 설정하여 커밋을 수동 관리하여 프레임워크가 커밋을 관리한다

커넥션을 가져와서 Thread Local에 놓고 부모와 자식 트랜잭션을 관리한다.

 

이정도 까지는 몰라도 대략적으로 어떻게 동작하는지 알아야

현업에서 문제에 접근할 수 있다고 생각한다.

 

혹시나 취업준비를 하는 분들이 계시다면 

똑같은 실수를 반복하지 않았으면 좋겠다

 

첫 취업

당시의 목표는 무조건 서비스 회사로 가는 것이였다.

 

SI에 대한 소문을 정말 많이 들었기에 절대 가지 않으리라 다짐을 했다.

(자바 인력시장이라고 들어보았는가...)

 

하지만, 그런 회사는 경력자 수준의 실력을 요구했었고,

그에 만족하지 못했던 나의 실력은 점점 더 작은 회사로 눈을 돌리게 만들었다.

 

2개월의 취준 기간동안 많은 회사에서 거절을 맛보다

드디어 영통에 있는 작은 서비스 회사에 최종 면접을 가게 되었다.

 

4명이 운영하는 매우 작은 회사였고, 

작은 모바일 서비스도 운영 중이였다.

CTO 한명이 모든 서비스를 운영 중이었고, 자바와 서블릿 그리고 안드로이드로 구현되어 있었다.

 

나로서는 나를 가르쳐줄 CTO가 있고,

자바와 서블릿으로 개발, 운영할 수 있는 절호의 기회라 생각했다

추가적으로 연봉도 내 기준으로 상당히 높았다.

 

30분 가량의 면접을 마치고, 다음날 합격 문자를 받았다. 

 

작은 회사였지만, 개발자로서 실력을 쌓을 수 있다는 기대감에 불타올랐고

더 큰 회사로 이직하자는 마음으로 회사로 출근을 하였다

 

그리고 다음날 CTO가 퇴사하였다

 

- 30대 비전공자에서 해외 개발자가 되기까지 - SI 회사 (3)

- 30대 비전공자에서 해외 개발자가 되기까지 - 스타트업 (4)

- 30대 비전공자에서 해외 개발자가 되기까지 - 유니콘 (5)

- 30대 비전공자에서 해외 개발자가 되기까지 - 독일 회사 (6)

 

728x90