abstraction

    [객체지향] Object-Oriented Programming 핵심 개념의 이해

    [객체지향] Object-Oriented Programming 핵심 개념의 이해

    배경 데이터 흐름(Flow)에 기반한 절차지향적 프로그래밍 방법은 복잡한 로직을 갖는 큰 규모의 소프트웨어 개발에는 적합하지 않습니다. 하드웨어 성능이 폭발적으로 성장하면서 요구되어지는 소프트웨어는 점점 복잡해지고 거대해졌는데 기존의 전통적인 절차지향 개발 방법 으로는 소프트웨어를 설계 및 구현하는데 많은 어려움이 생긴 것이죠. (사실 소프트웨어 공학 - software engineering 이라는 개념도 생소할 시기였습니다) 이러한 문제를 해결하기 위해 프로그램을 함수(procedure) 단위로 나누어 구조화하는 구조적 프로그래밍 방법이 대두되었는데, 상위로부터 하위로 쪼개나가는 방식이기 때문에 Top-Down 방식이라고도 합니다. 하지만 함수는 데이터를 처리하는 부분은 구조화할 수 있었지만 데이터는 ..