Skip to content

pagers-org/FunctionalProgramming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

함수형 프로그래밍 스터디

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

자신이 만든 함수형 유틸도 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주차


Releases

No releases published

Packages

No packages published