- 쿠키, 세션, JWT 토큰
- Cookie / Session
- 세션 기반 인증 / 토큰 기반 인증
- JWT
- 네트워크 시스템의 Layered Architecture
- 웹의 동작 방식
- TCP/IP 5 Layer
- OSI 7 Layer
- TCP, UDP, IP, PORT
- HTTP 와 HTTPS
- HTTP/HTTPS
- HTTP 2.0
- 로드 밸런서(Load Balancer)
- 로드밸런싱
- Scale out, Scale up
- 프록시(Proxy)
- 포워드 프록시, 리버스 프록시
- DMZ
- 네트워크 보안(Network Security)
- 보안 3대요소, 웹 해킹, 방화벽
- IPSec, SSL 과 TLS
- SQL Injection, OS Command Injection, XSS, CSRF
- 웹 소켓(Web Socket)
- HTTP Polling, HTTP Long Polling
- HTTP vs 웹 소켓
- CORS(Cross Origin Resource Sharing)
- CORS
- SOP
- 스프링 부트에서 CORS 해결 하는 방법
- REST and RESTful
- REST 구성요소와 기본 원칙
- REST API 디자인 가이드
- OAuth(Open Authorization)
- OAuth1.0, OAuth2.0
- 일반로그인과 OAuth로그인 차이
- 인증 절차 종류
- 운영체제와 컴퓨터 시스템 구조
- 캐시의 지역성
- 캐시의 종류와 쓰기
- 캐시의 지역성
- Mapping Function 개념 (MMU와 관련하여 설명) (Mapping Function 종류는 조사X)
- 메모리 구성
- 스택 동작 과정
- Stack 과 Heap
- 프로세스/스레드에서의 스택
- 프로세스와 스레드 1 - 동일인
- Multi Process, Multi Thread, PCB, 프로세스 상태 전이
- Interrupt, Context Switching
- 프로세스와 스레드 2 - 동일인
- WAS, ThreadPool
- 동시성 이슈란?, 동시성 이슈를 피하는 방법 (스프링에서)
- Thread Safe 하게 설계하는 방법
- 프로세스 동기화
- 경쟁 상태(race condition)
- 임계 구역(ciritical section)
- 뮤텍스 락(Mutex Locks)
- 세마포(semaphore)
- 교착상태와 기아상태
- 교착상태
- 교착상태 해결 방법
- 기아상태, Livelock
- CPU 스케줄링 기법
- 선점, 비선점
- FIFO, SJF, STCF
- Round Robin
- Busy Waiting
- Multi-Level Feedback Queue
- 블락킹과 논블락킹, 동기식과 비동기식
- 동기식과 비동기식
- 블락킹과 논블락킹
- System Call
- 커널 모드와 유저 모드
- 인터럽트 vs 시스템콜
- 파일 시스템
- 파일의 기본 구성
- 파일 시스템이 필요한 이유
- 트리 구조 디렉토리
- 파일 시스템 대신 데이터베이스를 사용하는 이유
- 주소 바인딩과 스와핑
- 논리 주소 vs 물리 주소
- 컴파일 타임 바인딩, 적재 타임 바인딩, 실행 타임 바인딩
- 스와핑
- 메모리 할당과 단편화
- 고정 분할, 가변 분할
- 메모리 할당 알고리즘(최초 적합, 최적 적합, 최악 적합)
- 외부 단편화, 내부 단편화
- 페이징과 세그멘테이션
- 페이징, 세그멘테이션
- 페이징 스와핑
- 페이지 교체 알고리즘
- OPT, FIFO
- LRU, NUR
- LFU, MFU, SCR
- RAID
- RAID 사용 이유
- RAID 에서 쓰이는 3가지 기술
- RAID 종류와 특징
- 가상 머신, 가상 메모리
- 가상 머신과 가상머신을 사용하는 이유
- 가상 메모리 이점, 원리
- 요구 페이징
- RDBMS vs NoSQL
- RDBMS 와 NoSQL 차이
- RDBMS 에서 서버 확장하는 방법(Master and Slave)
- ElasticSearch
- 검색엔진, 검색시스템, 검색서비스
- 검색시스템 구성요소
- 색인과 역색인
- 검색기 품질
- 관계형 데이터베이스와의 차이점
- 엘라스틱서치 주요 API
- Transaction
- 트랜잭션을 사용하는 이유
- ACID
- 트랜잭션 격리 수준
- 트랜잭션 격리 수준을 설정할 때 발생 하는 문제점들
- Redis
- Redis
- Look Aside Cache, Write Back
- CAP
- DB Lock
- Lock 의 종류와 단위
- 블로킹(Blocking)
- 데드락(Deadlock)
- 정규화, 반정규화
- 이상 현상
- 정규화와 반정규화
- MySQL Architecture
- MySQL 엔진
- 스토리지 엔진
- 핸들러 API
- MySQL 스레딩 구조
- 메모리 할당 및 사용 구조
- 쿼리파서, 전처리기, 옵티마이저, 실행엔진
- 스레드풀, 트랜잭션 지원 메타데이터
- Index, Hint
- 순차 I/O, 랜덤 I/O
- 쿼리 튜닝의 목적
- B-Tree Index, Hash Index
- MySQL 에서 B-tree 를 사용하는 이유
- 인덱스 레인지 스캔, 인덱스 풀 스캔
- 클러스터링 인덱스, 논 클러스터링 인덱스
- MySQL 에서 PK 를 인조키로 사용하고 Auto_Increment 를 사용하는 이유
- 동시성 제어
- 동시성 제어를 하지 않을 시 발생하는 문제점
- 동시성 제어 방법
- 스키마(Schema)
- 스키마 3계층과 3계층으로 나누어 사용하는 이유
- 테이블 vs 스키마
- DB 클러스터링, 리플리케이션
- 클러스터 사용 장점과 구현 방법
- 리플리케이션, 리플리케이션 래그
- 파티셔닝
- 샤딩
- ConnectionPool
- 커넥션 풀 개수 설정 방법
- 커넥션 풀 동작원리(HikariCP)
- 커넥션 풀의 장점