https://digiconfactory.tistory.com/entry/추상화Abstraction와-가상화Virtualization

추상화와 가상화는 무엇인가?

컴퓨터 공학을 제대로 이해하기 위해서 알아야 할 가장 핵심적인 용어다. 추상성을 클래스화 해버리는 객체지향 프로그래밍은 물론 현대 소프트웨어의 큰 방향성을 이해할 수 있는 키워드다.

컴퓨터의 추상화와 가상화 작업은 서로 연관성이 있기 때문에 둘을 묶어서 살펴 보면 이해에 도움이 된다.

추상성, 가상성 이라는 용어에 귀를 귀울이는 자체가 부담스럽다면 그건 지극히 정상이다.

고등학교 수업 정도에서도 추상적 사고라던가, 가상의 세계 같은 말은 들어봤을텐데 그게 뭐가 어쨌다는 걸까?

둘 다 굉장한 주제다. 그리고 이 굉장한 주제를 몇개의 글만 읽고 모두 이해하는 것은 불가능하다. 컴퓨터의 추상성을 말로 듣고 이해할 수 있다면 읽어서 알고 있는게 아니라 이미 알고 있는 것을 확인한 것이다. 그만큼 난해한 부분이 있다.

말로 듣지 않아도 사물을 이해하는 천재는 어디에나 한두명은 있다. 그들은 때로 스스로를 드러내지 않는다.

추상성 (Abstraction)

한번 사전의 뜻을 살펴보자.

  1. 일반적인 사항을 다루는 것이고

  2. 구체성이 없는 것이다.

흠... 일반적이고 구체성이 없는 것이라면 이론 같은 것 이라고 생각할 수 있겠다.

예를 들어보면 추상화가 어떤 것인지 확실히 감이 올 것이다.

그런데 운전을 하기 위해서 자동차 엔진의 구조와 작동원리를 알아야 할까? 타이어를 갈아끼우는 기술이 필요할까? 정답은 필요없다. 오늘날 내연기관의 자동차는 약 3만개의 부품이 들어가며 길거리에서 볼 수 있는 가장 복잡한 기계 중 하나다. 자동차를 바깥에서 보면 매끈한 바디(body)로 둘러쌓여 있고 복잡한 섀시의 내부는 보이지 않는다. 안에서 타면 고급스런 가죽 의자에 손에 감기는 핸들과 심플한 계기판이 보인다. 핸들과 바퀴가 연결되어 있는 부분이나 브레이크가 어떻게 자동차를 멈추는지 보이지 않는다. 이 모든게 추상화(Abstraction)이다. 요컨대 몰라도 된다.