현재 나는 면접을 준비하고 있는 대한민국의 흔하디 흔한 신입 취업 준비생이다.
현재 여러곳의 면접을 보았는데, 이러한 면접을 보면서 내가 어떻게 면접을 준비하고, 면접을 본 후에 어떻게 정리하고있는지 넉두리마냥 공유를 해보고자 한다.
나는 면접을 준비하면서 해당 회사가 어떠한 도메인을 다루고 있는지, 해당 회사의 웹사이트나 잡플래닛등 다양한 곳에서 인사이트를 찾기 위한 작업을 제일 먼저 하였다.
나는 그 후 해당 회사의 도메인을 파악하고, 내가 이 회사에 취업을 하게 되었을 때 단순히 개발 뿐만 아니라 내가 인생을 사는데 있어서 도움이 될만한 도메인인지를 판단하는 편이다.
회사의 도메인을 파악하였다면, 회사가 해당 도메인을 통해서 주로 어떤 방식과 사업 아이디어로 주로 수입을 내는지도 파악하는게 좋아보인다.
이 부분은 조금 어려운 부분이었다. 유명 IT 기업 같은 경우에는 독자적인 개발 블로그를 운영하기도 하고, 자체적인 부트캠프같은 것들을 진행하기도 한다. 이를 통해서 회사의 개발 스킬이나 문화를 파악할 수 있지만, 내가 느끼기로는 대체적으로는 해당 회사의 개발 문화를 알 방법은 없었던 것 같다. 그래서 나는 아래와 같은 방법들을 사용했다.
1. 잡코리아등의 취업 공고를 보고 파악하기
-> 이 방법이 제일 기본적인 방법인 것 같다. 주로 채용 공고를 낼 때 예를 들어서 Spring boot, Django RestFramework 등과 같은 직접적인 개발 프레임워크등을 이야기하거나, TDD, 애자일등의 개발 방법이나 데일리 스크럼, 코드 리뷰와 같은 개발 문화를 주로 이야기하는 것 같다. 이를 토대로 해당 회사에서의 개발 스킬이나 문화를 직간접적으로 파악할 수 있다.
2. 회사 채용 이메일로 직접 메일 보내보기
-> 회사 사이트나 구인 구직 게시글을 보게 되면 인사 담당자나 채용 담당자, 개발 부서 팀장분들의 메일이나 연락처가 있는 경우가 있다. 이 경우 메일등을 통해서 직접적으로 물어보는 것 또한 좋은 방법인 것 같다.(단 개인 연락처가 아닌 공연히 공고된 연락처에 한해)
3. 로켓펀치등을 통한 현직자와의 1:1 문의
-> 1, 2번 방법보다 더 자세하고, 확실하게 인사이트를 얻을 수 있는 방법이지만 이 방법은 대단히 조심스럽다고 생각은 든다. 로켓펀치라는 서비스 자체가 일반 카카오톡 같은 서비스와 다르게 이직 시장에서 사용하는 서비스이기에 해당 방식이 통한 것이지 다른 서비스에서 어떻게 연락처 알아내서 질문 드리는 것은 현직자분께 상당히 폐를 끼치는 행위라고 개인적으로 생각한다...
기술 면접은 아래와 같은 레퍼런스들을 통해서 준비했다.
Github : ksundong님의 백엔드 인터뷰 질문
Tistory : 망나니개발자님의 백엔드 인터뷰 질문
내가 기술 면접간 중요하다고 느꼈던 점들은 모르면 모른다고 확실히 말하고, 애매하게 아는거면 공부를 했었던 걸 어필하고 모른다고 하는 것이다.
예를 들어서 1번 질문인 프로세스와 쓰레드의 질문을 받았을 때 내가 아예 해당 개념을 처음들어보거나, 공부를 하지 않은 경우에는
"해당 개념에 대해서 아직 숙지 되지 않은 것 같습니다."
같은 답변을 바로 하는 것이 좋은 것 같다.
대충 얼버무려봤자 상대는 나보다 개발을 훠어어얼씬 잘하는 사람들이다. 당연히 내가 모르는데 막 씨부리는지 분명히 아실 것이다.
단 내가 공부를 분명히 했었던 개념인데 애매하게 기억이 안나는 경우에는 나 같은 경우에는
"해당 개념은 제가 학교 수업이나 진행했던 ~~프로젝트를 통해서 접했던 부분인데 ~~로 기억합니다." 라는 답변을 통해서 그래도 내가 공부했었다라는 걸 어필했었다.
이 방식은 면접관님들마다 다르게 받아들일 수 있는 부분이기에 다르게 받아들일 수 있을 것 같다.
애초에 그냥 공부를 확실히 해놓는게 베스트라고 생각한다.
그리고 공부할 때 되도록 깔끔하게 개념을 설명할 수 있는게 좋을 것 같다.
그래서 나는 한 문장에서 길어도 두 문장정도로 예상 질문의 답변을 준비했었다.
아래는 내가 준비했던 예상 질문의 답변이다.
1. OOP란?
-> OOP는 현실 세계를 프로그래밍으로 옮겨와 현실 세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍하는 기법입니다.
2. REST API란?
-> 사람이 읽기 쉬운 API이며, 자원, 요청 방식, 자원의 형태등으로 이를 표현
3. 동기와 비동기란?
-> 동기는 한 작업이 끝난 후에 다른 작업을 실행하는 것, 비동기는 여러 작업이 병렬적으로 수행되어서 동시에 수행되는 것처럼 작업할 수 있는 것
4. SQL Injection?
-> 공격자가 악의적인 의도를 갖는 구문을 삽입해서 공격자가 원하는 SQL을 실행하도록 하는 웹 해킹 기법
5. 프레임워크와 라이브러리의 차이?
-> 프레임워크 → 전체적인 흐름을 프레임워크가 주도
-> 라이브러리 → 사용자가 흐름을 제어하며, 가져다 쓰는 용도