프로그램이 어떻게(How) 동작해야 하는지 세세한 제어 흐름을 통해 기술
변수의 값이 바뀌면서 상태(state)가 변해감
예시: C, C++, Java 등 대부분의 언어가 명령형 특성을 지님
절차지향 프로그래밍
핵심 개념: 명령형 프로그래밍의 대표적인 형태로, 프로그램을 절차(Procedure)나 함수(Function) 단위로 나누어 순서대로 실행
공통된 로직을 재사용하기 위해 함수나 프로시저를 만들어 사용
장단점
참고 - 함수와 프로시저 프로시저(Procedure): 일련의 명령문들을 하나의 단위로 묶은 것으로, 특정 작업이나 행동을 수행하는 데 중점을 둔다. 프로시저는 반드시 값을 반환할 필요가 없으며, 주로 상태 변경이나 특정 동작 수행에 초점을 맞춘다.자바로 쉽게 비유를 하자면 void 를 반환하는 메서드를 떠올리면 된다.
함수(Function): 수학적 함수의 개념에서 유래했으며, 입력값을 받아 처리하고 결과값을 반환하는 것이 주 목적이다. 함수는 보통 값을 계산하고 반환하는 데 중점을 둔다.
객체지향 프로그래밍
핵심 개념: 프로그램을 객체(Object)라는 추상화된 단위로 구성. 각 객체는 상태(필드, 속성)와 행동(메서드)을갖고 있으며, 메시지 교환(메서드 호출)을 통해 상호작용
데이터와 해당 데이터를 처리하는 함수를 하나의 객체로 묶어서 관리해 유지보수성과 확장성을 높인다
장단점
핵심 개념: "무엇을(What) 할 것인지"를 기술하고, "어떻게(How)" 구현, 실행될지는 위임하는 방식
구체적인 제어 흐름(조건문, 반복문 등)을 직접 작성하기보다, 원하는 결과나 조건을 선언적으로 표현