BEST
개발 · 프로그래밍

/

프로그래밍 언어

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

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

(4.8) 수강평 54개

수강생 961명

Thumbnail

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

이런 걸
배워요!

  • 객체지향 프로그래밍의 원칙

  • 객체지향 프로그래밍에 대한 이해

  • 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분)

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!