조금 더 자세한 설명을 듣고 싶은 사람을 위한 보충설명. 코드는 OCaml 기준입니다. 함수형 프로그래밍의 주요 특징은 다음과 같이 나열할 수 있습니다. 1. Variable is not variable: 4:30에서도 설명했듯, 특별한 경우가 아니라면 변수의 값을 변경할 수 없습니다. 원한다면 새로운 변수를 생성해서 계산값을 할당하거나, 계산값 자체를 리턴하여 처리해야 합니다. 2. Every expression is return value: 이는 5:36의 설명과도 일맥상통하는데, 함수의 내부는 단 한 줄의 Expression으로 구성되며 그것이 곧 그 함수의 리턴값이 됩니다. 그렇기에 필연적으로 Recursive하게 함수를 구성할 수밖에 없습니다. 예를 들어 1~n까지 더한 값을 반환하는 함수의 경우 [ let rec sum n = if n = 1 then n else n + sum (n-1) ]과 같이 구현합니다. 3. Higher-order function: 5:43에 나와 있듯, 함수인데 입력값과 출력값도 함수인 경우입니다. 예를 들어 어떤 함수든지간에, 그 함수를 두 번 적용하는 함수 makeTwice의 경우 [ let makeTwice f = fun x -> f (f x) ]와 같이 구현합니다. 입력받는 인자 f도 함수이고, 반환하는 값 [ fun x -> f (f x) ] 또한 함수입니다. 물론 f의 정의역과 치역은 동일해야 합니다. 영상에서 잠깐 언급된 Functor의 경우, 클래스를 입력받아 클래스를 반환하는 함수.. 정도로 이해하셔도 무방합니다. 4. Pattern-matching: 우리가 if-else문을 이용하여 특정 변수 안에 들어있는 값에 따라 프로그램의 분기를 만든다면, 패턴매칭은 해당 변수가 어떤 형태를 띠고 있는지에 따라 프로그램의 분기를 만듭니다. 예를 들어 int 타입 변수라면 항상 정수 하나가 저장되어 있는 상태이므로 형태를 나눌 수 없습니다만, list의 경우에는 '비어있거나, 적어도 하나라도 차 있거나'로 그 형태를 구분할 수 있습니다. 정수형 리스트에 들어있는 값을 전부 더하는 함수 sumList를 패턴매칭으로 구현하면 [ let rec sumList list = match list with [] -> 0 | hd::tl -> hd + sumList tl ]과 같습니다. 여기서 []은 리스트가 가질 수 있는 형태 중 '비어있음'을 뜻하며, hd::tl에서 hd는 리스트의 원소, tl은 나머지 리스트를 뜻하기에 이는 '리스트에 적어도 하나의 원소가 들어있음'의 형태를 뜻합니다. 즉 list라는 변수를 [] | hd::tl로 패턴매칭한 것이죠. 비단 리스트뿐만 아니라 내가 직접 '여러 형태를 지닌 새로운 타입'을 만들어서 패턴매칭하는 것또한 가능하며, 이 때 Monad의 개념이 등장합니다. 5. Monad: 단순 정수 하나를 입력받아 저장하기 위해서는 int형 변수를 사용하면 됩니다만... 무언가 불행한 일이 발생하여 아무런 정수도 입력되지 않은 채 프로그램이 진행될지도 모릅니다. 이 때를 대비하여 우리는 새로운 타입, intOrNone을 만들 수 있습니다. [ type intOrNone = Some of int | None ] 이렇게 만들어진 intOrNone은 두 가지 형태를 지니므로 패턴매칭을 이용하여 프로그램 분기가 가능합니다. 만약 정상적으로 입력받았을 경우에는 정수 하나가 저장될 것이고 그렇지 않다면 None이 설정되어 있을테니 그에 맞게 프로그램을 분기하는 것이 가능합니다. 이렇듯 *여러 예기치 못한 상황을 대비하거나, 혹은 이 형태를 이용하여 외부로부터 어떤 자료가 저장되어 있는지 철저히 숨기는 데에* 모나드가 사용됩니다. 물론 위 예시에선 몇 가지 더 설정해주어야 하는 것이, 우선 정수끼리는 당연히 사칙연산이 가능합니다. 그러니 새롭게 정의한 intOrNone 또한 이게 가능해야 합니다. [ let plus v1 v2 = match v1 with None -> None | Some k1 -> (match v2 with None -> None | Some k2 -> Some(k1 + k2) ) ]와 같이 정의한 plus 함수는 두 intOrNone을 입력받아 덧셈을 계산하여 intOrNone을 반환합니다. 이와 같이 *원래 변수인 int가 할 수 있는 건 intOrNone도 전부 할 수 있어야 합니다.* 그래야 int의 자리를 intOrNone이 대체 가능하니까요. 이를 조금 어려운 말로 표현하면.. intOrNone을 인자로 하는 두 함수를 입력받아 그 합성함수를 반환하는, 고차함수를 정의할 수 있어야 합니다. 예시인 intOrNone이야 워낙 간단하기에 그럴 필요도 없지만, 조금 복잡한 모나드를 설계한다면 이를 이용해 구현 가능한지 아닌지 그 여부를 알 수 있습니다. 마지막으로 특정 int형 변수를 intOrNone으로 바꿔주는 함수와 intOrNone 변수에서 정수값 혹은 None을 추출하는 기능 또한 필수입니다. 덤으로 프로그래밍을 배웠든, 전혀 문외한이든 상관없이 함수형 프로그래밍을 공부해보고 싶으신 분들은 pl.postech.ac.kr/~gla/cs101/notes/all.pdf 문서를 읽어보시기 바랍니다. 만약 링크가 자동 삭제된다면 구글에 "박성우 OCaml"로 검색하시면 됩니다. 포항공대 교수님께서 작성하신 정말 멋진 책입니다.
@dream-coding3 жыл бұрын
와, 이런 멋진 부연설명 정말 감사합니다 ❤️핀 📌 해둘께요 🙏 정말 정성 가득, 그리고 이해하기 쉽게 설명해 주셔서 감동했어요. 특히 모나드 파트에서요 하하 👍 제가 모나드를 이해하게 되었던 좋은 영상이 기억나서 공유해 드리고 싶어요: kzbin.info/www/bejne/qmLIaZqnjbGVqbc
@adenkaiser3993 жыл бұрын
you all prolly dont give a shit but does any of you know a trick to log back into an instagram account?? I stupidly lost the password. I love any assistance you can offer me!
@connerayden90903 жыл бұрын
@Aden Kaiser Instablaster =)
@adenkaiser3993 жыл бұрын
@Conner Ayden Thanks so much for your reply. I got to the site through google and im trying it out now. Takes a while so I will get back to you later when my account password hopefully is recovered.
@adenkaiser3993 жыл бұрын
@Conner Ayden It did the trick and I actually got access to my account again. I'm so happy:D Thank you so much you saved my ass!
@dream-coding3 жыл бұрын
아이 학교 방학을 맞이하여 미리 몇개의 영상을 만들어 놓고 아이와 휴가 다운 휴가를 보내고 있어요 (이것이 진정한 휴가인가, 육아일의 시작인가..크크크😂) 다음주에도 더 재밌는 영상이 올라오니 여러분 좋아요와 코멘트 아시죠? ❤️
@youmeson24943 жыл бұрын
아이와의 휴가라니....웃고 있는 이모티콘에서 눈물이 흘러나오고 계시네요. 아이와 좋은 시간 후에 엘리 님의 육퇴 시간은 더 값질 거예요! ;)
@dream-coding3 жыл бұрын
@@youmeson2494 하하하 감사합니다 ❤️ 제 시간이 너무 없어졌지만, 그래도 오랜만에 이렇게 가족과 함께 보낼 수 있는 시간이 생겨서 좋아요 :) 새벽에 일어나는 시간도 더 소중해 졌구요 하하
@오진원-g6c3 жыл бұрын
안녕하세요 php신입개발자 입니다. 미래를 생각한다면 지금 사용하는php언어를 포기하고 다른걸로 갈아 타는게 좋을까요?? 그리고 지금go언어를 많이 사용하지않는데 추천하는 이유좀 알러주시면 감사합니다ㅠㅠ
@longago71323 жыл бұрын
구독과 좋아요! 눌렀습니다. 함수의 역사와 비교대상에 대한 예시 잘들었습니다.
@gojust98182 жыл бұрын
어차피 it종사자들이 많이 보는 내용일텐데 추상적이지 않고 구체적이고 분명한 기준들을 알려주신게 너무 좋습니다.
@westoncedd3 жыл бұрын
5:39 함수형에서 for문을 쓴 것이 문제가 아니고, 저건 넘겨준 파라미터에 대한 변경이 for문에 담겨있어서 그런거라 봐야하는거죠? 만약 function 내 변수를 하나 선언해서 해당 값을 주어 return하면 무관한 것인거죠?
@김감자-s2w3 жыл бұрын
엘리님 강의는 정말 쉽고 핵심적이어서 공부할 때 참고가 많이 돼요. 가끔 헷갈릴 때 엘리님 강의 복습하면 금새 다시 이해되고요. 그리고 시간도 참 알뜰히 쓰시는 것 같아 동기부여 받고 갑니다!
@dream-coding3 жыл бұрын
좋은 글 남겨 주셔서 감사해요 :) 그것중에 동기부여를 받고 가신다니 더 좋아요 😊 어떤 일이든 스스로 동기부여를 잘해서 열심히 해나가는게 제일 중요한 것 같아요. 모든 일의 첫걸음 💎
@잠에약한하마3 жыл бұрын
저도 나온지 좀 됐지만 자바스크립트 함수형 프로그래밍 책을 최근에 봤는데 lodash이전에 나온 underscore를 뜯어보고, filter와 map, 일급함수, 보조함수, 클로져, 커링 등등에 대해서 다루더라구요.. 인자값으로 값이 아니라 함수가 들어가고요! 말을 엄청 간단하게 해주시지만 정말 어렵죠... 그리고 백엔드도 n년뒤에는 함수형 언어인 코틀린 스프링으로 갈것도같구요! 영상 잘보고갑니다아
@빵-w8b4 ай бұрын
if나 for 같은것을 사용하지 않아야 한다고 설명해주셨는데요, 여기서 강하게 의문점이 드는 것이 있습니다.... 기계에게 명령을 내리려면 결국 조건과 반복이 무조건 들어가야 하지 않나 싶은데 함수를 선언하고 그걸 조합하는것만으로 사람이 아닌 기계가 그것을 어떻게 이해하고 처리하는지 궁금합니다...
@dulki3 жыл бұрын
ㅋㅋㅋㅋ Monad 에 대한 이야기 너무 재밌네요, 마침내 이해하면 설명할수가없게된다니
@dream-coding3 жыл бұрын
ㅋㅋㅋ 처음 공부 하신 분들은 아마 동감하실거예요 ㅋㅋ 워낙 명확하게 설명해주는 곳이 없어서, 그런데 마침내 이해하게 되면! 두문장? 정도로 정리할 수 있을 것 같아요 :)
@maverick40643 жыл бұрын
담당분야 전문성/지식도 지식이지만 컨텐츠 기획력도 정말 탁월하신거 같네요 영상 하나하나 감탄하고 갑니다 ㅠㅠ!
@dream-coding3 жыл бұрын
긍정적인 코멘트 주셔서 감사해요 ❤️
@maverick40643 жыл бұрын
한번 본 영상들도 몇번씩 다시 보는데 이런 priceless한 영상을 아낌없이 공유해주셔서 더 감사하죠😍
@MrPpippi3 жыл бұрын
어머.... 자바스크립트 함수를 잘 이해 하지 못해, 계속 마음이 무거웠는데, 이 강의를 들으니, 갑자기 이해가 됩니다. 늘 언제나 처럼, 감사합니다. 선생님 강의는, 공부 시작할때, 공부하는 중간에도 계속 반복해서 들어야 한다는걸 알았습니다. 감사합니다
@youmeson24943 жыл бұрын
엘리 님의 리액트 수업에서 유튜브 클론을 진행하고 있는데, 리액트 훅을 이용하여 골고루 가르쳐 주시고 사용할 수 있도록 해 주신 이유가 있었네요!!! spread operator(...), map을 이용해 가르쳐 주셔서 이번 영상이 한눈에 이해가 됐어요!!! (하지만 아직도 낯선 함수형 프로그래밍... ) 좋은 영상 항상 감사합니다 ;) !!!
@dream-coding3 жыл бұрын
하나의 프로그램을 만들때 만들 수 있는 방법과 활용할 수 있는 패러다임도 여러개라 꼭 두루두루 알고 계시면 좋아서 최대한 많이 알려드릴려고 노력하고 있어요 🍻 마지막 실전에서도 만나요 🙆♀️
@nyangkkun23 жыл бұрын
모르는게 있어서 검색할 때, 엘리님이 뜨면 그렇게 좋더라:) 감사합니다. 좋아요 오천개 맘으로 눌렀슴다
@baejiu3 жыл бұрын
일빠 ❤️ 크으으 ㅠㅠ 엘리님 영상 힐링이네요..!! 아이 학교 방학이라니이 크크크🤣 즐거운 휴가보내셔요 엘리님!! 늘 감사합니다~~!!! 다음주도 기대할게요!!💕🌟
@dream-coding3 жыл бұрын
아닛! 1등을 하시다니 🎉
@baejiu3 жыл бұрын
@@dream-coding 헤헤 기분좋아졌어요🎉🎉🎉🎉🎉
@healthcare1193 жыл бұрын
1982년 처음 COBOL,Fortran 등으로 프로그래밍 공부를 시작하고 나중에 LISP로 개발을 오랜 동안 했었습니다. 그러다가 20년 가까이 프로그래밍을 손 뗀 이후 최근에 와서 다시 요즘 프로그래밍에 관심을 갖고 보고 있는데 많은 변화가 있었네요. 엘리님의 설명은 귀에 쏙쏙 들어와서 정말 이해가 잘되네요. 감사합니다.
@pumdu Жыл бұрын
TS 강의 듣고 있는데. 복습 차원에서 다시 찾아 듣습니다:) 이전엔 이게 멍미 했는데 이제 이해가 쏙쏙 되네요 ㅋ
@cokemania73 жыл бұрын
저도 엘린님 영상 보면서 프론트 개발자가 되려했지만 백엔드 개발자로 취업을 했네요😂 하지만 프론트가 좋아서 간간히 공부 하려 합니다 ! 항상 좋은 영상 올려주셔서 감사합니다 😊
@youmeson24943 жыл бұрын
우와 축하드려요!!! 백엔드가 저는 더 어렵던데!!! 대단하세요 🎉
@dream-coding3 жыл бұрын
우와 축하드려요 🎉 이번 영상에서 벌써 꽤 오래전부터 구독해 주시던 분들이 취업하셨다고 코멘트 주셔서 너무너무너무 행복하네요 🍻
@Ms-rj8px3 жыл бұрын
제가...궁금해하던부분을 늘 쏙쏙 요즘 계속 면접보고있는데 !! 기술면접에 이부분 나왔으면 좋겠어요 !! 😆😆 열공!!
@dream-coding3 жыл бұрын
나와라 나와라 🔮
@엔지니어-o1p3 жыл бұрын
진정한 잡탕 언어인 C++에는 사실 이전부터 함수형 프로그래밍의 특성이 있었습니다. Functor, Pure Function를 위한 const, Map을 위한 람다, 함수합성을 위한 커리 등등... 사실 함수형 프로그래밍을 구현하기 위해서 함수형 언어를 써야 하는 건 아닙니다. 여러분들이 쓰는 언어로 함수형 프로그래밍 패러다임을 구현하시면 됩니다. 그러면 함수형 언어의 장점인 간결성, Side Effect free를 얻을 수 있습니다. 위의 영상에 너무 빠르게 지나갔습니다만, Pure 함수를 써야 하는 이유가 뭘까요? 함수형 언어만 그런게 아니라 절차형 또는 객체지향 언어에서도 Pure 함수를 쓰는게 유리합니다. 당연하지요. 같은 입력을 줬음에도 내부 State에 따라 다른 출력이 나오는 함수는 이해하기 힘듬니다. 같은 이야기로 전역변수 쓰지마라, Flag, 만들지 마라, 함수에 상수매개변수를 전달해라등등이 있습니다. 이건 전부 Pure 함수를 써라는 이야기와 같은 말입니다. 함수형 프로그래밍은 Stateless 강제하는 겁니다. 덕분에 경쟁해야 할 State가 없어서 Multithreading에 강하고 State가 없으니 고민할게 줄어서(=Side Effect free) 버그 발생량이 확 줄어듭니다. State가 없어서 언제든 같은 입력에 같은 출력이 나오니 언제 연산할지 상관없어져서 Lazy Evaluation을 쉽게 지원하지요. 같은 이유로 State가 없어서 코드가 꼭 선언만으로 이루어진 것처럼 보이지요. 코딩양이 주는 건 덤이구요. 하지만 결정적으로 Pure 함수로만 프로그래밍을 할 수 없습니다. 프로그램이란 PC의 복잡한 상태변경을 목적으로 하니까요. 그래서 자기 함자 범주의 모노이드(=모나드), 함수 합성을 위한 커리 등 꼼수(?????)들이 필요한거지요. 사실 이런 꼼수(??!!!)들이 사실 함수형 언어를 실제 사용하는데 핵심입니다. 하지만 무지 낫섭니다. 마치 비C언어 프로그래머가 포인터를 처음 접할때 기분이지요.. 이게 뭐야!!! 왠지 징그러워.. 그런 느낌?? 이제 함수형 프로그래밍이 유행합니다. 장점이 강려크합니다. 자신이 무슨 언어를 쓰던지 함수형 프로그래밍을 이해해서 적용하는 것만으로도 충분히 그 장점을 흡수 할 수 있습니다. 유튜브에 뒤져보니 Java로, Javascripter로, C++로 함수형 프로그래밍을 하는 영상이 많더군요. 그래서 결론적으로 복잡하게 생각할 것 없이 지금 작성하고 있는 프로그램에 pure 함수를 최대한 도배를 해보겠다고 마음먹는 정도도 충분히 좋을 것 같습니다.
@dahliaaroma3 жыл бұрын
이쪽 업무를 한지는 2년여되가는데 어떻게 성장해야할지 길을 잘 못잡아서 방황하는 중에 올려주시는 영상들 덕분에 어느정도 길을 잡고나아가는 중입니다 ㅋㅋ 뭔가좀 늦은 느낌이지만 ㅠ 좋은강의들 감사합니다 모나드는 보고있는데 이해가 잘안되네요
@dream-coding3 жыл бұрын
모나드는 여러가지 찾아서 보시면 나중에 아하! 하는 순간이 오더라구요. 모두다 side effect없이 처리 하기 위해서 어떻게 예외 처리를 함수형에서 해나갈 건지에 대한 고민에서 출발하는거 같아요 :)
@sangmunoh46383 жыл бұрын
상황에 따라 접근하는 방법이 달라집니다. 더 유용한 방법을 찾아가는데, 어떤 언어가 만능은 아니기 때문에 새로운 개념의 언어가 나타나는 것이죠. 그래서 자기가 사용하는 언어를 잘 활용하면서 다른 개념의 언어를 습득하는 것도 중요합니다.
@수우-i3n3 жыл бұрын
자바에 stream이 갑자기 생겨서 가벼운 사용법은 어쩌다 익혔지만 그 원리나 방법이나 효율적인 응용방식은 이 영상으로 알게 되었습니다! 덕분에 많이 느끼고갑니다:) 항상 잘보고있어요 🥰
@mathmato3 жыл бұрын
일전에 함수형 프로그래밍에 관심이 있어 공부하다가 한계를 느낀 것이 재귀 방식으로 함수를 만들었는데 재귀호출에 limit이 걸려 있더라구요. 파이썬/R은 limit이 확실히 있었는데 자바스크립트도 있었던 것 같아요. 하는 업무가 복잡한 수학이 필요해서 함수형 프로그래밍으로 만들면 재귀호출을 많이 하게 되는데 이를 극복하는 팁이 있을까요? 단순히 limit을 해제하면 되는건지.. 아니면 복잡한 수학에는 안 맞는 것인지 궁금합니다.
@dontquit76923 жыл бұрын
저도 인트로에서 빵 터졌는데 (저는 마침 오늘 내가 지금은 다 이해를 못해도 무리하지말고 일단 되면 되는 걸 하는 단계인거지..하고 정리했거든요) 이해하려 애썼더니 마침내 이해하고 나서는 설명할 수 없게 되었다니 ㅋㅋㅋㅋ 괄호에 설명한 스테이지에 있음에도 친절한 드림코딩을 통해서 조금이라도 맥락을 공부할 수 있어 좋아요. 오늘도 컨텐츠에 감사드립니다~~ :)
@dream-coding3 жыл бұрын
하하하 많이 동감하셨다니 저두 좋아요 🙆♀️ 어려운걸 공부하다 보면 한번씩 그럴때 있는거 같아요. 아! 이해 했다고 느끼는 순간, 갑자기 다시 음? 뭐지? 하는거...ㅋㅋㅋ
@simjounhax3 жыл бұрын
5:39에 '문장(expressions)'이라고 돼 있는데 'Statements'가 맞는거죠?
@dream-coding3 жыл бұрын
아뉫 이런 오타가 ㅠ ㅠ
@lkc48083 жыл бұрын
이미 5년 전서 부터 람다 같이 필터링이나 따이 따이 한것들도 의미있는 콜백 처럼 간결한 문장으로 개발하는 패러다임으로 점점 기술이 진화하고 있는데, 거기에 인젝션 기술 까지 접목해서 급속도로 바뀌는게 피부로 와닿기는함~
@dream-coding3 жыл бұрын
따이 따이 한것들 🙌 맞아요 :) 일급함수, 고차함수(?) 이런 트렌드가 많이 접목되는거 같아요
@김기웅-w5p2 жыл бұрын
모나드 언급하는 채널이 별로 없는데 ㅎㅎ 이해할려고 엄청 고생했던 기억이 나네요 하스켈, 스칼라 책도 보고 개발 시장에서 스칼라가 약한데 취미로 하기엔 적성에 스칼라가 재미있더라고요
@kimjunggin3 жыл бұрын
오..이젠 프로그래밍 방식도 돌고 도는거 같아요 가즈아 함수형~
@dream-coding3 жыл бұрын
가즈아~ 함수형 🍻 (매...맥주가 왜 나오지...ㅋㅋㅋ)
@ElinJ-hy2mb3 жыл бұрын
선좋아요 후감상💝
@dream-coding3 жыл бұрын
EunKyung님 감사해요 🙆♀️
@이성로-b2h3 жыл бұрын
항상 좋은 영상 잘 보고있습니다!! 항상 화이팅입니다!!!
@dream-coding3 жыл бұрын
감사합니다 🙆♀️ 화이팅!
@거누권3 жыл бұрын
양질의 영상 감사합니다!! 함수형 프로그래밍.. 순수함수로 해야한다는 부분만 알고있었는데 더 많은 특징이 있는 어려운 페러다임이었군요..ㅎㅎ
@써니-u1c3 жыл бұрын
기다렸어요!
@dream-coding3 жыл бұрын
감사합니다 ❤️
@jsreact67083 жыл бұрын
동시대에 이런강의를 들을수 있게 해주셔서 감사합니다 거의 축구계로따지면 메시
@dream-coding3 жыл бұрын
감사합니다 ❤️ 아이디가 JS React이시라니, 인상적이예요 👍
@Johannah303 жыл бұрын
아 이런 영상을 기다려왔어요 다른 분들 설명도 정말 좋았지만 엘리님만의 세련되면서도 너무 얄팍하지는 않은 이런 설명이 필요했어요!!
@dream-coding3 жыл бұрын
아니, 이런 좋은 피드백을 😆 감사합니다 ❤️
@easycoding23 жыл бұрын
동시 시청자가 많아서 그런지 영상이 플레이가 안되요.. 한 시간 전에 안되서 다른 채널 보다가 다시 들어왔는데 지금도 안되요.. 스피너만 뱅뱅 돕니다.. 저만 그런건지.. 다른분들도 그런건가요?
@dream-coding3 жыл бұрын
앗, 정말요? 😭
@easycoding23 жыл бұрын
@@dream-coding 지금 다시 보고 있는데요 6분43초에서 광고 나와서 광고 그만 보기 눌렀는데 강좌로 안돌아가고 스피너만 돌고 있습니다.. 어제도 광고 그만 보기 누르고 돌아갈 때 멈추었었는데, 오늘도 또 그러네요.. 아마도 유투브에서 저 보고 유료 전환 하라고 이러는 거 같네요 ㅋㅋㅋ...
@IllilIlIIIil Жыл бұрын
디테일한 예시 좋네요 감사합니다
@pur.o.3 жыл бұрын
와 저는 이때까지 함수형 프로그래밍이 절차지향 프로그래밍인 줄 알았어요! 엘리님 덕분에 바로잡을 수 있었네요! 늘 감사합니다 ㅎㅎ
@dream-coding3 жыл бұрын
많은 분들이 "함수형" 이 이름 때문에 그냥 함수만 쓰는 건줄 아시더라구요 😊
@쵸쿄췹3 жыл бұрын
엘리님 오랜만에 출석체크합니다! ㅎㅎ 감사합니다~!
@DennisKimTV3 жыл бұрын
프로그래밍 언어는 각 목적에 따라 기능을 추가하고 확장하는 경향이 있어 모던 언어는 비슷한 기능이 추가되는 것이 요즘의 추세입니다. 하지만 디버깅의 입장에서 함수형 프로그래밍은 직관적인 디버깅과 좀 거리가 있습니다.
@jipdol26383 жыл бұрын
요즘 자바스크립트에 관해 공부중인데 백엔드 지금 한국내에선 nodejs를 사용하는 기업들은 별로 없다고 알고있습니다. 그럼 그냥...포기하고 자바나 해야되는걸까요
@aepyor3 жыл бұрын
스타트업에서는 많이 씁니다.. 물론 스타트업 취업은 신중히 고려해 봐야겠지만요.. 여하튼 한국은 고인물..
@jipdol26383 жыл бұрын
@@aepyor 일단 답변 너무 감사드려요 ㅠㅠ 저가 지금 중견 si에서 인턴중인데 여기도 당연히 스프링....꾸준히 js를 공부중이긴 한데 이게 빛이 바랄일이 있을지 모르겠어요 ㅠㅠ 글대로 nodejs 사용하는 기업들 보면 보통 인력을 줄이고자 '풀스택' 개발자를 원하더라고요...
@aepyor3 жыл бұрын
@@jipdol2638 어차피 js는 하는 김에 풀스택 하는 게 맞지 않나 생각합니다. 그래야 혼자 할 수 있는 게 무궁무진해져서 재밌기도 하구요. 근데 풀스택 개발자 구하는 스타트업은 그냥 대표나 다른 분들은 아무것도 모르고 그냥 한 사람 뽑아서 다 맡길 것 같은 분위기라 좀 그렇기는 하네요..
@jumping-wolf2 жыл бұрын
제가 이해한 바로는 call by reference 가 아닌 call by value 가 기본이 되는 프로그래밍인 것 같네요
@rest79293 жыл бұрын
오 요즘 면접을 위해서 공부하고 있는 것 중 하나에요!!! 선 좋아요했으니 이제 감상하러 가겠습니다~~ㅎㅎㅎ
@dream-coding3 жыл бұрын
와 면접준비 열심히 하고 게시네요 👍
@hyungchulpak3 жыл бұрын
함수형 프로그래밍이란 걸 이 영상을 통해 전반적인 것들을 파악할 수 있었습니다. 감사합니다!
@김현진-g2b2p2 жыл бұрын
고생 많으셨습니다 쉽게 설명해 주셔서 감사해요!!
@aepyor3 жыл бұрын
개인적으로 순수함수의 조합을 통해 인풋 아웃풋 앞뒤 형식만 맞춰서 파이프만 연결해주면 되는 함수형 프로그래밍이 오히려 제 사고 방식에 맞아서 거의 모든 개발을 함수형으로 바꾸려고 하고 있습니다. 그냥 커링과 조합기 쓰는 수준으로 쓰고 있고 모나드 같은 건 아직 이해도 못했지만 이 정도 만으로도 OOP에 비해 안정성 높고 유지보수성 보장되는 프로그래밍을 할 수 있었던 것 같아요. 유닛테스트 하기도 좋고.... 한번 제대로 만들어 놓은 단순한 툴들이 많을수록 그게 자산처럼 쌓여나가는 게 개발자의 좋은 길이라는 생각이 있다보니 FP는 저에게 축복처럼 느껴졌습니다 ㅎㅎ 아 그리고 함수형은 지나치게 한번에 다 조합하려고 하면 가독성이 아주 안좋은 코드가 될 수는 있는 것 같습니다. 그래서 적당한 선에서 함수형 고집하면서 가독성 방해하지 않는 수준으로 코딩하는 노하우를 쌓아나가는 게 좋은 것 같습니다.
@dream-coding3 жыл бұрын
맞아요 🙆♀️ 어떤 패러다임이든 가독성이 유지보수와 확장성면에서 정말 중요한것 같아요. 잘 짜여진(디커플링된, 독립적인 모듈) 클래스도 유닛테스트 하기가 좋지만, 순수 함수만큼 유닛테스트 작성하기 쉬운게 또 있을까 싶어요 😊
@user-happy20803 жыл бұрын
누님 쌩 초보자가 c언어 건너뛰고 C++ 로 시작해도 문제없을까요?
@mba73633 жыл бұрын
너무 재미있게 잘 보고 갑니다. ^^ 프로그래밍에 관심없는 사람도 정말 재미있게 보고 흥미를 많이 가질만한 영상이네요^^
@dream-coding3 жыл бұрын
코딩에 관심이 없는데 제 영상이 추천으로 뜨셨나요? 하하하핫ㅋㅋㅋ
@김준영-w3y3 жыл бұрын
함수형이 대세라는 썰은 10년째 나오는거같다
@김준영-w3y3 жыл бұрын
@@asdsdddds 아하 제가 10년전에 프로그래밍 첨시작해서 그런듯 ㅋㅋㅋ
@maverick40643 жыл бұрын
방학이라니..본업 시작하셨네요! 오늘도 소중한 컨텐츠 공유해주셔서 감사합니다!
@dream-coding3 жыл бұрын
네 정말 본업 시작한 느낌이예요ㅋㅋㅋㅋㅋ
@chumgi80603 жыл бұрын
기계과인데 대학원 올라오니 프로그래밍 해라고 해서 C# C++ python 전부 다 만지다보니 혼자서 몇개월 공부해서 쓰다보니 처음엔 클래스 묶었다가 오류 빵빵 터진 이후로 객체지향이든 절차지향이든 그냥 다 함수로 만들어서 쓰는게 오류가 없어서 그거만 하게 되네요.. 이런 패러다임이나 디자인패턴 같은건 어케 하는지ㅠㅠ
@askwizard3 жыл бұрын
항상 좋은강의 감사드리면 엘리 선생님 사랑합니다
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@kaynote3 жыл бұрын
오늘도 좋은 영상 감사드립니다~~ 요즘 회사에 새로오신 분들에게 엘리님 영상 추천해주고 있는데 너무 뿌듯합니다. ㅎㅎ
요즘 모던자바 공부하면서 함수형 프로그래밍에 관심을 가지게 됐는데 딱 관심저격해주시는 엘리님 클라스 ㅠㅠ 🤩
@dream-coding3 жыл бұрын
관심저격 감사합니다 🙆♀️
@baezzang22223 жыл бұрын
엘리쌤 항상 좋은 영상 감사합니다! 그리고 엘리쌤 영상 썸네일 보는 재미가 있어요 ㅋㅋㅋㅋㅋ
@puddingpudding77903 жыл бұрын
지금 학교에서 Ocaml 배우는데 온라인에 리소스가 다른 프로그래밍언어들보다 너무 적어서 너무힘드네요 ㅠㅠ
@dream-coding3 жыл бұрын
와 학교에서 Ocaml을 배우시나요?
@JohnLee-lm7ev3 жыл бұрын
항상 감사드립니다!!! :)
@howtodo9573 жыл бұрын
저는 관심으로 몇번 검색했지만, 아무리 생각해도 큰 차이를 모르겠던 함수형프로그래밍 ㅎㅎ 별도로 봤었던 키워드들의 교차점을 찾았네요 ㅠ 감사합니다.
@otwmoo3 жыл бұрын
제 경우는 모나드 잘 안쓰게 되더라고요. 그게 전체적으로 코드가 길어지게 많드는 한편, 일단 쓰기 시작하면 다른 사람들이 불편해 하더라는 대체할 수 있는 방법도 없는 것도 아니고,
@dream-coding3 жыл бұрын
주로 어떻게 대체해서 사용하시나요? :)
@otwmoo3 жыл бұрын
@@dream-coding 젤 처음엔 monet.js 사용하다가, 거의 대부분 either랑 maybe만 쓰게 되던군요. 향후에 maybe는 optional chaining으로 쓰고, either는 사실 예외 처리 용도로 사용하였는데, ramda.js tryCatch로 쓰거나 또는 promise catch용으로 만들거나, 또는 axios도 역시 한 더 wrapping 하는 형태로 쓰고 있어요. monad는 거의 에러 처리용도와 널 처리 용도 이외는 잘 안쓰기도 하고 monad 가 뭔가 장황하기도 하고, PIPE처리도 어렵기도 하고, 뭐 결정적으로 다른 팀원이 잘 안쓰더라는 ....
@laimfanta3 жыл бұрын
오늘도 너무 멋지세요! 저도 아름다운 코딩을 하는 그 날 까지 :)
@dream-coding3 жыл бұрын
아름다운 코딩 ✨
@네-r8u3 жыл бұрын
엘리님 항상 감사합니다 설명을 잘해주셔서 재밌게 보고 있습니다 😊 최고
@dream-coding3 жыл бұрын
감사합니다 👍
@영혼-o2o3 жыл бұрын
좋은 말씀 잘들었습니다 감사합니다
@우기-h3u3 жыл бұрын
이게 궁금한게 기본적인 지식만 듣고 이영상 을 찍은건지 깃헙에서 자신이 짠 코드가 기업에서 처럼 코드를 정확히 알고 쓰는건지 궁금한데...
@김초보-n7o3 жыл бұрын
크 요즘 ts 객체지향 공부하고 있는데 이해가 정말 쑥쑥 잘되서 재밌어요! 감사합니다!
@dream-coding3 жыл бұрын
감사합니다 🙌 객체지향 잘 공부하시구 나중에 디자인패턴까지 공부하시면 정말 재밌어요 🙆♀️
@김초보-n7o3 жыл бұрын
@@dream-coding 아 맞다 엘리님 강의가 이해 잘된단 거였어요!
@파이썬최고3 жыл бұрын
정보보안학과 2학년 재학생 입니다 오늘부터 구독했습니다^^
@dream-coding3 жыл бұрын
와 안녕하세요 :) 보안 전문가는 아니지만 대학생때 보안 동아리에서 활동했어서 보안학과라니 더 반갑네요 ❤️
@renhualin86593 жыл бұрын
좋은 영상 감사하고요, 다음 영상 기다릴게요. ❤❤❤
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@otwmoo3 жыл бұрын
멀티 패러다임은... 순수한 함수형 진영에선 이단 정도로 취급하는... 아무튼 현업에서 이게 아무리 좋다 뭐다 해도 그 작은 허들 때문에 주류로 올라오려면 아직도 멀었다는 이야기를 많이 하게 되는듯. 이게 이래서 좋다라고 아무리 이야기 해도 대부분 이해 못하는 사람들이 많더군요.
@dream-coding3 жыл бұрын
함수형으로 개발하고 계신가요? :) 저는 저희 CTO가 매일 Haskell에 대해 얘기 해서 함께 대화 하기 위해서 배우기 시작했다가 함수형에 빠졌는데 한번도 현업 프로젝트에서 써보지는 못해서 언젠가 꼭 한번 프로젝트 해보고 싶더라구요 😊
@bugeonkim47263 жыл бұрын
진짜 너무 쉽게 설명 해줘서 감사합니다.
@이제동-b9q3 жыл бұрын
흠... 어렵네요. 하스켈이나 얼랭을 써본 적도 없고 함수형 프로그래밍이 필요한 적이 없어서 그런지 잘 이해를 못 하겠습니다. 그냥 느낌은 빅데이터를 다루면서 병렬적으로 비동기가 중요해지고 개개의 연산들이 오류가 안 나게 하려고 일반 언어들이 쓰는 if문등을 쓰지 않고 기존의 언어보다 좀 더 엄격하고 특별한 방법을 사용하는 거 같은데 실제로 프로그래밍을 해봐야 정확히 이해할 수 있지 않을까 생각이 드네요. 어쨌든 영상 잘 봤습니다.
@progress04073 жыл бұрын
깔끔하게 이해됐네요 ㅎㅎ 최고의 요약입니다!
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@sanghun983 жыл бұрын
완전 리액트네용!
@goya22233 жыл бұрын
유익한 영상 감사해요~ 다음 영상도 기다리고 있을게요~^^
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@Magandangful3 жыл бұрын
너무 멋진 엘리님 감사합니다
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@spk90903 жыл бұрын
좋은 강의 항상 감사합니다. 싸룽해요~!
@dream-coding3 жыл бұрын
헉ㅋ! 좋아욘~! 즈~! 가 아닌 다른 스타일의 코멘트 :) 정말 오랜만이네욤즈~! 😊
@jaejinkim91063 жыл бұрын
안그래도 궁금해 하던 부분인데! 감사합니다!!
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@감자-h5d2 жыл бұрын
감이 좀 온 것 같아요! 감사합니다 :)
@archeage_villain3 жыл бұрын
궁금했는데 간략히 다뤄주셔서 감사합니다
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@samkao60733 жыл бұрын
이 영상보고 구독했어요! 첫화부터 정독갑니다!
@dream-coding3 жыл бұрын
어서오세요 😍
@약콩이3 жыл бұрын
아아ㅏㅏㅏㅏㅏ앗... 최근에 함수형 프로그래밍을 배워서 사용할지 말지 고민했었는데... 역시 엘리눈나...!
@dream-coding3 жыл бұрын
최근에 뜨끈뜨끈하게 배우셨네요 🔥
@SeanPark72 жыл бұрын
함수형 프로그래밍에 익숙해지니까 코드 리뷰 중에 함수 중간에 못보던 변수가 튀어나오면 심기가 매우 불편해짐.
@hawaii35353 жыл бұрын
감사합니다! 이해쏙쏙
@jkyg73713 жыл бұрын
좋은 영상 감사합니다.
@dream-coding3 жыл бұрын
감사합니다 ❤️
@bscho89213 жыл бұрын
영상 감사합니다..^^
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@jaeillee67252 жыл бұрын
와 캘리 짱 ~
@김상우-l3o3 жыл бұрын
설명 최고에요👍
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@Amamamamwnwb2 жыл бұрын
딴거는 이해가 가는데 if switch for 문을 쓰면 왜 안되는지는 이해가안가네요.. ㅠㅠ
@steve28173 жыл бұрын
최근 하스켈 배워보고 있는데 진짜 재밌더라구요 ㅋㅋ
@dream-coding3 жыл бұрын
그쵸? 조금씩 빠져들면 헤어나올 수 없는 세계, HASKELL
@zlemtiq3 жыл бұрын
공부 재밌다는 그대가 win......
@최현우루카스3 жыл бұрын
잘 들었습니다. 모나드도 한 번 부탁드립니다. ^_^
@dream-coding3 жыл бұрын
하하 감사합니다 🙆♀️
@jyreact2 жыл бұрын
둘다 적재적소에 쓰는게 중요하다!
@SH-bj4rn3 жыл бұрын
리액트에서 절차형으로 코딩하다가 뚝배기 깨졌던 기억이 있네요ㅋㅋ 함수형.. 어렵네요ㅋㅋㅋ
@dream-coding3 жыл бұрын
하하하하하하하하 뚝배기!ㅋㅋㅋㅋ
@fealtort3 жыл бұрын
커링도 중요하고 모나드 스택도 중요하고...
@aaron-kim003 жыл бұрын
Thanks
@서진완-z5t3 жыл бұрын
혹시 옆에 키보드 뭔지 알수있을까요 ?
@dream-coding3 жыл бұрын
곧! 리뷰 영상이 올라옵니다 👍 스테이 튠
@권다훈-w9c3 жыл бұрын
감사합니다.
@ninana84003 жыл бұрын
감솨합니다~
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@hookilpark54372 жыл бұрын
This is what I want.
@tobiw94192 жыл бұрын
3번은 동의하기 힘드네요
@앞으로도잘부탁해-n9y3 жыл бұрын
감사합니다
@dream-coding3 жыл бұрын
감사합니다 🙆♀️
@Alexi7813 жыл бұрын
다음 강의때는 드림을 코딩 하는 방법좀 ㅎㅎ
@dream-coding3 жыл бұрын
넵, CODE YOUR DREAM ☀️
@sjy2693 жыл бұрын
스칼라 개발잔데 맨날 하는게 함수형 프로그래밍인데 아직도 Currying 을 이해 못했음......ㅠ