Monad Lab
모임 기간
2023.12.16 -
모임 일시
매주 토요일 10:00 ~ 12:00
장 소
온라인
모집 기간
2023.11.13 - 2023.12.15
모집 인원
10명
선발 방식
사전 질문 기반 심사
랩 소개
운영 방식
참여 요건
랩장 소개
⭐️ 랩 소개
한 줄 소개
함수형 프로그래밍 하스켈 뿌시기
분야
ENGINEERING
목표 결과물
OPEN_SOURCE
저희 랩의 이름을 Monad LAB이라고 지었는데, 일단 Monad라는 것이 프로그래머들 사이에서 악명이 높은 개념 및 용어라고 할 수 있겠습니다.
함수형 프로그래밍을 입문했다가 Monad에서 다들 포기한다라고 하는 괴담으로 유명한데, 사실 저희 랩의 목적 자체가 Monad를 알아내고자 하는 랩은 아닙니다.
Monad가 함수형 프로그래밍의 최종 목표는 아니기 때문입니다.
Monad를 알아내는 것이 목표가 아니긴 하지만, FP를 공부하다 보면, Monad에 익숙해지고 사용할 수 있게 됩니다.
Monad가 어려운 개념이 아닌 가볍게 익숙해질 수 있도록 LAB 이름으로 정했고, 앞으로 우리는 단순히 Monad를 알기 위함이 아닌 FP의 유용성을 알아나갈 것입니다.
우리 Monad LAB의 본 목적은 모던 프로그래밍 언어 속에 녹아있는 FP 요소들을 더 깊이 이해하기 위함입니다.
우리가 아주 흔히 사용하는 언어들 python, java, C#, C/C++, Dart, JS, TS, Swift, Kotlin, Go, Rust 등 모든 언어들은 계속 진화하는데 그 진화하는 방향이 바로 함수형 패러다임입니다.
General purpose programming language 중 이러한 함수형 패러다임의 최전선에 있는 언어가 바로 Haskell이고, Haskell을 배워두면 다른 언어들이 도입하고 있는 어려운 개념들(FP 개념들)을 매우 직관적으로 이해할 수 있게 됩니다.
그래서 Haskell을 배워두면 다른 언어 배우는게 매우 수월해지고, Haskell 프로그래머들은 실제로 대개 2~3개 언어를 다룰 수 있는 polyglot 들 입니다.
더 Advanced 한 주제로는 Category theory, Type theory 등과 같은 이론적인 배경까지 공부할 기회가 될 수 있고, 이 수준은 대개 OOP 프로그래밍의 디자인 패턴을 공부하는 단계와 유사합니다. (사실 필수는 아닙니다. )
우리 Monad LAB 에서는 일단 Haskell을 입문하고, Haskell로 뭔가 간단한 소프트웨어를 만들 수 있게 되면, 실제로 이를 많이들 관심이 많으신 딥러닝 프로젝트에 적용해보고자 합니다.
경우에 따라서는 웹서버같은 서버사이드 어플리케이션 다루는 프로젝트를 해볼 수도 있고 실제로 Haskell을 사용해서 만들어진 Cardano라는 blockchain의 스마트컨트랙도 다뤄볼 수 있습니다.
모든 프로젝트에 대해 제가 경험을 엄청 길게는 아니지만 두루두루 갖추고 있으므로 재밌는 개인 또는 팀프로젝트로 간단하게 해볼 수 있는 토이프로젝트들도 많이 준비돼있으니 많은 관심 부탁드리겠습니다.
⭐️ 운영 방식
LAB 첫 날: 오리엔테이션
Season 1. 하스켈 뿌시기 (6개월 예상)
- 하스켈 입문서 1독 목표
- 한 주 읽어올 양에 대한 목표를 정하고 주 1회 돌아가면서 발제 및 토론
- 모두가 같이 읽고 와야함
Season 2. 어떻게든 하스켈 써먹기 (6개월 예상)
- 취준생을 위한 알고리즘 스터디, 성과 공유 및 발제
- 실무자를 위한 사이드 프로젝트, 성과 공유 및 발제
- 연구자를 위한 프로그래밍 이론 연구, 성과 공유 및 발제
랩 운영 계획 Detail
- 처음에 하스켈 입문서로 시작하여 하스켈을 입문하고, 프로젝트를 해보기 전 입문한 하스켈 프로그래밍에 익숙해지기 위한 알고리즘 훈련을 일정기간 같이 하면서 챌린지 해봅니다
- 어느정도 하스켈 연습이 될 때 쯤에 실제 오픈소스 프로젝트들을 해보면서 실제로 하스켈을 쓰는데 있어 사용하는 생태계와 환경을 접하고, 실무에서 하스켈을 사용할 수도 있도록 연습합니다.
- 프로젝트가 목표가 아닌 분들은 추가적인 더 심화된 공부도 가능합니다. Category Theory, Type Theory 같은 수학 이론 위주의 연구가 많이 이루지는 분야이므로 여기에 관심 있는 분들은 심화 스터디를 이어나가시면 되겠습니다.
- 일단 온라인으로 진행하다가 오프라인으로 전환이 필요할 시 별도로 요청을 해볼 예정입니다.
- 입문에 필요한 시간이 많이 필요할 수도 있으므로 시즌2의 경우 조금 미뤄질 수도 있습니다. 진도가 빠르신 분들을 위한 방안을 랩 운영을 하면서 모색해볼 예정입니다
⭐️ 커리큘럼
⭐️ 참여 요건
함수형 프로그래밍에 관심있는 분들은 누구나 신청 가능합니다!
⭐️ 사전 질문
다뤄본 프로그래밍 언어가 어떤 것들이 있으신가요?
프로그래밍을 하면서 가장 많이 겪게 된 버그나 이슈의 생각나는 유형이 있으실까요?
함수형 프로그래밍에 대해서 어떻게 접하게 되셨나요?
함수형 프로그래밍을 배우고 싶게 된 계기가 어떤 것이었나요?
이 랩 활동을 통해 얻어가고 싶은 것이 무엇인가요?
⭐️ 랩장 소개
이찬우
창업자 · cjswosa2@gmail.com
전 현재 창업 준비중인 연쇄창업자 이찬우라고 합니다.
저는 모두연에서 딥러닝을 공부한 후 지금까지 밥먹고 살고 있습니다.
모두연에서 딥러닝 외에도 PRML 스터디도 정말 큰 도움이 많이 됐기 때문에 저도 뭔가 모두연에서 재밌는 랩 하나 열어보고 싶어서 이렇게 관심 많이 가지실만한 주제로 열어보았습니다.
동일한 주제를 갖고 카카오엔트프라이즈에서 부트캠프 과정(10시간)으로 강의했었을 때 나름 반응이 괜찮았어서 이걸 더 나누고 싶은 마음도 있고 이 랩에 관한 제 이력은 아래와 같습니다.
- 카카오엔터프라이즈 사내 강의: 하스켈을 이용한 FP 부트캠프
- 카르다노 재단: 스마트컨트랙 교육 하스켈 프로그래밍 멘토
- 하스켈학교 디스코드 커뮤니티 활동 멤버