💡1.4 JS의 다양한 얼굴
패러다임: 프로그래밍 분야에서 코드를 어떻게 구조화할지에 대한 접근 방식과 사고방식을 의미한다. 세상에는 다양한 프로그래밍 페러다임이 있고, 한 패러다임 안에는 스타일과 형식에 차이를 둔 변형이 무수히 존재한다. 우리는 이런 변형을 라이브러리나 프레임워크의 형태로 접한다.
ex. 절차적, 객체 지향, 함수형
절차적 프로그래밍 패러다임: 코드가 톱다운, 선형적으로 구조화. 프로시저라 불리는 코드 단위에 미리 정해진 일련의 연산을 작성한다. ex. C언어
객체 지향 프로그래밍 패러다임: 클래스 기준으로 코드를 구조화. 클래스에는 로직과 데이터가 정의된다. ex. 자바, C++
함수형 프로그래밍 패러다임: 코드를 함수 단위로 구조화. 함수는 (절차적과 달리) 부수 효과가 없는 순수함수이다. 또한, 함수 자체가 값으로 취급된다. ex. 하스켈
패러다임은 개발자가 문제와 해결책에 접근하는 방법과 코드를 구성하고 유지 보수하는 방법을 안내하는 표지판 역할이다.
프로그래밍 언어가 특정 패러다임에 치우지기도 하지만 상당수의 언어는 여러 패러다임을 사용해 코드를 구조화할 수 있도록 지원한다. → 다중 패러다임 언어 (궁극의 유연성 제공, 한 프로그램 안에서 두 개 이상의 패러다임에 입각한 코드 작성)
JS는?
다중 패러다임 언어로 절차적, 객체 지향, 함수형 스타일 코드를 모두 작성할 수 있다. 또한 프로그램 전체가 단 하나의 패러다임을 따르도록 하는 것 대신, 한 줄마다 원하는 패러다임이 적용 가능하다.
Last updated