본문 바로가기
CS/개발자필수지식

[CS] 추상화의 의미

by Johnny's 2023. 8. 27.

추상화란 무엇인가?

추상화의 의미

프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것
또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법
추상화는 데이터, 프로세스 추상화 크게 2가지로 나눠짐

 

데이터 추상화

어떠한 데이터들의 공통점을 모으고 차이점은 버림. 예를 들어 고양이, 강아지, 원숭이 등의 객체들의 공통적인 특징을 묶어 동물이라는 카테고리로 카테고리화 시킴

 

프로세스 추상화

어떠한 내부 프로세스를 숨기는 것. 예를 들어 데이터베이스가 어떻게 데이터를 저장하는지는 모르지만 단순하게 insert, upsert 등의 쿼리로 데이터를 저장할 수 있음 

 

ex1)

abstract class Animal {
    public abstract void animalSound(); 
    public void sleep() { //공통점
    System.out.println("zzz"); 
    }
}

class Pig extends Animal { 
    public void animalSound() { //차이점
    System.out.println("꿀꿀꿀~"); 
    }
}

class Dog extends Animal {
    public void animalSound() { //차이점
        System.out.println("왈왈~");
    } 
}

public class Main {
    public static void main(String[] args) {
    
        Pig a = new Pig(); 
        a.animalSound(); 
        a.sleep();
        Dog b = new Dog();
        b.animalSound();
        b.sleep();
    } 
}

//꿀꿀꿀~
//zzz
//왈왈~
//zzz

 

ex2) MYSQL 아키텍처

코드뿐만 아니라 실제 시스템에서도 추상화는 이루어져 있음

대표적인 예로 데이터베이스 시스템. 데이터베이스 내의 내부 프로세스와는 상관없이 “쿼리”를 통해 접근 가능

 

 

* 참고

- CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조 -인프런

댓글