담비의 개발블로그

키보드에서 a키를 눌렀을때 모니터 a라는 글자가 뜨는 과정은 무엇인가요? 본문

개발관련이야기

키보드에서 a키를 눌렀을때 모니터 a라는 글자가 뜨는 과정은 무엇인가요?

담비12 2025. 10. 28. 19:04

키보드 입력이 모니터에 표시되는 과정은 하드웨어와 소프트웨어(운영체제, 응용 프로그램) 간의 상호작용이다.

1. 물리적 입력(사용자의 입력)

사용자가 키보드의 'a' 키를 누른다.

2. 스캔 코드 생성

키보드 내부의 마이크로컨트롤러가 'a' 키가 눌렸음을 감지하고, 해당 키에 할당된 고유 번호인 '스캔 코드(Scan Code)'를 생성한다. (이때는 'a'라는 문자가 아니라, '특정 위치의 키가 눌렸다'는 신호이다.)

3. 데이터 전송 (USB/Bluetooth)

이 스캔 코드는 USB 케이블이나 블루투스 신호를 통해 컴퓨터 본체로 전송된다.

4. 운영체제(OS) 수신 및 해석
컴퓨터의 OS(예: 윈도우)는 키보드 드라이버(Driver)를 통해 이 스캔 코드를 수신한다.
OS는 현재 설정된 언어(한/영)나 Shift, Caps Lock 키의 상태를 조합하여, 이 스캔 코드를 'a'라는 문자 코드(예: ASCII/Unicode 0x61)로 변환한다.

5. 활성 프로그램 전달 (표준 입력)
OS는 현재 사용자가 작업 중인 활성 프로그램(예: 메모장, 웹 브라우저, 터미널)을 확인한다.
OS는 변환된 'a' 문자 데이터를 해당 프로그램의 표준 입력(Standard Input, stdin) 스트림(데이터 통로)으로 밀어 넣는다.

6. 프로그램 처리
메모장 프로그램은 자신의 표준 입력으로 'a'가 들어온 것을 인지한다.
프로그램은 'a'를 현재 커서 위치의 텍스트 버퍼(메모리 공간)에 추가한다.
그리고 "화면이 변경되었으니 'a'를 모니터에 그려야 한다"고 OS에 요청한다.

7. OS의 그래픽 처리 (표준 출력)
프로그램의 "그려달라"는 요청은 OS의 표준 출력(Standard Output, stdout) 스트림을 통해 그래픽 시스템으로 전달된다.
OS의 그래픽 엔진은 폰트 파일(예: '맑은 고딕')에서 'a'라는 문자의 모양(비트맵/벡터 데이터)을 찾는다.
이 'a' 모양을 모니터의 특정 좌표에 해당하는 픽셀 데이터로 변환합니다.

8. GPU 및 모니터 출력
이 픽셀 데이터는 그래픽 카드(GPU)로 전송된다.
GPU는 이 데이터를 처리하여 모니터가 이해할 수 있는 영상 신호로 만든 후, HDMI나 DP 케이블을 통해 모니터로 전송다.
모니터는 이 신호를 받아 해당 픽셀들을 켜서 사용자에게 'a'라는 글자를 보여줍니다.