본문 바로가기
Python

0702 절차적 프로그래밍, 구조적 프로그래밍, 함수 지향적 프로그래밍

by 대금부는개발자 2021. 7. 2.
SMALL

 

절차적 프로그래밍

 

대표적인 절차적 언어, 함수적 언어 : c언어

 

내가 해결해야 하는 큰 문제를 작은 기능 단위로 세분화 시켜요.(더 이상 쪼갤 수 없을 때까지 - 단위 기능)

하나의 기능을 다시 세부 기능으로 나눠요.

그러다 보면 더 이상 나눌 수 없는 단위 기능이 도출되는데,

이를 우리가 배운 함수(function) 형태로 구현해요.

탑 다운 방식, divide and conquer 등으로 표현해요

 

장점 : 프로그램의 분석과 설계가 쉬워요. → 코드를 작성하고 프로그램을 완성해요

프로그램의 구현 시간이 짧아져요. → 비용이 절감돼요

 

단점 : 프로그램을 수정하기가 쉽지 않아요.

재활용성이 떨어져요.(그 기능에 딱 맞춰 프로그래밍 했기 때문에 다른 곳에 응용하기가 쉽지 않아요.)

→ 유지 보수성이 떨어져요.

1990년대 들어오면서 인터넷이 보급 → 사람들의 요구 사항이 많아지기 시작

→ 프로그램의 수정 요청이 많아짐 → 개발비용보다 유지 보수 비용이 급격히 증가

→ 프로그램 방식을 아예 다른 방식으로 바꾸자 결 론도 출!!

 

 

"객체지향 방식"으로 프로그램을 분석, 설계, 구현

 

유지 보수성을 높일 수 있어요!

프로그램을 설계하고 구현하는 게 어려워요! (상대적으로)

 

대표적인 언어 : java, c++, c#

 

프로그램을 만드는 기본적인 생각은,

내가 해결해야 하는 현실 세계의 문제를 그대로 프로그램으로 표현해보자!

현실 세계에서 발생하는 여러 가지 수정 요소들을 프로그램적으로 역시 쉽게 수정이 가능해요.

프로그램을 기능으로 세분화하지 않아요! (그대로 묘사하려고 해요)

프로그램을 구성하는 주체를 파악하고 이 주체들 간의 DATA의 흐름(어떤 데이터들을 주고받는지)

 초점을 맞춰보기 시작했어요!!

 

ex) 은행 프로그램

 

고객, 계좌, 은행 건물(지점), 은행원, 단말기 등등등 구성요소를 파악해요.

각각의 가지고 있는 구성요소끼리 어떤 업무를 주고받는지 프로그램적으로 묘사(모델링)

 

 

우리가 해결해야 하는 문제를 구성하고 있는 구성요소를 프로그램적으로 표현해요

현실세계에서 문제를 구성하고 있는 구성요소 → 개체(object)

프로그램적으로 문제를 구성하고 있는 구성요소 → 객체(object)

 

프로그램적으로 표현하기 위한 방법 → class (프로그램적으로 묘사,표현)

 

 

 

 

 

LIST

'Python' 카테고리의 다른 글

0702 class 2  (0) 2021.07.02
0702 class  (0) 2021.07.02
0630 python Range  (0) 2021.07.01
0701 python 의 내장함수  (0) 2021.07.01
0701 mutable(가변의), immutable(불변의)  (0) 2021.07.01

댓글