추상화 abstraction

Nam Eun-Ji·2020년 11월 26일
0

추상화라는 단어를 처음 들으면 습관때문에 구체적이지 않다, 형태를 갖추고 있지 않다라고 생각하는 경우가 많다. 하지만 이 부분은 완전히 틀린 해석이다. 위키백과의 말을 빌려보자면 '컴퓨터 과학에서 추상화는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것'. 즉, 추상화는 핵심적인 기능을 뽑아내는 행위이다. 예를 들면, 한 홈페이지 안에서 기능에 초점을 맞춰 글리스트, 본문, 댓글 영역으로 나누어 놓았을 때 추상화시켰다라고 말할 수 있다.

추상화는 기능 단위로 묶어진다고 했는데, 추상화가 제대로 되지 않은 코드는 해당 코드만 보고 바로 파악하기 어렵고 전체시스템에 의존하는 경우가 있을 수 있다. 그렇다면 추상적인 부분이 제대로 표현된 것이 맞는지 검토하고, 기능 외적인 부분들은 다시 다른 함수를 정의해서 추상화시킬 수 있는 방법을 찾아야할 것이다.




객체지향프로그래밍(Object Oriented Programming)의 추상화

  • 추상화 개념위에서 OOP가 성립된다고 해도 크게 무리가 없다고 생각될만큼 중요한 개념이다.
  • 프로그램을 구성하고 있는 로직을 상태와 행위로 구분해서 서로 연결되어있는 상태와 행위를 그룹핑해 놓은 것을 객체라고 한다. 이 객체들을 블럭처럼 조립해서 하나의 프로그램을 만드는 것을 객체지향 프로그래밍이라고 한다.
  • 객체지향프로그래밍의 추상화 결과는 객체이다.
  • 객체는 변수와 메소드를 그룹핑한 것(Ex. 댓글 - 변수 & 메소드(생성, 수정, 삭제))
  • 재활용성



추상화 : 해결해야 할 문제, 혹은 반영해야할 현실을 소프트웨어적으로 단순화시켜 만드는 행위
이 부분은 지식보다 지혜가 필요하다. 즉 스스로 경험하고 깨우쳐서 자기화 시켜야한다.

profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글