기타/What I Learned

[TIL] Kotlin - 패러다임(1)

가죽방패 2022. 1. 25. 15:58

※ 패러다임

- 코틀린은 함수형 프로그래밍(FP: Functional Programming)과 객체 지향 프로그래밍(OOP: Object-Oriented Programming)을 모두 지원하는 다중 패러다임 언어이다. 함수형과 객체 지향 프로그래밍 기법의 장점은 코드를 간략하게 만들 수 있다는 점인데 특징을 꼽아보자면 함수형 프로그래밍은 코드가 간략화 되고 테스트나 재사용성이 더 좋아져 개발 생산성이 늘어난다는 특징이 있다.

 

 

○ 함수형 프로그래밍: 람다식, 고차 함수 사용하여 구성. 순수 함수임

 

○ 순수 함수(pure function) 이해

- 부작용(side-effect)이 없는 함수로 동일한 입력 인자에 대해 항상 같은 결과를 출력하거나 반환한다.

- 값이 예측이 가능하여 결정적(deterministic)이다.

  • 조건
  • 같은 인자에 대해 항상 같은 값 반환
  • 함수 외부의 어떤 상태도 변환하지 않음

○ 순수 함수를 사용하는 이유

- 입력과 내용을 분리해 모듈화 하므로 재사용성이 높아짐 => 여러 함수들과 조합해도 부작용이 없음

- 특정 상태에 영향을 주지 않아 병행 작업이 안전함

- 함수 값을 추적하고 예측 할 수 있어 테스트, 디버깅에 매우 유리함

- 함수형 프로그래밍에 적용할 경우

- 함수를 매개변수, 인자 혹은 반환값에 적용(고차 함수)

- 함수를 변수나 데이터 구조에 저장

- 유연성 증가

 

※ 람다식(Lambda Expression)

- 익명의 함수로 이름 없이 사용하거나 실행이 가능하다

- 람다식은 고차 함수에서 인자로 넘기거나 결과 값으로 반환을 할 수 있다.

- 예시: {x,y -> x+y}

 

※ 일급 객체(First Class Citizen)

- 함수의 인자로 전달할 수 있다.

- 함수의 반환값에 사용할 수 있다.

- 변수에 담을 수 있다, 또한, 1급 함수라고도 부름