객체 지향 프로그래밍(OOP)

OOP(Object Oriented Programming)은 왜 필요하고 어떻게 동작하는가?

  • 절차지향프로그래밍
    프로그래밍의 초기 패러다임
    한 절차가 다른 절차로 이어지고 컴퓨터는 대체로 위에서 아래로 일을 처리하며 필요할 때는 함수 안으로 들어감
    기억하고 관리해야 할 관계의 수가 증가하면서 프로그래밍이 복잡해짐

  • 객체지향프로그래밍
    크고 복잡한 과업을 별개의 모듈로 나눠서 작업
    모듈의 상당수가 재사용이 가능
    관계들을 간소화하고 더 크고 복잡한 프로젝트로 확장 가능


OOP 사용법 : 클래스와 객체

ex) 모델을 만들 때 생각해야 할 것

  • 가진 것 = 속성(attributes) : 특정 객체에 소속된 변수
  • 하는 것 = 메소드(methods): 특정 객체의 함수
    ⇨ 객체를 구성하는 가장 중요한 요소들
    🤖 근본적으로 객체는 같은 것 내에서 어떤 데이터(속성)와 어떤 기능(메소드)을 완전히 결합하는 방식
    🤖 같은 유형에서도 다양한 객체를 만들 수 있음 ⇨ Class
    🤖 Class로부터 만들어진 개별 객체들을 Object라고 부름


객체를 만들고 속성과 메소드에 접근하기

car = CarBlueprint()  
  • car : Object
    CarBlueprint를 토대로 만들어짐

-CarBlueprint : 클래스
보통 각 단어의 첫 글자는 대문자로 씀 ⇨ 파스칼 표기법

  • 클래스로부터 객체를 만들려면 이름을 붙이고 = 클래스 이름() 괄호를 붙임.
    괄호가 함수를 활성화 하는 것처럼 클래스로부터 객체의 구조물을 활성화 시킴

1


Object Attributes

2


Object Methods

객체가 할 수 있는 것들 (함수) ⇨ 객체와 관련될 때 메소드라고 불림
객체에 먼저 접근한 다음 점 표기법을 이용해 메소드 호출

ex)
car.stop()


🐤정리
모듈 > 클래스 > 속성, 메소드
모듈 import
객체에 클래스 변수 선언하듯 입히고
필요한 속성이나 메소드 점 표기법으로 호출


Python Package

코드 패키지를 사용해 다른 개발자가 작성한 코드를 사용하기
모듈
프로젝트에서 만든 각 파일 그 자체가 본질적으로 모듈임
패키지
다른 사람이 쓴 코드 묶음. 모듈과 다름
어떤 목표나 목적을 달성하기 위해 아주 많은 파일이 모여 한 패키지를 이룸
🥳 다른 개발자가 만든 패키지를 찾아볼 수 있는 사이트


패키지 설치방법

  1. PyCharm - Settings
  2. Project 선택
  3. Python Interpreter
  4. ’+’ 버튼
  5. 검색 후 install

3

소스코드가 보고 싶을 때

4


객체 속성 변경 및 메소드 호출 연습

객체 속성 변경

5
메소드 호출

6



OOP로 커피 자판기 만들기

CoffeeMaker 클래스

7

menu모듈의 MenuItem 클래스

8

menu모듈의 Menu 클래스

9

MoneyMachine 클래스

10

11