코드로 개념들을 재발명하는 그런 채널입니다.
재발명이 비난받을 일인것은 맞지만
한번 해두면 트러블슈팅할때 굉장히 편해요.
아 이거는 ~~이렇게 작동하니까 여기에서 문제가 발생한 것이다
라고 빠르게 파악이 가능하죠.
이걸 미리 다져놓지 않으면 문제를 피상적으로 구글링으로 방법만 찾아서 틀어막거나,
아니면 파고 파도 계속 끝없이 원리를 탐구하느라 시간을 낭비하게 됩니다.
문제가 들이닥쳤을때 그때 분석들어가는거?
좋습니다.
근데, 우리 차근차근 고수준의 개념들을 저수준으로 소화해보는건 어떨까요?
제가 대신 소화해서 떠먹여드리겠습니다.
자바 - 상속 기본
자바 - 상속 인터페이스
자바 - 상속 프록시
자바 - 어노테이션과 리플렉션
스프링 - Bean
스프링 - AOP
스프링 - Transactional (실제 흔히 발생하는 AOP 트러블슈팅 예시)
이 주제로 영상을 찍을거에요
이 영상들을 다 보고나시면
(1) Java 상속이라는 패턴이 물밑에서 어떻게 작동하는지 C로 구현할 수 있게되고
(2) Java의 객체지향이 왜 강력한지 AOP라는 예시를 통해 살펴보고 이 강력함을 얻기 위해서 C와 Java관점에서 어떤 고수준 레이어가 들어갔는지 알 수 있고
(3) AOP의 메카니즘을 핵심적인 내용만 정확하게 구현해서, 앞으로 AOP의 발동조건과 발동원리를 정확하게 숙지하실 수 있습니다.
(4) 스프링이 없는 자바에서도 부분적으로 AOP를 구현이 가능하고, 어노테이션을 실무에서 활용하실 수 있게 됩니다. (얼마나 사용할진 모르지만, 이거는 단순 재발명이라기엔 꽤나 유용한 스킬임에는 분명하죠)
이 7개의 영상이
자바의 객체지향에 대한 확실한 입문이 될거같고
그 다음으로는
중첩클래스를 일반 클래스로 구현하기
익명클래스를 중첩클래스로 구현하기 (이거는 시중 기본서에도 나오는 내용이죠)
람다를 익명클래스로 구현하기
를 통해
저는 굉장히 쉬워서 상식이라고 생각합니다만, 혹시 람다나 중첩클래스가 어려우신 분들한테 개념 설명해드릴거구요.
일단은 자바부터 시작할거지만
함수형이 궁금하신 분들을 위해
자바의 객체지향과 상속을 C로 풀어서 설명해줬듯이
하스켈은 도대체 어떤 기능을 사용하는것인지 C로 하스켈의 기능들을 서술해서 함수형을 코드로 보여주는 영상.
자바스크립트의 Promise 와 class 를 Javascript로 구현하는 영상 (마치 람다를 자바 일반클래스로 구현한게 자바로 자바를 구현헀듯이, JS로 JS를 구현하는 영상)
뭐 이런것들 올릴 생각입니다.
저 초보구요.
병아리에서 닭이 되기 위해 이것저것 고민해보고,
개념들을 저만의 방식대로 이해해보려고 노력하고
그 과정에서 물론 오개념도 생기고, 틀린 가정이나 틀린 신념을 가져버리기도 하지만
그 생각들이 오개념일지라도 분명 도움이 되실겁니다.
제가 짠 재발명 코드가 현실과 다르다?
에... AOP는 당신이 짠 코드대로 행동하지 않습니다. 이렇게 트러블슈팅하시면 ㅈ대요
하시면... 도대체 이 사람이 생각한 AOP는 어디에서 틀린걸까, 실제 AOP는 그럼 이사람의 구현보다 어떤 기능이 더 추가된걸까.
왜 이사람이 생각한 직관적인 구현이 현실에서 문제가 된다는거고, 그것을 현실에선 어떻게 해결했을까
그리고 자신만의 재발명을 해보시면 됩니다.
어디까지나 저는 저만의 트러블슈팅 경험들을 코드로 설명해서 풀어주는 것 뿐.
모두가 트러블슈팅을 하고, 모두가 자신의 문제해결의 원인에 대해 분석하고 나름대로 해결책을 세우고 그 해결책이 먹히는 이유에 대한 가설을 세웁니다.
오개념은 누구나 가질 수 있어요.
트러블슈팅을했고, 이래서 해결된걸꺼야. 아 이건 이렇게 작동하네
하고 넘어가면, 여기서 이미 오개념 발생확률이 굉장히 높아요.
오개념은 성장의 발판입니다.
오개념이 생길수 있으니까 검증된것만 받아들이겠다??? 이건 개발자의 자세는 아니죠.
개발자는 DIY 자세가 있어야한다고 생각합니다.
제 DIY에 오류가 있으면
스스로 DIY하십시오.
그렇다고 저 무책임하게 제 재발명은 틀릴수있습니다 라고 변명하는게 아닙니다.
분명 도움이 될겁니다. 자신있습니다.
제가 말로 철학을 설명하는거는 자신이 없는데 (단어선택이 부적절해서 오개념을 유발한다고 질책받습니다)
근데 코드로 보여주는거는 명확하죠. 사람들을 혼동시킬 일이 없습니다.
틀린거면 틀린거고, 맞는거면 맞는거고
무조건 득이 되는 정보일테니까 함 믿어보십시오.
광고글 아닙니다.
어디까지나 개발자들한테 도움이 되고 싶다는 의미로....
대충, C로 자바구현하기, 자바로 자바구현하기, JS로 JS구현하기, 하스켈로 하스켈 구현하기, C로 하스켈 구현하기, C로 JS 구현하기 뭐 이런것들을 통해서 아랫개념을 통해 윗 개념들을 탄탄하게 습득하고 트러블슈팅하는 그런 채널.... 을 지향해요
일단 만들어놓고 얘기해라
ㄹㅇㅋㅋ
컨셉은 어떤가요?
일단
만들어놓고
얘기해라
님의 프로그래밍에 대한 열정과 의지는 타인보다 월등하다고 생각하나, 위 내용은 이미 전부 이론화가 끝난 내용입니다. 지금 님께서 하시는 건 "다중 패러다임 프로그래밍 언어론"이라고 불리는 건데, 일단 이론부터 먼저 학습하시기 바래요.
https://www.yes24.com/Product/Goods/97408956
한국어 책 중에는 이 책 좋다고 들었습니다. 대학원 과정이고, 그래서 사실 저도 이런 게 존재한다는 사실만 알고 그 내용은 잘 모르는 분야예요.
일단 피드백 주자면, 글이 잘 안읽혀. 보통 이러면 말하는 방식도 쌉노잼이라 그냥 자기 할말만 하고 끝내는 40분짜리 유튜브 영상이 됨. 처음부터 독자를 끌어드릴려면 적당한 유머나 호기심으로 끌어와야되는데 그런게 없잖슴. 나는 이런거 알고 이런거 갈쳐줄수 있다. 이정도일 뿐이란 말이야. 첫줄에서 코드의 재발명을 말하면서 호기심을 유도하려고 했지만. 트러블슈팅에 유용하다고 하면서 넘어가는데 저기서 호기심끌만한 예를 던져주면서 해야지. 아니면 퇴물이처럼 썰을 풀던가.
엔지니어들의 공학서적에서 벗어날수 없는 느낌을 주는데, 유튜브는 그런 곳이 아님. 잘나가는 개발 유튜브들의 말하기와 전개방식을 먼저 배워야할듯.
코딩하는 것과 남을 잘 가르키고 관심을 잡아두는 것은 아주 다른 재능의 영역일꺼임.
조언 다들 감사드립니다 ㅠㅠㅠㅠ. 유튜브로서 성공하려는 욕심 전~~혀 없습니다. 저 유튜버 싫어하고 교육, 강사 이런거 될 생각 전혀 없구요. 어렸을때부터 강사랑 교사는 절대 안된다고 했습니다. 저는 저 써먹으려고 배우는거라, 남 가르치는건 어디까지나 나눔의 영역. 그럼에도 조언이 너무 중요한 이유는, 제가 지식나눔을 할때 전달력이 부족해서 전달이 안되면 너무 아쉬울거같네요. 연구가 끝난 분야. 이런거는 관련없습니다. 저는 새로운거 해서 칭찬받으려고 하는것도 아니고, 뭐 대단한 일했다고 하려는거 아닙니다. 단지, 이건 오픈소스랑 비슷한거에요. 제 개념과 이해도를 공표하고, 나눔하고, 피드백받고. 언어로 언어 구현하는거 완벽할 필요도 없고, 자주 쓰는 기능만 코드로 이해하면 충분합니다.
학계까지 갈 필요 없어요. 다만 학계에 계신분들이 피드백 주신다면 좋겠죠. 물론 코드로 피드백을 줘야 좋구요
ㅇㅇ 알았으니까 일단 하나 만들어보고 얘기하자
그럼 일단 샘플 만들어 보는 게 제일 나을듯
일단 만들어놓고 얘기하자
잘읽었어 나는 기대된다 화이팅!