하나의 함수나, 코드 몸체에 연속된 코드를 작성하는 프로그래밍 패러다임큰 코드 안에 전체 프로그램 코드가 들어있는 형태로 작성하는 프로그래밍 방식비구조적 프로그래밍의 흐름 제어로는 GOTO문이 존재
반복될 가능성이 있는 것들을 재사용이 가능한 함수(프로시저)로 만들어 사용하는 프로그래밍 방식
순차&선택&반복의 구조적 제어문으로 논리적 흐름 관리
프로시저란?
- 반환 값(리턴)이 따로 존재하지 않는 함수를 의미, 예를 들면 printf와 같은 함수는 반환값을 얻는 것보단, 화면에 출력하는 용도로 사용하는 함수, 이와 같은 함수를 프로시저라 부름
=>
정확히는 printf는 int형을 리턴해주긴 하지만, 목적 자체는 프로시저에 가까움
실제 사용되는 프로그램들은 추상적이지만은 않음, 함수는 논리적 단위로 표현되지만, 실제 데이터에 해당하는 변수나 상수 값들은 물리적 요소로 되어있는데 절차적, 구조적 프로그래밍은 너무 추상적임
데이터와 기능이 분리되어 현실의 개념(사람, 계좌, 책 등)을 표헌하기 힘듦데이터 전달이 복잡해지고, 프로그램의 구조가 점점 비현실적이고 추상적으로 변함| 상황 | 절차적 접근 | 실제(객체)세계 |
|---|---|---|
| 학생 정보 관리 | updateStudentName(student_id, new_name) 같은 함수로 데이터 조작 | “학생”이라는 객체가 자기 이름을 스스로 관리 |
| 은행 계좌 설계 | deposit(account_id, amount) / withdraw(account_id, amount) 함수 분리 | “계좌”라는 객체가 입출금 행위를 가짐 |
| 현실 모델링 관점 | 데이터 + 동작 분리 | “데이터”와 “동작”이 한 몸(겍체)로 표현 |