1-1. 오리엔테이션

uoayop·2021년 3월 14일
0

Leaf와 Python

목록 보기
2/21
post-thumbnail

강의의 방향

지식 공유를 해주시는 '좋은 사람' 강사님은 '모두를 위한 파이썬 : 필수 문법 배우기' 이외에도 여러 차례 강의를 진행하셨다.

🔧 Go 언어 기초 입문 과정, 파이썬 기초 입문 / 중급 과정, 웹 크롤링 등

강의를 하시면서 받은 QnA와 시니어 개발자로 활동 하시면서 느끼신 점들을 토대로 ''너무 어렵지 않으면서도 언어의 내부와 동작 원리를 알 수 있는 강의''를 제작하고 싶으셨다고 한다.

이런 배움들은 취업이나 창업 활동을 할 때도, 자신만의 편의성을 위해 만든 유틸을 배포하는 과정에도 큰 도움이 될 것이다.

그래서 본 강의는 수강하기 위해선, 어느정도 기초 문법은 알아야한다.
이 강의는 파이썬을 가지고 [데이터 분석이나 유틸 제작 등] 심도 있는 개발을 할 수 있게끔 도와줄 것이다.


파이썬은 쉽지만 어렵다

"이게 무슨 열린 교회 닫힌 소리야" 하시겠지만 😅

파이썬은 쉽다.

입력한 값 ( 노력, 시간 ) 에 비해 만족스러운 결과가 쉽게 나오는 편이기에, 파이썬은 쉬운 언어가 맞다.

  • 파이썬은 많은 오픈 소스를 지원하고 있고, 라이브러리를 사용하는데도 크게 제약이 없다.
  • 패키지를 기반으로 유튜브를 다운 받을 수도 있고, 크롤링, 분석한 데이터를 시각화하는 것도 쉽다.
  • 이외에도 웹 분야에는 Flask, Django 등, 필드마다 없는 프레임 워크가 없다.

파이썬은 어렵다.

그렇지만 입력부터 결과까지 처리되는 과정 ( 블랙 박스 ) 를 모른다면 우리는 low level 에서의 코딩을 할 수 없다.

파이썬으로 개발을 할 때 여러모로 편리한 점은 사실이지만, 파이썬 언어를 구조적으로 깊이 들어갈 수록(: low level로 들어갈 수록 ) 어려워진다는 점을 말씀하시는 것 같다.

하지만 그렇지 않은 언어가 있나.. ? 싶다.
모든 개발 언어들이 깊숙이 들어갈 수록 어려워지니까,, :)

⭐️ 이런 처리 과정을 알아야만 보안성, 유지보수성을 지킬 수 있다. 특정 언어의 low level 정도의 깊은 지식을 가지고 있는 것은 개발자로서 큰 메리트가 되어줄 것이다.

그렇지만 문법적인 부분에서 파이썬이 개발 초보들에게 접근하기 쉬운 건 반박할 수가 없는 것 같다.


커리큘럼

강사님께서는 기초 문법을 배우는 강의는 아니지만, 기초 문법만 알아도 들을 수 있는 강의라고 하신다.

환경 설정 하는 법은 필요한 사람만 보면 될 것 같고, 섹션 1과 섹션 2에서는 문법에 대해 배우게 된다.

section 1

섹션 1에서는 코딩 테스트를 준비하면서 많이 접했던 함수들이 눈에 띈다.

변수의 유효범위와 Lambda, Reduce, Map,Filter 등 알면 유용한 함수들이다. shallow copy와 deep copy도 한번정도 사용하고 스쳐지나갔던 기억이 난다.

context manager은 뭘 배우는 강의일까 궁금하다.

section 2

섹션 2에서도 문법적인 부분이 많다. 섹션 1에서 배웠던 context manager의 연장선을 더 배우게 되는 듯 하다.

property와 method Overriding 또한 한번 배우면 코딩을 하는데에 큰 도움이 될 것이다!

개인적으로 overriding은 배워도 배워도 헷갈리는 듯하다.. 🙂💧

사실 섹션 1과 섹션 2는 섹션 3로 가기위한 발돋움판이라고 생각하면 된다.

Section 3

전에 공부를 하다가 메타 클래스에 대해서 잠깐 접하고 공부한 적이 있다.

모든 것이 객체로 이루어진 파이썬에서 'meta class' 는 클래스(객체) 를 만드는 무언가라고 배웠다.

클래스의 클래스라고 읽었던 기억이 있는데 한번 더 배우고 정리할 필요가 있어보인다 :)

섹션 4 에서는 직접 나만의 패키지를 간략하게 만들어보게 된다.
그리고 직접 PyPI와 GitHub 에 배포까지 하게 된다.

소소하지만 작고 귀여운 나만의 패키지.. 🧚🏻‍♀️✨

사실 이 섹션때문에 강의를 수강했다고 봐도 무방하다.

한번쯤은 너무나도 해보고 싶었던 오픈소스 패키지 배포..! 놓칠 수 없는 기회였다. 물론 의미있고 유용한 패키지 만들면 너무나도 좋겠지만,, 해보는 것만으로도 나에겐 의미가 있다~!


메타 프로그래밍의 중요성

도대체 왜 메타 프로그래밍을 배워야할까?
간단 맛보기로 메타클래스에 대해서 알아보자.

메타클래스는 클래스의 동작 ( 정의, 인스턴스화, 엑세스 등 ) 에 대해 깊이 수정을 할 수 있는 클래스다.

메타클래스에 대해 공부를 해야 프로그램이 어떤 동작 원리로 돌아가는지 이해를 할 수 있고, 우리의 입맛대로 메타 클래스를 수정해서 동작 원리에 개입을 할 수 있게 된다.

따라서 메타 프로그래밍은 코드를 조작하는 코드의 구성이라고 생각하면 된다.

내가 의도한 대로 결과값을 허용할 수 있게 해주는 것이다.

모든 언어에는 메타 프로그래밍이 있으므로, 한번 배워서 다양한 언어에 적용을 해보자!


coding confidence / competence

강사님이 보여주신 그래프인데 너무 공감되고 재미있어서 가져왔다.

코딩을 처음 시작할 땐 너무 재미있고, 자신감이 넘친다. 뭐든지 만들 수 있을 것 같다.

그렇지만 점점 눈물이 차오르고, 노트북과 대화를 시도하며.. 구글링 실력만 늘어가는 나를 발견한다.

내가 여전히 모르는 내용은 무궁무진하다는 사실만 알게 된다. 그래프 상으로 암흑의 시기를 지나고 존버 하다보면 자신감과 실력이 급상승하는 것을 볼 수 있다.

모든 사람의 실력이 이 그래프 같지만은 않을 것이다. 절망 하는 시기가 없을 수도 있고, 비교적 더 짧은 사람도 있을 것이다.

나는 웹 개발을 하면서 처음으로 개발이 재미있다고 느꼈다.

JS로 간단한 인터랙션도 구현 할 줄 모르는 상태였다.

단순히 HTML과 CSS만 이용해서 새하얗던 화면을 내 마음대로 채워나가고 작업이 그림을 그리는 듯한 느낌이 들었다.

그~렇게 재미있던 웹 공부가 자꾸만 의무적으로 하는 느낌이 들기 시작했고, 개발을 할 때마다 자꾸만 기가 죽는다. 아무래도 난 절망존에 들어온 듯하다.

그래도 이 시기를 .. 버텨보려고 한다. 그래프의 정상까지는 바라지도 않는다!
받은 도움을 다시 나눌 수 있는 그런 개발자가 되고 싶다. 사실 이게 제일 어려운 것 같다 😄

조금,,.. 오글거리지만 ,, 기죽지말고 화이팅해보자!


다음 포스트부터는 엄격근엄진지하게 글 써보기~

열정!열정!열정!


[출처] 인프런 - 모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)

profile
slow and steady wins the race 🐢

0개의 댓글