답은 일부러 안 적었습니다.
실제 면접본다고 생각하고 문항에 대해 소리내어 답변해 보시길 바랍니다.
혹시라도 헷갈리는 문항이나 추가하고자 하는 질문이 있다면 댓글 달아주세요.
가능한 한 계속 업데이트 됩니다!
운영체제
프로세스
- 프로세스와 스레드의 차이는 무엇인가요?
- 교착상태란 무엇이며, 교착상태가 발생하기 위해서는 어떤 조건이 있어야 하나요?
- 교착상태의 해결법은 무엇인가요?
- 뮤텍스와 세마포어에 대해서 설명해 보시오.
- 컨텍스트 스위칭이란 무엇인가요?
- 경쟁 상태란 무엇인가요?
- 프로세스 혹은 스레드의 동기화란 무엇인가요?
- 사용자 수준의 스레드와 커널 수준의 스레드의 차이는 무엇인가요?
- 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
감사합니다!