티스토리 뷰

Careers

N사 신입 면접 경험

Voyager Woo 2015. 11. 25. 01:38
반응형

서론. 


요새 김종배 선생님의 시사통이라는 프로그램을 잘 듣고 있습니다. 현재 우리 사회의 이슈를 잘 짚어 주셔서 재미있게 듣고 있죠. 그런데 듣다가 굉장히 생소한 이야기를 들었습니다. 잠깐 나온 이야기인데요, 


'지적 재산권이 사회의 지적인 성장을 방해한다' 는 이야기 였습니다. 여러 가지 고민 끝에 그 말이 맞는 것 같다고 생각했습니다. (그 이유는 지금 자세히 다루지 않겠습니다.) 그리고 오픈 소스가 가득한 IT 세계에서 일한다는 것이 꽤 맘에 들었습니다. 


그래서 저도 제 경험을 좀 공유해 보려고 합니다. 한국에서 유명한 포털사 N사 면접 후기입니다. 


본론.


회사를 다니다가 가벼운 마음으로 (마지막이다 하는 기분으로) N사 신입공채에 지원했습니다. 때마침 그 직전에 포트폴리오를 만들어 둔게 있었고, 생각보다 자소서가 짧아서 정말 쉽게 제출했습니다. 영어 점수는 없었습니다. 제가 재직 중이라는 것도 다 공개해두었습니다.


서류에 덜컥 붙었습니다. 면접을 준비했습니다. 주변의 조언과 잡플래닛에서 면접 후기를 다 뒤져서 예상 질문 리스트를 뽑았습니다. 질문의 범위는 자료구조, 알고리즘, 컴퓨터구조, 운영체제, 네트워크, 프로그래밍 언어 같은 컴퓨터 과학 기본적인 질문이 많았습니다. 솔직히 자료구조, 알고리즘 이외의 과목들은 다시 공부할 엄두가 나지 않았습니다. 우선 질문 답변만 찾아두고 (자료구조는 좀 자신있었고) 알고리즘 공부를 했습니다.


첫번째, 전화 면접을 봤습니다. 굉장히 긴장했습니다. 모르는 질문 나오면 찾아보려고 노트북도 대기시켜놨지만, 긴장해서 써먹지 못했습니다. 제가 받은 질문은 기억나는 대로 정리하면 아래와 같습니다. (누락된 질문도 있습니다.)


1. 테스트 코드 관련 질문

2. 프로젝트 설계 내용

3. 프로세스와 스레드

4. 프라이어리티 큐의 구조 설명 X

5. 테스트 코드 관련 질문

6. SQL 인젝션 방어 코드 X

7. 스프링 MVC란

8. 디스패처 서블릿이란? X

9. BO와 DAO란?

10. 알고있는 정렬 알고리즘과 그중에 좋아하는 정렬알고리즘 -> 퀵소트 머지소트 힙소트 설명

11. 스택과 큐 설명

12. 톰캣은 멀티 프로세스인가 멀티 스레드인가

13. 아파치는 멀티 프로세스인가 멀티 스레드인가

14. 오버라이딩, 오버로딩


X 표는 제가 제대로 답변하지 못한 질문 입니다. 전화 면접은 저의 이력서를 증명하고 기본적인 지식에 대해서 질문하신것 같습니다. 

제가 자소서에 생각없이 안드로이드 경험이 있다고 했지만 지금 저는 잘 모릅니다. 액티비티라는 것이 있다 정도로 알고 있는데요, 안드로이드 관련 질문을 하려고 하셔서 다른거 물어봐 달라고 이야기했습니다.


전화면접은 약 한시간 정도 했던것 같습니다. 


두번째, 덜컥 전화면접이 붙고 1차 면접을 보게 되었습니다. 준비는 비슷하게 했습니다. 전화면접 때 답변하지 못한 것들도 준비해갔습니다.

두번의 1대1 기술 면접을 봤습니다. 분위기는 나쁘지 않았지만, 정말 긴장되더군요. 특히 손코딩은 정말 힘들었지만 사실 재미가 있기도 했습니다.


[ 남자 면접관님 ]


1. 인상 깊었던 개발자 세미나 : 비폭력 대화 설명 - 잘 대답못함

2. 학부 시절 기억나는 과목 : 소프트웨어 설계 및 패턴

3. 피보나치 수열 재귀/반복문- 손코딩 

4. 퀵소트와 힙소트를 그림을 그리면서 설명

5. n개의 배열에서 k(k<=n) 번째로 큰수를 찾는 효과적인 방법 ->  잘 대답못함. 퀵소트 응용

6. 내 프로젝트들 소개


여자 면접관님의 경우는 쉬운 기초 문제를 내주셨는데 제가 그 기초가 부족했던것 같습니다. 정말 힘들었습니다. 특히 OS 또는 컴퓨터 구조의 개념을 묻는 문제는 정말 당혹스러웠습니다. 페이지폴트나 LRU캐싱 사실 별거 아닌데 대답을 못했습니다. ㅠㅠ



[ 여자 면접관님 ]


1. 십진수를 팔진수로 바꾸는 프로그램 - 손코딩

2. 아래 패턴을 프린트하는 프로그램 - 손코딩 

<패턴>

4321

432

43

4


3. 1000보다 작은 숫자 중 3과 5의 배수의 총합을 구하는 프로그램 - 손코딩

4. 프로세스와 스레드의 차이

5. LRU 캐싱 X

6. 페이지 폴트 X

7. 허프만 코드 X

8. 데드락

9. 가비지컬렉션

10. 힙과 스택

11. 퀵소트

12. 스프링 디스패처 서블릿

13. 이직하는 이유


열심히 준비하고 답변했지만, 아쉽게도 2차 면접까지는 가지 못했습니다. 그래도 면접 덕분에 많이 공부했고 자극을 받았습니다.


결론.


이제부터는 제 사설입니다.


과연 우리나라에서 제일 좋은 인터넷 회사에서는 왜 이런 질문을 할까 고민해봤습니다. (예전에 D사도 신입 면접을 봤지만, 비슷했던것 같습니다. 여기서도 물먹었습니다.) 이런 질문을 통해서 얻고자 하는 인재가 누구인가 고민했습니다.


우선은 컴퓨터 과학의 기초가 있는 학생을 뽑고자 하는 것 같습니다. 

회사에서 일할 때는 IDE를 쓰고 프레임워크를 쓰고 남이 만든 라이브러리를 씁니다. 좋은 도구가 널려있죠. 그런데 이해 없이 그렇게 쓰기만 하면 결국엔 문제를 일으킬 만한 것들을 만들어냅니다. 결국 도구에 대한 이해가 필요하다는 것이지요. 또한 해당 도구의 문제 해결범위를 넘는 문제를 해결하려면 결국 그 도구를 수정해야 하는데, 이 또한 도구에 이해가 절대적으로 필요합니다. 

제 짧은 사견으로는 이 세계에서 컴퓨터 과학의 기초 없이 이해한다는 것은 굉장히 어려운 일이라고 생각합니다. 그래서 컴퓨터 과학의 기초가 튼튼한 학생을 뽑고자 했던 것이겠지요.


두번째로, 순발력이겠지요. (제가 이 부분이 참 아쉽습니다.) 회사 생활하다 보면 급하게 들어오는 문제들이 많습니다. 순발력있게 문제를 분석하고 해결하는 능력이 참 중요하더군요. 


이제 문제는 내가 그런 인간이었느냐 인데... 

반성을 하게 되네요. 도구를 잘 다루는 것을 가지고 좀 거만했던 것 같습니다. 

꿈이 큰 만큼 더 공부해야겠습니다.  


도움이 되길 바랍니다.

반응형
댓글
  • 프로필사진 휴먼빙 개발자가 아니어서 내용은 이해하지 못하지만 면접을 경험을 나름대로 통찰하고 앞으로 나아갈 방향을 세운 모습이 멋집니다. 저도 자극받고 가네요! 꾸고 계신다던 그 큰 꿈, 즐겁게 이뤄나가시길 바랍니다. 2015.11.25 02:08
  • 프로필사진 기니 내일 인턴면접보러가는 학생입니다. 구글링하다 좋은 자료를 발견했네요^^
    소중한 경험담 남겨주셔서 감사합니다.
    2017.06.15 21:56
  • 프로필사진 Voyager Woo 좋은 결과 있으시길! 2017.06.18 15:44 신고
  • 프로필사진 hyrama 이제 2학년 되는 학부생입니다. 마지막 "컴퓨터 과학의 기초"와 "순발력" 이 두 가지 요소가 너무 와닿았습니다.
    1학년 여름방학 때 회사에서 인턴을 한 적이 있는데 순발력이 아주 좋다고 이야기를 들었습니다. 아무래도 중학교 2학년 때 게임도 만들어보고 고등학교 2학년 때는 앱도 만들어 봤고 .. 그 이후엔 심심해서 게임 매크로도 만들고 다양한 프로그램을 만들어 왔던 것 같습니다. 아무래도 다양한 면에서 개발을 하다보니 확실히 문제 해결 속도는 빨랐던 것 같습니다.
    하지만, 2학년 마치고 병역특례를 지원하려고 학부 수업을 통해 기초기를 쌓고 있는데 왜 기초가 필요한지를 느끼고 있습니다. 블로거님이 말씀해주셨던 "도구를 이용할 줄 아니 거만한 태도"와 연관이 있는 것 같습니다.
    어렸을 때는 흥미를 가지고 있으니 어떡해서든 도구를 이용해서 만들면 끝이었습니다. 그리고 어느 정도 성장을 하니 성능을 판가름할 수 있는데 무언가로 더 구체적으로 들어가긴 힘듬을 느꼈습니다. 이래서 사람들이 기초가 중요하다고 말하는 것 같습니다.
    다행히도 저는 축복받은 것 같습니다. 흥미를 얻어 결과물들을 만들어 냈고 이제는 전공자의 태도로 더 깊숙하게 들어가야 할 필요성과 지금 그 필요성을 공부하고 있기 때문입니다.
    + 누군가 이 댓글을 보고 계신다면 .. 아직 제가 감히 의견을 드릴 정도의 실력은 안 되지만 흥미있는 것을 만들고 자신이 무엇을 하고 싶은 것인지 알아내는 것이 중요하다 생각합니다. 그리고 그 일을 여러 번 하다보면 서서히 구체적인 면을 신경쓰게 되는 것 같습니다. 속도라던지 아니면 예로 들어 GUI 프로그램에서 UiThread와 통신Thread를 분리해 파일을 다운로드 받으면 다운로드 된 크기를 UiThread와 통신해 ProgressBar를 구현해 한 Thread에서 모든 걸 처리할 때 프리징을 막는 등 .. 거기서 더 깊숙히 들어가면 네트워크, 알고리즘, 자료구조, 운영체제라는 기본기 필요성을 느끼고 갈망하게 될 때 공부하면 된다 생각합니다.
    2019.04.15 23:25
댓글쓰기 폼