What is abstraction?
- 프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것 또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법을 말함
데이터 추상화
- 어떠한 데이터들의 공통점을 모으고 차이점을 버림.
예를들어, 고양이, 강아지, 원숭이 등의 객체들의 공통적인 특징을 묶어 동물이라는 카테고리로 카테로기화
시킴
package programmers;
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("zzz");
}
}
class Pig extends Animal {
@Override
public void animalSound() {
System.out.println("꿀꿀");
}
}
class Dog extends Animal {
@Override
public void animalSound() {
System.out.println("왈왈");
}
}
public class MyClass {
public static void main(String[] args) {
Pig pig = new Pig();
pig.animalSound();
pig.sleep();
Dog dog = new Dog();
dog.animalSound();
dog.sleep();
}
}
프로세스 추상화
- 어떠한 내부 프로세스를 숨기는 것을 말함.
데이터베이스가 어떻게 데이터를 저장하는지는 모르지만 단순하게 insert, upsert 등의 쿼리로 데이터를 저장할 수 있음
MySQL 아키텍처(프로세스 추상화 예시)