- 입출력 관리의 개념 및 방식을 파악한다.
- Polling에 대해 파악한다.
- Interrupt에 대해 파악한다.
- 입출력 장치와 컴퓨터 간 데이터 교환 방식을 파악한다.
- DMA
- 입출력 관리 : 컴퓨터와 하드웨어 장치 간 공통된 인터페이스 역할을 수행함으로써 원활한 동작을 돕는다.
- 하드웨어 장치는 포트를 통해 컴퓨터에 접속한다.
이러한 포트를 제어하는 제어기의 내부의 레지스터를 통해 입출력을 실행한다.
- Polling : 하드웨어 장치의 상태를 확인하는 것
- Busy bit : 레지스터가 포함한 정보로써 장치가 사용 가능한 지를 나타낸다.
- 단점 : Polling의 주기가 짧으면 성능이 저하되고, 주기가 길면 실시간성이 저하된다.
이를 개선하기 위해 Interrupt를 이용한다.
- 인터럽트 : CPU가 프로세스 수행 중 입출력 장치의 상태 변화나 예외상황이 발생하면 CPU에게 인터럽트를 보내 알린다.
- CPU는 하나의 명령어를 마칠 때마다 인터럽트 요청 라인을 확인한다.
인터럽트 발생 시, 원래 작업을 중단한 후 인터럽트를 처리하고나서 작업을 재개한다.
- DMA : 입출력 장치와 컴퓨터의 데이터 교환 방식에 쓰이는 방식
- CPU가 대용량 입출력 장치와 데이터를 교환하게 되면 성능이 저하된다.
따라서, PIO를 DMA에게 위임한다.
- PIO(Programmed Input/Output) : CPU의 데이터 교환 방식
- 작업 순서
- CPU가 입출력을 요청한다.
- DMA 제어기의 레지스터에 데이터에 대한 정보를 기록한다.
(데이터가 위치한 주소
전송할 주소
전송할 데이터의 바이트 수
등)- DMA 제어기가 입출력을 수행한다.
- 수행을 마치면 CPU에게 인터럽트를 보낸다.
인터넷
인터넷 작동 원리HTTP란?브라우저 동작 원리DNS 작동 원리도메인 네임이란?호스팅이란?
기본적인 프론트엔드 지식HTMLCSSJavaScript
OS 및 일반적인 지식터미널 사용방법OS 작동 방식프로세스 관리스레드와 동시성기본적인 터미널 명령어메모리 관리프로세스간 통신 (IPC)입출력(I/O) 관리- 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 수직적 확장
- 관찰 가능성을 고려한 확장