- 스레드의 개념을 파악한다.
- 멀티스레드
- 동시성의 개념을 파악한다.
- vs 병렬성
- 스레드 : 프로세스 내에서 작업을 수행하는 주체이자, CPU 이용의 기본 단위
- 즉, 모든 프로세스는 한 개 이상의 스레드를 가진다.
이때, 두 개 이상의 스레드를 가지는 것을 멀티 스레드라고 한다.
- 멀티 스레드 예시 : 워드 프로세서에서 UI을 표시하는 스레드, 입력에 응답하는 스레드, 맞춤법 검사를 수행하는 스레드가 있을 수 있다.
- 동시성 : 싱글 코어에서, 멀티 스레드를 동작시키기 위해 여러 개의 스레드가 번갈아가며 실행되는 성질
- 즉, 동시에 실행되는 것이 아닌 빠르게 번갈아가며 실행된다.
- 병렬성 : 멀티 코어에서, 멀티 스레드를 동작시키기 위해 여러 개의 스레드가 번갈아가며 실행되는 성질
- 즉, 두 개 이상의 스레드가 실제로 동시에 실행된다.
- 데이터 병렬성 : 전체 데이터를 작게 나누어 병렬적으로 처리한다.
- 작업 병렬성 : 서로 다른 작업을 병렬적으로 처리한다.
인터넷
인터넷 작동 원리HTTP란?브라우저 동작 원리DNS 작동 원리도메인 네임이란?호스팅이란?
기본적인 프론트엔드 지식HTMLCSSJavaScript
OS 및 일반적인 지식터미널 사용방법OS 작동 방식프로세스 관리스레드와 동시성- 기본적인 터미널 명령어
- 메모리 관리
- 프로세스간 통신 (IPC)
- 입출력 관리
- POSIX 기초
- 기본적인 네트워크 개념
버전 관리- Git 기본 사용법
DataBase- PostgreSQL (변경 가능성 있음)
- MongoDB
DataBase 상세 정보- ORM
- ACID
- Transaction
- N + 1 Problem
- DataBase 정규화
- Index와 작동 방식
API- 인증
- REST
- JSON APIs
캐싱- CDN
- Server side
- Client side
웹 보안 지식- MD5, SHA family, scyrpt, bcrypt
- HTTPS, CORS, SSL/TL, 보안 정책
Testing- 통합 테스트
- 단위 테스트
- 기능 테스트
- CI/CD
개발과 설계 원칙- SOLID
- KISS
- YAGNI
- DRY
아키텍처 패턴- 모놀로틱 앱
- 마이크로서비스
- SQA
- Serverless
검색 엔진- ElasticSearch
메세지 브로커- RabbitMQ, Kafka
컨테이너화 vs 가상화- Docker
GraphQL- Apollo
- 웹 소켓
- 웹 서버
확장성- 측정, 모니터링, 원격측정
- 마이그레이션 전략
- 수평적 확장 vs 수직적 확장
- 관찰 가능성을 고려한 확장