그* 코딩테스트와 서류에 붙어 면접을 보게 되었다.

 

팀장님으로 보이는 시니어 한 분과 프린시플 레벨의 시니어 한 분이 들어오셨다.

굉장히 경직된 나를 보고는, 두 면접관님들이 분위기를 풀어주셔서 조금은 편하게 면접을 보았다! 

 


면접에서는

실제로 나의 이력서와 한 페이지 포트폴리오를 보고 내가 익숙해진 기술과 개념에서 질문이 나왔다.

 

Java Spring으로 현업에서 일한 경력이 없어 물어볼 폭이 넓지 않았던 거 같고, 1년의 짧은 연구실 경력과 개인적으로 운영하는 서비스에 중심을 두고 전개 되었다.

그 후엔 내가 가진 기술 스택을 토대로 한 기술적인 사항에 대한 질문들이 들어왔다.

 

당신은 어떤 일을 해왔나요?

1. 먼저 연구실에서 데이터 플랫폼 실험을 수행한 지 질문이 들어왔다.

문제 수행력 검증과 더불어 어떤 일을 경험했는지 물어보는 듯 했다.
  • 실제로 무슨 일을 했는지
  • 중간에 어떤 어려움이 있었는지

이 부분에서는 내가 한 일을 솔직히 말하는 것이 중요하다

 

2. 개인적으로 운영하는 서비스 (Java Spring)에 대해서도 질문이 들어왔다.

난 이 부분을 정말 잘 준비해 갔어야 한다.
이번 면접 기회는 개인 서비스를 통해 얻어진 느낌이었다.
개발 강의나 도서로 고민 없는 학습이 아니라 직접 부딪혀보는 야생성이 어필이 되었다고 생각한다.
  • 내가 어떤 고민으로 프로젝트를 했는지, 
  • 배포를 한 상태인지
  • 기술 스택은 어떤 고민을 거쳐 고르게 되었는지
  • 중간에 어떤 어려움이 있었는지 어떻게 해결을 했는지

내가 처한 상황과 어떻게 문제를 해결했는지, 고민을 거쳐 기술 스택을 사용했는지 잘 대답하는 것이 핵심이다.

어떻게 이 질문을 잘 대답할 지 물어본다면.. 내가 실제로 그렇게 고민하면서 개발하면 된다.

 

3. 졸업 후 어떤 일들을 해왔는 지

  • 흔히 공백기 질문이라고 부르는 질문이다. 
  • 공부나 프로젝트, 코딩테스트 공부를 해왔다고 해도, 일단은 현재 실력이 좋으면 면접관들도 그렇게 크게는 생각하지 않는 것으로 느꼈다.

 


기술 검증 들어갑니다

먼저 Java Spring에 관한 질문이 처음으로 나왔다.

이러한 형태의 전체 Flow와 기술적 Detail을 물어보는 질문은, 백엔드 면접뿐만 아니라 모든 면접에 해당되는, 면접자의 수준을 측정하는 질문이라고 생각한다.

 

Url으로 요청이 들어올 때부터 나갈 때까지 Java Spring 동작을 아는 범위에서 전부 설명해주세요.

 

내가 여기서 대답을 어느정도는 했지만, 추측하기로는 면접관님들이 만족하지 못하는 듯 했다.

먼저 내가 생각해보지 않았던 질문이라 답변의 포인트를 잘 잡지 못하고 횡설수설했던 탓도 있고, 워낙 방대하다보니 어느 수준에서 어떻게 대답해야할 지 갈피를 잡지 못했었다.

 

이 질문 이후에는 한 가지 꼬리 질문과 두 가지 추가 질문이 이어졌다.

  • 인증 과정이 추가된 꼬리 질문
    • Login이나 인증이 추가되어 Java Spring security가 더해진다면 동작은 어떻게 될 지
  • 두 가지 추가 질문
    • Java Spring Bean을 어떻게 의존성 주입을 수행하는지
    • Java spring와 python Django의 차이점

 

이 후에는 DB에 관한 질문이 이어졌다. 첫 질문을 잘 대답하니 두번째로 쿼리 개선 경험을 물어보셨다.

  • DB의 transaction은 무엇이고 개념적으로 어떻게 동작하는 지
  • DB slow query 개선했던 경험이 있나요? 어떤 경험이었나요? 
  • 훅 들어온 심화 질문, DB는 일반적으로 어떠한 기준을 가지고 Index의 사용 여부를 결정합니다. 그렇다면 DB table의 Index를 강제로 사용하게 하는 방법을 무엇일까요? (대답 못함. 답은 use index)

 

그 이후에는 객체지향 패턴 중 하나인 싱글턴 패턴을 물어보셨고, 설명 중 class와 instance를 혼동해서 사용하는 모습에 추가 질문으로 이어졌다. 

  • 싱글턴 패턴의 개념과 예시
    • 개념은 잘 설명했지만, 예시를 못들었다. Java Spring Bean의 DI 주입이 싱글턴 패턴인데 낫 놓고 기억자도 모르는 사람..
  • Class와 Instance의 차이점

 

그리고 정말 기초 질문으로 마지막 검증!

  • call by reference, call by value
  • 기본형 / 참조형 변수
  • static 변수는 어디에 저장될까요? 

피드백

이 면접 어떻게 흘러가는건가. 이런 생각에 나라도 발전할 기회로 삼자..!

마무리 단계에서는 이런 생각에 이러한 질문은 던졌다.

선배 개발자 입장에서 제가 어떤 부분을 보완하면 채용 과정에서 더 매력적인 사람이 될 지 궁금합니다!

 

감사하게도 두 분 다 가장 어려운 질문이라고 너털 웃음을 지으시면서도 대답을 잘해주셨다.

 

프린시플 시니어분

 

개발자를 채용할 때, 세 가지를 주로 본다고 하셨다.

  • 트러블슈팅 능력
  • 협업 능력
  • 학습 능력

그런데 경력이 적거나 없는 경우에는 다양한 문제를 만나본 적이 없고, 확연한 협업 기회도 적기 때문에 그나마 검증할 수 있는 학습능력에 주안점을 두고 면접을 진행한다고 설명해주셨다.

 

즉, 공부할 때 꼼꼼히 공부했는지 보는 것이다. 

이는 면접시 답변이나 내가 해왔던 활동의 완성도, 그리고 프로젝트시에 다양한 고민들로 검증을 한다고 설명해주셨다. 

그 전에는 공부할 때 꼼꼼히는 공부했고 프로젝트가 잘 수행 될 수 있게 공부를 해왔지만 명확한 기준이 없었다.

이 답변을 듣고 내가 보강해야 될 부분을 확연히 알 수 있었다.

 

팀장 포지션 시니어분

 

이력서와 깃허브가 가장 중요하다고 말씀해주셨다.

 

이력서의 경우에는 지원에 대한 성의가 나타나기 때문에, 열정이나 진심을 비추어 확인하고,

깃허브에서는 프로필과 각 프로젝트에서 사용한 언어와 프레임워크를 보고, 
특히 현업에서 수행하는 Readme나 깃허브의 기능 사용 (Issue, git flow), Commit / Code convention을 지원자가 현업급으로 사용하고 있는지, 그렇지 않더라도 일관성을 지켜 코드와 커밋을 작성하는 지를 본다고 한다.

 

이제 나는 어떻게 할 것인가

Need Action Explain
말을 명료하게 하자 블로그든 일기는 Readme든
글을 많이 읽고 써보자 (1일 1글)
언급하지 않았지만
횡설수설! 고쳐야된다.
프로젝트시 기술 스택 분석 프로젝트에 기술을 도입하게 되면 도입 배경 글을 작성하자 그러자
면접 질문들 준비 면접 질문들에 모범 답변을 만들고 연습 학습을 더 꼼꼼하게 하자
이력서 이력서 작성 시간을 배정을 하고
항목별 메세지를 선 작성하여 채운다.
각 항목에 담을 메세지 먼저 작성하자
깃허브 IT 회사들의 깃허브를 참고하여 보강 깃허브는 개발자 lsmman의 얼굴이다.
공부는 그만하자 원하는 기술 스택이 있다면 그에 맞는 프로젝트를 기획해서 구현해보자 공부가 아니라 프로젝트를 하자

 

  • "개발바닥"의 "클론코딩" 이라는 이름의 영상이 있다. 클론코딩에 관한 영상이 아니라 그보다 좋은 학습법을 이야기해주는 내용의 영상인데, 여기에서 사업주도 개발이 성장에 주요했다고 말씀하신다. 나도 도입해야겠다.

+ Recent posts