패러다임
- 프로그래밍을 하는 방법으로, 언어에는 독립적이다.
- 어떤 프로그래밍 구조를 사용할지, 그리고 언제 이 구조를 사용해야 하는지를 결정한다.
- 무엇을 해야 할지를 말하기보다 무엇을 해서는 안 되는지를 말해준다.
- 패러다임의 세가지 종류
- 구조적 프로그래밍
- 객체 지향 프로그래밍
- 함수형 프로그래밍
구조적 프로그래밍
- 제어흐름의 직접적인 전환에 대해 규칙을 부과한다. ex) if/then/else, do/while/until
- 프로그램을 증명 가능한 세부 집합 기능으로 재귀적으로 분해할 것을 강요한다.
- goto 문장에 대한 사용을 지양한다. (대다수의 현대적 프로그래밍 언어는 goto 문장을 포함하지 않는다.)
- 현재의 모든 프로그래머는 구조적 프로그래머이다.
<aside>
💡 goto
- 프로그램이 프로그램의 다른 부분으로 제어를 이전할 수 있도록 하는 프로그래밍 언어 문법이다.
- 사이에 있는 코드를 건너뛰고 프로그램 내의 특정 레이블로 점프하는 데 사용된다.
- 일반적으로 루프, 오류 처리 및 기타 제어 흐름 구조를 구현하는 데 사용된다.
</aside>
객체지향 프로그래밍
- OO란 다형성을 이용하여 전체 시스템의 모든 소스 코드 의존성에 대한 절대적인 제어 권한을 획득할 수 있는 능력이다. (DIP를 통해서)
- 저수준의 세부사항은 중요도가 낮은 플러그인 모듈로 만들 수 있고, 고수준의 정책을 포함하는 모듈과는 독립적으로 개발하고 배포할 수 있다.
함수형 프로그래밍
- 함수형 언에서 변수는 변경되지 않는다. (불변)