Тёмный
No video :(

혼자 공부하는 파이썬 개정판 82강 - 캡슐화 

윤인성
Подписаться 32 тыс.
Просмотров 3,5 тыс.
50% 1

Опубликовано:

 

17 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 15   
@tpag20
@tpag20 Год назад
강의가 너무 훌륭합니다. 특히 어떤 미친놈을 상정하고 그에 대비하는 코드가 인상 깊었습니다. 그리고 제가 chatGPT에 파이썬으로 모나드 개념을 설명해줘라고 했을때 나온내용도 결국 캡슐화의 분파중에 하나였던것 같다는 생각도 들었습니다.
@user-rh1qt9zn7h
@user-rh1qt9zn7h Год назад
모나드는 개념적으로는 "함수형 프로그래밍"의 분파입니다! 1950년 대에 등장한 개념이라서 "객체 지향 프로그래밍"이 없던 때 등장한 녀석입니다. 이 용어가 참 복잡한데 간단하게 정리해보면 (1) 원래 map, filter 함수를 연속으로 사용하고 싶다면 filter(map(map([1, 2, 3], 〇〇), 〇〇), 〇〇)처럼 코드를 구성해야 합니다. 함수는 안쪽부터 실행되므로 이 코드를 이해하려면 map→map→filter 형태로 이해해야 합니다. 이해하기가 힘듭니다. (2) 만약 이를 [1, 2, 3] → map → map → filter 처럼 작성할 수 있게 된다면 코드를 이해하는 것이 더 쉬울 것입니다. --- 이런 인식 흐름이 굉장히 좋으므로 여러 분파에서 이 문법을 채용합니다. 객체 지향 프로그래밍 언어에서는 "메서드 체이닝"이라는 이름으로 이를 활용합니다. 자바스크립트를 예로 들면 [1, 2, 3].map(〇〇).map(〇〇).filter(〇〇)으로 코드를 작성합니다. 함수형 프로그래밍 언어에서는 "모나드"라는 이름으로 이를 활용합니다. [1, 2, 3] | 〇〇 | 〇〇 | 〇〇처럼 씁니다. PS. 한 방에 묶어서 [1, 2, 3] | 〇〇, 〇〇, 〇〇하기도 합니다. PS. 바인드라는 표현을 써서 [1, 2, 3] bind 〇〇 bind 〇〇 bind 〇〇 [1, 2, 3] bind 〇〇, 〇〇, 〇〇 하기도 합니다. 분파에 따라서 차이가 있다면 일반적으로 객체 지향 프로그래밍 언어는 오류가 있을 때 "바로 예외"를 때려버리고 함수형 프로그래밍 언어는 "프로그램이 죽지 않게" 구현합니다. 그리고 이러한 흐름에 따라서 각자 길을 가서 잘 발전합니다. PS. 함수형 프로그래밍 언어는 어떤 식으로 더 발전하냐면 10 binds 〇〇, 〇〇 if maybe 〇〇 # 뭔가 값이 나오면 이거 실행 if null 〇〇 # null 이 나오면 이거 실행 when error 〇〇 # 오류 뜨면 이거 실행 합니다. --- 그런데 최근 객체 지향 프로그래밍 분파의 "객체 지향 비동기 프로그래밍 분파"에서 "아니 처리 중에 예외가 뜨게 하면 안 되는데...."라고 하다 보니 함수형 프로그래밍에서 발전하고 있던 모나드를 채용해버립니다. PS. 객체 지향 프로그래밍에서 발전하던 메서드 체이닝과 함수형 프로그래밍에서 발전하던 모나드를 결합한 새로운 분파가 나온 것입니다. [비동기 분파에서 활발하게 쓰이므로, 자바스크립트에서는 이것이 큰 축을 이룹니다] 그래서 [1, 2, 3] .pipe(〇〇, 〇〇, 〇〇) .nullable({{null이 떴을 때 실행할 함수}}) .exception({{예외가 떴을 때 실행할 함수}}) .complete({{정상적으로 실행했을 때 호출하는 함수}}) 이렇게 코드를 구현할 수 있게 하는 것이 현대적인 "객체 지향 프로그래밍 언어에서의 모나드"라고 할 수 있습니다!
@tpag20
@tpag20 Год назад
@@user-rh1qt9zn7h 답변이 한 편의 강의 수준입니다. 너무 감동 먹었습니다 ㅠ.ㅠ 감사합니다. 두고두고 읽어보도록 하겠습니다.
@user-gf4uu2hh7h
@user-gf4uu2hh7h Год назад
감사합니다.
@user-rh1qt9zn7h
@user-rh1qt9zn7h Год назад
감사합니다!
@jaekunyoo8509
@jaekunyoo8509 Год назад
안녕하세요. 감사히 잘 봤어요. 전체 영상 마치고 다시 반복해서 기억지속하려 해요. 2023년 7월 27일 목 20시40분 태평양 시간
@user-ei9bo1sl3n
@user-ei9bo1sl3n 11 месяцев назад
혼공파 책과 영상으로 파이선 공부하면서 학교에서 진행하는 프로젝트에 많이 도움을 받고 있습니다. 감사합니다. 강의와 책을 통해 상속, 인캡슐레이션 은 이해가 좀 되는데 OOP 를 공부하면서 polymorphism 을 이해를 잘 못하겠어요.. 혼공파책에 찾아봐도 안나오더라구요 ㅜ_ㅜ 윤인성 강사님의 설명좀 부탁드려도 될까요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h 11 месяцев назад
파이썬은 동적 언어라서 C#, 자바 등의 정적 언어에서 언급하는 다형성이 없습니다 [구현하라면 할 수 있겠지만, 좀 다른 형태로 동작합니다] 그래서 다형성은 자바 기반의 설계 책들을 보면서 익히는 것을 추천드립니다.
@user-ei9bo1sl3n
@user-ei9bo1sl3n 11 месяцев назад
@@user-rh1qt9zn7h 역시 명쾌한답변! 감사합니다 :)
@jaekunyoo8509
@jaekunyoo8509 Год назад
안녕하세요. 감사히 잘 봤어요. 2023년 7월 14일 금 14시14분 태평양 시간
@doriang57
@doriang57 Год назад
결국 캡슐화는 개발자의 목적과 관계없는 어떤(실험정신이 투철한) 정신나간 사람이 뻘짓 할경우를 대비하기 위함인거 같다고 해석해도 될까요? ㅎㅎㅎㅎ 요즘 자바 강의 듣는데, 이전 파이썬 강의 들어논게 잇어서 그런지 듣기 거북하지는 않네요. 선생님 덕분입니다. ^^ 감사합니다.~~
@user-rh1qt9zn7h
@user-rh1qt9zn7h Год назад
넵 맞습니다! 근데 사실 개발을 하다보면 (1) 클래스를 사용해서 만든 프로그램을 사용하는 사용자[최종 사용자]에 의해서도 잘못된 값이 들어오고 (2) 예상치 못한 버그로 잘못된 값이 들어오고 PS. 양수만 넣으려 했는데 오버플로우나서 음수가 들어온다던지 등등 워낙 다양한 일이 있어서 이런 모든 상황을 대비하기 위한 것이라 생각해주시면 되겠습니다!!
@jeongyoonkang959
@jeongyoonkang959 Год назад
근데 문득 궁금해지는 건 외부에서 변수를 참조하는 걸 막기 위한 방법론이 캡슐화인 건 납득이 됩니다만 결국 외부라는 것도 코드 상에서 클래스 외부라는 말일텐데, 그러면 그 미친놈이라는 분은 함께 일하는 어떤 동료 및 협엄 개발자라는 것인가요? 어떤 사람이 밤새 일하느라 피곤해서 잠시 착각해서 헛짓을 할 수도 있으니까요?
@user-rh1qt9zn7h
@user-rh1qt9zn7h Год назад
개발과 관련해서 유명한 말로 "3일 후의 나는 내가 아니다"라는 말이 있습니다. 본인이 클래스를 만들어도 3일 후가 되면 본인이 만든걸 다 까먹기 때문입니다. 그래서 함께 일하는 동료도 문제가 될 수도 있고 + 그 클래스를 가져가서 쓰는 협업하는 사람이 문제가 될 수도 있고 + 그 클래스를 만든 본인이 문제가 될 수도 있습니다. 그리고 개발이라는게 일정적으로 문제가 빡빡하고 미래를 예측하는 것이 힘들어서 코드가 복잡해지면 """지금 당장 문제는 안 일으키는데 깊게 생각해보면 나중에 유지보수로는 문제가 될지도 모르는 코드"""를 어떤 시점에 딱 파악하는 것이 쉽지가 않아서 일단 일정 맞추느라 모두가 다 같이 문제를 일으킵니다[...]. PS. 이렇게 """지금 당장 문제는 안 일으키는데 깊게 생각해보면 나중에 유지보수로는 문제가 될지도 모르는 코드"""를 "기술적 부채"라고 이야기합니다.
@jeongyoonkang959
@jeongyoonkang959 Год назад
@@user-rh1qt9zn7h 좋은 답변 감사합니다 ㅎㅎ
Далее
Generics: The most intimidating TypeScript feature
18:19
Transformer 코드 리뷰 1강
35:38
Просмотров 1,2 тыс.
Compilers, How They Work, And Writing Them From Scratch
23:53
혼자 공부하는 파이썬 40강 - 제너레이터
12:11
Rust and RAII Memory Management - Computerphile
24:22
Просмотров 224 тыс.