크게 유형을 나누면 '개념 설명'과 '비교 설명'으로 구성되어 있으며 아래 내용에 대해선 타인이 쉽게 이해할 수 있게 설명할 수 있는 정도를 목표로 한다!
📈 Statics / Mathmatics
- 고유값(eigen value)와 고유벡터(eigen vector)이 무엇이고 왜 중요한지 설명해주세요.
- 샘플링(Sampling)과 리샘플링(Resampling)이 무엇이고 리샘플링의 장점을 말씀해주세요.
- 확률 모형과 확률 변수는 무엇인가요?
- 누적 분포 함수와 확률 밀도 함수는 무엇인가요? 수식과 함께 표현해주세요.
- 조건부 확률은 무엇인가요?
- 공분산과 상관계수는 무엇일까요? 수식과 함께 표현해주세요.
- 신뢰 구간의 정의는 무엇인가요?
- p-value를 모르는 사람에게 설명한다면 어떻게 설명하실 건가요?
- R square의 의미는 무엇인가요?
- 평균(mean)과 중앙값(median)중에 어떤 케이스에서 뭐를 써야할까요?
- 중심극한정리는 왜 유용한걸까요?
- 엔트로피(entropy)에 대해 설명해주세요. 가능하면 Information Gain도요.
- 어떨 때 모수적 방법론을 쓸 수 있고, 어떨 때 비모수적 방법론을 쓸 수 있나요?
- “likelihood”와 “probability”의 차이는 무엇일까요?
- 통계에서 사용되는 bootstrap의 의미는 무엇인가요.
- 모수가 매우 적은 (수십개 이하) 케이스의 경우 어떤 방식으로 예측 모델을 수립할 수 있을까요?
- 베이지안과 프리퀀티스트 간의 입장차이를 설명해주실 수 있나요?
- 검정력(statistical power)은 무엇일까요?
- missing value가 있을 경우 채워야 할까요? 그 이유는 무엇인가요?
- 아웃라이어의 판단하는 기준은 무엇인가요?
- 필요한 표본의 크기를 어떻게 계산합니까?
- Bias를 통제하는 방법은 무엇입니까?
- 로그 함수는 어떤 경우 유용합니까? 사례를 들어 설명해주세요.
- 베르누이 분포 / 이항 분포 / 카테고리 분포 / 다항 분포 / 가우시안 정규 분포 / t 분포 / 카이제곱 분포 / F 분포 / 베타 분포 / 감마 분포에 대해 설명해주세요. 그리고 분포 간의 연관성도 설명해주세요.
- 출장을 위해 비행기를 타려고 합니다. 당신은 우산을 가져가야 하는지 알고 싶어 출장지에 사는 친구 3명에게 무작위로 전화를 하고 비가 오는 경우를 독립적으로 질문해주세요. 각 친구는 2/3로 진실을 말하고 1/3으로 거짓을 말합니다. 3명의 친구가 모두 “그렇습니다. 비가 내리고 있습니다”라고 말했습니다. 실제로 비가 내릴 확률은 얼마입니까?
🤖 Machine Learning
- 알고 있는 metric에 대해 설명해주세요. (ex. RMSE, MAE, recall, precision ...)
- 정규화를 왜 해야할까요? 정규화의 방법은 무엇이 있나요?
- Local Minima와 Global Minimum에 대해 설명해주세요.
- 차원의 저주에 대해 설명해주세요.
- dimension reduction기법으로 보통 어떤 것들이 있나요?
- PCA는 차원 축소 기법이면서, 데이터 압축 기법이기도 하고, 노이즈 제거기법이기도 합니다. 왜 그런지 설명해주실 수 있나요?
- LSA, LDA, SVD 등의 약자들이 어떤 뜻이고 서로 어떤 관계를 가지는지 설명할 수 있나요?
- Markov Chain을 고등학생에게 설명하려면 어떤 방식이 제일 좋을까요?
- 텍스트 더미에서 주제를 추출해야 합니다. 어떤 방식으로 접근해 나가시겠나요?
- SVM은 왜 반대로 차원을 확장시키는 방식으로 동작할까요? SVM은 왜 좋을까요?
- 다른 좋은 머신 러닝 대비, 오래된 기법인 나이브 베이즈(naive bayes)의 장점을 옹호해보세요.
- 회귀 / 분류시 알맞은 metric은 무엇일까?
- Association Rule의 Support, Confidence, Lift에 대해 설명해주세요.
- 최적화 기법중 Newton’s Method와 Gradient Descent 방법에 대해 알고 있나요?
- 머신러닝(machine)적 접근방법과 통계(statistics)적 접근방법의 둘간에 차이에 대한 견해가 있나요?
- 인공신경망(deep learning이전의 전통적인)이 가지는 일반적인 문제점은 무엇일까요?
- 지금 나오고 있는 deep learning 계열의 혁신의 근간은 무엇이라고 생각하시나요?
- ROC 커브에 대해 설명해주실 수 있으신가요?
- 여러분이 서버를 100대 가지고 있습니다. 이때 인공신경망보다 Random Forest를 써야하는 이유는 뭘까요?
- K-means의 대표적 의미론적 단점은 무엇인가요? (계산량 많다는것 말고)
- L1, L2 정규화에 대해 설명해주세요.
- Cross Validation은 무엇이고 어떻게 해야하나요?
- XGBoost을 아시나요? 왜 이 모델이 캐글에서 유명할까요?
- 앙상블 방법엔 어떤 것들이 있나요?
- feature vector란 무엇일까요?
- 좋은 모델의 정의는 무엇일까요?
- 50개의 작은 의사결정 나무는 큰 의사결정 나무보다 괜찮을까요? 왜 그렇게 생각하나요?
- 스팸 필터에 로지스틱 리그레션을 많이 사용하는 이유는 무엇일까요?
- OLS(ordinary least squre) regression의 공식은 무엇인가요?
🧠 Deep Learning
- 딥러닝은 무엇인가요? 딥러닝과 머신러닝의 차이는?
- Cost Function과 Activation Function은 무엇인가요?
- Tensorflow, PyTorch 특징과 차이가 뭘까요?
- Data Normalization은 무엇이고 왜 필요한가요?
- 알고있는 Activation Function에 대해 알려주세요. (Sigmoid, ReLU, LeakyReLU, Tanh 등)
- 오버피팅일 경우 어떻게 대처해야 할까요?
- 하이퍼 파라미터는 무엇인가요?
- Weight Initialization 방법에 대해 말해주세요. 그리고 무엇을 많이 사용하나요?
- 볼츠만 머신은 무엇인가요?
- TF, PyTorch 등을 사용할 때 디버깅 노하우는?
- 뉴럴넷의 가장 큰 단점은 무엇인가? 이를 위해 나온 One-Shot Learning은 무엇인가?
- 요즘 Sigmoid 보다 ReLU를 많이 쓰는데 그 이유는?
- Non-Linearity라는 말의 의미와 그 필요성은?
- ReLU로 어떻게 곡선 함수를 근사하나?
- ReLU의 문제점은?
- Bias는 왜 있는걸까?
- Gradient Descent에 대해서 쉽게 설명한다면?
- 왜 꼭 Gradient를 써야 할까? 그 그래프에서 가로축과 세로축 각각은 무엇인가? 실제 상황에서는 그 그래프가 어떻게 그려질까?
- GD 중에 때때로 Loss가 증가하는 이유는?
- Back Propagation에 대해서 쉽게 설명 한다면?
- Local Minima 문제에도 불구하고 딥러닝이 잘 되는 이유는?
- GD가 Local Minima 문제를 피하는 방법은?
- 찾은 해가 Global Minimum인지 아닌지 알 수 있는 방법은?
- Training 세트와 Test 세트를 분리하는 이유는?
- Validation 세트가 따로 있는 이유는?
- Test 세트가 오염되었다는 말의 뜻은?
- Regularization이란 무엇인가?
- Batch Normalization의 효과는?
- Dropout의 효과는?
- BN 적용해서 학습 이후 실제 사용시에 주의할 점은? 코드로는?
- GAN에서 Generator 쪽에도 BN을 적용해도 될까?
- SGD, RMSprop, Adam에 대해서 아는대로 설명한다면?
- SGD에서 Stochastic의 의미는?
- 미니배치를 작게 할때의 장단점은?
- 모멘텀의 수식을 적어 본다면?
- 간단한 MNIST 분류기를 MLP+CPU 버전으로 numpy로 만든다면 몇줄일까?
- 어느 정도 돌아가는 녀석을 작성하기까지 몇시간 정도 걸릴까?
- Back Propagation은 몇줄인가?
- CNN으로 바꾼다면 얼마나 추가될까?
- 간단한 MNIST 분류기를 TF, PyTorch 등으로 작성하는데 몇시간이 필요한가?
- CNN이 아닌 MLP로 해도 잘 될까?
- 마지막 레이어 부분에 대해서 설명 한다면?
- 학습은 BCE loss로 하되 상황을 MSE loss로 보고 싶다면?
- 딥러닝할 때 GPU를 쓰면 좋은 이유는?
- GPU를 두개 다 쓰고 싶다. 방법은?
- 학습시 필요한 GPU 메모리는 어떻게 계산하는가?
💬 NLP
- RNN은 무슨 모델이고 어떻게 동작하나?
- LSTM은 무슨 모델이고 어떻게 동작하나?
- GRU는 무슨 모델이고 어떻게 동작하나?
- Seq2Seq는 무슨 모델이고 어떻게 동작하나?
- Attention Algorithm의 원리는 어떻게 되나?
- TabNet은 무슨 모델이고 어떻게 동작하나?
- Transformer 구조에 대해 설명해라
- LSTM과 GRU와 Transformer 차이점이 무엇인가?
- BERT는 무슨 모델이고 어떻게 동작하나?
- GPT는 무슨 모델이고 어떻게 동작하나?
- RAG가 무엇인가?
- RLHF와 DPO의 차이점이 무엇인가?
- LoRA가 무엇인가? 사용하면 어떤점이 좋은가?
- PPO는 무엇이고 무슨 한계점을 가지는가?
- Prompt Engineering 기법에 대해 설명하고 이것이 왜 중요한가?
- CoT가 무엇인가?
- Finetuning과 RAG의 차이점이 무엇인가?
- LLM을 Serving할 수 있는 방법을 아는대로 말해보아라
- 효율적인 딥러닝 학습/추론 엔진의 개발/분석/개선방법에 대해 아는대로 말해보아라. (Ex. LLM을 위한 Megatron/FasterTransformer/DeepSpeed/vLLM/TRT-LLM 등)
🐍 Python
- What is the difference between list and tuples in Python?
- What are the key features of Python?
- What type of language is python? Programming or scripting?
- Python an interpreted language. Explain.
- What is pep 8?
- How is memory managed in Python?
- What is namespace in Python?
- What is PYTHONPATH?
- What are python modules? Name some commonly used built-in modules in Python?
- What are local variables and global variables in Python?
- Is python case sensitive?
- What is type conversion in Python?
- How to install Python on Windows and set path variable?
- Is indentation required in python?
- What is the difference between Python Arrays and lists?
- What are functions in Python?
- What is
__init__
? - What is a lambda function?
- What is self in Python?
- How does break, continue and pass work?
- What does
[::-1]
do? - How can you randomize the items of a list in place in Python?
- What’s the difference between iterator and iterable?
- How can you generate random numbers in Python?
- What is the difference between range & xrange?
- How do you write comments in python?
- What is pickling and unpickling?
- What are the generators in python?
- How will you capitalize the first letter of string?
- How will you convert a string to all lowercase?
- How to comment multiple lines in python?
- What are docstrings in Python?
- What is the purpose of is, not and in operators?
- What is the usage of help() and dir() function in Python?
- Whenever Python exits, why isn’t all the memory de-allocated?
- What is a dictionary in Python?
- How can the ternary operators be used in python?
- What does this mean:
*args
,**kwargs
? And why would we use it? - What does len() do?
- Explain split(), sub(), subn() methods of “re” module in Python.
- What are negative indexes and why are they used?
- What are Python packages?
- How can files be deleted in Python?
- What are the built-in types of python?
- What advantages do NumPy arrays offer over (nested) Python lists?
- How to add values to a python array?
- How to remove values to a python array?
- Does Python have OOps concepts?
- What is the difference between deep and shallow copy?
- How is Multithreading achieved in Python?
- What is the process of compilation and linking in python?
- What are Python libraries? Name a few of them.
- What is split used for?
- How to import modules in python?
- Explain Inheritance in Python with an example.
- How are classes created in Python?
- What is monkey patching in Python?
- Does python support multiple inheritance?
- What is Polymorphism in Python?
- Define encapsulation in Python?
- How do you do data abstraction in Python?
- Does python make use of access specifiers?
- How to create an empty class in Python?
- What does an object() do?
- What is map function in Python?
- Is python numpy better than lists?
- What is GIL in Python language?
- What makes the CPython different from Python?
- What are Decorators in Python?
- What is object interning?
- What is @classmethod, @staticmethod, @property?
🌐 Network
- TCP/IP의 각 계층을 설명해주세요.
- OSI 7계층와 TCP/IP 계층의 차이를 설명해주세요.
- Frame, Packet, Segment, Datagram을 비교해주세요.
- TCP와 UDP의 차이를 설명해주세요.
- TCP와 UDP의 헤더를 비교해주세요.
- TCP의 3-way-handshake와 4-way-handshake를 비교 설명해주세요.
- TCP의 연결 설정 과정(3단계)과 연결 종료 과정(4단계)이 단계가 차이나는 이유가 무엇인가요?
- 만약 Server에서 FIN 플래그를 전송하기 전에 전송한 패킷이 Routing 지연이나 패킷 유실로 인한 재전송 등으로 인해 FIN 패킷보다 늦게 도착하는 상황이 발생하면 어떻게 될까요?
- 초기 Sequence Number인 ISN을 0부터 시작하지 않고 난수를 생성해서 설정하는 이유가 무엇인가요?
- HTTP와 HTTPS에 대해서 설명하고 차이점에 대해 설명해주세요.
- HTTP 요청/응답 헤더의 구조를 설명해주세요.
- HTTP와 HTTPS 동작 과정을 비교해주세요.
- CORS가 무엇인가요?
- HTTP GET과 POST 메서드를 비교/설명해주세요.
- 쿠키(Cookie)와 세션(Session)을 설명해주세요.
- DNS가 무엇인가요?
- REST와 RESTful의 개념을 설명하고 차이를 말해주세요.
- 소켓(Socket)이 무엇인가요? 자신 있는 언어로 간단히 소켓 생성 예시를 보여주세요.
- Socket.io와 WebSocket의 차이를 설명해주세요.
- IPv4와 IPv6 차이를 설명해주세요.
- MAC Address가 무엇인가요?
- 라우터와 스위치, 허브의 차이를 설명해주세요.
- SMTP가 무엇인가요?
- 노트북으로
www.google.com
에 접속을 했습니다. 요청을 보내고 받기까지의 과정을 자세히 설명해주세요. - 여러 네트워크 topology에 대해 간단히 소개해주세요.
- subnet mask에 대해서 설명해주세요.
- data encapsulation이 무엇인가요?
- DHCP를 설명해주세요.
- routing protocol을 몇 가지 설명해주세요. (ex. link state, distance vector)
- 이더넷(ethernet)이 무엇인가요?
- client와 server의 차이점을 설명해주세요.
- delay, timing(jitter), throughput 차이를 설명해주세요.
🖥️ Operating System
- 프로세스와 스레드의 차이(Process vs Thread)를 알려주세요.
- 멀티 프로세스 대신 멀티 스레드를 사용하는 이유를 설명해주세요.
- 캐시의 지역성에 대해 설명해주세요.
- Thread-safe에 대해 설명해주세요. (hint: critical section)
- 뮤텍스와 세마포어의 차이를 설명해주세요.
- 스케줄러가 무엇이고, 단기/중기/장기로 나누는 기준에 대해 설명해주세요.
- CPU 스케줄러인 FCFS, SJF, SRTF, Priority Scheduling, RR에 대해 간략히 설명해주세요.
- 동기와 비동기의 차이를 설명해주세요.
- 메모리 관리 전략에는 무엇이 있는지 간략히 설명해주세요.
- 가상 메모리에 대해 설명해주세요.
- 교착상태(데드락, Deadlock)의 개념과 조건을 설명해주세요.
- 사용자 수준 스레드와 커널 수준 스레드의 차이를 설명해주세요.
- 외부 단편화와 내부 단편화에 대해 설명해주세요.
- Context Switching이 무엇인지 설명하고 과정을 나열해주세요.
- Swapping에 대해 설명해주세요.
🗂 Data Structure
- linked list
- single linked list
- double linked list
- circular linked list
- hash table
- stack
- queue
- circular queue
- graph
- tree
- binary tree
- full binary tree
- complete binary tree
- bst(binary search tree)
- heap(binary heap)
- min heap
- max heap
- red-black tree
- b+ tree
🔻 Algorithm
- 시간, 공간 복잡도
- Sort Algorithm
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Heap Sort
- Quick Sort
- Counting Sort
- Radix Sort
- Divide and Conquer
- Dynamic Programming
- Greedy Algorithm
- Graph
- Graph Traversal: BFS, DFS
- Shortest Path
- Dijkstra
- Floyd-Warshall
- Bellman-Ford
- Minimum Spanning Tree
- Prim
- Kruskal
- Union-find
- Topological sort