본문 바로가기
비전공자 IT 이야기

IT기술 면접 질문 정리

by 도쿄 정대리 2022. 6. 20.

면접 인터뷰를 하는 그림 이미지
준비되지 않을 상태에서 기술 면접 질문을 받으면 머리게 하얗게 되고는 한다.

일본에서 IT 면접을 보면 당연하게도 기술과 관련된 질문을 받고는 합니다. 도쿄 정대리인 저와 같이 학원 출신의 개발자들이 가장 자신없어하는 부분중 하나일꺼라고 생각하는데요. 기술 면접 질문들을 모아서 정리해 보도록 하겠습니다. 대부분이 컴퓨터 공학과 관련된 내용이라 재미는 없지만 알아야 하는 지식이라고 생각됩니다.

 

일본 IT 회사 기술 면접 질문

일본의 외국계 IT 회사에서 받은 기술 면접 질문들은 아래와 같습니다.

struct & class 차이를 설명해 주세요
Heap & Stack 차이를 설명해 주세요
Memory Leak 이란 무엇인가요?
JSON XML 차이와 이용 방법
Serialization 이란 무엇인가요?
Array란 무엇이고 어디에 쓰면 좋을까요?
Type Safety 이란?
TypeScript 이란?
Constructor 란?

 

질문에 대한 대답들은 각각 자료를 만들어서 링크를 달도록 하도록 하겠습니다.

기술 면접 질문 모음

애런퐉의 블로그에서 발췌한 기술면접 질문 모음도 같이 첨부합니다. 모든 질문에 다 답할 수 있으면 좋겠다는 마음으로 포스팅합니다~! 모두들 열심히 해서 모든 질문을 이해하고 제대로 대답할 수 있는 수준까지 올리면 좋겠습니다. 

운영체제

프로세스

  • 프로세스와 스레드의 차이는 무엇인가요?
  • 교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요?
  • 교착상태의 해결법은 무엇인가요?
  • 뮤텍스와 세마포어에 대해서 설명해 보시오.
  • 컨텍스트 스위칭이란 무엇인가요?
  • 경쟁 상태란 무엇인가요?
  • 프로세스 혹은 스레드의 동기화란 무엇인가요?
  • 사용자 수준의 스레드와 커널 수준의 스레드의 차이는 무엇인가요?
  • CPU 스케줄링이란 무엇인가요?
  • CPU 스케줄링 방법에는 대표적으로 어떤 것들이 있나요?
  • 동기와 비동기, 블로킹과 넌블로킹의 차이는 무엇인가요?

메모리

  • 프로세스에 할당되는 메모리의 각 영역에 대해서 설명해 주세요.
  • 메모리 구조의 순서가 어떻게 되는가? CPU에서 가까운 순으로 말해보시오.
  • 페이지와 세그멘테이션에 대해서 설명해 보시오.
  • 외부 단편화란? 내부 단편화란?
  • First Fit, Best Fit, Worst Fit에 대해서 설명해 보시오.
  • 페이지 교체 알고리즘 종류에는 어떤 것들이 있나요?

네트워크

전산 기본

  • OSI 7계층에 대해서 설명해주세요.
  • TCP/IP 4계층에 대해서 설명해주세요.
  • DNS가 무엇인가요?
  • 도메인 이름으로 실제 IP를 어떻게 찾을 수 있는지 흐름을 설명해 주세요.

TCP/UDP

  • TCP와 UDP의 차이에 대해서 설명해 주세요.
  • TCP 헤더에 대해서 설명해 주세요.
  • MTU가 무엇인가요?
  • 3-way hand shake, 4-way hand shake 흐름에 대해서 설명해주세요.

HTTP

  • HTTP 프로토콜에 대해서 아는대로 말해주세요.
  • HTTP와 HTTPS 의 차이는 무엇인가요?
  • HTTPS가 동작하는 방식에 대해서 설명해 주세요.
  • HTTP 1.0과 1.1의 차이는 무엇인가요?
  • HTTP2와 그 특징에 대해서 설명해 주세요.
  • HTTP 헤더의 구조에 대해서 설명해 주세요.
  • keep-alive 헤더에 대해서 설명해 주세요.
  • HTTP GET과 POST의 차이는 무엇인가요?
  • 쿠키와 세션에 대해서 설명해 주세요.

  • 웹브라우저에서 서버로 요청했을 때, 흐름을 설명해주세요.
  • CORS란 무엇인가요?
  • 웹 서버와 웹 어플리케이션 서버(WAS)의 차이는 무엇인가요?
  • REST API에 대해서 설명해 주세요.
  • API Gateway란 무엇인가요?
  • API Gateway가 다운되면 모든 API를 사용 못할지도 모르는데, 어떤 방안을 마련해야 할까요?

데이터베이스

전산 기본

  • JOIN에 대해서 설명해 주세요.
  • 내부 조인과 외부 조인의 차이는 무엇인가요?
  • 정규화에 대해서 설명해 주세요.
  • 파티셔닝과 샤딩에 대해서 설명해 주세요.
  • ORM이란 무엇인가요?
  • NoSQL이란 무엇인가요?
  • 스키마란 무엇인가요?

인덱스

  • 인덱스란 무엇인가요? 어떻게 동작 하나요?
  • 인덱스의 알고리즘에는 어떤 것들이 있나요?
  • Table Full Scan과 Index Range Scan 을 설명해주세요.

트랜잭션

  • 트랜잭션이란 무엇인가요? 4가지 원칙을 포함해서 설명해 주세요.
  • 트랜잭션의 격리 수준과 각 수준에서 발생할 수 있는 문제들에 대해 말해보세요.
  • 공유 락과 배타 락의 차이는 무엇인가요?
  • 데드락이란 무엇이며, 어떻게 발생할까요?

알고리즘

전산 기본

  • 빅오 표기법에 대해서 설명해주세요
  • 팩토리얼(factorial)을 구현해 보세요(손코딩).
  • 피보나치 수열 구현 방식 세 가지를 말해보시고, 시간복잡도와 공간복잡도를 설명해 주세요.
  • BFS/DFS 차이는 무엇인가요?
  • 프림 알고리즘에 대해서 설명해 주세요.
  • 다익스트라 알고리즘에 대해서 설명해 주세요.
  • 은행원 알고리즘에 대해서 설명해 주세요.

정렬

  • 정렬의 종류에는 어떤 것들이 있나요?
  • 삽입 정렬이 일어나는 과정을 설명해 보세요.
  • 퀵 정렬이 일어나는 과정을 설명해 보세요.
  • 54321 배열이 있을 때, 어떤 정렬을 사용하면 좋을까요?
  • 랜덤으로 배치된 배열이 있을때, 어떤 정렬을 사용하면 좋을까요?
  • 자릿수가 모두 같은 수가 담긴 배열이 있을 때, 어떤 정렬을 사용하면 좋을까요?

자료구조

전산 기본

  • 배열과 링크드 리스트의 차이점에 대해서 설명해 주세요.
  • 스택과 큐에 대해서 설명해 주세요.
  • 해시테이블에 대해서 설명해 주세요.

트리

  • 포화(Perfect) 이진트리, 완전(Complete) 이진트리, 정(Full) 이진트리의 차이점에 대해 각각 설명해주세요.
  • 그래프와 트리의 차이점에 대해서 설명해 주세요.
  • 힙 자료구조에 대해 설명해 주세요.
  • 힙의 삽입과 삭제는 어떻게 이루어지나요?
  • 레드 블랙 트리에 대해 설명해주세요.
  • 레드 블랙 트리의 삽입과 삭제 과정에 대해서 말해보세요.
  • B-Tree에 대해서 설명해 주세요.
  • 최소 신장 트리에 대해서 설명해 주세요.

프로그래밍

전산 기본

  • 객체지향이 무엇인가요? 절차지향과의 차이점은 뭐죠?
  • 객체지향 SOLID 원칙에 대해서 설명해 주세요.
  • 객체지향 4가지 특징에 대해서 설명해 주세요.
  • 대표적인 객체지향 언어에는 어떤 것들이 있나요?
  • 데이터 타입과 변수의 차이는 무엇인가요?
  • 함수형 프로그래밍에 대해서 설명해 주세요.
  • AOP란 무엇인가요?
  • 컴파일러와 인터프리터의 차이는 무엇인가요?
  • 오버로딩과 오버라이딩의 차이는 무엇인가요?
  • 1급 객체에 대해서 설명해 주세요.

JAVA

기본

  • Java 접근 제어자에 대해서 각각 설명해 주세요.
  • JVM의 구조에 대해서 설명해 주세요.
  • Garbage Collector 에 대해서 설명해 주세요. 어떻게 동작하나요?
  • GC의 종류에 대해서 말해보세요.
  • Java 버전 별 특성에 대해서 아는대로 말해주세요.
  • Java는 Call By Value일까요, Call By Reference 일까요?
  • 리플렉션(Reflection)이란 무엇인가요?
  • Stream API란 무엇인가요?
  • Lambda란 무엇인가요?
  • 함수형 인터페이스란 무엇인가요?
  • JVM 기동시 주로 사용되는 옵션들을 아는대로 말해보세요.
  • foreach를 사용할 수 있는 자료구조는 어떤 인터페이스를 상속받고 있나요?
  • iterator와 iterable 차이는 무엇인가요?
  • synchronized 키워드에 대해 설명해 주세요.
  • volatile 키워드에 대해 설명해 주세요.
  • final 키워드에 대해서 설명해주세요. 각각의 쓰임에 따라 어떻게 동작하나요?

클래스와 객체

  • Wrapper Class란 무엇인가요?
  • 클래스, 객체, 인스턴스 차이에 대해서 설명해 주세요.
  • 직렬화(Serialization)과 역직렬화(Deserialization)에 대해서 설명해 주세요.
  • Java Generic에 대해서 설명해 주세요.
  • equals와 ==의 차이는 무엇인가요?
  • hashCode란 무엇인가요?
  • 문자열을 리터럴(string = "abcd")로 할당하는 것과 객체(string = new String("abcd"))로 할당하는 방식의 차이가 무엇인가요?
  • 순수 추상 클래스와 인터페이스의 차이는 무엇인가요?
  • 본인 관점에서, 인터페이스는 주로 어떨 때 사용하나요?

자료형, 자료구조

  • Java의 Collection에 대해서 설명해 주세요.
  • Array와 ArrayList의 차이점은 무엇인가요?
  • char type과 string type으로 나뉘어져 있는 이유는 무엇인가요?

Spring Framework

기본

  • Spring이란 무엇인가요?
  • Spring, Spring MVC, Spring Boot의 차이점에 대해 각각 설명해 주세요.
  • Spring 버전 별 특성에 대해서 아는대로 답변해 주세요.
  • Spring Framework의 생명 주기에 대해서 말해주세요.
  • Bean이란 무엇인가요?
  • Interceptor와 Filter의 차이점을 말해주세요.
  • IOC와 DI에 대해서 설명해주세요.
  • Container란 무엇인가요?
  • VO, DTO, DAO에 대해서 각각 설명해 주세요.

MVC

  • MVC에 대해서 설명해 주세요.
  • Servlet이 무엇인가요? (사실 이건 Java 섹션에 있는게 맞음..)
  • Dispatcher-Servlet이란 무엇인가요?
  • Spring MVC에서 HTTP 요청이 들어왔을 때의 흐름을 설명해 주세요.

ETC

전산 기본

  • TDD란 무엇인가요?
  • 프레임워크와 라이브러리 차이는 무엇인가요?
  • 디자인 패턴이란 무엇인가요?
  • Monolitc Architecture, Micro Service Architecture에 대해 각각 설명해 주세요.
  • 애자일 방법론이란?
  • 도커란 무엇인가요?

 

 

이렇게 질문들을 한번 살펴보면 본인이 얼마나 모르는게 많은지와 공부해야 될 양이 많은지에 낙담도 하게 되는 것 같은데요. 좌절하지 말고 하나씩 하나씩 공부해가면 좋을 것 같습니다. 혹시나 일본 취업을 준비하신다면 위 질문들을 일본어로 대답 할 수 있게 준비하시면 될 것 같습니다. 그럼 오늘도 행복한 하루 되기를 기원하면서 도쿄 정대리는 이만 물러가겠습니다.

'비전공자 IT 이야기' 카테고리의 다른 글

문과생이 프로그래머가 된다는 것  (1) 2022.04.17

댓글