본문 바로가기

programming study/Computer Science

기초 JS, CS 상식 - 함수형 프로그래밍

본 내용은 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 강의를 토대로 작성하였습니다.

1. 패러다임

  • 프로그램은 순차, 분기, 반복, 참조로 구성
    • 패러다임은 위 4가지 요소를 어떻게 이용할 지를 다룸
  • 객체지향은 객체를 통해 묶고 객체간 통신함으로 프로그램이 동작함
  • 함수형은 데이터를 함수를 이용해 새로운 데이터를 만들어 나가는 데이터 파이프 라인 형태로 작동

2. 함수형 패러다임

  • 객체지향 추상화의 최소 단위가 객체인것 처럼, 함수형은 함수가 최소 단위
  • 함수 단위로 나눠지므로 재사용성이 높음
  • 불변성을 지향하기에 동작을 예측하기 쉽고 사이드 이펙트 방지
    • 동시성 문제도 해결
  • 객체지향은 제어 흐름의 간접적인 전환에 부과되는 규율
  • 함수형은 변수 할당에 부과되는 규율

장점

  • 상태가 없어, 사이드 이펙트가 ㅇ벗음
  • 재사용성이 높음
  • 코드가 짧고 간결

단점

  • 상태가 없어, 상태 조작을 위해 많은 리소스를 사용해야 함
  • 함수를 많이 쪼개야함
  • 코드가 짧고 간결

3. 선언형 프로그래밍

  • 기존 명령형 프로그래밍은 문제를 어떻게 해결해야 하는지 컴퓨터에게 명령을 내리는 방법
  • 선언형 프로그래밍은 무엇을 해결해야할 지에 집중하고 해결 방법은 컴퓨터에게 위임
  • Data Flow

4. 멀티 패러다임

  • JavaScript는 멀티 패러다임이 가능
  • 각 패러다임의 장점을 활용하기

Reference

프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript