Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

Backend-Interview-Question

Information

백엔드에대한 전반적인 기초지식향상과 면접준비를위한 스터디입니다.

CS 관련 지식

네트워크

운영체제

운영체제에서 시스템콜(system call)과 인터럽트(Interrupt)는 무엇이며, 어떻게 동작하나요?

시스템콜과 인터럽트

  • 프로세스 스케줄링이란 무엇이며, 어떤 알고리즘들이 사용되나요?
  • 동기와 비동기의 차이(블로킹, 넌블로킹) / 장단점에 대해 설명해보세요.
  • Thread-safe 하다는 의미와 설계하는 법을 설명해보세요.
  • 프로세스 동기화에 대해 설명해보세요.
  • 가상 메모리에 대해 설명해보세요.
  • 캐시의 지역성에 대해 설명해보세요.
  • 운영체제의 주요 기능은 무엇인가요?
  • 부팅 과정에 대해 설명해보세요.
  • 메모리 단편화(Fragmentation)란 무엇이며, 이를 해결하기 위한 방법은 무엇인가요?
  • 파일 시스템의 역할과 종류에 대해 설명해보세요.
  • I/O 관리와 I/O 스케줄링에 대해 설명해보세요.
  • 스왑 공간(Swap Space)과 그 역할에 대해 설명해보세요.

데이터베이스

데이터베이스에서 인덱스를 사용하는 이유 및 장단점 그리고 알고리즘에 대해 설명해주세요.

데이터베이스 인덱스

트랜잭션및 격리수준에 대해서 설명해주세요.

트랜잭션과 격리수준.md

ACID에 대해서 설명해주세요.

acid.md

정규화에 대해서 설명해주세요.

정규화.md

JOIN에 대한 설명과 원리 그리고 종류.
RDBMS vs NOSQL에 대해서 설명해주세요.
Redis에 대해서 간단히 설명해주세요.
Redis와 Memcached의 차이에 대해서 설명해주세요.
Elastic Search에 대해서 간단히 설명해주세요.

Elastic Search!!!!!

Elastic Search의 인덱스구조와 RDBMS의 인덱스 구조의 차이에 대해 설명해주세요.

Elastic Search!!!!!

Elastic Search의 키워드 검색과 RDBMS의 LIKE 검색의 차이에 대해 설명해주세요.

Elastic Search!!!!!

MongoDB에 대해서 간단히 설명해주세요.
CAP 이론과, Eventual Consistency에 대해서 설명해주세요.
옵티마이저에 대해 설명하세요.

옵티마이저

파티셔닝 리플리케이션 샤딩에 대해 설명하세요.

파티셔닝_리플리케이션_샤딩

postgresql과 mysql의 차이점.

자료구조/알고리즘

보통의 자료구조/알고리즘적 지식은 코딩테스트로 검증합니다.
하지만 아래의 개념을 적어도 이해는 한다고 생각하니, 혹시 모르는 부분이 있을 경우 학습을 권장합니다.

자료구조 및 알고리즘

시간 복잡도에대한 예시와 설명.

시간복잡도

배열과 링크드 리스트의 차이를 설명해주세요.

배열과 링크드 리스트

List와 Set의 차이에 대해서 설명해주세요.

List와Set

Hash Function, HashTable에 대해서 설명해주세요.

hashFuntion_HashTable

Stack과 Queue, Tree와 Heap의 구조에 대해 설명해주세요.

Stack_Queue_Tree_Heap

Tree, Binary Tree, BST, AVL Tree에 대해서 설명해주세요.

Tree, Binary Tree, BST, AVL Tree

피보나치 수열을 코드로 구현하는 방법에 대해서 설명해주세요.

피보나치 수열을 코드로 구현하는 방법

DFS, BFS에 대해서 설명해주세요.

DFS, BFS

정렬, 탐색에 대해 설명해주세요.

정렬 탐색

동적프로그래밍에 대해 설명해주세요.

동적프로그래밍

암호학/보안(간단한 정도)

CSRF(Cross-Site Request Forgery)와 XSS(Cross-Site Scripting)의 차이점과 방지 방법에 대해 설명해주세요.

CSRF(Cross-Site Request Forgery)와 XSS(Cross-Site Scripting)

비대칭키 암호화, 대칭키 암호화에 대해 간단히 설명해주세요.
01_단방향암호화 단방향 암호화에 대해서 간단히 설명해주세요.

단방향암호화

JWT에 대해서 간단히 설명해주세요.

JWT 설명

OAuth에 대해서 간단히 설명해주세요.

OAuth 설명

JWT와 OAuth의 차이는 무엇이 있을까요?

JWT vs OAuth

SQL Injection에 대해서 간단히 설명해주세요.

SQL_injection

XSS에 대해서 간단히 설명해주세요.

CSRF에 대해서 간단히 설명해주세요.

컴파일러

스크립트 언어와 컴파일 언어를 나열하고 차이점을 설명해주세요.

언어 관련

Python

List와 Tuple의 차이에 대해 설명해주세요.
파이썬 코루틴에 대해 설명해주세요.

코루틴

파이썬 데코레이터에 대해 아는대로 설명해주세요.
MRO에 대해 설명해주세요.
Magic Method에 대해 설명해주세요.
__new__와 __init__의 차이에 대해 설명해주세요.

__repr__와 __str__의 차이에 대해 설명해주세요.

r string과 u string에 대해 설명해주세요.
Call by Assignment에 대해 설명해주세요.
파이썬에서의 접근제어지시자에 대해 아는대로 설명해주세요.

global과 nonlocal 키워드의 차이에 대해 설명해주세요.

classmethod와 staticmethod의 차이에 대해 설명해주세요.

파이썬의 주요 특징은 무엇인가요?
파이썬의 GIL(Global Interpreter Lock)이란 무엇인가요?

GIL 설명

파이썬의 메모리 모델에 대해 설명해주세요.

Python Memory Model

파이썬에서 메모리 관리는 어떻게 이루어지나요?

Python Memory Management

파이썬의 가비지 컬렉션(Garbage Collection)은 어떻게 작동하나요?

Python Garbage Collections


람다 함수(lambda function)란 무엇이며, 언제 사용하나요?
파이썬에서 예외 처리 방법에 대해 설명해 주세요.

파이썬의 모듈(Module)과 패키지(Package)에 대해 설명해 주세요.
정규 표현식(Regular Expressions)을 사용하여 문자열을 처리하는 방법은 무엇인가요?
파이썬의 클래스와 객체 지향 프로그래밍(OOP)에 대해 설명해 주세요.

파이썬 객체지향 프로그래밍

파이썬에서 다중 상속(Multiple Inheritance)은 어떻게 구현하나요?

다중상속

파이썬의 with 구문에 대해 설명해 주세요.
파이썬의 `*args`와 `**kwargs`는 무엇이며, 어떻게 사용하나요?
파이썬에서 데이터베이스에 접근하는 방법에 대해 설명해 주세요.
파이썬의 `asyncio` 라이브러리를 사용하여 비동기 프로그래밍을 하는 방법은 무엇인가요?

asyncio

파이썬의 정적 타이핑(Static Typing)을 지원하는 방법은 무엇인가요?
파이썬에서 메타 클래스(Metaclass)는 무엇이며, 어떻게 사용하나요?
파이썬의 `deepcopy`와 `shallow copy`의 차이는 무엇인가요?
파이썬에서의 변수 범위(Scope)와 네임스페이스(Namespace)에 대해 설명해주세요.
파이썬의 예외 클래스 계층 구조에 대해 설명해주세요.
파이썬의 다중 상속 문제를 해결하기 위한 방법은 무엇인가요?
파이썬의 duck typing에 대해 설명해주세요.
파이썬에서의 'Non-Local' 변수는 무엇인가요?
파이썬에서의 `super()` 함수는 어떻게 작동하나요?
  • 파이썬의 동적 타이핑(Dynamic Typing)과 정적 타이핑(Static Typing)의 차이는 무엇인가요?
  • 파이썬의 인터프리터(Interpreter)와 컴파일러(Compiler)의 차이는 무엇인가요?
  • 파이썬의 컴프리헨션(Comprehension) 종류에 대해 설명해주세요.
  • 리스트 컴프리헨션(List Comprehension)이란 무엇인가요?
  • 파이썬의 제너레이터(Generator)와 이터레이터(Iterator)의 차이점은 무엇인가요?
  • 파이썬의 컨텍스트 매니저(Context Manager)와 with 구문에 대해 설명해주세요.
  • 파이썬의 __slots__은 무엇이며, 언제 사용하나요?
  • 파이썬의 None 타입은 무엇이고 어떻게 사용하나요?
  • 파이썬에서의 자료형 힌팅(Type Hinting)은 무엇이며, 어떻게 사용하나요?
  • 파이썬의 프로퍼티(Property)와 게터(Getter), 세터(Setter)에 대해 설명해주세요.
  • 파이썬의 문서화 도구(Documentation Tools)에 대해 설명해주세요 (예: Sphinx).
파이썬의 내장시퀀스에대해서 설명해주세요

내장시퀀스

gunicorn,uvicorn,fastapi들의 각각의 역할과 흐름에대해서 설명해주세요

gunicorn,uvicorn,fastapi

Go

Go의 주요 특징은 무엇인가요?

go의 주요특징

Go의 패키지 시스템에 대해 설명해주세요.

패키지 시스템

Go에서 변수 선언 방법에 대해 설명해주세요.

변수선언방법

Go의 포인터(Pointer)에 대해 설명해주세요.

go포인터

Go의 구조체(Struct)와 인터페이스(Interface)의 차이는 무엇인가요?
Go의 고루틴(Goroutine)과 Go에서 채널(Channel) 이란 무엇인가요?

고루틴과 고채널

Go의 defer 키워드에 대해 설명해주세요.

defer 함수

Go에서 슬라이스(Slice)와 배열(Array)의 차이는 무엇인가요? & Go에서 map이란 무엇인가요?

배열과슬라이스

Go의 가비지 컬렉션(Garbage Collection)은 어떻게 작동하나요?
Go의 메서드(Method)와 함수(Function)의 차이는 무엇인가요?

go의 메소드vs함수

Go에서 인터페이스(Interface)는 어떻게 사용하나요?
Go에서 에러 처리 방법에 대해 설명해주세요.
Go의 빌트인 테스트 도구에 대해 설명해주세요.
Go 모듈(Module)이란 무엇인가요?
Go의 동시성(Concurrency)과 병렬성(Parallelism)의 차이는 무엇인가요?
Go에서 context 패키지는 언제 사용하나요?
Go의 panic과 recover에 대해 설명해주세요.
Go에서 HTTP 서버를 만드는 방법에 대해 설명해주세요.

최신기술관련

gRPC

gRPC란 무엇인가요? gRPC의 주요 장점과 단점은 무엇인가요?

gRPC

gRPC에서 프로토콜 버퍼(Protocol Buffers)는 무엇이며, 어떻게 사용하나요?
gRPC에서 서비스 정의 파일(.proto 파일)은 어떻게 작성하나요?
gRPC의 스트리밍(Stream) 기능에 대해 설명해주세요.
gRPC의 보안(예: TLS/SSL) 설정 방법에 대해 설명해주세요.
gRPC의 로드 밸런싱(Load Balancing) 기능에 대해 설명해주세요.
gRPC의 인터셉터(Interceptor)란 무엇이며, 어떻게 사용하나요?
gRPC의 버전 관리(versioning) 방법에 대해 설명해주세요.
RESTful과 GRAPHQL이란 무엇인지 + gRPC와 RESTful API의 차이점은 무엇인가요?

REST와 GraphQL, gRPC

Apache Kafka

Apache Kafka란 무엇인가요?
+ Kafka의 주요 구성 요소는 무엇인가요?
+ Kafka의 프로듀서(Producer)와 컨슈머(Consumer)의 역할은 무엇인가요?
+ Kafka에서 토픽(Topic)과 파티션(Partition)의 개념에 대해 설명해주세요.

Kafka

Kafka의 브로커(Broker)와 클러스터(Cluster)의 차이는 무엇인가요?

Kafka System

Kafka의 Zookeeper는 어떤 역할을 하나요?
Kafka의 메시지 보장(Messaging Guarantees)에 대해 설명해주세요.

Messaging Guarantees

Kafka에서 Consumer Group이란 무엇이며, 어떻게 작동하나요?

Consumer Group

Kafka의 리플리케이션(Replication)과 데이터 복제는 어떻게 이루어지나요?
Kafka에서 메시지의 오프셋(Offset)이란 무엇인가요?

디자인 패턴

  • 싱글톤 패턴에 대해서 설명해주세요.
  • 가교 패턴(브릿지 패턴)에 대해서 설명해주세요.
  • 전략 패턴에 대해서 설명해주세요.
  • 빌더 패턴에 대해서 설명해주세요.
  • 팩토리 메서드 패턴에 대해서 설명해주세요.
  • 퍼사드 패턴에 대한 예를 들어주세요.

테스트

테스트 코드에 대해서 어떻게 생각하고, 작성하나요?

TDD를 알고 있나요? TDD에 대해서 어떻게 생각하나요?

테스트 커버리지에 대해서 어떻게 생각하나요?

인프라/클라우드

AWS 인프라를 구축해보았다면 설명해주세요.

로드 밸런서에 대해서 설명해주세요.

리버스 프록시에 대해서 설명해주세요.

Fault-tolerant(무정지) 시스템으로 가기 위해 필요한 방법에 대한 생각을 말해주세요.

컨테이너

제가 아직 도커, 쿠버네티스에 익숙하지 않아 공부가 좀 더 필요합니다.
관련해서 질문을 받아본적은 없으나, 일반적인 질문을 담아보았습니다.

Docker란 무엇이고 컨테이너 가상화를 왜 사용할까요?

컨테이너 환경에서의 디버깅은 어떤식으로 하며 상대적으로 어려운 점은 무엇인가요?

DevOps

CI/CD가 무엇인가요? 왜 CI/CD가 장점이 될까요?

면접 꿀팁

회사의 기술스택에 관심을 가져보세요. 학습능력이 좋음을 어떤식으로 보여줄 수 있을까요?

본인이 수행한 프로젝트를 유의미한 트래픽이 나올정도로 해본 경험을 높게 평가하는 회사가 많습니다.

두괄식으로 답변하도록 합시다. (사실 힘듭니다. 그렇게 될 수 있게끔 연습 또 연습!)

프로젝트를 수행할 때, 내가 이 기술을 단순히 좋아보여서 사용한 것이 아니라, 많은 고민을 했음을 보여주도록 하세요. 가장 간단한 질문으로는 '왜 그 기술을 사용했나요?', '그 기술 말고 다른 기술은 왜 사용하지 않았나요?', '대체할만한 기술이 있나요?' 등이 있습니다.

참고자료나 영상출처

백엔드면접팁2 면접 꿀팁 영상!

About

What is information technology?

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors