추상과 구체

@Changmin · November 24, 2024 · 3 min read

TL;DR

추상 vs 구체에 대해 실생활 예시를 통한 비교를 합니다.

추상 vs 구체 예시

CASE : 자동차

차를 운전하기 위해서 우리는 시동을 걸고, 기어를 D로 놓고 엑셀 페달을 밟으면 전진한다. 후진을 하기 위해서는 기어만 R로 변경하고 엑셀 페달을 밟는다. 멈추고 싶을 때 브레이크 페달을 밟는다.
자동차 내부 구조 및 회로에 대해서 고민하고 알아야 운전을 할 수 있는가?

추상화

  • 시동을 건다.
  • 기어를 D로 놓고 엑셀 페달을 밟는다.
  • 기어를 R로 놓고 엑셀 페달을 밟는다.
  • 브레이크 페달을 밟는다.
  • ... 등등

구체화

  • 시동을 걸면 배터리의 전력을 통해 엔진의 모터가 돌아간다.
  • 기어를 변경하면, 각 기어에 맞게 구동축을 이동시킨다. (각각의 기어 위치도 알아야겠지?)
  • 브레이크 페달을 밟으면, 유압이 올라가 ... 디스크를 잡아 마찰력을 높인다.
  • ... 등등

추상화 덕분에 우린 굉장히 편리하게 살아갈 수 있다.

CASE : 인프라 구성

우리는 빠른 배포 환경을 구축하기 위해서 AWS 인프라를 사용한다. 손쉽게 Amazon EC2, AWS Lambda 등의 컴퓨팅 리소스를 빠르게 프로비저닝할 수 있다.
최근에 나는 추상화되어 있는 영역을 넘어 실제 구체를 다루기 위해, 홈서버를 구축했다. 왜 많은 사람들이 직접 구축하지 않는지를 알게되었다.
실제 물리적인 구성에 대한 고민을 해야하는가?

추상화

  • Amazon EC2 메뉴에서 나에게 맞는 OS, 네트워크 설정을 간편하게 클릭하여 설정한다.
  • 이것마저 귀찮다면 AWS Lambda로 손쉽게 프로비저닝한다.
  • 그럼 알아서 어딘가 존재하는 HW로 서버가 만들어진다.
  • ... 등등

구체화

  • 서버로 사용할 PC의 견적을 맞추고, 주문한 뒤 배송받고 설치한다.
  • VM 설정을 위해, 하이퍼바이저를 알맞게 (내 PC에 맞게) 설치하여 구성한다.
  • 인터넷에서 접근할 수 있도록 다양한 네트워크 설정을 해준다. (DDNS, 방화벽 등)
  • ... 등등

@Changmin
Hello :) I'm Changmin