절차적 프로그래밍 뜻? 절차형과 객체지향 2가지 이해

절차적 프로그래밍 의미 및 개념 설명

절차적 프로그래밍의 의미와 개념에 대해 알아봅시다.

절차적 프로그래밍의 의미와 개념을 이해합니다.

절차적 프로그래밍이란 프로그램이 실행될 때 소스코드의 위에서 아래로 절차와 순서에 따라 실행되는 것을 말한다. 그러나 절차적 프로그래밍은 단순히 순차적인 명령을 실행하는 것이 아니라, 프로시저와 그 입출력 구성을 활용하는 프로그래밍 방식이다. 프로시저는 함수와 유사한 개념으로, 함수의 실행을 기반으로 특정 로직을 처리하는 데 사용됩니다. 일련의 작업 순서와 절차를 나타냅니다. 절차적 프로그래밍은 특정 프로세스가 이를 하나씩 처리하여 문제를 해결하도록 처리 단계를 구성하는 프로그래밍 구조 및 방법입니다. 절차적 프로그래밍은 특정 기능을 수행할 때 함수 등의 절차를 이용하고, 필요할 때 특정 기능을 호출 및 실행한 후 그 결과를 받아 논리적인 흐름에 따라 제어하고 구성하는 프로그래밍 언어이다. 절차형(Procedural)은 실행될 일련의 프로세스를 하나의 프로시저로 통합하고, 그 프로시저에 따라 데이터를 주고받아 처리하는 개발 기술을 말한다. 예리한 스타일은 순차적 실행에 중점을 둡니다. 절차형은 데이터 중심으로 코드와 기능을 구현합니다. 객체지향(Object Oriented)은 데이터와 조작이 결합된 객체를 생성하고 이를 서로 연계하여 처리하는 개발 기법을 말한다. 객체 지향은 객체 간의 관계와 구성에 중점을 둡니다. 객체지향은 기능 중심으로 메소드를 구현하는 방법이다. 따라서 객체 지향에서는 프로그램이 데이터 구조가 아닌 기능을 중심으로 구성됩니다. 즉, 절차지향은 데이터지향이고, 객체지향은 함수지향이다. 절차지향과 객체지향의 차이는 초점이 어디에 있는지에 불과합니다. 객체 지향은 반대 개념이 아닙니다.

절차적 프로그래밍 의미 및 개념 설명

절차적 프로그래밍이란 루틴, 서브루틴, 메소드, 함수 등의 절차를 사용하는 프로그래밍 방법을 말합니다. 여기서 루틴과 절차에는 전형적인 질서 감각이 있습니다. 즉, 절차적 프로그래밍이란 특정 작업을 수행하기 위한 프로그램을 작성할 때 절차와 루틴으로 구성되는 프로그래밍을 말한다. 절차적 프로그래밍(PP, Procedural Programing)은 위에서 아래로 순차적인 처리를 포함합니다. 전체 프로그램이 서로 유기적으로 연결되도록 구성하는 중요한 프로그래밍 기법이다. 절차적 프로그래밍은 실제 컴퓨터가 작업을 처리하는 방식과 유사하기 때문에 실행 속도가 빠릅니다. 절차적 프로그래밍을 위한 대표적인 프로그래밍 언어로는 C, FORTRAN, COBOL 등이 있습니다. 절차적 프로그래밍을 ‘구조적 프로그래밍’이라고 합니다. 라고도 합니다. 그러나 엄밀히 말하면 구조적 프로그래밍은 절차적 프로그래밍의 하위 개념으로, 절차적 프로그래밍과 마찬가지로 절차를 강조하고 순차적, 선택적, 반복적 구조를 사용하는 프로그래밍 방법이다. 과거에는 “GOTO 문”을 사용하여 프로그래밍 구조를 구성했습니다. 앞뒤가 뒤바뀌는 구조로 되어 있어서 프로그램을 이해하기 어렵고 유지관리도 매우 어려웠습니다. 그러나 절차적 프로그래밍의 등장과 함께 하나씩 순서대로 작성되는 프로그램 구조로 프로그램이 생성되고, 프로그램과 소스코드가 생성된다. 유지관리가 쉬워졌습니다. 그리고 절차적 프로그래밍의 출현으로 프로그램을 작성할 때 설계를 바탕으로 뼈대에 살을 더하는 것처럼 분석 설계, 개발, 테스트, 유지 관리 단계를 거쳐 프로그래밍을 관리하는 것이 가능해졌습니다. 절차적 프로그래밍은 설계 단계에서 실수를 방지합니다. 오류가 발생하면 이후의 모든 단계에서 문제가 발생합니다. 프로그램 자체가 큰 소스 코드 덩어리이기 때문에 한 부분이 잘못되면 전체 프로그램에 영향을 미치게 됩니다. 따라서 절차적 프로그래밍의 이러한 단점을 보완하기 위해 등장한 방법이 객체지향 프로그래밍이다. 절차적 프로그래밍은 프로그램이 한 방향으로 작성되기 때문에 이해하기 쉽습니다. 하지만 함수와 변수는 별도로 관리해야 하고, 프로그램이 길어질수록 복잡해진다. 그리고 절차적 프로그램에서 한 부분이 잘못되면 프로그램 전체에 영향을 미치기 때문에 관리가 쉽지 않습니다. 객체 지향 프로그래밍은 특정 기능을 객체화하여 다른 프로그래밍에 사용하거나 다른 부분에서 객체를 상속받습니다. 코딩만 하면 사용할 수 있는 프로그래밍 방식이다. 객체지향 프로그래밍은 데이터와 함수를 결합한 클래스, 클래스에서 생성된 특정 기능을 수행하는 메소드와 변수로 구성된 객체 중심의 프로그래밍 구조이다. 객체지향 프로그래밍의 대표적인 언어는 자바(Java)이다. Python, 그리고 그 외에도 C++, C#, JavaScript가 있습니다.[절차적 프로그래밍과 객체 지향 프로그래밍]

구분 내용 절차적 프로그래밍(Procedural 프로그래밍) 전체 프로그램이 절차와 순차처리를 통해 유기적으로 연결되는 방식. 객체 지향 프로그래밍 프로그램을 여러 객체로 생성하고 서로 상호 작용할 수 있도록 하는 방법입니다.

절차적 프로그래밍은 순차적으로 처리하는 컴퓨터의 처리 구조와 유사하여 실행 속도가 상대적으로 빠르고 프로그램의 흐름을 쉽게 식별하고 추적할 수 있습니다. 하지만 각 소스코드는 서로 긴밀하게 연결되어 있기 때문에 유지관리가 어렵다는 단점이 있습니다. 새로운 기능을 추가하는 것은 어렵고, 문제가 발생하면 전체 문제로 확대될 가능성이 높습니다. 또한, 실행 순서가 고정되어 있으므로 소스 코드의 순서가 변경되더라도 동일한 결과를 보장할 수 없습니다. 절차적 프로그래밍은 디버그하기도 어렵습니다. 객체 지향 프로그래밍(OOP, Object Oriented 프로그래밍)은 데이터와 기능을 함께 구성하는 방법입니다. 메소드와 속성이 존재하며 이는 실제 세계의 구조를 기반으로 합니다. 객체화 중심의 프로그래밍 구조를 모델링하여 소프트웨어를 개발하는 기술이다. 객체지향 프로그래밍은 캡슐화, 추상화, 상속, 다형성의 특징을 가지고 있습니다. 객체 지향 프로그래밍은 모듈화 및 캡슐화 개념 덕분에 유지 관리가 쉽습니다. 또한 객체지향 소스코드는 실제 세계와 유사한 특성을 갖고 있기 때문에 이해하기 쉽습니다. 또한 객체 자체가 단일 프로그램 단위이기 때문에 재사용이 쉽습니다. 그러나 대부분의 객체 지향 프로그램은 상대적으로 느리고 메모리 사용량이 높습니다. 그리고 소스 코드를 설계하고 작성하는 데 더 많은 시간이 걸릴 수 있습니다. 절차적 프로그래밍과 객체지향 프로그래밍은 반대 개념이 아닙니다. 구조적 프로그래밍은 순차, 반복, 분기의 세 가지 요소의 조합을 설명하고 이를 기능 단위로 나눕니다. 수행 방법은 다음과 같습니다. 이것이 절차적 유형의 기초입니다. 추상 데이터 유형은 데이터와 조작 절차를 바인딩하여 데이터 유형을 정의하는 것을 의미합니다. 이것이 객체지향의 기초이다. 객체지향의 세 가지 주요 요소는 캡슐화, 상속, 다형성이며, 이를 통해 프로그래밍을 더 쉽게 읽고 쓸 수 있습니다. 게다가 유지보수도 더욱 쉬워집니다.