ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

컴퓨터 (Computer)

정의

복잡함을 추상화로 나눠 숨기는 방식으로 발전했습니다.

컴퓨터 내부는 물리 신호(트랜지스터)부터 운영체제/런타임/프레임워크/애플리케이션까지 매우 복잡하고 정교한 시스템이 층층이 쌓여 있습니다.

추상화 덕분에 우리는 전기 신호나 명령어 인코딩을 전부 몰라도, “필요한 층”만 다루며 생산적으로 개발할 수 있습니다. 반대로 실무 문제는 종종 추상화 아래 층에서 발생합니다.

핵심 메시지

“추상화는 복잡함을 숨겨 생산성을 높이지만,
문제가 터지면 어느 계층에서 깨졌는지를 찾아야 해결된다.”

- 실무의 디버깅은 ‘층 찾기’에서 시작한다 -

본질

컴퓨터는 I - P - O(Input - Process - Output) 메커니즘을 갖습니다.

컴퓨터는 입력을 받고, 규칙에 따라 처리한 뒤, 출력합니다. 여기서 핵심은 “규칙”입니다. 같은 입력이라도 어떤 규칙을 적용하느냐에 따라 출력이 완전히 달라집니다.

이 규칙이 우리가 작성하는 코드이고, 코드는 컴파일러/런타임을 거쳐 결국 CPU가 이해하는 명령어(Instruction) 형태로 번역되어 실행됩니다. 즉, “추상화된 코드”가 “물리 장치”를 움직이기까지는 여러 계층이 협력합니다.

IPO
입력 → 처리 → 출력(IPO)은 “사용자 관점의 흐름”이고,
내부에서는 추상화 계층이 이 흐름을 현실로 만들어 줍니다.

계층 구조

각 계층은 아래 계층의 복잡함을 숨기고, 위 계층에 단순한 “인터페이스”를 제공합니다.

개발자는 보통 상위 계층(언어/프레임워크/OS API)에서 작업합니다. 하지만 장애/성능 문제는 종종 하위 계층(스케줄링, GC, 네트워크, 디스크, 캐시, 페이지 폴트 등)에서 발생합니다. 그래서 “어떤 계층에서 문제가 생겼는지”를 구분하는 능력이 중요합니다.

계층 주요 구성 요소 숨겨주는 복잡함(개발자 관점)
응용 웹/모바일 앱, 비즈니스 로직 사용자 요구를 기능으로 구현(도메인에 집중)
프레임워크 Spring/Next.js, 라우팅, DI, 미들웨어 요청 흐름/공통 기능(보안·로그·예외) 표준화
런타임 JVM/Node/V8, GC, JIT 메모리 관리/최적화/바이트코드 실행
운영체제 프로세스/스레드, 가상메모리, 파일, 소켓 자원 관리/보안/스케줄링(시스템 콜로 접근)
드라이버/펌웨어 네트워크/디스크 드라이버, NIC, BIOS/UEFI 장치 제어/인터럽트/하드웨어 세부 제어
하드웨어 CPU, 레지스터, 캐시, RAM, 스토리지 물리 연산/메모리 계층/병목(캐시 미스, I/O 대기)

예시

“HTTP 요청” 하나도 내부에서는 여러 계층이 협력합니다.

흐름 예시
애플리케이션 코드(HTTP client) → 프레임워크/런타임 → OS 소켓(API) → TCP/IP 스택 → NIC 드라이버 → 물리 신호
중간에 DNS 조회, TLS 핸드셰이크, 버퍼링, 커널 스케줄링, 인터럽트 처리까지 얽힐 수 있습니다. 그래서 “네트워크가 느리다”는 증상도 실제 원인은 여러 층에 있을 수 있습니다.

개발자가 알아야 하는 이유

우리는 높은 층에서 개발하지만, 문제는 종종 “아래 층”에서 발생합니다.
  • 성능 최적화: 느려지는 지점은 CPU 연산이 아니라 메모리/캐시/I/O일 때가 많습니다. 계층 관점으로 병목을 분리하면 p95 지연 같은 문제를 빠르게 좁힐 수 있습니다.
  • 문제 해결 능력: 네트워크 타임아웃, 파일 디스크립터 고갈, 스레드 경합, GC 스톱더월드 같은 문제는 “추상화 아래”에서 올라옵니다. 계층 구조를 알면 원인 추적이 빨라집니다.
  • 설계/트레이드오프: 캐시 도입, 비동기 처리, 배치/스트리밍 선택은 “어느 계층에서 비용을 지불할지” 결정입니다. 시스템 전체를 조망할수록 더 좋은 판단이 나옵니다.
  • 보안/안정성: 권한/격리(프로세스), 메모리 보호(가상 메모리), TLS 같은 보안은 계층 기반으로 성립합니다. “왜 필요한지”를 이해하면 설계가 단단해집니다.

 

계층을 내려가며 이해하기

“컴퓨터를 이해한다”는 것은 계층별 책임과 한계를 파악하는 과정입니다.
주제 한 줄 설명 기대 효과
데이터/명령어 비트/바이트, 인코딩, 명령어 실행의 기본 기초 탄탄, 디버깅 언어 확보
컴퓨터 구조 CPU·레지스터·캐시·메모리 계층 병목(캐시/메모리/I-O) 이해
운영체제(OS) 프로세스/스레드/가상메모리/시스템콜 서버 장애 대응/성능 분석 강화
컴파일러/런타임 고수준 코드가 실행 가능한 형태로 변환·최적화 GC/JIT/메모리 이슈 대응
네트워크/스토리지 TCP/IP, 소켓, 파일 시스템, 디스크 I/O 지연/타임아웃/데이터 손실 분석

핵심 요약

한 번에 정리

✅ 핵심 요약

  • ✔️ 컴퓨터는 복잡함을 추상화 계층으로 나눠 숨기고, 위 계층에는 단순한 인터페이스를 제공한다.
  • ✔️ 본질은 IPO: 입력을 받아 “규칙(코드→명령어)”에 따라 처리하고 결과를 출력한다.
  • ✔️ 실무 문제는 종종 하위 계층(OS/런타임/네트워크/I-O/캐시)에서 발생하므로, “어느 계층이 깨졌는지”를 찾는 것이 디버깅의 출발점이다.
  • ✔️ 계층 이해는 성능/장애/설계 트레이드오프/보안 의사결정의 기반이 된다.
728x90