[슬라이드 1: 표지]

안녕하세요, 오늘 "함수형 프로그래밍: 개발자를 위한 길잡이"라는 주제로 발표를 맡은 study_fx팀 심준보입니다. 저는 원래 안드로이드, 코틀린 개발을 주로 해왔지만, 최근 함수형 프로그래밍에 관심을 가지면서 그 매력과 이점에 대해 다른 개발자 분들과 나누고 싶어 이 자리에 섰습니다.

지금부터 함수형 프로그래밍의 기본 개념, 그리고 왜 현대 개발 환경에서 이러한 패러다임이 중요한지 간략히 소개해 드리겠습니다.

[슬라이드 2: 우리는 왜 함수형 프로그래밍 스터디를 시작한 걸까?]

여러분은 혹시 현재 프로젝트에서 복잡한 상태 관리나 테스트하기 어려운 코드 때문에 골치 아픈 경험을 해보셨나요? 또 멀티스레드 환경에서 동시성 처리가 복잡해져서 코드 품질이 흔들리거나 유지보수하는데 어려움을 느끼신 적이 있으신가요?

저와 제 팀은 이러한 문제들을 해결할 단서를 찾기 위해 함수형 프로그래밍을 공부하기 시작했습니다.

크게 네 가지 문제를 다시 말씀드리면,

  1. 복잡한 상태 관리: 변하는 값과 변수들, 그리고 예측하기 어려운 사이드 이펙트
  2. 테스트하기 어려운 코드: 어디서 사이드 이펙트가 발생하는지 명확히 파악하기 어려워 테스트가 난해
  3. 동시성 처리의 복잡성: 멀티스레드 환경에서 데이터 일관성을 보장하기 위한 복잡한 로직
  4. 함수형 프로그래밍이 이러한 문제를 줄이고, 우아하게 해결할 수 있는 방법을 제시한다는 점을 알게 되었습니다.

[슬라이드 3: 매주 함수형 프로그래밍 학습 과정]

우리 팀은 이 문제들을 해결하기 위해 스터디를 진행했습니다. 매주 다음과 같은 흐름으로 학습했는데요,

  1. 처음에는 순수 함수형 언어인 하스켈을 사용해보며 기본적인 이해 중심으로 학습을 하였습니다.
  2. 하스켈 문법과 함수형 프로그래밍 개념 용어에 대해서 이해
  3. 그리고 그 많은 사람들이 좌절 하고 포기 한다는 Functor, Applicative, Monad와 같은 핵심 개념들을 공부하고 실습
  4. 실제 코드 패턴들을 모아 Kotlin이나 JavaScript 혹은 다른 언어에서도 응용 가능한 패턴 연구 이 과정을 통해 함수형 프로그래밍 원리를 점차 몸에 익혔습니다.