반응형
SMALL
추상화란 무엇인가?
추상화의 의미
프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것
또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법
추상화는 데이터, 프로세스 추상화 크게 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 아키텍처
코드뿐만 아니라 실제 시스템에서도 추상화는 이루어져 있음
대표적인 예로 데이터베이스 시스템. 데이터베이스 내의 내부 프로세스와는 상관없이 “쿼리”를 통해 접근 가능
* 참고
반응형
LIST
'CS > 개발자필수지식' 카테고리의 다른 글
[CS] 오버로딩과 오버라이딩 (0) | 2023.08.26 |
---|---|
[CS] 클래스와 객체와 인스턴스의 차이, static 키워드 사용하는 이유 및 단점 (0) | 2023.08.25 |
[CS] CI/CD(Continuous Integration/Delivery & Deployment) (0) | 2023.08.24 |
[CS] 클라우드 - 컨테이너와 도커 (0) | 2023.08.23 |
[CS] 클라우드 - 가상머신 (0) | 2023.08.20 |
댓글