티스토리 뷰

회고록/가이드

나는 면접을 이렇게 준비했다

글을 쓰는 개발자 2022. 9. 17. 18:00
반응형

이전 내용

나는 이력서를 이렇게 준비했다

이전 내용은 자기소개 및 이력서 적을 때 간략한 방법을 소개해줬다.
이번에 소개할 내용은 필자가 어떻게 준비를 했는 지에 대해서 소개하고자 한다.

성공을 원한다면 반드시 뚜렷하고 탄탄한 '처음'을 만들어야 한다. 
전문가를 고용하는 데 돈을 아끼지 마라. 타인의 경험을 돈을 주고 사는데 인색해서는 안된다.
- 보도 새퍼의 '이기는 습관' 중 일부분-

기본 지식 쌓기

기본적으로 우선 대기업에서는 신입에게는 기본 CS 지식을 요구한다.

가령 이런 것들을 물어본다.

  • 스레드와 프로세스의 차이
  • 사용자가 요청했을 때 서버에서 어떻게 처리되는 지 네트워크 관련하여 설명
  • 메모리 구조
    등 다양한 질문을 한다.

그렇기 위해서는 지식을 쌓아야 하는데 필자는 다음과 같은 방법을 적극 추천한다.

운영체제

만일 운영체제 관련하여 지식을 쌓고자 한다면 기본적으로 대학교에서 공부했던 전공서적을 머리에 잔상이 남을 때까지 외워라.
필자의 경우 주로 나오는 메모리, 프로세스, 스케줄러 해당 파트만 집중적으로 공부하였으며 후반 파트인 파일 시스템 등 파트는 쳐다보지도 않았다.

필자가 했던 공부 방식은 다음과 같았다.

  1. 처음 읽을 때에는 끝까지 읽는 것을 목표로 한다.
  2. 중요한 키워드를 종이에 적어라
  3. 키워드에 대해서 말로 설명하거나 적어봐라. (가능하면 입으로 말하는 것이 효과적이다.)
  4. 틈틈이 3번을 반복하라

필자는 위와 같이 진행하였으며 그것에 더하여 기업 기술 블로그를 통해 지식을 더했다.

관련 좋은 기술 블로그 및 영상

Naver D2

최신 브라우저의 내부 살펴보기 1 - CPU, GPU, 메모리 그리고 다중 프로세스 아키텍처
JVM Internal
하나의 메모리 누수를 잡기까지

우아한형제들 블로그

HikarCp Dead Lock에서 벗어나기
Aurora MySQL vs Aurora PostgreSQL

LINE Tech Blog

LINE에서 Kafka를 사용하는 방법 - 1
LINE에서 Kafka를 사용하는 방법 - 2
LINE에서 Kafka를 사용하는 방법 - 3

우아한 세미나 (영상)

우아한테크세미나 - 객체지향
우아한테크세미나 - 레디스
배달의민족 마이크로서비스 여행기

강의 - 필수적이라 생각하는 것들

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(무료)
모든 개발자를 위한 HTTP 웹 기본 지식
자바 ORM 표준 JPA 프로그래밍 - 기본편
스프링 핵심 원리 - 기본편

읽으면 도움되는 책들 (사실 거의 필수적이라 생각되는 도서들)

  • 오브젝트
  • 친절한 SQL 튜닝
    • 오라클 관련 내용이지만 인덱스 설정, 내부구조 등 신입 및 DB 관련 지식이 부족한 분들에게 정말 강력 추천하는 책입니다.
      다른 책들도 많지만 CS 지식은 운영체제 전공도서로, 네트워크는 위의 모든 개발자를 위한 HTTP 웹 기본 지식으로 어느정도 쌓으시고 부족하면 이 또한 전공도서로 공부하시는 것을 추천드립니다.

면접 준비

면접 준비는 크게 두 가지 방식이 존재한다.

  1. 스터디 방식
  2. 개인

스터디 방식

필자는 스터디 방식으로 면접을 준비하지는 않았지만 주변 동기들 물어봤을 때 스터디 방식으로 준비해서 붙은 사람들이 많았다.
이 때 스터디의 장점이자 단점이 있다.
모두 다 이득을 보거나 모두 다 망하거나 이다.

우선 스터디를 진행을 할려면 한 명이 주도적으로 이끌어야 한다.
어떤 준비를 할 건지, 각자 면접 상대가 되어준다거나 등 구성원들끼리 서로 상의하여 해야한다는 점이 가장 중요한 것 같다.

이 방식은 제가 준비했던 방식이 아니라 자세히는 설명하지는 못할 것 같으니 바로 개인 방식으로 넘어가보자.

개인

필자의 경우 개인 스스로 준비했다.
우선 위의 링크들은 물론이고 저것보다 더 많은 양의 공부를 했다.
책은 준비하면서 대략 5~8권 정도의 책을 읽었고, 강의 경우 대략 10개의 강의를 들었으며, 기술 블로그의 경우 대략 30~50개

정도의 글들을 봤다.
물론 코테까지 준비하였으니 대략 10개월동안 필자는 어느누구도 만나지 않았으며, 오로지 집 회사 반복이었으며 심지어 지하철에 있을 때에도 공부를 했었다.(지금 생각해보면 수험생 시절보다 빡세게 했었다.)

지금부터 중요한 이야기를 해볼까 한다.

이전까지 이야기 한 것은 지식 베이스를 쌓는 노력(?)에 대해서 말한거고 지금은 어떻게 면접 즉 말하는 연습을 했는가 이다.

만일 나는 면접을 이렇게 준비했다 - 1 을 보지 않았다면 보고 오는 것을 추천한다.

해당 1편에서 말했다시피 이력서와 자기소개를 통해 해당 주젯거리를 면접관에게 제시를 했었다.

그리고 그에 대하여 철저하게 나 자신이 면접관이 돼서 '나'에게 질문을 하는 방식을 진행했다.

하나의 예시를 보여주도록 하겠다.(하나의 예시일 뿐 면접때 나왔던 내용은 아니라는 점 밝힌다.)

코드를 리팩토링했다고 했는데 어떻게 리팩토링을 진행했는 지 알 수 있을까요?

---

우선 이전 코드가 어떻게 되어 있었는 지 간략하게 설명해보겠습니다. 
배송을 예를 들어 설명해보겠습니다. 
배송이라는 것은 다양한 상태 값을 가지고 있습니다. 
출고 준비, 상품 준비, 배송 준비, 배송중, 회수대기, 송장 출력, 회수 확인 등 다양한 타입이 존재합니다. 
이 때 이전 코드에 대해서는 이런한 타입에 대해서 조건문을 통해 처리를 진행하였는데 해당 조건문에 대한 길이만 100줄이 넘는 상태였습니다. 
심지어 해당 모델 타입 Validation하는 것도 하드코딩으로 되어 있어서 타입이 추가될 때 하드코딩으로 추가를 해야하는 상태였습니다. 
저는 이러한 구조가 너무나 싫었기에 어떻게 하면 해당 구조를 바꿀 수 있을까 고민을 했습니다. 
기본적으로 파이썬에서는 자바의 인터페이스는 존재하지 않았지만 명시적으로 하나의 클래스를 만들고 
메소드를 @abstractmethod라고 명시한 후 이 클래스를 상속할 때 해당 메서드를 무조건 구현하도록 설정했습니다. 
다음은 동적으로 각각의 타입에 대한 클래스를 호출하느냐에 대한 문제였는데 
이는 동적 임포트를 통해 해결했습니다. 
단, 단순한 구현으로 최대의 효율을 내기 위해 디렉토리를 고정시켰지만 해당 타입을 호출 할 때 없으면 
Raise가 일어나도록 하였고 있으면 해당 클래스 객체를 생성해 실행시키도록 구현하였습니다. 

면접관

---

그렇다면 어떤 디자인 패턴을 적용했다고 볼 수 있을 지 설명해주실 수 있을까요?

state pattern을 적용했습니다. 그렇게 생각한 이유는 여러개의 타입 즉 상태를 클래스화 시켰고, 객체의 상태에 따라 런타임에 행동이 바뀌기 때문입니다.

...

이렇게 자기소개에 리팩토링이라고 말했고 이력서에 그에 대한 링크가 존재한다면 적어도 이렇게 준비를 해야 한다.

필자는 위와 같은 방식으로 준비하였으며 준비한 내용을 순수하게 읽었을 때 대략 1시간 반 정도의 분량이 되는 질문과 대답을 스스로 작성하였고 그것을 매일 아침과 저녁에 읽으면서 외웠다.

그리고 실제로 그렇게 해서 면접을 봤을 때 준비한 내용의 60~70% 정동 커버를 칠 수 있었으며 나머지 30%도 준비한 내용에서 응용하여 어느정도 커버 칠 수 있는 내용이었으며 그 밖의 내용은 일관성 있게 모른다고 하였다.

사실 면접관은 면접자가 모든 질문을 대답하리라고 생각하지 않는다.
어느 정도까지 아는 지에 대한 확인이 필요하고 해당 사람에 대한 진실성, 전문성 등을 파악하기 위한 것이 주요 핵심이다.

뭔가 애매하게 끝난 것 같긴 하지만 말하고자 하는 내용은 다 말한 것 같다.

다시 요약을 하자면 다음 아래와 같다.

  • 자기소개 및 이력서를 통해 내가 말하고자 하는 주제로 이끌어라
  • 해당 주제에 대해서 전문성을 보여라
  • 결국 사람과 대화하는 것! 내쪽으로 이끌어라

부족한 글을 끝까지 읽어주셔서 감사합니다.

반응형

'회고록 > 가이드' 카테고리의 다른 글

나는 이력서를 이렇게 준비했다  (0) 2022.09.17
나는 코딩테스트를 이렇게 준비했다  (7) 2022.09.14
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함