프로그래밍 패러다임 총정리 - 다양한 사고방식

프로그래밍 패러다임이란

프로그래밍 패러다임은 프로그래밍에 대한 관점과 접근 방식입니다. 40년간 다양한 패러다임을 경험한 저로서는 각 패러다임이 특정 문제에 더 적합하다고 확신합니다. 하나의 언어도 여러 패러다임을 지원할 수 있습니다. 다양한 패러다임을 알면 문제 해결 도구가 늘어납니다.

명령형 프로그래밍

어떻게(How) 할 것인지 단계별로 기술합니다. 상태를 변경하는 문장들의 순서입니다. 대부분의 언어가 명령형을 지원합니다. 절차적 프로그래밍: 프로시저(함수)로 코드를 조직합니다. C가 대표적입니다. 직관적이지만 복잡해지면 관리가 어렵습니다.

객체지향 프로그래밍

객체(데이터 + 메서드)를 기본 단위로 합니다. 캡슐화, 상속, 다형성, 추상화가 핵심 개념입니다. Java, C++, Python, C#이 대표적입니다. 현실 세계를 모델링하기 적합합니다. 대규모 시스템에 널리 사용됩니다.

함수형 프로그래밍

순수 함수와 불변 데이터를 강조합니다. 무엇을(What) 할 것인지 선언합니다. 부수 효과를 최소화합니다. Haskell, Clojure, Erlang이 순수 함수형입니다. JavaScript, Python도 함수형 스타일을 지원합니다. 동시성, 테스트에 유리합니다.

기타 패러다임

논리 프로그래밍: 논리적 관계를 선언합니다. Prolog가 대표적입니다. 반응형 프로그래밍: 데이터 흐름과 변화 전파를 다룹니다. RxJS, RxJava. 선언적 프로그래밍: 원하는 결과를 기술합니다. SQL, HTML. 대부분의 현대 언어는 멀티패러다임이므로 상황에 맞게 조합하세요.

댓글

0
첫 번째 댓글을 작성해보세요!
← 목록으로