본문 바로가기
자바스크립트

프로그래밍에서의 추상화

by 창고관리장 2024. 1. 14.

 

프로그래밍에서의 추상화란 복잡한 것들을 목적에 맞게 단순화하는 것이다.

 

프로그래밍에서의 추상화는 복잡한 시스템을 단순화하는 과정을 의미한다. 개발자가 복잡한 세부 환경에 신경쓰지 않고도 시스템의 핵심 로직에 집중할 수 있게 돕는 것이다.

 

추상화는 프로그래밍의 주요 원칙 중 하나로, 코드의 가독성을 높이고, 유지보수를 쉽게 하며, 재사용성을 높이는데 중요한 역할을 한다.

 

그렇다면 이러한 추상화에는 어떤 것이 있을까?

1. 함수 추상화

함수 추상화는 특정 작업을 수행하는 코드 블럭을 함수로 만들어 놓는 것이다. 함수는 입력을 받아 출력을 생성하며, 해당 함수를 사용하는 사람은 함수가 어떻게 동작하는지 알 필요 없이, 주어진 입력에 대해 일정한 출력을 반환한다는 것만 알면 된다.

 

2. 데이터 추상화

데이터 추상화는 데이터를 객체로 캡슐화하는 것이다. 객체 지향 프로그래밍에서, 객체는 상태(속성)와 행동(메서드)을 가진다. 객체의 내부 구현은 숨겨져 있으며, 외부에서는 객체가 제공하는 메서드를 통해서만 상호작용할 수 있다.

 

데이터 추상화는 코딩할 때 많이 접하고 있다. 흔히 사용하는 여러가지 라이브러리들이 데이터 추상화의 예시라 할 수 있다.

3. 인터페이스 추상화

인터페이스 추상화는 특정 행동을 정의하는데, 이를 구현한 클래스나 객체는 해당 인터페이스를 따라야 한다. 이는 코드의 일관성을 유지하고, 다른 개발자가 이해하고 사용하기 쉽게 만든다.

 

리액트를 예로 들면, 리액트는 컴포넌트라는 개념을 중심으로 설계되어 있다. 컴포넌트는 리액트의 기본 블록으로, 재사용 가능한 코드 조각을 의미하며, 각 컴포넌트는 독립적이고, 자체 상태와 라이프사이클을 가질 수 있다. 

4. 아키텍쳐 추상화

아키텍쳐 추상화는 시스템의 구조와 관련된 추상화이다. 예를 들어, MVC(Model-View-Controller) 아키텍처는 시스템을 모델, 뷰, 컨트롤러라는 세 가지 컴포넌트로 분리하여 각 컴포넌트의 역할을 명확하게 한다. 

 

이러한 추상화는 코드를 더욱 효율적이고 관리하기 쉽게 만드는 장점이 있으나, 과도한 추상화는 코드를 복잡하게 만들 수 있으므로 적절한 수준에서 사용해야 한다.