728x90

Computer Science/Programming Paradigm 3

절차적 프로그래밍 Vs 함수형 프로그래밍 Vs 객체지향 프로그래밍

절차적 프로그래밍 개념 절차적 프로그래밍은 절차지향 프로그래밍 혹은 절차지향적 프로그래밍이라고도 불립니다. 또 명령형 프로그래밍과 동의어로 쓰이기도 합니다. 그리고 일반적으로 프로시저 호출의 개념을 바탕으로 하는 프로그래밍 패러다임을 뜻합니다. 프로시저는 루틴, 서브루틴, 메서드, 함수 등으로 부르기도 합니다. 수행되어야 할 계산과정들을 포함하고 있고 아무 위치에서나 호출할 수 있으며 다른 프로시저, 자기 자신에서도 호출할 수 있다는 특징이 있습니다. 특징으로는 모듈성이 있는데, 코드의 재사용성이 늘어나고 프로그램의 흐름을 더 쉽게 파악할 수 있게 됩니다. 입력과 출력 그리고 그 사이의 규칙을 정하여 구현하는데 일반적으로 쓰는 함수가 그렇습니다. 또 스코프 개념을 통해 변수를 보호하고 프로시저 사이의 독..

명령형 프로그래밍 Vs 선언형 프로그래밍

명령형 프로그래밍 개념 명령형 프로그래밍은 선언형 프로그래밍과 반대되는 개념입니다. 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 패러다임인데, 쉽게 설명하자면 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것입니다. 즉 '어떻게' 수행할지에 주목하는 패러다임이라고 할 수 있습니다. 한번 조금만 더 쉽고 대략적으로 이해해보겠습니다. 어떤 리스트 안에 속한 수들의 합을 구할 때, 아래의 방식으로 for 문을 이용해 합을 구할 수 있습니다. 이런 일반적으로 풀어서 쓴 방식을 명령형 프로그래밍이라고 보면 될 것 같습니다. nums = [1, 2, 3, 4, 5] sum_nums = 0 for num in nums: sum_nums += num 거의 대부분의 하드웨어들은 기계어를 ..

구조적 프로그래밍 Vs 비구조적 프로그래밍

구조적 프로그래밍 개념 구조적 프로그래밍은 절차적 프로그래밍 혹은 절차지향적 프로그래밍이라 불리는 패러다임의 하위 개념으로 볼 수 있는 프로그래밍 패러다임입니다. 비 구조적 프로그래밍의 문제점을 해결하고자 등장했으며 역사적으로 몇가지 다른 구조화 기법과 방법론이 개발되어왔는데, 가장 일반적인 세 가지는 다음과 같습니다. 잭슨의 구조적 프로그래밍 다익스트라의 구조적 프로그래밍 다익스트라의 관점에서 파생된 관점 하지만 대부분의 구조적 프로그래밍이라고 말하는 것은 첫 번째를 제외한 둘 중의 하나를 말하는 것인데, 일반적으로는 GOTO문을 없애거나 GOTO문에 대한 의존성을 줄여주는 것으로 유명합니다. 흐름제어를 사용하지 않기때문에 코드의 가독성이 좋고 유지보수가 쉬우며, 재사용성도 높습니다. 다익스트라는 Go..

728x90