본문 바로가기

두두의 IT

함수형 프로그래밍

728x90

특징

  • 코드 작성 '스타일'
  • 함수형 프로그래밍 개념은 어떤 프로그래밍 언어에서든 바로 적용해서 사용 가능

함수형 프로그래밍 언어

  • Clojure
  • Scala
  • F#
  • Elixir
  • Erlang

장점

  • 프로그래밍 문제를 해결할 때 유용한 코드를 쓰고 설계하는 새로운 관점과 접근방식을 얻을 수 있음
  • 버그 자체가 발생하기 어려움 ==> 버그가 쉽게 숨겨지지 않음

명령형(imperative) 코드 vs 선언형(declarative) 코드

  • 선언형
    • 원하는 결과를 표현하기 위해 코드가 작성됨
    • 원하는 "결과값"을 선언
    • 모든 선언형 코드는 명령형 코드 위에 쓰여짐
    • CSS
    • 메소드(replace)
  • 명령형
    • 원하는 결과를 얻기 위해 필요한 지침에 따라 코드가 작성됨
    • 그 결과값에 "어떻게" 도달하느냐
    • 요구사항을 충족하는데 필요한 모든 단계를 하나씩 적음
    • 코드가 길어지는 것 외에 요구사항의 구현이 개발자에게 달려 있기 때문에 코드를 원하는대로 작성하다 보면 버그나 실수가 더 생길 수 있음
    • 팀 동료들은 함수가 정확히 무엇을 하려고 하는지 자세히 읽어야 하기 때문에 이해하기 더 어려울 수 있음
    • for문