Friday, January 18, 2019

Interview review 2017 #6

Interview review 2017
1. 원격 지원 및 보안 솔루션 제품 개발 회사
2. Unity를 이용한 인테리어 디자인 앱 개발 회사
3. 의료 분야 외국계 회사
4. AR/VR 교육 컨텐츠 앱 개발 회사
5. 쇼핑몰 회사

-------

6. 반도체 정보 수집 솔루션 + 파견 회사

지금 생각해 보면 여기는 솔직히 그냥 이력서 넣어본 회사였던 것 같다. 그런데도 넣은 이유는 채용 조건이 만족해서였는데

  • 작은 회사 (직원 10명 이하) 인데도 솔루션을 가지고 있다는 점
  • 반도체 회사에 납품하고 매출을 올리고 있는 점
  • 사용하는 기술이 내가 익숙한 C#, C++, Windows 였다는 점
이다.

마음 속에는 일하고 싶은 회사는 아니지만 연봉 조건만 좋다면, 그냥 일 해야지 생각을 했던 터라 큰 부담감도 없었다.

채용공고를 보고 이력서를 제출하니 다음날 바로 연락이 왔다. 사실 연락이 올 수 밖에 없는게 맞았는데, 채용공고에 매우 부합하는 기술 셋과 솔루션 개발 경험, 파견 경험까지도 있었으니까. 내 일정을 보고 빈 시간을 얘기해서 일정을 맞추고 평일 저녁 쯤 면접 일정을 잡았다.

회사 위치는 분당 수내역과 매우 가까운 곳에 위치해 있었다. 집에서 면접 시간보다 조금 일찍 출발해 판교의 전 회사 근처 샐러드집에서 열심히 모아온 포인트를 음료수와 빵 사는 걸로 포인트를 다 썼다. 회사 다니면서 자주 가다 보니 포인트가 13000 포인트 정도인가 쌓였었는데, 왠지 오늘 아니면 올일이 없을 거 같아서 그랬다. 그리고 운동도 할 겸 걸어서 수내역 까지 갔다. 판교(판교역 아님 주의)에서 수내까지 걸어서 가본 사람이 있을지는 모르겠지만 빡세게 걸어가면 대략 45~50분 정도의 시간이 소요된다. 

상가 건물 3층엔가 작은 사무실이 있는 곳을 방문해서 사장님과 팀장님, 실무자로 보이는 분 세분하고 면접을 진행했다. 첫 질문은 우리 회사가 뭐하는 회사냐고 물어보는 것 부터 시작했는데, 잘 모르고 이력서 들이미는 사람들이 많아서 그런건지 몰라도 자신들이 하는 일에 대한 이해도가 있는 사람과 면접 보기를 원한 듯 보였다.

대충 내가 했던 일과 아는 기술 위주로 얘기하면서 면접 진행 하다가, 실무자로 보이시는 분이 실제 문제 해결을 위한 질문을 던졌다. 자신들이 어떤 설비들과 장비에 데이터를 마구 수집해서 그걸 잘 정리해서 보여줘야 하는데 대부분 비정형 데이터라는 얘기를 해서 이걸 해결하려면 어떻게 해야 하는지를 물어봤다.

딱히 정답이 있는 문제는 아니어서 아무리 데이터가 비정형으로 온다 하더라도 어떤 규칙이 있을 것이고 그 규칙성을 찾아 적당히 파싱하던지 필터링 해서 정형 데이터 형태로 만들고 그걸 시스템에서 불러들이게 하면 되지 않겠냐고 대답을 했다.

그렇게 얘기를 주고 받다 보니 자기가 원한 답이 아니었다라는 표정이 눈에 확 들어왔다. 뭐 문제 자체가 좋고 나쁘고를 떠나서 평가하는 방법은 괜찮아 보이긴 했지만 뭐 힌트를 준다던가 해결해 나가는 방법을 논의했다기 보다는 여느 면접질문과 마찬가지로 "너가 어느정도 알고 있느냐" 수준의 질문이라 면접관의 얼굴 표정을 보고는 썩 좋은 느낌은 받지 못헀다.

그리고 기술과 역량 관련된 질문 보다는 반도체 공장으로의 파견 근무, 팀장 역할, 술 마시는 분위기 등 업무 외적인 자세와 할 수 있는지에 대한 여부를 물어보는 질문을 했을 때도 솔직히 대답해 줬다. 파견 근무는 예전회사에서 지겹게 했고 심지어 반도체 공장에도 들어가 그 회사 솔루션 커스터마이징 해주는 일까지 했다고 했기 때문에 이 부분은 문제는 없었다.

그 외에 술은 좋아하지만 잦은 술자리는 안좋아한다. 오히려 술자리가 없는게 좋다. 그리고 팀장 역할이라면 여태 해 왔으니 그건 잘 할 자신이 있고 같이 일해보면서 판단해 보셔도 될거다 라고 하니 사장님은 꽤나 좋아하는 눈치였다. 물론 술자리 자주 갖는 거에 대해서는 아쉬워 했지만 술 자체를 싫어하지는 않는다는게 먹혀 들어간 것 같다.

그런데 문제는 뭐냐 하면 요즘 면접 추세와 달리 인성 면접에 들인 시간이 꽤나 됐다는 건데, 지금 돌이켜 보면 그런걸 원하는 회사는 가"족"같은 회사나 라인 잘 타서 정치질 하면서 회사 생활 해야 할 가능성이 있어 보이는 바, 처음 생각했던 대로 안가길 잘했다는 생각이 든다.

최종적으로 사장님과 단독으로 연봉 협상까지 진행했는데, 이점은 상당히 마음에 들었다. 사람을 신중히 보고 뽑아야 하는 점에서는 회사 쪽에서는 안좋을 수는 있는데 면접 보는 사람의 입장에서는 시간 많이 안뺐기고 임원 면접이라던지 연봉 협상을 위한 추가 시간을 투자하지 않아도 된다는 점에서는 좋은 것 같다.

연봉 수준은 원래 받던 것 보다는 조금 낮춰서 얘기했고, 일단 알겠다고는 하고 나왔다. 나오면서 생각한건 그 연봉으로 연락와서 같이 일하자고 해도 안하겠다고 얘기할 마음을 먹었는데, 그날 이후로 영원히 그 회사에서 연락은 오지 않았다.

Monday, January 14, 2019

회사에서 하는 일을 잘 하는 게 자신의 개발 실력을 증명해 주지는 않는다. (1)

제목이 좀 자극적이어도 글을 끝까지 읽기를 권한다.

개발 실력이라는 것?


실무 경험이 없는 그리고 개발자가 되려고 하는 사람 중에는 이렇게 생각하는 사람이 많을 것이다.

- 빨리 회사에 입사해 도움이 되는 사람이 되려고 하는 것
- 회사가 내 개발 능력을 잘 써주길 바라는 것

그런데, 사실 일해보면 알겠지만 위 두 생각은 틀린 생각이다.

일단 회사에 도움이 되는지 안되는지는 일을 함께 해 보지 않고 알 방법은 없다. 뭐 같은 기술을 쓰고 같은 개발을 하는 입장에서는 도움이 된다고 생각할 수 있지만, 근본적으로 일을 하는데 도움이 되고 안되고가 판단의 포인트가 아니라는 뜻이다. 회사는 제품 개발이 되고 수익이 나는 상황을 원하게 되어 있고 그러려면 일 하는 사람에게 요구하는건 개발 하면서 배웠던 개념이라던지, 좋은 개발 문화, 성장할 수 있는 환경, 코드의 품질을 높이는 작업 등등을 원하는 게 아니고 어떻게든 동작하는 코드를 작성해서 버그가 없이, 그리고 일정에 맞춰서 문제 없이 일을 끝낼 수 있는지에 대한 여부만 보게 되어 있다는 것이다. 즉, 시키는 일을 별 문제 없이 잘 해서 월급 줘 가며 일 할 수 있는 사람인지가 회사 쪽에서 가지는 시각이라는 것이다. 뭐 이것도 내가 여차저차 잘 해서 스스로 회사에 도움이 됐다고 생각하면 좋은 케이스이지만 그렇게 개발을 하다 보면 내 개발 실력이 느는게 아니라 회사가 원하는 일에 맞게 잘 훈련되서 거기에 맞춰 열심히 노동력을 제공 해 주고 월급을 받아왔다는 게 팩트인데, 그걸 잘 모른다는 게 사회 초년생들의 흔한 착각이다.

또 회사가 나의 능력을 잘 써주길 바라는 마음이 있는건 좋지만, 아마 반대의 상황으로 흘러가는 게 더 많을 것이다. 즉, 나의 능력과 흥미가 어디 있는지 크게 관심이 없고, 회사가 원하는 방향대로 나의 능력을 그쪽에 맞춰 키워나가는 걸 더 원한다는 것이다. 예를 들면 내가 가진 능력은 코드를 계속 리팩토링 해서 간결하고 유지보수 하기 좋게 코드를 짜는 능력이 있고 그걸 회사 업무 하면서 발휘하기를 원한다. 하지만 회사는 그런 거에 관심이 없고, 당장 2주 후에 만들어야 할 관리자 페이지와 프로모션 페이지를 만들어야 하고, 서버 로직과 DB 쿼리를 잘 짜서 어떻게든 기능을 만들어 내는 데 쫓기게 되는 상황이다. 이런 상황이면 잘 설계되고 잘 리팩토링 된 아름다운 코드는 나오기 어려울 수 밖에 없다. 아니면 시간을 더 투자해 내가 원하는 능력을 발휘해서 리팩토링된 코드를 잘 구현했다고 하더라도 쓸데없는데 시간 썼다고 생각할 가능성이 높다. 개발 문화가 나의 관심사를 발휘할 수 있는 문화가 아니라면 내 진짜 실력이 성장할 기회 조차도 없기 때문에, 애초에 아무 회사나 들어가서 내 능력이 잘 쓰이길 기대하는 거 부터가 잘못됐다. 처음부터 내 관심사에 대해 발휘할 수 있는 문화가 있는 회사를 찾아가서 일하는게 맞다.

이런 시간을 1년, 2년, 3년 보내고 나면 얻는 타이틀이 개발 실력일까?


개발 실력이 늘던 아니던, 성장을 했던 못했던 어쨌든 모두들 사회 생활을 하다  스스로 이렇게 부르게 된다.

"안드로이드 개발 2년차"
"자바 개발 3년차"
"서버 개발 5년차"

뭐 5년차 까지는 괜찮다. 회사 이직 시 연봉 상승에 아주 좋은 연차들이니까. 그런데 그런 시간을 보내온게 실력을 증명하는 길인지 아닌지 잘 생각해 봐야 한다. 일단 좋은 개발문화를 가지지 못한 회사에서 시키는 일과 일정에 쫓겨 일을 했던 사람이면 개발 년차가 크게 의미가 없다. 왜냐하면 내가 성장하기 위한 능력을 키운게 아니고 일 하는 방법을 잘 훈련해서 그렇게 시간을 보내온 거니까.

"내가 개발 3년 했으니까, 어느 정도 인정 받을 수 있겠지?"

라는 생각은 매우 위험하다. 개발 문화가 좋지 않은 곳, 즉 여태까지 일정에 쫓겨가며 시키는 일을 마무리 하는 것에 시간을 보내온 개발자는 비슷한 환경에서 일하는 다른 회사에서는 대우 받을 수는 있을 것이다. (왜냐하면 등급이 올라가면 더 단가를 후려치고 월급은 조금만 더 줘도 되니까) 그런데 대부분 이직을 원하는 회사는 개발 문화가 좋은 곳을 원한다. 카카오라던지 네이버, 우아한 형제들 이런 곳일 것이다. 그런 곳에 이력서를 넣고 면접을 한번 보러 가보자, 그러면 자신이 얼마나 형편없는 개발자였는지를 뼈저리게 느끼게 될 것이다. (물론 서류 전형이 통과될 수 있는지 없는지에 대한 여부는 논외이다.)

그 회사들이 원하는 면접의 형태에 코딩 테스트가 있다. 알고리즘 문제 해결이라던지 프레임워크나 특정 기술적 상황에서의 문제 대처 방법과 왜 그렇게 생각하는지에 대해 면접을 진행을 할 것이다. 하지만 회사에서 했던 일은 그런 것과 상관 없는 것들을 해왔기 때문에 면접을 잘 볼수 없게 된다. 혹은 그런 경험을 했고 잘 알고 있다고 하더라도, 그걸 남들한테 보여주거나 설명해 본 적이 없기 때문에 분명히 아는 건데도 어버버 하면서 말이 제대로 안나오게 되는 경우가 허다할 것이다. 그리고 그 경험을 한 후 부터 부랴부랴 알고리즘 공부도 하고 원하는 직군의 기술들에 대해 공부를 한다. 그런데 또 그게 잘 될리가 없다. 왜냐하면 갑자기 안하려던 걸 하니까 힘들고, 실무 하기 전에 공부할 때도 그런 레벨로 공부를 해보지 않았기 때문이다. 그런 레벨로 공부를 해보지 않았다는게 무슨 의미냐 하면 따라하기식 강의나 그저 그런 스터디모임에서 뭐 하나 제대로 끝내보지 못한 채로 수박 겉핥기 식으로 조금 "따라" 해 본게 전부인데, 면접 질문은 그런 수준이 아니라 근본적인 기술적 수준에 대한 것이나 그 해결 방법, 또는 왜 이런 기술과 방법을 썼는지와 같은 걸 물어보기 때문에 그런 걸 공부해 보지 않았으면 대답을 할 수가 없다는 것이다. 또 공부해 봤다고 하더라도 블로그 같은 곳에 잘 정리를 해 놓거나 어느 커뮤니티 사이트에서 발표 혹은 스터디 모임 주도 정도를 해보지 않았다면 어려운 일이 된다.

진짜 문제는 따로 있다.


결정적으로 가장 큰 걸림돌은 현실과의 타협이다. "나 정도면 이 회사에서 더 잘할 수 있어", "여기 말고 다른데 가도 크게 달라질까?", "당장 다음달 까지 마감 프로젝트 있는데, 그거 끝나고 다시 생각해보자" 이런 식의 타협은 현재 다니는 회사에 안주하게 되고, 시간은 계속 흐르고 이직 타이밍은 미뤄진다. 더 웃긴건 회사에서는 어느 정도 연차가 차면 시니어급 레벨로 인정해 주고 manager 노릇도 할 수 있기를 기대하는데, 여태까지 시키는 일만 한 채로 몇 년을 지내왔을 뿐이라 그런 능력이 또 갑자기 생길리가 없다. 아마 처음 드는 생각은 이럴 것이다. "아니 나도 잘 모르는데 누굴 알려줄 수 있을까?" 그리고 이 때 쯤 다들 힘들어한다. 그런다고 해서 회사에서 연봉을 많이 주는 것도 아니다. 그 시점에서 내가 몇 년차 개발자라는 걸 어필해도 먹힐리가 없다. "몇 년 동안 했는데 그거 밖에 안되냐?" 라는 말로 공격 당하면 서러움이 눈 밑과 목구멍까지 울컥하고 올라오게 된다.

그러면 개발 실력이라는 건 회사에서 하는 일 아니면 어디에서 오는 건지 다음 편에서 얘기해 보기로 한다.

Monday, December 3, 2018

프로그래머가 되기 까지의 회고 (4) - 군 시절

프로그래머가 되기 까지의 회고 (1) - 초등학교 시절
프로그래머가 되기 까지의 회고 (2) - 중고등학교 시절
프로그래머가 되기 까지의 회고 (3) - 대학 입학 부터 군 입대 전까지

----
뭐 나도 군대라는 곳을 어차피 가야 했었고, 공부하는 것에도 그렇게 흥미가 있지 않았던 데다 집에서도 군대를 빨리 다녀오는게 좋겠다고 해서 자연스럽게 1학년 까지만 다니고 휴학을 한 후에 군대에 지원했다. 그런데 정말 얼마나 지원자가 많았냐 하면 육군 같은 경우는 거의 1년을 대기해야 한다고 했을 지경이었고 그 외에 지원해서 입대하는 다른 공군, 해군의 경우도 몇 개월씩 기다렸다가 입대를 할 수 있었다. 내가 살았던 시대의 흐름이 그렇다 보니 나도 자연스럽게 그렇게 대기를 하고 군대를 가야 했다.

때마침 국가부도의 날이라는 영화가 개봉했고, 영화 리뷰 겸 그 때 나의 상황에 대해 설명한 내용이 있으니 아래 링크를 참조하면 더 좋을 것이다.
https://feelcommonlife.blogspot.com/2018/12/blog-post_3.html

육군은 안될거 같아서 나머지 지원해서 갈 수 있는 것 중에 해군에 지원해서 입대를 했다.  복무기간이 28개월이어서 복학 기간에 맞추려면 최대한 9월 이전에는 입대를 했어야 했고 안그러면 다른 방법을 찾았어야 했는데 다행히 7월에 입대해서 11월 제대하는 복부기간이어서 복학 준비도 할 수 있는 기간에 입대를 하게 되었다.

진해에서 기초 훈련을 받고 병과를 지원해서 나누게 됐는데 그때는 키 순서대로 헌병 데려가고 컴퓨터 관련과는 전산병으로 데려가고, 전자통신 관련 과는 통신병으로 데려가고 그런 식이었다. 난 컴퓨터공학과 다니다가 군대에 오니 뭐 당연하게 전산병이 되게 되었고 전산병 훈련 받는 기간에 정말 놀라운 경험을 하게 되었다.

<왼쪽 부터 겨울 정복, 근무복, 여름 정복이다. 어린 시절 단순하게 이 옷을 입으면 땅바닥을 구르는 훈련을 안할거라 생각해서 해군을 가게 되었는데... 땅바닥을 구르는 훈련 외에 다른 훈련이 기다리고 있다는 사실은 몰랐다.
출처: 해군 블로그 http://blue-paper.tistory.com/>

대학에서 Unix와 C를 한 것도 조금 신기했는데, 그 때 군대에서 전산병에게 교육한 내용은 무려 COBOL이었다. 실제로 구전과 책에서나 봤던 언어였고 실제로 이 언어로 프로그래밍을 한 사람을 찾는게 가능한 일인지도 힘든 그 COBOL. 그게 전산병 교육장 PC 실에 깔려 있었고 며칠 동안 COBOL 프로그래밍을 배우기도 했다. 그때 프로그래밍 했던 COBOL은 영어 문장으로 프로그래밍을 하는 거였고 BASIC과 아주 흡사했다. 필요에 의해서 실습도 하고 공부도 했지만 정작 군생활 내에 써먹어 보지는 못했다. 왜냐하면 실제 내가 군생활을 했던 곳에서는 COBOL을 쓰지 않았고 Visual basic이나 Power builder를 썼기 때문이다. 이 마저도 잠깐 해봤을 뿐이다.

<군 생활 때 워드병 생활을 하면서 열심히 문서 작성했던 워드 프로그램인 아리랑 3.0
출처: http://blog.daum.net/_blog/BlogTypeView.do?blogid=06Txc&articleno=15813762&totalcnt=129>

군 생활 때 전산실에 근무해서 Visual basic을 잠깐 접할 기회가 있긴 했지만, 곧 어른들의 사정으로 인해 어느 부서의 워드병으로 차출되어 거기서 문서작업 하는 일로 제대할때 까지 군생활을 했다. 상병, 병장의 계급을 달고 짬이 차면서 자연스럽게 공부하는 시간이나 자유 시간이 조금 생기게 됐는데, 그 때까지만 해도 개발 공부를 해야 겠다는 생각을 잘 하지 못했다. 이유는 다양했지만 지금과는 달리 그때는 컴퓨터를 쓸 수 있는 시간은 업무 시간이었고 일부러 거짓 보고를 올리고 사무실에서 야근한다고 하지 않는 이상 컴퓨터를 쓸 시간이 없었다. 두 번째는 공부 보다는 외박 나가서 PC 게임 하는 것과 록 음악 듣는 것에 더 심취해 있던 기간이었던 것 같다. 즉 전공 공부나 프로그래밍 공부를 해야 한다는 생각은 있었어도 실천은 못하고 음악 듣거나 외박 나가면 PC 게임 하는 걸로 시간을 보냈다.

제대 하기 몇 달 전 그 당시 인기 있었던 인터넷 정보 검색사라는 자격증이 있었는데, PC에서 객관식 시험을 치면 바로 합격 여부를 알 수 있는 자격증이어서 특별히 컴퓨터에 관심이 없던 사람들도 따곤 했던 자격증이었다. 그런데 사실 개발하는 능력하고는 전혀 상관도 없고 자격증 자체가 공신력이 있는 것도 아니어서 그냥 있으나 마나한 자격증을 따고 아주 잠깐 뿌듯해 했던 기억도 있다.

어쨌든 군 생활 때도 개발 관련된 활동을 하지 않았던 건 사실이다. 엄청나게 능숙한 워드 프로그램 작성 능력, PPT 작성 능력을 자연스럽게 익힌 것과 한글, 영문 타자 속도가 엄청나게 늘었다는 점 (각각 800, 500 타 정도?), 그리고 2벌식도 빠르게 치는게 지루해서 3벌식 타자 연습도 했던 (200타) 그런 시절을 보냈다. 팩트로 얘기하자면 개발과 개발 외에 컴퓨터로 하는 모든 작업의 물리적인 기본 능력만 키운 셈이다.

제대한 후에는 다행히도 복학할 학비를 부모님이 준비해 주셔서 학교에 복학할 수는 있었는데, 군 생활을 했던 3년 사이 쓰던 컴퓨터의 성능이 썩 좋지 않아서 또 컴퓨터가 좋아야 공부를 할 수 있다는 핑계를 대고 좋은 컴퓨터를 마련하고자 복학하기 전 까지 PC 방 알바를 하며 점심 값 제외하고 월 60만원 정도를 벌어 그 당시 살 수 있던 아주 좋은 성능의 PC를 장만했다.

지금 월 60만원에 알바하라고 그러면 미친놈 취급 받겠지만 그 당시(2000년)만 해도 최저 시급 개념도 희미했고 시간당 알바 시급이 대충 2천원 전후였기에 대략 최저시급 정도 받고 일했던 것 같다. 그래도 점심은 꼬박꼬박 사주고 한달에 한번씩 회식도 시켜줬던 PC방 사장님이 고맙기만 했다.

그리고 이제 다시 학교로 돌아갔다.