dansoon.log()

쏙쏙 들어오는 함수형 코딩 스터디 회고 본문

WIL/Book

쏙쏙 들어오는 함수형 코딩 스터디 회고

dansooon 2025. 7. 2. 10:29

들어가며

10주 동안 『쏙쏙 들어오는 함수형 코딩』 이라는 책을 읽었다. 처음엔 “요즘 다시 함수형이 유행이래” 정도의 호기심이었지만, 읽을수록 개발자로서 갖춰야 할 기본기가 뭔지 생각하게 되었다.

가장 좋았던 점은 단순히 “함수형 프로그래밍을 써야 한다”가 아니라 어떻게 코드를 바라볼 것인가, 그 근본적인 감각을 키워준다는 데 있었다.

액션? 계산? 데이터?

코드를 나누기 시작하면서 생긴 변화

이 책은 우리가 평소 작성하는 코드를 크게 세 가지로 나눈다.

  • 액션: 시점에 따라 결과가 달라지는 코드 (API 요청, DOM 조작 등)
  • 계산: 입력이 같으면 항상 같은 결과가 나오는 순수한 코드
  • 데이터: 그냥 ‘사실’ 그 자체. 변경하지 않는 정보

그리고 함수형 프로그래밍이란

"가능한 많은 코드를 계산이나 데이터로 끌어내는 것" 이라고 정의한다.

이걸 의식적으로 하기 시작하면서, 자연스럽게 내 코드 스타일에도 변화가 생겼다.

실무에서 생긴 변화

예전에는 하나의 함수 안에 액션이 섞여 있는 경우가 많았다.

예를 들면, API 요청하고, DOM 업데이트하고, 상태도 수정하고… 한 함수에서 다 해버리는 식.

하지만 책을 읽으면서 “이건 액션이네”, “이건 계산으로 분리할 수 있겠다”는 식으로 나누기 시작했고,

자연스럽게 함수가 작아지고 책임이 명확해졌다.

// 예전 스타일
function handleSubmit() {
  const form = getFormData();
  if (!form.email) {
    alert("이메일을 입력하세요");
    return;
  }
  submitApi(form).then(() => {
    alert("제출 완료");
  });
}

// 지금은 이렇게 분리해서 생각하게 됐다
const getFormData = () => { ... }; // 데이터
const validate = (form) => { ... }; // 계산
const showAlert = (msg) => alert(msg); // 액션
const submitForm = (form) => submitApi(form); // 액션

“이 코드는 액션니까 사이드 이펙트 주의 해야겠다”,

“계산으로 코드를 작성하면 테스트 코드 작성이 편해지겠네?”

코드를 작성하면서 자연스럽게 의식하게 되었다.

내가 실무에서 가장 인상 깊었던 적용 포인트

  • 함수 분리 기준을 ‘액션/계산/데이터’로 삼게 됐다.
  • 중첩된 상태 업데이트도 update()로 추상화하면서 깔끔하게 정리했다.
  • 비동기 API 요청의 순서를 Cut 패턴처럼 명시적으로 조율하려 했다.

내가 의도한 흐름대로 코드가 ‘흘러가게’ 만드는 게 정말 중요하다는 걸 실감했다.

코드를 바라보는 눈이 달라졌다

지금은 코드를 볼 때 자연스럽게 의존성을 의심하게 된다.

  • 이 함수는 외부 상태에 의존하고 있진 않을까?
  • 이 계산은 정말 순수한 계산일까?
  • 사이드 이펙트가 숨어 있진 않을까?

이전엔 몰랐던 ‘복잡성의 냄새’를 캐치할 수 있게 된 느낌이다.

덕분에 코드의 구조나 흐름에 더 책임감을 갖게 됐고, 내가 작성한 코드가 미래의 나나 팀원에게 어떤 영향을 줄지 생각하게 됐다.

팀 내에서의 변화

우리 팀은 도메인 기반으로 코드를 나누는 걸 기본 원칙으로 하고 있었고, 이 책을 읽은 뒤엔 계층형 설계관심사 분리, 불변성 유지 같은 키워드를 코드 리뷰에서 좀 더 명확하게 설명할 수 있게 됐다.

예전에는 “이 함수는 좀 복잡하네요” 정도로 말하던 걸 지금은 “이 부분은 액션과 계산이 섞여 있어서 테스트가 어려울 수 있을것 같아요” 라고 말할 수 있게 된 거다.

내가 느낀 함수형 사고의 가치

개인적으로는 함수형 사고가 지금 시대 개발자라면 반드시 익혀야 할 기본기라고 느꼈다.

트렌드는 언제나 바뀌지만, 복잡한 코드를 단순하게 만들려는 노력은 언제나 필요하다.

함수형은 그 단순함을 생각하는 방식부터 구현 방법까지 아주 체계적으로 설명해주는 도구다.

그리고 이 사고방식을 익히면 자연스럽게 다음과 같은 좋은 습관들이 따라온다.

  • 불변 데이터 구조를 우선으로 사용하게 됨
  • 사이드 이펙트를 명시적으로 관리하게 됨
  • 동시성 제어를 고민하면서 사용자 경험을 안정시킴
  • 도메인 로직과 UI/서비스 코드를 자연스럽게 분리함

마무리하며

이번 10주간의 함수형 코딩 학습은 단순한 독서를 넘어 실무와 일상을 함께 관통한 경험이었다.

이사 준비와 집 정리, 가전·가구 구매 등 여러 일이 겹쳐 책에 집중하기 쉽지 않았고, 회사 일 역시 여유가 없던 시기였다.

그런 이유로 몇 주는 책을 제때 읽지 못했지만, 스터디원들의 이해와 배려 덕분에 끝까지 마무리할 수 있었다.

이 자리를 빌려 감사 인사를 전하고 싶다.

 

그럼에도 불구하고 흥미로웠던 점은, 책에서 다룬 개념들이 실제 업무 상황에서 자연스럽게 떠오르고 적용되었다는 것이다.

액션과 계산, 데이터를 구분하며 함수의 책임을 나누고, Cut 패턴처럼 병렬 처리 흐름을 명시적으로 조율해보는 일이 생각보다 자주 있었다.

돌아보면 『쏙쏙 들어오는 함수형 코딩』 은 단순히 패러다임을 소개한 책이 아니라, 복잡한 문제를 단순하게 바라보고, 그 구조를 코드로 표현하는 감각을 길러준 책이었다.

앞으로도 이 사고 방식을 기반으로, 더 안정적이고 유지보수하기 쉬운 코드를 지향해나갈 계획이다.

스터디를 함께한 동료들과, 이 과정을 끝까지 완주한 나 자신에게 수고했다는 말을 전하며 글을 마무리한다.

'WIL > Book' 카테고리의 다른 글

자바스크립트+리엑트 디자인패턴 스터디 회고  (0) 2025.04.01