※ 본 글은 아래 도서를 공부한 후 정리한 내용입니다.
📚 스프링 입문을 위한 자바 객체지향의 원리와 이해
📌추상(抽象)[명사][심리] 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용
일단 추상화에 대해 자세히 설명하기 전 클래스와 객체에 대해 다시 짚어보자.
세상에 존재하는 유일무이한 사물
분류, 집합 같은 속성과 기능을 가진 객체를 총칭하는 개념
EX) 클래스 : 객체 = 펭귄 : 뽀로로 = 사람 : 김연아 = 쥐 : 미키마우스
사람 홍길동 = new 사람();
객체(object) = 클래스의 인스턴스라고 한다.
만약 사람이라는 클래스를 설계한다고 하자. 사람 클래스를 만들기 위해 주변에서 보이는 실체들, 즉 사람 객체들을 관찰해서 사람 객체들이 가진 공통된 특성을 찾게 된다. 시력, 몸무게, 혈액형 등 명사로 표현되는 특성을 속성이라고 하고, 속성은 값을 가질 수 있다. 먹다, 자다, 일하다 등 동사로 표현되는 특성을 기능/행위라고 한다. 이러한 기능/행위는 수행 절차 또는 로직을 갖게 되는데, 이를 메서드라고 한다.
추상화의 일반적 뜻을 다시 새겨보자.
추상화란 구체적인 것을 분해해서 관심 영역에 대한 특성만을 가지고 재조합 하는것
위의 정의를 IT 용어로
📌 추상화란 구체적인 것을 분해해서 관심 영역(애플리케이션 경계, Application Boundary)에 있는 특성만 가지고 재조합 하는것 즉, 모델링이라고 한다. 추상화 = 모델링
"내가 만들고자 하는 애플리케이션은 어디에서 사용될 것인가?"를 나타내는 것이 애플리케이션 경계이다.
👉 추상화의 개념을 넓게 보면
class 키워드를 통하여 지원!! 꼭! 기억하기
- 추상화 = 모델링 = 자바의 class 키워드
- 클래스 객체-참조-변수 = new 클래스();