함수형 프로그래밍의 장점 

  1. 높은 수준의 추상화를 제공한다
  2. 함수 단위의 코드 재사용이 수월하다
  3. 불변성을 지향하기 때문에 프로그램의 동작을 예측하기 쉬워진다

 

추상화?

컴퓨터 과학에서 추상화(abstraction)는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다. (위키백과)

 

추상화의 수준이 높다라는 점은 사용하기 편하다라는 장점을 지닌다

 

명령형과 선언형의 사고방식 차이

명령형 프로그래밍은 문제를 어떻게 해결하는지에 집중되어있고

선언형 프로그래밍은 무엇을 해결할지에 집중하고 있다 

 

 

Q. 배열을 돌며 빈 문자열 제거하고, 각 원소의 첫 글자를 대문자로 변경하자

 

명령형 프로그래밍

1. for 문을 돌며 배열에 접근

2. if 문으로 빈 문자열일때 for문에서 빠져나옴

3. if 문으로 빈 문자열이 아닐때 문자열 첫번째를 대문자로 변환해서 배열에 담기

 

선언형 프로그래밍

1. 문자열이 빈값이 아닐때 첫번째 문자열을 대문자로 변환하는 함수를 선언

2. for 문을 돌며 배열에 접근하며 배열의 값을 함수에 던져서 배열에 담기

 

두가지 예시만 봐도 앞으로 지향해야할 점이 선언형 프로그래밍이지만 선언형 프로그래밍의 기능이 너무 쪼개져있다면 기능적으로 비효율 적이다

 

1. 배열을 돌며 빈 값을 제외한 값을 새로운 배열에 담는 함수를 선언

2. 배열을 돌며 첫번째 문자열을 대문자로 변환하는 함수를 선언

3. 배열을 1번 함수를 사용하여 새로운 배열 생성

4. 1번을 통해 생성된 배열을 2번 함수를 사용하여 새로운 배열 생성

 

이처럼 기능을 너무 세분화한다면 전체 배열을 두번 돌면서 기능적으로 비효율적인 부분을 보인다. 만약 이러한 배열 데이터가 엄청 많아졌다고 한다면 시간적으로 차이가 분명하다

 

결론 

선언형 프로그래밍으로 코드를 짜는것을 지향하지만 상황에따라 적당하게 세분화해서 효율적으로 기능과 코드의 재활용을 챙기자

 

 

+ Recent posts