Thumbnail
BEST
개발 · 프로그래밍 프로그래밍 언어

타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍 대시보드

(4.8)
48개의 수강평 ∙  909명의 수강생

46,200원

지식공유자: 윤상석
총 40개 수업 (5시간 43분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[프로그래밍 언어, 개발 · 프로그래밍] 강의입니다.

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

✍️
이런 걸
배워요!
객체지향 프로그래밍의 원칙
객체지향 프로그래밍에 대한 이해
Python에서 모든 것은 객체이다
Python으로 객체지향 프로그래밍을 하는 방법
typing을 사용하여 안전하고 견고하게 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 입문 지식 (변수, 조건문, 반복문, 함수)

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

안녕하세요.  IT 지식 크리에이터, 윤상석입니다. 🎩 
더 유익하고 본질적인 지식 콘텐츠로 많은 가치를 드릴 수 있도록 노력하겠습니다.

- (주)하이퍼이지 대표이사
- (사)한국정보통신네트워크협회 AI분과기술위원
- (주)블루밴드 기술이사
- 前 (주)마로마브 웹 개발자
- 前 소프트웨어 엔지니어 기술 용역 (카카오, 포스코DX, )
- 前 소프트웨어 공학 온/오프라인 교육 다수 (스타트업, GS리테일, 삼성 등)

문의사항, 추가질문, 집필, 강의제안 ==> EndUpFree@gmail.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일)
수강평 총 48개
수강생분들이 직접 작성하신 수강평입니다.
4.8
48개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
namhw417 thumbnail
5
좋은 강의 감사합니다.
2023-02-19
정해온 thumbnail
5
Python 객체 지향에 대한 기초 부분들을 재 정립하기 좋았고, 타입 힌팅 부분에서도 언제 typing 모듈에 있는 요소들을 사용하면 좋은 지에 대한 설명을 잘해주셔서 무사히 끝까지 학습 완료 할 수 있었던 것 같습니다. 현재 기준으로 파이썬이 3.11 version 까지 나온 상황인데, 강의와 공식문서를 병행하면서 공부하다보니, 지금은 굳이 typing 모듈을 임포트하지 않고 내장 객체를 이용하여 list[str], tuple[int] 처럼 표현 한다던가, Union, Optional 타입 같은 경우에는 int|None 처럼 "|"을 이용해 처리하는 방법이 추가된 것 같더라구요. 시간 되시면 이런 부분에 대해서도 부가적으로 알려주시면 좋을 듯 합니다. 좋은 강의 감사합니다. :)
2023-06-28
돼지토끼 thumbnail
5
이미 파이썬으로 개발을 하고 있는 사람이지만 미쳐 모르고 사용했던 부분들을 좀 더 자세히 알 수 있었던거 같습니다. 기본기가 다져진거 같아서 뿌듯하네요. 감사합니다.
2023-07-11
­Will Bae thumbnail
5
이전까지 대충 알고 있던 부분을 잘 정리하게 되어서 좋습니다. 파이썬에서 타이핑하는 방법도 알게되서 좋네요. 마지막에 보너스 강좌에서 직접 구현해보니 더 좋았던거 같아요. 보너스 강좌 좀 더 풍성하게 하면 3배 비싸도 가성비 강의였을거 같아요.
2021-09-25
지식공유자 윤상석
안녕하세요! Will Bae님 :) 리뉴얼시에 피드백 반영하겠습니다! 감사합니다!
2021-10-05
정호연 thumbnail
5
abc 로 파이썬에서 인터페이스 다루는것도 다루었으면 더 좋았을 것 같아요.
2022-02-26