『스프링입문을 위한 자바 객체지향의 원리와 이해』로 공부한 내용을 정리한 글입니다
"추상화"라는 단어의 본래 의미부터 출발
컴퓨터 용어는 어려워야 한다는 고정관념을 깨자.
- '추상화(abstraction)'는 컴퓨터 전공 용어라기보다는 본래 국어사전에도 있는 단어입니다.
- 사전적 정의:
- "여러 사물에서 공통되거나 핵심적인 속성만 추출해 파악하는 것"
즉, 추상화는 "모든 걸 다 보여주는 것"이 아니라 핵심만 보여주기입니다.
→ 이는 우리가 일상에서 생각하는 "추상화 그림"의 특징과도 같습니다.
예술에서의 추상화 – 피카소와 이집트 벽화
피카소의 추상화
- 피카소가 사람 얼굴을 막 비틀어서 그린 건, 사실을 못 그려서가 아니라
그 사람의 느낌과 특징을 강조하기 위한 의도였습니다. - 즉, "사실의 생략 + 특징의 강조" → 추상화
이집트 벽화
- 얼굴은 옆모습, 몸은 정면, 눈은 정면(!) → 실제 인간의 자세와는 전혀 다름.
- 키가 클수록 신분이 높은 사람.
- 이런 그림도 '기괴한 그림'이 아니라, 권력·상징·특징을 극대화한 추상화.
➡️ 중요한 건 사실적인 모양이 아니라, 표현하고자 하는 핵심 정보.
객체지향에서의 추상화도 똑같다!
💡 객체지향에서의 "추상화"란?
사람, 동물, 자동차처럼 다양한 객체들에서 공통 속성만 뽑아내 클래스나 인터페이스를 만드는 것
예를 들어,
class Animal {
String name;
void eat();
void sleep();
}
- 고양이, 강아지, 사람 모두 eat(), sleep() 기능이 있음 → 공통 속성/기능만 추출
- 이걸 통해 개별적인 구체 객체(인스턴스)가 아닌 본질적인 정보만 표현할 수 있음.
핵심 요약
일반적 의미 | 복잡한 사물에서 공통되고 중요한 것만 뽑는 것 |
예술적 추상화 | 외형 생략, 특징 강조 → 피카소 그림, 이집트 벽화 |
객체지향 추상화 | 여러 객체에서 공통된 속성·기능만 뽑아 클래스/인터페이스로 정의 |
➡️ 모두 같은 개념이다.
객체지향에서의 "추상화"란, 피카소가 인물의 특징만을 부각해 그리듯, 현실 세계의 사물에서 필요한 것만 추출해 표현하는 행위입니다. 결국 “본질을 표현하는 기술”이며, 복잡함을 단순하게 만드는 지혜입니다.
'Spring > 스프링입문을 위한 자바객체지향의 원리와 이해' 카테고리의 다른 글
추상화와 메모리 (0) | 2025.06.30 |
---|---|
추상화는 모델링이다 (0) | 2025.06.30 |
객체지향 제대로 알기: 클래스는 분류, 객체는 실체 (0) | 2025.06.29 |
객체 지향은 인간 지향이다 (0) | 2025.06.29 |
멀티스레드 vs 멀티프로세스의 메모리 구조 차이 (0) | 2025.06.29 |