모나드(Monad)는 사실 쉽습니다. - 함수형 프로그래밍 끝판왕 깨기

  Рет қаралды 3,143

얄팍한 코딩사전

얄팍한 코딩사전

8 күн бұрын

#함수형 #프로그래밍 #코딩
이 영상에서는 함수형 프로그래밍 개념 중 하나인 모나드에 대해 설명합니다. 모나드는 값에 함수를 적용하여 새로운 값이 담긴 상자를 만들어내는 기능을 가진 상자로 이해하면 됩니다. 모나드의 기본 기능으로는 유닛(Unit), 맵(Map), 플랫맵(FlatMap)이 있습니다. 유닛은 주어진 값을 모나드로 감싸는 기능, 맵은 주어진 함수를 실행한 결과를 다시 상자에 담아 내보내는 기능, 플랫맵은 이미 상자에 담긴 값을 반환하는 함수를 처리합니다. 이런 기능들 덕분에 모나드는 프로그래밍에서 편리하게 값을 처리하고, 어려운 문제를 간소화 하는 데 도움이 됩니다. 그러므로, 이해하고 사용할 줄 아는 것은 프로그래밍 실력 향상에 큰 도움이 됩니다. 이 영상을 통해 모나드의 기본 개념과 작동 원리, 그리고 간단한 예제를 통해 모나드를 이해하는 데 도움이 되었으면 합니다.
= = =
🏠 얄코사이트: www.yalco.kr
📖 얄코 도서: www.yalco.kr/book/
🧑‍🏫 얄코 강의: www.yalco.kr/#lectures
🎥 제대로 파는 Git & GitHub: • 제대로 파는 Git & GitHub (대...
🎥 제대로 파는 자바: • 제대로 파는 자바 - Java 끝.장.내...
🎥 제대로 파는 파이썬: • 제대로 파는 파이썬 - Python 끝장...
🎥 제대로 파는 자바스크립트: • (구판) 제대로 파는 자바스크립트 - 고...
🎥 제대로 파는 HTML & CSS: • 제대로 파는 HTML & CSS (대학생...
🎥 갖고 노는 MySQL 강좌: • 왕초보용! 갖고 노는 MySQL 데이터베...
🎥 반응형 프로그래밍 RxJS 강좌: • 반응형 프로그래밍이 뭔가요? (+ Rea...

Пікірлер: 27
@yalco-coding
@yalco-coding 7 күн бұрын
🎫 얄코 강의 선착순 반값쿠폰 (매주 갱신) bit.ly/yalco-fcfs-coupon 예제코드 확인 : yalco.notion.site/Monad-f6054c8685f14a73a4a6853cd11f4431?pvs=4 얄코 강좌들 보기: www.yalco.kr/#lectures 얄코 책 보기: www.yalco.kr/#books
@isle1009
@isle1009 6 күн бұрын
다른 설명으로는 이해하기가 쉽지 않았는데 이 영상을 보고 이해가 됐습니다. 감사합니다~!
@yalco-coding
@yalco-coding 5 күн бұрын
이해에 도움되어드렸다니 정말 기쁩니다 ㅠㅜ 감사합니다!!
@aAgglkw221
@aAgglkw221 6 күн бұрын
좋은 영상 감사합니다
@yalco-coding
@yalco-coding 6 күн бұрын
감사합니다!
@Greatcode-k2h
@Greatcode-k2h Сағат бұрын
줄줄이 사탕 위키식 설명 탈피!
@gagip7777
@gagip7777 7 күн бұрын
모나드의 특성을 잘 활용한 사례가 Railway oriented programming 라고 생각해요. 저는 코틀린의 Result를 통해 처음 접했는데 신선한 충격이었습니다.ㅋㅋㅋ 연산 중 에러 처리를 보통 try-catch로 하는데 Result라는 일관된 타입을 통해 정상이든 에러든 보다 일관된 흐름으로 작성할 수 있다는 이점이 큰 것 같았어요 이전에 얄코님 Rx강의로 함수형 프로그래밍을 공부했었는데 최근 영상으로 다시 복습하게 되네요 감사합니다
@yalco-coding
@yalco-coding 7 күн бұрын
그 강의 수강하셨군요!! 코틀린 것도 살펴봐야겠습니다. 감사합니다!!
@orlein
@orlein 6 күн бұрын
"자기함자 범주의 모노이드가 뭐가 그렇게 어렵다는거야!"
@curtsoon6135
@curtsoon6135 6 күн бұрын
모나드는 어떻게 사용하는가? 에 초점이 있군요. 비슷한 설명을 볼때마다 훨씬 간단하게 같은일을 할 수 있는데 모나드를 써야할 이유는 무엇일까? 도 같이 설명해줬으면 하곤 합니다 ㅎㅎ
@yalco-coding
@yalco-coding 6 күн бұрын
일단 영상에서도 예시들을 통해 설명을 드렸지만... 콕 집기 어려운게 모나드마다 용도가 다 달라서 그렇습니다. 대표적인 모나드인 영상의 프로미스와 Maybe(실무에서는 자바 등의 옵셔널), 스트림 등이 왜 있고 실제로 사용되는지 생각해보시면 쉽게 이해하실 수 있을거예요. 이들을 가능하게 한 게 모나드인겁니다. 그것들을 생각하신 '훨씬 간단하게 작성'한 방식으로는 복잡한 작업 및 확장성 면에서 어떤 한계들이 있을지 금방 감을 잡으실 수 있을 것입니다.
@curtsoon6135
@curtsoon6135 6 күн бұрын
@@yalco-coding 네 답변 감사합니다. 모나드마다 용도가 다를 수 있죠. 어떠한 디자인패턴이 그 쓰임처마다 용도가 다르듯이요. 하지만 어떤 상황일 때 그 패턴이 도움이 될지 결정하는데에는 해당 패턴의 일반적인 해결해주는 문제들의 공통된 특성들이 있어서 일 것입니다. 언급하신것 처럼 복잡성을 낮추기 위해서일 수도 있겠습니다. 그러면 모나드라는 패턴은 어떤 복잡성을 만났을 때 모나드를 써봐야겠다 하는 생각을 떠올릴만한가? 하는 공통점들이 궁금해서 댓글을 남겼습니다 ㅎㅎ
@yalco-coding
@yalco-coding 6 күн бұрын
모나드를 직접 작성하실 일 보다는 프로미스, 태스크, 스트림, 널러블 등 이미 작성된 모나드를 쓰실 일이 훨씬 더 많을거예요. 이들은 공통적으로 연속되는 연산들을 함수형 코드와 체이닝으로 해결한다는 공통점을 생각할 수 있습니다. 그 체이닝 과정을 단순한 매핑보다도 한차원 더 깊게 사용할 수 있는 것이 모나드구요. (그렇게 하는 이유는 함수형 프로그래밍 영상에서 도움을 얻으실 수 있습니다) 스스로의 작업 또한 체이닝의 포함할 수 있도록 하는 것이라고 정리할 수 있을지 모르겠습니다만 이렇게 말하면 오히려 알아듣기 어렵구요 ㅠ 그래서 예시들을 보여드리는 방법을 썼습니다. 매우 추상적이고 한 마디로 정리할 수 있는게 아니라 영상에서 배열(진짜 모나드는 스트림), 프로미스, Maybe의 세 가지 다른 예시들을 통해 감을 잡으실 수 있도록 했습니다. 이들이 어떻게 사용되는지 잘 살펴보시면 정리가 잡힐 수 있을 것입니다.
@Developer
@Developer 4 күн бұрын
Monad대신 Chainable 이라는 용어를 쓰는게 더 명확하지 않을까요?
@yalco-coding
@yalco-coding 4 күн бұрын
앗 나프다의 정도현 님이신가요?? 여기 방문해주시다니 영광이고 영상 보여드리기 부끄럽네요;; 말씀대로 이 영상에서 설명한 내용은 체이너블이라고 하는게 더 명확할 것 같습니다. 모나드는 더 깊은 수학적 개념을 포함하는거니까요. 함수형 프로그래밍에서 '모나드'란 용어가 쓰이고 그게 뭔지 궁금해하는 분들이 많아서 이렇게 영상을 만들었습니다. 채널 특성과 목적이 사람들이 어려워하는 개념들을 일단 감을 잡을 수 있게 문턱을 넘겨주는 곳이라.. 고수분들께는 지적할 부분이 있을 것임에 양해를 구합니다.
@Developer
@Developer 4 күн бұрын
@@yalco-coding 앗! 나프다 청취자셨군요. 반갑습니다. 얄코님 영상에서 많이 배우고 있습니다. 저는 잘난체 하려면 모나드 설명하려면 체이너블 이렇게 구분해서 씁니다 ㅎ
@yalco-coding
@yalco-coding 4 күн бұрын
@@Developer 말씀주신 부분 앞으로 이 주제 관련하여 다룰 일 있을 때 꼭 적용하겠습니다. 이렇게 댓글 달아주셔서 다시금 감사합니다!!
@khundi
@khundi 7 күн бұрын
자막이 작아서 폰으로 볼 때 자막 보기가 쉽지 않아요. 😅
@yalco-coding
@yalco-coding 7 күн бұрын
앗 전에 크다는 사람이 있어서 줄인건데 ㅠㅜ 담 영상부턴 더 크게 조절해보도록 하겠습니다.
@khundi
@khundi 7 күн бұрын
@@yalco-coding 헉 그렇군요..ㅠㅠ
@user-xn1vz9jq1b
@user-xn1vz9jq1b 7 күн бұрын
먼가 평소보다 작아지고 길이가 길어졌다 싶었더니 그랬군요
@MrSeungseung
@MrSeungseung 7 күн бұрын
유튜브 자막켜기 하시면 크게 볼 수 있고 또 자막 크기 및 색상조절도 할 수 있어요.
@morisheldon3530
@morisheldon3530 7 күн бұрын
@@yalco-coding 요즘 트렌드는 확실히 폰사이즈에 맞추는게 대세인거 같긴해요 이런 컨텐츠는 모니터앞에 앉아 각잡고 공부해야지 하면서 찾아보는게 아니라 폰보다가 발견하면 맞아 나 이거 잘 몰라 하고 보게되는 경우가 많으니까요 내용을 가리는 수준만 아니라면 커서 나쁠건 살짝의 미관상의 이유말곤 전혀 없다고 생각해요! 아무튼 항상 잘보고 쉽게 이해하며 도움받고 있습니다 화이팅이에요❤
@user-uf2sm3ql1r
@user-uf2sm3ql1r 7 күн бұрын
1등!
함수형 프로그래밍 - 개발자 내공 업그레이드하기
10:22
얄팍한 코딩사전
Рет қаралды 7 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 170 #shorts
00:27
WHO DO I LOVE MOST?
00:22
dednahype
Рет қаралды 82 МЛН
REST API - 이거 하나로 끝남
13:01
얄팍한 코딩사전
Рет қаралды 12 М.
Developers Compete To Create The Worst UIs
11:10
노마드 코더 Nomad Coders
Рет қаралды 30 М.
웹소켓을 알아봅시다.
9:14
얄팍한 코딩사전
Рет қаралды 13 М.
API가 뭔가요? 가장 쉽게 이해시켜드림
9:08
얄팍한 코딩사전
Рет қаралды 7 М.
커링 (Currying) - 세련된 함수형 코드 작성하기
6:28
얄팍한 코딩사전
Рет қаралды 3,9 М.
리눅스 창시가가 말하는 C언어
1:23
구석기 과학자
Рет қаралды 39 М.
What Is The Most Complicated Lock Pattern?
27:29
Dr. Zye
Рет қаралды 1,4 МЛН
The Hidden Cost Of GraphQL And NodeJS
28:35
ThePrimeTime
Рет қаралды 184 М.
코딩 책 한 권만 읽으면 이렇게 됩니다
5:27
코딩애플
Рет қаралды 255 М.
Zig for Impatient Devs
9:48
Isaac Harris-Holt
Рет қаралды 71 М.
Choose a phone for your mom
0:20
ChooseGift
Рет қаралды 5 МЛН
iPhone 16 с инновационным аккумулятором
0:45
ÉЖИ АКСЁНОВ
Рет қаралды 4,6 МЛН
Tag her 🤭💞 #miniphone #smartphone #iphone #samsung #fyp
0:11
Pockify™
Рет қаралды 17 МЛН