Why use FxTs

오병진·2022년 4월 25일
0

FxTs

목록 보기
1/4
post-thumbnail

10년하고도 4년 전부터 리액티브, 이터러블 등을 기반으로 한 다양한 함수형 언어가 생겨나며, 여타 언어들에는 RxSwift와 같은 라이브러리들이 나타나며
현업에 가장 많이 사용되는 Java, Swift, Kotlin등에 람다가 적용되며

스트림 혹은 이터러블이라는 이름으로 언어에 FP가 도입되기 시작하였습니다.
컴퓨터 사양이 업그레이드 되가는 과정 속에서, 조금은 느리더라도 유지보수하기 편한 코드들이 선호되어 왔으며, 이러한 기술들은 자연스레 실무에서 사용되고 있습니다.

이러한 함수형/이터러블 프로그래밍이 선호되는 것은 유지보수가 편하기 때문이라 생각됩니다.

함수형 프로그래밍은 문제를 작게만들며, 조합성을 높이는데 좋은 도구이며
대부분의 언어에서 적용이 되가는 과정속에 해당 방법은 초언어적 해결책이 되었습니다.

그 중 제가 주로 사용하는 JS는 이터러블/이터레이터/제너레이터/심볼 등을 기반으로
뛰어난 프로토콜을 지니고 있으며, 이를 사용하라고 유혹합니다.

ES의 가장 큰 분기점인 ES6+, 즉 모던 JS의 진짜 매력은 이 이터러블 프로토콜이 아닐까 싶습니다.
이터러블 프로토콜은 생산성을 높이며, 오류를 줄이고 유지보수가 용이한 우아한 코드를 작성하는 좋은 도구이죠

ES5 문법 프로그래밍의 불편함

  • i++ j++ if for break 등의 상태 변경에 의존한 코드는 오류가 생기기 쉽습니다.
  • 기능 발전, 기획 변경에 대응하다보면 코드의 변경이 잦아져 유지보수가 어렵습니다.
  • 개발자마다 선호하는 코드 스타일이 달라지며, 이로 인하여 휴먼 리소스가 많이 낭비됩니다.
  • 같은 로직임에도 불구하고, 항상 로직을 새로 작성하며, 테스트 케이스도 늘어나며 생산성이 저하 됩니다.

이터러블 프로그래밍의 장점

  • 언어 차원에서 지원하는 프로토콜이기에 조합성이 높습니다.
  • 언어 차원에서 지원하는 에러 핸들링을 사용할 수 있습니다.
  • 비동기/동시성 프로그래밍을 보다 안전하고 쉽게 가능합니다.
  • 코드 양을 최소화할 수 있습니다.(TreeShaking, TransFiling을 하면서도 최소화)

근데 그래서 왜 TS...

아 물론 JavaScript는 런타임 언어로 타입이 유동적이기에 런타임 도중에만 버그를 알 수 있기에
개발 도중에서도 알 수 있도록, 정적 타입을 추가한 확장형 언어
TypeScript를 기반으로 한 언어를 중점으로 다루기 때문입니다 ㅎ...

그건 그렇다치고 왜 lambda나 lodash, rxjs도 있는데 왜... FxTs?

해당 문서에 따르자면 네가지의 차별점이 있습니다.


자 아무튼 다음편부터는 여러가지 사례들을 들고와보도록 하겠습니다.

profile
지나가는 사람입니다. 마저 지나갈게요 :D

0개의 댓글