개발에서 추상화라는 단어를 자주 보게 된다. 추상화에 대한 내 생각과 공부내용을 정리해 보려 한다. 내가 생각한 추상화는 "단순하게", "편하게" 이다. 추상이란 구체적이고 세부적인 사항을 배제하고 중요한 개념에 집중하는 것을 말한다. 피카소의 그림이 정말 알맞는 예인 것 같다. 복잡한 멍멍이를 선하나로 나타내버렸다. 하지만 모두가 이것은 멍멍이를 그린 것이라는 걸 안다. 물론 프로그래밍과 그림에서 말하는 추상화는 정말 같지 않겠지만...
복잡한 것을 단순하고 편하게
그 본질을 표현할 수 있어야 한다. 그것이 모두가 가지고 있는 공통적인 것이 될 수 있고, 모두가 꼭 가지고 있어야 할 요소일 수도 있다. 실제로 내가 쓰고 있는 SwiftUI 도 추상화가 잘 되어있는 것 같다는 생각을 했다. 버튼을 넣으려면, 텍스트를 클릭하면 이러한 액션을 하고... 색이 조금 연해지고... 이러한 과정들을 Button 이라는 단어로 단순하고 직관적이게 표현했으니까!
우리 주위에서 거의 모든 것들이 추상화가 되어있다고 생각했다. 노트북에서 키보드를 누르면 그것이 입력되는 것, 핸드폰에서 버튼을 터치하는 것 등등... 몰라도 잘 쓸 수 있게 해주는 것들이 너무 많다. 이러한 추상화 덕분에 엔진의 원리를 알지 않아도 나는 차를 운전할 수 있는 것이다!
프로그래밍에서의 추상화
모든 프로그래밍은 추상화가 필수적이라고 생각한다. 필요한 기능을 구현하기 위해서 그때그때마다 로직을 넣어주는 것이 아니라, 함수나 객체로 구현하여 사용하는 것이 유지보수 면에서도, 가독성 면에서도, 생산성 면에서도 좋다고 생각한다.
'Programming > Programming Study' 카테고리의 다른 글
[Programming Study] SOLID (0) | 2023.06.25 |
---|---|
[Programming Study] 캡슐화에 대해서 (0) | 2023.06.24 |
[Programming Study] 싱글톤 패턴(Singleton pattern) (0) | 2023.06.17 |
[Programming Study] MVVM 구성 패턴 (0) | 2023.05.24 |