본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

절차형 프로그래밍 (면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 8. 19.
728x90
반응형
절차형 프로그래밍

절차형 프로그래밍

절차형 프로그래밍(Procedural Programming)은 컴퓨터 프로그래밍 패러다임 중 하나로, 

프로그램을 작성할 때 일련의 단계나 절차를 정의하여 문제를 해결하는 방식을 가리킵니다. 

이 패러다임은 프로그램을 작은 부분으로 나누고 각 부분을 함수나 프로시저로 구성하여 실행 순서대로 

처리하는 방식으로 동작합니다.

 

절차형 프로그래밍 주요 특징

절차적 추상화: 

문제를 해결하기 위한 절차적인 단계들을 정의하고, 각 단계를 함수나 프로시저로 구현합니다. 

이를 통해 복잡한 문제를 간단한 단계로 분해할 수 있습니다.

변수와 데이터: 

변수를 사용하여 데이터를 저장하고 조작합니다. 

이러한 변수들은 프로그램 실행 중에 상태를 유지하며, 이를 통해 데이터의 변화나 연산을 추적할 수 

있습니다.

순차적 실행: 

절차형 프로그램은 작성한 코드를 순서대로 실행합니다. 

프로그램이 시작되면 처음부터 끝까지 순차적으로 실행되며, 명시한 절차나 함수 호출에 따라 데이터와 

상태가 변화합니다.

제어 구조: 

조건문(if-else, switch)과 반복문(for, while)을 사용하여 프로그램의 흐름을 제어할 수 있습니다. 

이를 통해 특정 조건에 따른 분기나 반복 작업을 수행할 수 있습니다.

모듈화와 재사용성: 

함수나 프로시저를 사용하여 코드를 모듈화 하고 재사용 가능한 단위로 분리합니다. 

이렇게 함으로써 코드의 유지 보수성이나 가독성을 향상할 수 있습니다.

절차형 프로그래밍은 초기 프로그래밍 교육이나 단순한 애플리케이션 개발에 유용한 패러다임입니다. 

그러나 큰 규모의 복잡한 시스템을 다루기에는 한계가 있습니다. 

이런 한계를 극복하기 위해 객체지향 프로그래밍(Object-Oriented Programming)과 같은 다른 

패러다임들이 등장하게 되었습니다. 

객체지향 프로그래밍은 데이터와 그 데이터를 다루는 함수(메서드)를 하나의 객체로 묶어 관리하며, 

코드의 재사용성과 유지 보수성을 높이는 데 초점을 둡니다.

 

 

절차형 프로그래밍 장점

간단한 구조와 직관성: 

절차형 프로그래밍은 순차적으로 실행되는 단계들을 구성하므로 처음 프로그래밍을 배우는 사람들에게 

이해하기 쉽습니다. 

문제를 작은 단계로 나누고 각 단계를 함수로 구현하므로 프로그램 구조가 비교적 단순하고 직관적입니다.

성능: 

절차형 프로그래밍은 작은 규모의 프로그램에서는 성능 면에서 효율적일 수 있습니다. 

함수 호출의 오버헤드가 상대적으로 작고, 복잡한 객체 지향적 구조를 가질 필요가 없기 때문입니다.

리소스 사용의 간소화: 

절차적 프로그래밍은 객체 지향 프로그래밍에 비해 메모리와 처리량의 사용이 간단하게 관리됩니다. 

따라서 작은 규모의 임베디드 시스템이나 리소스 제한이 있는 환경에서 유용할 수 있습니다.

 

 

절차형 프로그래밍 단점

유지 보수의 어려움: 

큰 규모의 프로그램을 작성하거나 유지 보수해야 할 때, 절차적인 구조는 코드의 복잡성을 증가시킬 수 

있습니다. 

함수가 길어지고 관련 없는 코드가 섞이게 되면 코드의 가독성이 떨어지고 유지 보수가 어려워집니다.

코드 중복과 모듈화의 한계: 

절차적 프로그래밍에서는 코드 중복이 발생하기 쉽습니다. 또한 함수의 재사용성이나 모듈화의 수준이 

상대적으로 낮을 수 있습니다. 

이로 인해 코드의 효율성과 유지 보수성이 떨어질 수 있습니다.

변경에 대한 취약성: 

프로그램의 구조를 절차적으로 작성하면, 요구 사항의 변경이나 추가 사항에 대응하기 어려울 수 

있습니다. 

새로운 요구 사항이나 기능을 추가할 때 기존 코드에 영향을 줄 가능성이 크기 때문입니다.

재사용의 어려움: 

함수 단위의 재사용성이 높지 않을 수 있습니다. 

비슷한 기능을 하는 함수를 여러 프로그램에서 재사용하려면 해당 함수를 복사하거나 

수정해야 하기 때문에 코드의 중복이 발생할 수 있습니다.

요약하면, 절차형 프로그래밍은 초기 학습자나 작은 규모의 간단한 프로그램에 유용할 수 있지만, 

복잡한 프로그램 개발이나 유지 보수를 해야 할 때는 유연성과 재사용성 측면에서 제한이 있을 수 

있습니다. 

이러한 한계를 극복하기 위해 객체 지향 프로그래밍과 같은 다른 패러다임이 등장하게 되었습니다.

 

절차형 프로그래밍 언제 사용 되는가?

절차형 프로그래밍은 주로 간단한 프로그램을 만들거나 프로그래밍을 배우는 초기 단계에서 활용되거나 

교육용으로 많이 사용됩니다. 

특히 다음과 같은 경우에 절차형 프로그래밍이 유용하게 사용될 수 있습니다:

교육용: 

프로그래밍 초보자나 학습자들이 프로그래밍 기본 개념을 익히고 프로그램의 동작 원리를 이해하기 위해 

사용됩니다. 

단순한 예제나 연습을 통해 프로그래밍 개념을 이해하고 코드를 작성하는 방법을 배울 수 있습니다.

작은 프로젝트나 간단한 애플리케이션: 

절차형 프로그래밍은 작은 규모의 프로젝트나 간단한 애플리케이션 개발에 유용합니다. 

웹 개발 분야에서는 JSP나 PHP와 같은 기술을 사용하여 간단한 웹 애플리케이션을 구축할 때 

활용할 수 있습니다.

 

절차형 프로그래밍 자세히 알기!

수업 듣기 프로세스:
해성이는 학교에 도착하고 교실로 들어갑니다.
선생님이 수업을 시작하면, 해성이는 수업 내용을 듣습니다.
수업 내용을 이해하기 위해 필기를 하거나 질문을 할 수 있습니다.


숙제 작성 프로세스:
수업이 끝나면, 해성이는 수업에서 배운 내용을 기반으로 숙제를 시작합니다.
숙제는 문제별로 나뉘며, 해성이는 문제를 읽고 이해한 후 문제를 해결하기 위해 단계별로 절차를 따릅니다.
문제를 해결한 후에는 숙제가 완료되었음을 표시하고 제출합니다.


시험 보기 프로세스:
공부한 내용을 바탕으로 시험 날이 되면, 해성이는 시험장에 들어갑니다.
시험 문제를 받은 후, 문제를 읽고 이해한 후 각 문제에 대한 답안을 작성합니다.
시간 내에 모든 문제에 답안을 작성한 후 시험지를 제출합니다.


이 예시에서 해성이가 수업을 듣고 숙제를 하며 시험을 보는 과정은 절차형 프로그래밍과 유사한 구조를 가지고 있습니다. 각 단계는 순차적으로 실행되며, 해성이의 상태와 작업이 절차에 따라 변화합니다. 이러한 단계적인 접근 방식은 절차형 프로그래밍의 핵심 원리를 나타냅니다.

 

 


*바쁜 사람을 위한 깜찍한 정리

절차형 프로그래밍이란 컴퓨터 프로그래밍 패러다임 중 하나로 일련의 단계나 절차를 정의하여 문제를 해결하는 방식을 가리키는 것입니다. 해당 프로그래밍 기술은 간단한 구조와 직관성을 가지며 객체 지향 프로그래밍에 비해 메모리와 처리량의 사용이 간단하여서 작은 규모의 프로그램이나 교육용에서는 성능이 효율적입니다. 하지만 큰 규모의 프로그램에서 사용하게 되면 절차적인 구조는 코드의 복잡성을 증가시켜 유지보수의 어려움이 생기고 절차적으로 작성하여 요구 사항의 변경이나 추가 사항에 대응하기가 어려운 단점이 있습니다. 예를 들어 떡볶이만 파는 포장마차를 만들라고 할 때는 절차형 프로그래밍을 떡볶이, 순대. 튀김 등 다양한 메뉴를 파는 포장마차를 만들라고 할때는 객체형 프로그래밍을 사용한다고 보면 이해하기 쉬울 거 같습니다.

 

 

 

 

 

728x90
반응형