티스토리 뷰

# 글 목록

- 문과생인 내가 개발자가 되기까지 #1 (회사 퇴사 이야기)

- 문과생인 내가 개발자가 되기까지 #2 (학원 등록)

문과생인 내가 개발자가 되기까지 #3 (구직 1)

- 문과생인 내가 개발자가 되기까지 #4 (구직 2)

- 문과생인 내가 개발자가 되기까지 #5 (마지막)

 

코딩테스트

내가 경험한 코딩테스트는 총 세 가지였다. 가장 흔한 방식은 안드로이드 프로젝트를 요구사항에 맞게 만들어 소스코드를 제출하거나 깃허브에 올리는 형태였고, 또 하나는 오프라인 혹은 온라인으로 알고리즘 문제를 푸는 형태, 그리고 마지막은 손코딩이었다. 나는 프로젝트 제출형을 선호했다. 내가 제출한 코드가 대체적으로 결과가 좋았기 때문이다. 그래서 조금씩 자신감이 생겼다. 다만 프로젝트 제출형은 시간과 노력이 많이 들어가는 점이 단점이다. 그런 단점에도 불구하고 비전공자인 내가 좋은 인상을 줄 수 있는 가장 좋은 방법은 소스코드를 보여주는 것이라고 생각했다.

 

두 번째는 알고리즘 테스트다. 알고리즘 테스트는 두어번 봤지만 자료구조를 제대로 공부하질 않아서 어설프게 풀 수 밖에 없었다. 자료구조에 대한 지식이 전무하다시피 하던 당시 나는 Stack이나 Queue를 사용해본 적도 없었다. 그래서 모든 문제를 반복문, if문, 리스트를 사용해서 풀려고 했다. 당연히 결과가 좋을 수 없었다. 그래서 알고리즘 시험을 대비해 조금씩 자료구조를 공부하고 알고리즘 문제도 풀기시작했다.

 

마지막은 흔히 손코딩이라고 하는 방식이다. 필기도구를 이용해 종이에 코드를 적으면서 문제를 풀어나가는 방식이다. 손코딩은 딱 한 번 경험했다. 경험이 없어서 상당히 긴장을 많이했다. 영어로 된 지문이 출력물로 주어졌고 연결리스트(LinkedList)의 함수를 구현하는 것이 문제였다. 1시간 넘게 문제를 풀었지만 모든 문제를 풀지는 못했다. A4용지 앞뒤면을 꽉채우고 새 종이의 한 면을 더 사용했던 것 같다. 면접관에게 내가 작성한 코드를 제출하고 물어보시는 여러 질문들에 아는 만큼 대답했다. 예를 들어 연결리스트에서 아이템을 삭제하는 remove()함수는 어떻게 구현하면 되겠냐는 질문에서 나는 아이템 양쪽의 연결을 끊고 null 처리를 한 다음 끊어진 양쪽을 서로 이으면 된다고 대답했는데, 면접관은 null처리를 할 필요가 없다고 하셨다. 왜냐하면 참조를 받지 않으면 가비지 컬렉터에 의해 알아서 지워질 거라는 것이었다. 이런식으로 내가 푼 문제에 대한 여러 질문이 오고 가며 추가 설명을 덧붙여주셨다.

 

면접

첫 회사의 실패를 거름삼아 그 뒤로는 기술면접에 나올만한 것들을 위주로 공부하며 정리하기 시작했다. 구직 중에도 오히려 공부할 것이 너무 많았다. 기술면접 준비도 해야했고 코딩테스트 과제도 계속 해야했다. 그렇다 보니 충분히 준비된 상태에서 면접에 갈 수 없었다. 그래서 면접에 다녀오면 항상 나왔던 질문들을 모두 정리해서 기록했고, 다른 곳에서도 물어볼 법한 질문들은 특별히 자세히 공부하고 OneNote 정리했다. 이런 방식이 상당히 도움이 많이 되었다. 그리고 다른 사람들이 블로그에 정리해둔 면접 질문들도 많이 참고했다. 이때 정리한 글들은 나중에 이직 때에도 찾아보게 되었고, 그 때도 마찬가지로 이런 방식으로 정리해서 기록으로 남겨두었다.

 

기술면접에서도 자료구조에 대한 질문이 나오는 경우가 있지만 나는 안드로이드 개발자로 지원했기 때문에 대체적으로는 안드로이드 관련 질문이 많았다. 그리고 간혹 네트워크나 객체지향 프로그래밍에 대한 질문도 나오기도 했고 이 밖에는 Java나 Kotlin 언어와 관련된 질문들도 꽤 자주 나왔다. 최대한 아는 것을 자세하게 설명하려고 했다. 알고 있는 것이라도 예상하지 못한 질문은 답할 때 횡설수설하게 될 수 있다. 그래서 면접에 나올만한 것들을 정리할 때 실제로 말을 해보는게 좋은 것 같다. 그리고 모르는 것은 민망해도 모른다고 답했다. 

 

그 외에 항상 받는 질문은 왜 개발자로 직업을 바꾸고 싶은가에 대한 것이었다. 이전 회사들에서 어떤 일들을 경험했는지, 어떤 이유로 개발자라는 직업을 선택하게 되었는지를 의외로 자세히 묻는 분들이 많았다. 그 때마다 나의 이야기를 솔직하면서도 차분하게 나누었다. 대부분은 내 이야기를 들으시며 수긍하시는 듯 했고, 더러는 상당히 흥미로워하시는 분들도 있었다. 개발자 경력만 놓고 봤을 때는 이력서에 보이는 내 경력이 그렇게 매력적일 것이라고 생각하지는 않는다. 그러나 나에게는 내가 살아온 길이 자랑스럽고 소중하다. 그래서 매번 같은 질문을 받을 때마다 그런 내 마음을 담아 이야기를 할 수 있었다. 나중에는 하도 많이 말해서 술술 이야기하게 되었지만 그래도 항상 진솔함을 담아 이야기하려고 노력했다.

 

나는 원래 긴장을 잘 하는 편이다. 특히 면접 경험이 많지 않기 때문에 면접 때 긴장을 많이 할까봐 걱정이 되었다. 그래서 이 문제로 하나님께 기도하고 도움을 구했다. 그러자 내가 갈 회사가 분명히 있다는 생각이 들었다. 마음이 차분히 가라앉고 걱정이 사라졌다. 다만 나는 모든 과정에 최선을 다하면 될 뿐이었다. 면접 장소에서 사람들을 만나면 말투와 표정 그리고 행동거지에도 항상 신경을 썼다. 항상 면접 30분 정도 전에 도착해서 회사 주변을 걸으며 이 회사들이 좋은 회사로 성장하도록  그리고 그날의 만남을 하나님이 축복해주시도록 기도했다. 그 결과 모든 면접에서 크게 긴장하지 않고 침착하게 이야기를 나눌 수 있었다. 그리고 신기하게도 면접에 가는 일이 점점 재미있어졌다. 많은 회사를 직접 가서 보고 사람들과 이야기를 나누는 모든 과정이 흥미진진했다. 결과가 좋지 않아도 크게 실망하지 않았다. 면접 자체만으로도 배우는 것이 많았다.

 

도시 속을 걸으며 내게 기회가 주어졌음에 감사했다.

 

첫 연봉 협상

구직기간은 약 2개월 정도 되었다. 첫 면접 후에 이대로는 안되겠다 싶어서 3주 정도를 더 공부하는데 사용했다. 처음에는 어떤 회사에서 연락이 올까, 내 이력서가 어떻게 보일까,  정말 취업할 수 있을까. 이런 걱정들이 정말 많았다. 그러나 결과적으로는 감사하게도 여러 회사들의 연락을 받았다. 많은 회사들이 내 이력서를 좋게 봐주고, 내 코드를 좋게 평가해주었다. 처음으로 한 회사에서 함께하고 싶다는 연락을 받았을 때 날아갈 듯이 기뻤다. 나도 그 회사의 면접 경험이 너무나 좋았고, 그들과 함께 일한다면 즐거울 것 같았다. 그리고 곧 그들이 제시하는 연봉액이 전달되었다. 그러나 내가 제시한 희망연봉에 미치지 않았다. 고민이 많아졌다. 고민을 마치는 데 하루 정도 걸렸다. 결론은 내가 정해둔 연봉의 하한선을 수정하지 않기로 했다. 큰 맘을 먹고 개발자가 되기로 결정한 이상 연봉의 문제에서 만큼은 더욱 기준을 세우고 스스로 타협하지 않기로 했다. 나의 의사를 회사에 전했고 서로의 길을 응원하며 만남을 마무리했다. 이 일 이후로 나는 더욱 확신이 생겼다. 구직이 좀 더 길어지더라도 연봉을 낮추지는 않겠다고 마음 먹었다. 그렇기 때문에 나는 더욱 집중해서 부족한 부분을 보완하고 준비해야만 했다.

 

입사를 결정한 회사

2019년 5월에 아내와 중국 상하이를 여행중이었다. 그곳에서 이메일을 하나 받았는데, 로켓펀치를 통해 지원한 회사중 한 곳에서 면접을 하고 싶다는 내용이었다. 이 회사는 위에 적은 회사 중 유일하게 손코딩 테스트를 한 회사였다. 이메일을 주고 받는데 어투가 싸늘해서 신경이 쓰였다. 한국으로 돌아와 틈틈히 손코딩에 대한 사람들의 후기를 찾아보았다. 어려울 것 같았다.

 

당일에 회사를 찾아가보니 신기하게도 내게 메일을 쓰신 분은 메일과는 달리 상당히 친절하셨다. 그분은 이제 막 설립된지 1년된 스타트업의 CTO였다. 손코딩 테스트는 그야말로 쥐어짜내듯이 문제를 풀었다. 풀면서도 '이건 망했다'는 생각이 많이 들었다. 그리고 제출했는데 의외로 전공자들도 백지를 많이 냈다면서 수고했다고 말씀하셨다. 그리고 이후에 여러 기술적 이야기를 나누면서 이 사람과 함께 일하고 싶다는 생각을 많이 했다. 회사는 비록 작고 불안정하겠지만 내 성장을 위해서라면 더없이 좋겠다는 생각이 들었다.

 

그리고 약 일주일 뒤에 합격소식을 받았다. 처후에 대한 협의를 하고싶으니 다시 방문해달라는 연락을 받았다. 다소 긴장이 되었다. 약속 당일 회사로 갔을 때 다른 이사님 세 분을 더 만났다. 아직 처우협의가 끝나지 않았는데 마치 입사하기로 된 것 처럼 이야기가 흘러갔다. 좋은 분위기였다. 그리고 다시 CTO와 둘이 회의실에 남아 처우 협의를 했다. 연봉은 내가 정한 하한선에 맞춰졌다. 물론 더 올리고 싶었지만 아직은 그런 협상에 익숙하지 않았다. 식사비는 회사에서 지원해주고, 일주일에 한 번 재택근무를 할 수 있는 조건이었다. 개발장비는 내가 원하는 것으로 구매해주신다고 했지만 맥북을 추천하셔서 맥북프로를 사용하게 되었다. 모두 만족스러웠고 이 사실이 믿기지 않았다. 드디어 내가 개발자가 된 것이다.

 

첫 회사에서 내가 사용한 자리


이 때가 작년 2019년 5월이다. 꽤 오래전 이야기처럼 느껴진다. 2017년 말에 무역회사를 퇴사하고 개발자가 되기로 마음먹었으니 구직까지 1년 반 정도가 걸렸다. 드디어 개발자로 일을 시작하게 된 것이다. 그 뒤에 많은 일들이 일어났다. 회사에도 많은 우여곡절이 있었지만 그 사이 나도 많이 성장할 수 있었다. 면접관으로 들어오신 그 CTO는 개인적 사정으로 몇 개월 뒤 회사를 떠나다시피 했다. 그리고 내가 퇴사하기 전까지 나는 회사의 유일한 개발자로 일했다. 부족한 실력으로 회사에 누를 끼치지 않기 위해 최선을 다했지만, 한 편으로는 내 실력을 더 키우고 성장해야 한다는 고민이 갈수록 진지해졌다. 올해 다시 이직을 하여 지금의 회사로 왔다. 그 때의 시간들이 소중하고 감사한 기억으로 남아있다.

 

사람의 길이라는 것이 앞으로 어떻게 나아갈지 알 수 없다. 나도 내가 개발자가 되리라고는 불과 3년 전까지 꿈에도 생각해보지 못했다. 공부하는 동안 결혼을 했고, 지금 아내의 뱃속에서는 아이가 자라고 있다. 1년 뒤에 내 삶이 어떤 모습일지 상상이 안된다. 다만 매일 하루하루 성실히 살고 성장하길 원한다. 인생에서 예측할 수 없는 많은 일들이 사람의 삶을 더욱 다채롭고 풍요롭게 만들어주는 것 같다. 삶이 예측가능하다면 무슨 재미가 있을까. 앞으로 더욱 파란만장할 내 삶에 응원을 보낸다.

 

댓글