콘텐츠로 건너뛰기

순차적 프로그래밍

순차적 프로그래밍: 컴퓨터 프로그래밍의 가장 기본적인 패러다임 중 하나로, 코드가 위에서 아래로 순서대로 실행되는 구조이다. 프로그램의 흐름이 명확하고 단순하며, 작은 규모의 프로그램을 작성할 때 유용하다.

특징

1. 위에서 아래로 흐르는 구조
  • 코드가 작성된 순서대로 실행된다.
  • 조건문이나 반복문이 없는 경우, 프로그램은 단순히 명령어를 순차적으로 처리한다.
2. 함수나 모듈화 개념이 없
  • 함수나 모듈화 개념이 없다.
  • 모든 코드는 단일 흐름으로 작성된다.
3. 원시적 형태
  • 어셈블리어와 같은 초기 언어에서 주로 사용되었다.
  • gotojmp와 같은 명령어로 특정 위치로 이동하는 방식이 포함될 수 있다.
4. 직관적이고 단순함
  • 코드가 간단해서 초보자에게 적합하다.
  • 프로그램의 전체 흐름을 쉽게 이해할 수 있다.

장점

  • 단순성: 복잡한 구조가 없어 이해하기 쉽다.
  • 빠른 작성 가능: 소규모 프로그램을 빠르게 구현할 수 있다.
  • 명확한 흐름: 코드의 실행 순서를 쉽게 파악할 수 있다.

단점

  • 확장성 부족: 프로그램이 커질수록 유지보수와 수정이 어렵다.
  • 재사용성 부족: 코드가 반복될 가능성이 높으며, 이를 줄이기 위한 함수나 모듈화 개념이 부재하다.
  • 오류 발생 가능성: 순서에 의존하기 때문에 코드 실행 순서가 잘못되면 오류가 발생할 가능성이 크다.

예시

#include <stdio.h>

int main() {
    int userInput;

    // 사용자 입력 받기
    printf("정수를 입력하세요: ");
    scanf("%d", &userInput);

    // 입력값 출력
    printf("입력한 수: %d\n", userInput);

    return 0;
}

위 코드는 입력값을 받고 출력하는 단순한 흐름으로 구성되어 있으며, 위에서 아래로 순차적으로 실행된다.


그렇다면, 절차적 프로그래밍과는 뭐가 다를까?

순차적 프로그래밍 vs 절차적 프로그래밍

  • 순차적 프로그래밍: 단순히 명령어를 순서대로 실행하는 방식
  • 절차적 프로그래밍: 함수(프로시저)를 활용하여 코드를 모듈화하고 재사용성을 높이는 방식.

즉, 절차적 프로그래밍은 순차적 프로그래밍의 발전된 형태라 볼 수 있다.

이 두 패러다임의 차이점을 표로 보기 쉽게 정리했다.

특징순차적 프로그래밍절차적 프로그래밍
기본 개념코드가 작성된 순서대로 위에서 아래로 실행됨함수를 사용하여 프로그램을 구조화하고 모듈화함
구조화 수준비구조적 (모든 코드가 하나의 흐름으로 작성됨)구조적 (코드를 함수나 블록으로 나눔)
재사용성코드 재사용이 어려움함수나 프로시저를 통해 코드 재사용 가능
규모소규모 프로그램에 적합대규모 프로그램 개발에 적합
유지보수성유지보수가 어렵고 수정 시 전체 코드를 변경해야 할 수 있음유지보수가 용이하며, 특정 함수만 수정하면 됨
흐름 제어순차적으로 실행되며, 흐름 제어가 제한적임조건문, 반복문, 함수 호출 등을 통해 흐름 제어 가능
예제 언어초기 언어 (어셈블리어 등)C, Pascal, Python 등 대부분의 현대 언어

주요 차이점

(이라 쓰고 절차적 프로그래밍의 장점이라 읽는다 ㅎㅎ)

  1. 구조화와 모듈화
    • 순차적 프로그래밍은 모든 명령이 하나의 흐름으로 작성되며, 코드가 길어질수록 복잡도가 증가한다.
    • 절차적 프로그래밍은 함수를 사용해 코드를 모듈화하여 가독성과 유지보수성을 높인다.

    2. 코드 재사용

      • 순차적 프로그래밍에서는 동일한 작업을 반복할 경우 동일한 코드를 여러 번 작성해야 한다.
      • 절차적 프로그래밍에서는 함수를 정의하여 동일한 작업을 반복적으로 호출할 수 있다.

      3. 확장성

        • 순차적 프로그래밍은 작은 규모의 프로그램에 적합하며, 확장성이 부족하다.
        • 절차적 프로그래밍은 대규모 프로그램을 설계하고 확장하는 데 적합하다.

        예제

        • 순차적 프로그래밍 예제 (C)
        #include <stdio.h>
        
        int main() {
            int a = 5;
            int b = 10;
            int sum = a + b;
            printf("합계: %d\n", sum);
        
            int c = 20;
            int total = sum + c;
            printf("최종 합계: %d\n", total);
        
            return 0;
        }

        모든 작업이 순서대로 진행되며, 중복된 작업(합계 계산)이 반복된다.

        • 절차적 프로그래밍 예제 (C)
        #include <stdio.h>
        
        // 함수 정의
        int add(int x, int y) {
            return x + y;
        }
        
        int main() {
            int a = 5;
            int b = 10;
            int sum = add(a, b);
            printf("합계: %d\n", sum);
        
            int c = 20;
            int total = add(sum, c);
            printf("최종 합계: %d\n", total);
        
            return 0;
        }

        add라는 함수를 정의하여 중복된 작업을 줄이고 코드 재사용성을 높였다.

        결론

        • 순차적 프로그래밍은 단순하고 직관적인 방식으로 소규모 프로그램에 적합하지만 확장성과 유지보수성이 부족하다.
        • 절차적 프로그래밍은 함수와 모듈화를 통해 복잡한 문제를 해결하기 쉽고 대규모 프로그램 개발에 적합하다.
        0 를 눌러주세요! 행복해져요!

        답글 남기기

        이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다