/FunctionalProgramming

함수형 사고 기르기❄️

Primary LanguageJavaScriptApache License 2.0Apache-2.0

함수형 프로그래밍 스터디

함수형 프로그래밍이라는 개념과 철학을 공부해서 함수형 사고에 초점을 맞춥시다 🔎

자신이 만든 함수형 유틸도 NPM에 배포하여 오픈소스로 관리하는 사이드적인 경험을 가져갑니다 💼


⛔️ 이 스터디는 팀 과제 중심형입니다.

⛔️ 오프라인으로 진행되며, 모든 과제는 온라인으로 수행됩니다.


📝 규칙

  • 늦어도 괜찮습니다! 참여하시면 적극적으로 임해주세요.
  • 과제를 하지 않아도 괜찮지만, 자신이 배우고자 한다면 꼭 수행하길 권장합니다.
  • 내가 성장하고자 한다면 다른 이를 피드백하세요. 코드 리뷰 문화는 같이 만들어 갑니다.
  • 불참 선언해도 초기에 입금한 스터디 참여비는 반환되지 않고, 온전히 스터디 종료 시 책거리 비용으로 사용됩니다.

🙋‍♂️진행 방식

  • 태오가 간단한 개념을 설명하고, 팀 별로 실습 과제를 수행합니다. 파랑이 준비한 코드나 문제가 있다면 이를 해결해봅니다.
  • 파랑이 실습 코드와 복습용 과제를 할당하고, 이를 풀어 팀원들과 공유한 뒤 코드 리뷰를 진행합니다.
  • 1부는 함수형 철학에 대한 개념 공부, 2부는 함수형 유틸리티를 구현하고 그 원리를 파헤치는 시간입니다.
  • 팀별 브런치로 운용됩니다. 개인용 파일이 들어가는 경우 src/하위의 각 폴더/{자신의 이름}으로 폴더를 구성한 뒤 커밋합니다.
  • 주마다 과제 혹은 복습을 할 주제를 드립니다. 수행하는 것은 자신의 몫이나, 적극적으로 해결하려고 하면 많은 것들을 시도할 수 있습니다.

💡 시작하기

해당 프로젝트는 npm으로 진행하시면 됩니다. 물론, yarn/pnpm도 상관 없어요.

  • eslint, prettier 등을 기본적으로 제공합니다.
  • 단위 테스트가 가능한 jest, e2e 용 cypress도 함께 설정된 프로젝트 폴더이므로 자유롭게 진행하시면 됩니다.
git clone https://github.com/FECrash/FunctionalProgramming.git

cd ./FunctionalProgramming

npm install # 또는 npm i

🤔 각 폴더 설명

1부

  • src/1week : 더 좋게 바꿀 수 있는 방법은 무엇일까요? 간단한 함수를 리팩토링 해봅시다.
  • src/2week : 책에 소개된 로직을 앱으로 구현한 프로젝트입니다. 함수형 철학을 토대로 리팩토링 해봅시다.
    • 단, 몇 개의 버그를 남겨 두었습니다. NaN이 된다던가, 무료 배송 아이콘을 어떤 조건에 출력해야 하는지 등... 원하는 대로 확장시켜 보세요.
    • 테스트 프레임워크를 잘 활용하여 안전하고 견고한 앱으로 만들어 봅시다.

1부 종료 및 2부를 여는 시간

  • src/make-your-package : npm에 배포하는 프로세스를 경험하는 프로젝트입니다.

2부

  • src/refactoring : 리팩토링 전과, 그 후. 어떤 차이가 있을까요? 어떻게 고민하면 좀 더 클린 코드 철학을 녹여서 만들 수 있을까요?
  • src/utils : 여러분이 구현하는 함수형 유틸리티 코드가 들어갑니다. map, filter, reduce, unique, groupBy, promise... 함수형 유틸리티는 결국 어떤 것으로 귀결될까요?
  • src/use-rxjs : 함수형 유틸리티 중 가장 유명한 RxJS를 직접 사용하고 적용해보면서 지금껏 공부해왔던, 사고해왔던 함수형 프로그래밍이 이런 패러다임이구나! 를 느끼는 경험을 가져가 보세요.

🌟회차별 정리내용(슬랙 이미지)

📢 1주차


📢 2주차


📢 3주차


📢 4주차


📢 5주차


관련 아티클


📢 6주차


관련 아티클


📢 7주차