Skip to content

기술 면접 준비하기


  • 시작하기

    기술면접을 준비할 때는 절대 문제와 답을 읽는 식으로 하지 말고, 문제를 직접 푸는 훈련을 해야합니다.

    1. 직접 문제를 풀수 있도록 노력하자
      • 포기하지말고, 최대한 힌트를 보지말고 답을 찾자
    2. 코드를 종이에 적자
      • 컴퓨터를 이용하면 코드 문법 강조나, 자동완성 기능으로 도움 받을 수 있기 때문에 손으로 먼저 적는 연습하자
    3. 코드를 테스트하자
      • 기본 조건, 오류 발생 조건 등을 테스트 하자.
    4. 종이에 적은 코드를 그대로 컴퓨터로 옮기고 실행해보자
      • 종이로 적었을 때 실수를 많이 했을 것이다. 컴퓨터로 옮기면서 실수 목록을 적고 다음부터 저지르지 않도록 유의하자

  • 기술면접에서 필수로 알아야 하는 것

    1. 자료구조
      • 연결리스트(Linked Lists)
      • 트리, 트라이(Tries), 그래프
      • 스택 & 큐
      • 힙(Heaps)
      • Vector / ArrayList
      • 해시테이블
    2. 알고리즘
      • BFS (너비 우선 탐색)
      • DFS (깊이 우선 탐색)
      • 이진 탐색
      • 병합 정렬(Merge Sort)
      • 퀵 정렬
    3. 개념
      • 비트 조작(Bit Manipulation)
      • 메모리 (스택 vs 힙)
      • 재귀
      • DP (다이나믹 프로그래밍)
      • big-O (시간과 공간 개념)

  • 면접에서 문제가 주어지면 해야할 순서

    면접관은 우리가 문제를 어떻게 풀었는 지, 과정을 알고 싶어하기 때문에 끊임없이 설명해야합니다!

    1. 듣기
      • 문제 설명 관련 정보는 집중해서 듣자. 중요한 부분이 있을 수 있습니다.
    2. 예제
      • 직접 예제를 만들어서 디버깅하고 확인하기
    3. 무식하게 풀기
      • 처음에는 최적의 알고리즘을 생각하지말고 무식하게 풀어보기
    4. 최적화
      • BUD (병목현상, 불필요 작업, 중복 작업)을 최적화 시키며 개선하기
    5. 검토하기
      • 다시 처음부터 실수가 없는지 검토하기
    6. 구현하기
      • 모듈화된 코드 사용하기
      • 에러를 검증하기
      • 필요시, 다른 클래스나 구조체 사용하기
      • 좋은 변수명 사용하기
    7. 테스트
      • 개념적 테스트 - 코드 리뷰
      • 특이한 코드들 확인
      • 산술연산이나 NULL 노드 부분 실수 없나 확인
      • 작은 크기의 테스트들 확인

  • 오답 대처법

    또한 면접은 '상대평가'입니다. 즉, 문제가 어렵다면 다른 사람도 마찬가지이므로 너무 두려워하지 말아야합니다.

    • 면접관들은 답을 평가할 때 맞춤, 틀림으로 평가하지 않기 때문에, 면접에서 모든 문제의 정답을 맞춰야 할 필요는 없습니다.
    • 중요하게 여기는 부분
      • 얼마나 최종 답안이 최적 해법에 근접한가
      • 최종 답안을 내는데 시간이 얼마나 걸렸나
      • 얼마나 힌트를 필요로 했는가
      • 얼마나 코드가 깔끔한가