Thumbnail
개발 · 프로그래밍 프로그래밍 언어
타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
(5.0)
8개의 수강평 ∙ 119명의 수강생

14,300원

지식공유자 : 윤상석
총 40개 수업˙총 5시간 43분
평생 무제한 수강
수료증 발급 강의
입문 초급 대상 중급이상
내 목록 추가 78 공유
초급자를 위해 준비한
[프로그래밍 언어] 강의입니다.

Python으로 생산성있는 개발만 아니라 견고하고 안전하게, 그리고 확장성있는 개발을 하세요! 🔥

✍️
이런 걸
배워요!
객체지향 프로그래밍의 원칙
객체지향 프로그래밍에 대한 이해
Python에서 모든 것은 객체이다
Python으로 객체지향 프로그래밍을 하는 방법
typing을 사용하여 안전하고 견고하게 Python 사용하기
딥러닝, 웹 개발에서 객체지향 프로그래밍을 적용하는 법

객체지향 프로그래밍. 배워야 하는 건 알겠는데
왜 배우는진 모르겠다구요?

class 문법을 마주한 나의 상황.png

혹시 Python을 사용하면서 이런 경험 있으셨나요?

💊 나 이런 적 있다 💊

  • 객체지향 프로그래밍의 중요성과 활용도를 먼저 배우지 않고 class 문법부터 배워서 class 문법을 언제 어디서 어떻게 사용해야 할 지 모르겠다.
  • 다른 언어(C++, Java 등)에서 객체지향 프로그래밍을 배워서 활용한 적이 있지만, Python에서는 어떤 방식으로 객체지향 프로그래밍을 구현해야 할 지 모르겠다.
  • 타입 없이 파이썬으로 코딩하는 것이 불편하다.

Python으로 객체지향 프로그래밍, 왜 배워야 할까요

객체지향 프로그래밍은 마치 '방패' 같은 존재입니다.

 Python을 활용해서 객체지향 프로그래밍을 꼭 배워야 하는 이유가 무엇인가요?

하나. 유지보수가 쉽다!

절차 지향 프로그래밍에서는 코드 수정 시 하나하나 찾아 수정해야 하고 수정할 부분을 잊어버리기 쉽지만, 객체 지향 프로그래밍에서는 수정해야 할 부분이 모듈화되어 있으므로 해당 모듈을 찾아서 쉽고 빠르게 수정이 가능합니다. 즉 유지보수가 쉽다는 것이죠. 또한 객체 지향 프로그래밍 원칙에 따라 추상화, 캡슐화가 된 클래스는 다른 개발자가 해당 클래스 내부 로직에 대한 깊은 이해 없이 쉽게 가져와서 사용할 수 있고 상속을 통해 확장하여 사용할 수 있습니다. 

둘. 생산성이 증가한다!

파이썬으로 딥러닝, 머신러닝, 데이터 과학 애플리케이션을 구현하거나 연구할 때, 코드의 의미 분석과 파리미터 및 모델을 바꾸어 가면서 대조 코드를 작성하는 경우가 많습니다. 이때 해당 코드를 절차 지향 프로그래밍으로 작성하면 코드 정리가 안되어 생산성이 떨어집니다. 이러한 코드를 실제 연구 상황과 의미적으로 가깝게 객체 지향 프로그래밍으로 작성하면 가독성 있고 생산성 높은 코드로 작성할 수 있습니다.

셋. 상업용 대형 소프트웨어 개발 가능!

파이썬으로 웹 개발을 할 때 django, flask, fastapi 등 프레임워크를 사용하게 됩니다. 이 경우 1번의 이유로 객체 지향 프로그래밍을 적용하여 견고한 소프트웨어 제품을 만들 수 있습니다. 이러한 이유로 객체 지향 프로그래밍은 안정성을 보장하는 상업용 대형 소프트웨어 제품을 개발할 때 정말 많이 쓰이는 기법입니다. 따라서 파이썬을 통해 하나의 애플리케이션을 만든다면 객체 지향 프로그래밍 개념은 필수죠.

객체지향 프로그래밍을 배워,
견고하고 안전하고, 확장성 있는 개발을!

Python 객체지향 프로그래밍으로 
웹 개발, 데이터 사이언스, 머신러닝, 딥러닝 활용까지!

Microsoft Yammer(야머) 로고

높은 생산성과 안정성을 자랑하는 객체지향 프로그래밍!
파이썬을 통해 완벽하게 학습해 보세요.

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발이나 안정성이 요구되는 개발에 많이 사용되고 있습니다. 뿐만 아니라 개발과 보수가 간편하며, 보다 직관적인 코드 분석을 가능하게 하는 장점이 있습니다.

Python이라는 직관적인 개발 도구와 객체지향 프로그래밍의 조합은 개발의 효율성과 직관성을 모두 불러올 수 있을 것입니다.


이런 분들이 들으면 좋습니다

객체지향 프로그래밍 입문자

OOP의 개념이
무엇인지 알고 싶은 분

타입 사용자

안전하고 견고하게
파이썬을 활용하시고 싶은 분

class 함수 꿈나무

조건문, 함수, 변수는 아는데 class를 사용할 줄 모르는 분

실무자

머신러닝, 웹 개발 등
OOP를 실무에
적용하고 싶은 분

아래의 네 가지 개념을 강의에 모두 녹였습니다 🧨 

하나. 객체지향 프로그래밍에 대한 이해.

객체지향 프로그래밍이란 실제 세상에 가깝게 모델링하여 코드의 재사용성, 유지보수 우수성, 생산성을 증대시키는 코딩 기법입니다. 실제 우수한 소프트웨어 제품들이 객체지향을 지키며 만들어져 왔습니다.

객체지향 프로그래밍이란 무엇인지 이해하고 OOP 원칙에 따라 Robot 설계도를 만들면서 실제로 적용을 어떻게 해야 하는지 알려드립니다. 이 과정으로 안전하고 확장성 있는, 견고한 코드를 작성하게 될 것입니다. 뿐만 아니라 실제 프레임워크나 라이브러리를 사용하여 의미 있는 것을 개발할 때 어떻게 적용이 되는지 보여드립니다.

둘. Python에서 객체지향 프로그래밍을 하는 방법.

단순히 class만 사용하는 것은 객체지향 프로그래밍이 아닙니다. OOP 기본 원칙을 지키며 class를 사용하는 방법을 알려드립니다. 이를 위해 기본적인 데코레이터 사용법을 익히는 것부터 시작합니다. 그리고 OOP 원칙인 캡슐화, 은닉화, 상속, 다형성, 컴포지션 등 하나하나 직접 코드로 같이 치면서 이해하게 됩니다. 마지막으로 컴퓨터 공학의 가장 기본이 되는 자료구조인 Stack과 Queue를 객체지향 프로그래밍을 사용하여 만들어 보면서 실제 적용까지 할 수 있습니다.

셋. 타입 없는 Python에서 typing을 하는 방법.

쉽고 간결한 문법과 타입핑이 없는 파이썬으로 개발할 경우 더 적은 코드로 더 많은 작업을 수행할 수 있으며, 덕분에 엄청난 생산력을 자랑합니다. 하지만 타이핑이 없는 파이썬으로 대규모 소프트웨어를 개발할 때는 코드 복잡도가 올라가면서 유지보수가 어려워지고 협업이 힘들어집니다. 이를 위해 파이썬에서는 Type Hint를 제공하기 시작했습니다. 이미 떠오르고 있는 웹 개발 프레임워크인 FastAPI 또한 Type Hint를 사용하여 개발하도록 권장하고 있습니다. Type Hint를 효과적으로 사용하는 하는 방법에 대해 알아봅니다. 또한 mypy와 pyright 패키지를 통해 타입 힌팅을 넘어 실제 코드 실행 전 타입을 검사하도록 하는 방법을 알려드립니다.

넷. 객체지향 프로그래밍을 사용하여 딥러닝 코드 리팩토링, Django 코드 분석

지식 공유에 그치지 않고 배운 것들이 실제로 어떻게 적용되는 지를 알려드립니다. 먼저 배운 것을 토대로 가장 기초가 되는 자료구조인 Linked List 기반의 Stack을 직접 개발해봅니다. 그라고 실제 학술계에서 사용되는 딥러닝 코드와 웹 개발에서 객체지향 프로그래밍이 어떻게 적용되는 지를 알려드립니다. 

제 강의만의 특별한 점!

  • class 문법만 알려드리지 않습니다.
    class에 대한 문법을 알려주는 것뿐만 아니라 왜 객체지향 프로그래밍을 해야 하는지, 어떻게 해야 하는지를 다양한 사례를 들어서 설명합니다. 실제로 강의에선 class를 반드시 사용해야만 하는 예제를 가지고 문법을 설명하며, 배운 것을 활용하기 위해 기초 자료구조를 객체지향 원칙에 따라 개발해 보고 실사용 사례를 보여드릴 예정입니다.
  • C++, Java 사용자들도 쉽게 들을 수 있는 강의입니다.
    기존에 다른 언어(C++, Java 등)로 객체지향 프로그래밍을 배우신 분들이 python에서 객체지향 프로그래밍 문법을 익힐 때 당황하는 경우가 많습니다. 이유는 C++, Java에 비해 파이썬에서는 개발자 간의 암묵적 약속으로 작성하는 문법이 많기 때문입니다. 파이썬 또한 객체지향 프로그래밍 언어이지만 C++, Java와 다르게 파이썬만의 특징이 있습니다. 이 특징을 설명해드리고 기존의 언어와 차이점을 설명해드립니다. 이로써 C++, Java로 배우신 분들이 Python으로 객체지향 프로그래밍을 할 때 가이드가 되는 강좌입니다.
  • 다양한 Type의 코드 작성법을 공개합니다.
    파이썬은 동적 타입 언어입니다. 덕분에 빠른 개발 속도와 높은 생산성을 자랑하지만, 타이핑을 하지 않을 경우 유지보수가 어려워지고 버그가 생겼을 때 디버깅하기 어렵습니다. 따라서 공식적으로 파이썬에서는 타입 힌트를 도입하였습니다. 기존의 많은 강좌에서는 타입 힌트에 대하여 기본적인 자료(int, float, str 등)에서만 언급하고 넘어가는 경우가 많습니다. 하지만 이것으로는 견고하게 타이핑을 하는 것이 어렵습니다. 이 강좌에서는 기본 자료형 뿐만 아니라 Union Type, Optianal Type, Generic Type 등 다양한 타입을 알려드립니다. 이로써 파이썬으로 코드를 작성할 때 안전하고 견고하게 작성할 수 있습니다. 또한 단순히 타입 힌트에 그치지 않고 Type을 체크하는 방법까지 알려드릴 예정입니다.
지식공유자가 알려주는
강의 수강 꿀팁!
🎓
이런 분들께
추천드려요!
객체지향 프로그래밍이 무엇인지 알고 싶은 분
Python에서 올바르게 객체지향 프로그래밍을 하는 방법
typing을 사용하여 안전하고 견고하게 Python을 사용하고 싶은 분
티입이 없는 Python이 답답하신 분
Python에서 반복문, 조건문, 함수, 변수는 아는데 class를 사용할 줄 모르는 분
머신러닝, 딥러닝, 데이터 과학, 웹 개발에서 객체지향 프로그래밍을 적용하고 싶은 분
📚
선수 지식,
필요한가요?
python 입문 지식 (변수, 조건문, 반복문, 함수)

안녕하세요
윤상석 입니다.
윤상석의 썸네일

안녕하세요. 소통하는 지식공유자 엔지니어 윤상석입니다. 🎩 

강의 요청은 amamov@kakao.com 으로 보내주세요. ✨

커리큘럼 총 40 개 ˙ 5시간 43분의 수업
이 강의는 영상, 수업 노트, 미션이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 🔥 첫 시작 🔥
Python, PIP와 VSCode 설치 | 가상환경 설정 12:38
Linter와 Formatter를 사용하여 생산성을 높이는 개발환경 구축 08:46
Python의 패키지 매니저 PIP 명령어 정리와 사용 07:28
환경 셋팅이 어려우신 분들을 위해, Google Colab에서 쉽게 프로그래밍하기! 04:10
섹션 1. 🤖 파이썬, 객체지향 프로그래밍 🤖
OT 03:28
데코레이터 (decorator) 패턴 기본 미리보기 06:16
객체지향 프로그래밍 (OOP) 4가지 원칙 - 이론 06:43
파이썬 class 문법 정리 13:03
추상화 (abstraction) & 로봇 설계도 제작 20:43
네임스페이스(namespace)의 이해 14:26
@staticmethod 이해 02:43
self와 cls의 이해 11:26
파이썬의 강력한 기능, 매직 메소드 (magic method) 08:08
상속 (inheritance), 첫 번째 이야기 미리보기 04:49
상속 (inheritance), 두 번째 이야기 07:38
상속 (inheritance), 메소드 오버라이딩 (method overriding) 06:15
상속 (inheritance), super( ) = ? 08:42
파이썬에서 모든 것은 객체이다. !! 11:07
캡슐화 (encapsulation) - private vs public 11:59
캡슐화 (encapsulation) - @property | getter와 setter 10:26
다형성 (polymorphism) 03:22
컴포지션 (composition) 05:53
객체지향 프로그래밍 마무리 & 객체의 메모리를 효율적으로 관리하는 방법 09:35
[보충강의] __slots__ 성능 측정 02:28
섹션 2. 타입 파이썬! 파이썬에서 타이핑하는 방법 🪙
Type Hints & Type Checking 미리보기 11:51
mypy, pyright 설치와 사용법 & 주의사항 12:31
Callable Types 07:12
Class Types 03:10
Union Types 03:41
Optional Types 02:25
Class Types 보충 08:39
Final Types 02:25
Type Alias 08:05
Generic Types & The End... 25:45
섹션 3. [보너스 강좌] 💰 배운 것 응용하기 💰
[객체지향 프로그래밍 + 타이핑] Stack 자료구조 구현하기 도전 06:36
[객체지향 프로그래밍 + 타이핑] Stack 자료구조 구현하기 힌트 02:49
[객체지향 프로그래밍 + 타이핑] Stack 자료구조 구현하기 해설 24:11
[객체지향 프로그래밍 + 타이핑] Queue 자료구조 구현 & 객체지향 현실에 적용 07:58
객체지향 프로그래밍 기반 딥러닝 코드 리뷰 05:59
객체지향 프로그래밍 웹 개발 프레임워크 Django 코드 리뷰 08:01
강의 게시일 : 2021년 06월 15일 (마지막 업데이트일 : 2021년 07월 11일)
수강평 총 8개
수강생분들이 직접 작성하신 수강평입니다. 수강평을 작성 시 300잎이 적립됩니다.
5.0
8개의 수강평
5점
4점
3점
2점
1점
VIEW 좋아요 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
뉴린이 thumbnail
예시를 들어 증명해주는 강의라 좋습니다
2021-07-15
지식공유자윤상석
안녕하세요 뉴린이님! 좋은 말씀 감사합니다 :) 화이팅입니다!! 🔥
2021-07-15
홍태경 thumbnail
이번에 다시 파이썬을 공부하면서 강의를 들었는데 oop를 이렇게 자세하고 쉽게 설명 해주는 강의를 못봤습니다 이렇게 저렴한 가격에 훌륭한 강의를 제공해주셔서 감사합니다! 추후에 다른 언어, 또 어떤 것을 해주시면 바로 결제하여 보겠습니다 ! 감사합니다!
2021-07-15
지식공유자윤상석
안녕하세요 홍태경님! 도움이 되서 뿌듯합니다. 응원 감사합니다 🥰
2021-07-15
이주영 thumbnail
정말 쉽게 설명해주시고 메일로 질문하니 바로바로 답변해주시고 감사합니다.
2021-07-25
지식공유자윤상석
안녕하세요. 주영님! 언제든 질문해주세요! 화이팅입니다
2021-07-25
강민수 thumbnail
객체지향관련해서 매우 좋은 강의라고 생각합니다 이거 하나면 객체지향 끝나요
2021-07-26
지식공유자윤상석
안녕하세요 강민수 님! 완강 축하드립니다 :) 더 좋은 강의로 찾아뵙겠습니다. 감사합니다!
2021-07-26
Rhdqngkfkrh thumbnail
파이썬 객체지향과 타입핑에 대해 깔끔하게 정리할 수 있는 강의였습니다. 약간 아쉬운 점이라면 강의 내용보다는 강의마다 소리 크키가 약간 들쭉날쭉하거나 노이즈가 섞여있다는 것? 정도 였습니다. 내용은 깔쌈합니다~ 추천합니다!!
2021-07-13
지식공유자윤상석
안녕하세요. Rhdqngkfkrh님 ! 완강 축하드립니다! 뿌듯하네요 :) 안그래도 사운드 이슈 때문에 장비를 업그레이드해서 부분적으로 재 촬영중입니다. 😀 감사합니다!
2021-07-13

14,300원

내 목록 추가 78 공유
지식공유자 : 윤상석
총 40개 수업˙총 5시간 43분
평생 무제한 수강
수료증 발급 강의
입문 초급 대상 중급이상
수강 전 궁금한 점이 있나요?
문의하기
문의
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의를
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스