기술 면접 질문 모음

aaron.park·2020년 10월 24일
391
post-thumbnail

답은 일부러 안 적었습니다.
실제 면접본다고 생각하고 문항에 대해 소리내어 답변해 보시길 바랍니다.
혹시라도 헷갈리는 문항이나 추가하고자 하는 질문이 있다면 댓글 달아주세요.
가능한 한 계속 업데이트 됩니다!


운영체제

프로세스

  • 프로세스와 스레드의 차이는 무엇인가요?
  • 교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요?
  • 교착상태의 해결법은 무엇인가요?
  • 뮤텍스와 세마포어에 대해서 설명해 보시오.
  • 컨텍스트 스위칭이란 무엇인가요?
  • 경쟁 상태란 무엇인가요?
  • 프로세스 혹은 스레드의 동기화란 무엇인가요?
  • 사용자 수준의 스레드와 커널 수준의 스레드의 차이는 무엇인가요?
  • 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에 대해 각각 설명해 주세요.
  • 애자일 방법론이란?
  • 도커란 무엇인가요?

참고자료

https://trello.com/b/BWtpfywH/%EC%8B%A0%EC%9E%85-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91
https://github.com/WeareSoft/tech-interview
https://github.com/JaeYeopHan/Interview_Question_for_Beginner

profile
애런 퐉의 블로그

11개의 댓글

comment-user-thumbnail
2020년 11월 29일

감사합니다!

답글 달기
comment-user-thumbnail
2020년 11월 30일

감사합니다!

답글 달기
comment-user-thumbnail
2020년 12월 2일

감사합니다!

답글 달기
comment-user-thumbnail
2020년 12월 3일

잘읽었습니다 감사합니다.

답글 달기
comment-user-thumbnail
2020년 12월 3일

스터디 주제로 삼아야겠네요 감사합니다

답글 달기
comment-user-thumbnail
2020년 12월 4일

이런 종류의 단순한 암기식의 정보를 묻는 질문들이 참 무슨 의미가 있을까 싶네요. 질문 자체의 내용도 그렇고, 제가 HR 담당자라면 이런식의 질문을 면접에서 할 것 같지는 않을듯한 그런 질문들...

1개의 답글
comment-user-thumbnail
2021년 8월 19일

감사합니다 !!!!!

답글 달기
comment-user-thumbnail
2021년 10월 23일

올려주셔서 감사합니다 :)

답글 달기
comment-user-thumbnail
2022년 2월 28일

감사합니다!

답글 달기
comment-user-thumbnail
2022년 4월 23일

감사합니다!

답글 달기