[ENG SUB] Poison In My Function! JavaScript Closure

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ส.ค. 2024
  • It's quite easy to understand what closure is.
    But there's something that bothers us to understand the concept.
    Let's figure it out.

ความคิดเห็น • 24

  • @ekil9536
    @ekil9536 2 ปีที่แล้ว

    속이 시원해졌습니다 명확하고 깔끔한 설명 감사합니다!!!

  • @instantcoffee1589
    @instantcoffee1589 2 ปีที่แล้ว

    기존에 설명들보면 함수안에 함수를 넣어서 클로져함수 예시를 듣고 이해하기가 어려웠는데 이렇게 생각하니 쉬운 개념이었네요

  • @whdgns5059
    @whdgns5059 4 ปีที่แล้ว +1

    클로저는 꼭 함수를 리턴해야 하는건줄 알았는데 잘못 이해하고 있었군요. 외부 변수 참조는 js하면서 별생각없이 쓰고있었는데 말씀하신 것처럼 다른 언어에서는 쉽게 지원하지 않는다는걸 알았습니다. 좋은 영상 감사합니다

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว

      파이썬과 같은 스크립트 언어에서는 보통 자바스크립트처럼 자유로운 클로저 지원을 하는데 별 부담이 없습니다. 하지만, 이렇게 마음대로 클로저를 사용할 수 있게 해주는건, 동적 타입 지원과 비슷한 맥락에서 코드 실행 성능을 느리게 만들 수 있습니다.
      그렇다보니 언어에 따라서 클로저를 지원하는 방식에 차이가 있게 되는거죠ㅎㅎ 감사합니다.

  • @user-xi4yn8rq4k
    @user-xi4yn8rq4k 4 ปีที่แล้ว

    클로저를 다른 언어의 사례와 같이 설명해주니까 정말 명확히 이해가 되었네요. 몇년 동안 클로저를 알긴 알겠는데, 명확히 모르겠는 찝찝함이 있었는데 정말 말끔이 해소 되었어요

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว +1

      그 찝찝함, 저도 예전 몇년 동안 비슷하게 느꼈던 적이 있다보니 정말 공감이 됩니다ㅎㅎ 댓글 감사합니다.

  • @wudqo89
    @wudqo89 4 ปีที่แล้ว +2

    항상 다른 강좌에서 closure 개념 예시를 볼 때 (inner, outer 함수선언과 내부 변수 코드)
    이해를 하는데도 뭔가 똥을 덜 싼 기분 있는데...
    Taehoon님 강의가 사과에 들었는 pectin이며 유산균이네요.
    아주 시원합니다~~ 감사합니다~~~!!!
    (그만큼 영상이 좋아서 이렇게 표현해봤습니닷~! )

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว

      사실 이번 클로저 영상은 설명이 나름 깔끔하게 뽑힌거같아 내심 기대를 조금 했었는데요.
      비유가... 정말 강렬하네요ㅋㅋㅋ 댓글 감사합니다 :)

  • @jceyi8054
    @jceyi8054 3 ปีที่แล้ว

    와....... 정말 오랫동안 맨날 찝찝했던 것이 여기서 한번에 풀리네요 정말 감사해요!!

  • @jeansuh7103
    @jeansuh7103 2 ปีที่แล้ว

    이번 것도 잘 보고 갑니다. 감사합니다!

  • @user-hh6zs1ek5s
    @user-hh6zs1ek5s 4 ปีที่แล้ว

    이번 강의도 얻어갈게 많네요ㅎ 러스트도 다루어 보셨다니 대단하세요ㅎㅎ

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว

      댓글 감사합니다ㅎㅎ 러스트는 최근에 특히 열심히 쓰고 있는데, 정말 좋습니다. 배울게 정말 많더군요.

  • @user-zq4ec6xo5d
    @user-zq4ec6xo5d 4 ปีที่แล้ว

    설명 정말 잘하십니다! 바로 구독..

  • @user-sx1kb9vs4i
    @user-sx1kb9vs4i 2 ปีที่แล้ว

    감사합니다 ㅎㅎ

  • @kimdh377
    @kimdh377 4 ปีที่แล้ว

    감사합니다!!!! ㅎㅎㅎ 클로져의 개념에 대해서 이해할려고 했었는데 그것이 자바스크립트 때문이였다니 ㅋㅋ...

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว

      댓글 감사합니다 :)
      사실 자바스크립트는 클로저가 뭔지 생각할 필요 없이 자유롭게 쓸 수 있는 언어이긴 하죠.ㅎㅎ
      그런데 그걸 굳이 꺼내서 이해하려고 하다보니 어렵게 되어버린게 아닐까 싶습니다.

  • @user-xi4yn8rq4k
    @user-xi4yn8rq4k 4 ปีที่แล้ว

    너무 명강의라 다시 한번 복습을 한번 더 하였는데요ㅎㅎ 예시로 들어주신 외부 변수를 참조할수 있는 데코레이터 Capture 와 함수 클로져가 아님을 표시해주는 Pure 는 각각 어떤 언어에서 쓰이고 있는지 여쭤봐도 될까요?

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว +2

      데코레이터나 pure 와 같은 키워드는 설명을 위해 임의로 추가한거라 실제 사용 사례까지는 저도 잘 모르겠습니다.ㅎㅎ
      보통은 클로저를 따로 구분하기 위해서 익명 함수를 많이 사용하는데요.
      이번 영상 클로저 예시로 익명 함수를 사용하면, 개념 이해하는데 방해가 될 수 있다고 생각해서 일부러 다른 키워드를 사용했습니다.
      사실 일반적으로 순수 함수와 클로저를 구분하기 위한 수단으로 많이 사용되는건 익명 함수입니다.
      Go나 Rust 같은 경우가 예시가 될 수 있겠는데, 클로저를 위해서는 익명 함수를 사용하고 그 외 일반 함수 용도로는 func, fn 키워드에 함수 이름을 붙이는 식으로 사용합니다.
      그런데 사실 익명 함수와 클로저는 꼭 같이 있어야만 하는 개념이 전혀 아닙니다.
      많은 언어에서 편의 상 (익명 함수 + 클로저) 조합으로 제공하는거지, "익명 함수면 클로저다" 혹은 "클로저면 익명 함수다" 이런건 아니기 때문이죠.
      영상에서 클로저와 실제로 관련이 있는게 아닌 익명 함수 언급을 피하고 싶었고, 그래서 임의로 키워드를 만들어서 사용을 했습니다.

    • @user-xi4yn8rq4k
      @user-xi4yn8rq4k 4 ปีที่แล้ว

      @@TaehoonMoon 클로저를 따로 구분하기 위해서 "편의상" 익명함수를 많이 사용하는군요. 덕분에 몰랐던 정보를 더 알아갑니다. 짧은 동영상 이지만, 많은 생각 끝에 만들어지는 영상 이라는게 느껴지네요. 답변 감사합니다. ^^

  • @samakk11
    @samakk11 4 ปีที่แล้ว

    유익한 영상 감사합니다. 영상에선 함수 어노테이션이나 pure 키워드를 사용해서 클로저 함수 선언을 별도로 분리하는 언어가 있다고 하셨는데, 혹시 그 언어가 rust 말고 어떤 언어인지 알 수 있을까요? 예시로 든 어노테이션이나 pure 키워드 사용하는 언어만이라도.. 알고 싶습니다!

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว

      답글이 늦었네요, 영상에서 사용한 예시는 가상의 언어를 가정하고 이야기한거라 실제 구현체가 혹시 정말 있을지에 대해서는 제가 잘 모르겠습니다. 자바스크립트 언어를 임의로 약간 확장해서 사용을 한 셈입니다.
      Rust 나 다른 언어를 예로 들 수도 있을텐데 이렇게 한 이유가 있긴 합니다.
      보통 많은 다른 언어에서 단순히 클로저와 순수 함수를 나누는 용도만을 위해서 별도의 키워드를 할당하는 경우가그렇게 많지 않습니다.
      Rust의 경우에는 클로저 함수와 일반 함수 간에 문법도 다르고, 클로저의 경우 type 표기를 생략할 수 있게 제공하는 등 추가적인 편의 기능을 제공하고 있습니다.
      이런식으로 아예 다른 기능을 클로저와 같이 묶어서 제공하는 경우가 많다보니... 영상에서 단순히 클로저와 클로저가 아닌 것, 이걸 구분해서 설명하는 용도로 사용하기에는 적절하지 않다고 생각했습니다.
      그래서 pure 나 함수 어노테이션 등 별개의 기능을 가정하고 사용한거구요.

  • @kkumi_room
    @kkumi_room 4 ปีที่แล้ว

    구독자수실화...? 너무감사히잘보고갑니다.

    • @TaehoonMoon
      @TaehoonMoon  4 ปีที่แล้ว

      그래도 예전과 비교하면 정말 많이 늘어서 힘이 많이 되고 있습니다ㅎㅎ 감사합니다