추상화란 무엇인가?

이강용·2024년 1월 31일
0

CS

목록 보기
11/109

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 아키텍처(프로세스 추상화 예시)

profile
HW + SW = 1

0개의 댓글