TIL | Get Ready for Django - 2
객체 지향 프로그래밍
파이썬은 유명한 객체 지향 언어(Object-Oriented Programming, OOP)이다. 객체 지향 언어의 장점 중 하나는 하나의 객체를 만들어서 여러 객체를 생성할 수 있고, 객체를 관리하기 편하다.
프론트엔드 개발자 - 프엔이 와 백엔드 개발자 - 백엔이 두명이 있다. 그들의 일과는 이러하다.
<프엔이와 백엔이의 하루 일과>
- 아침 8시 - 기상
- 8시 ~ 9시 - 아침먹고 씻음
- 9시 ~ 12시 - 업무 보고 일지 작성
- 프엔이 : 구현한 웹 페이지가 제대로 동작하는지 확인하고 브라우저 별 호환성 체크
- 백엔이 : 서버 가동 준비, 서버 상태 확인
- 12시 ~ 13시 - 점심 시간
- 13시 ~ 15시 - 교육
- 15시 ~ 16시 - 회의
- 16시 ~ 18시 - 새로운 프로젝트 수행 및 정리
- 프엔이 : 외국인 클라이언트를 위한 번역 기능 구현
- 백엔이 : 보안 강화를 위한 기능 구현
- 18시 ~ 20시 - 저녁 식사 후 운동
- 20시 ~ 22시 - 집에서 휴식
- 22시 ~ - 취침
(*실제 일과와는 무관하다 못해 전혀 다를 수 있음)
하루 일과를 다 적기에는 너무 길다. 이제 이 둘의 일과를 개발자의 일과로 묶어서 일과를 설명해보자.
<개발자의 일과>
오전 일과
: 기상, 아침 식사, 세면, 업무 일지 작성
오후 일과
: 점심 식사, 교육, 회의, 프로젝트 수행 및 정리, 저녁 식사, 운동, 휴식, 취침
이렇게 공통된 일과를 한번에 정리해 주고 각자의 업무에 대해서 따로 추가해 준다.
<프엔이의 일과>
오전 일과
: 구현한 웹 페이지가 제대로 동작하는지 확인하고 브라우저 별 호환성 체크
오후 일과
: 외국인 클라이언트를 위한 번역 기능 구현
<백엔이의 일과>
오전 일과
: 서버 가동 준비, 서버 상태 확인
오후 일과
: 보안 강화를 위한 기능 구현
위에 하루 일과를 다 설명한 것보다 훨씬 깔끔해졌다. 이것이 객체 지향 프로그래밍의 장점이다. 공통된 작업은 같이 써주고 다른 부분에 대해서는 각 객체별로 따로 추가해주면 된다. 이제 파이썬으로 객체를 생성해보자.
객체 생성하기
카페를 예로 들어보자.
class Cafe(): americano = 4000 caffe_latte = 4500 cappuccino = 4800 espresso = 3800 caffe_mocha = 5300 starbucks = Cafe() pascucci = Cafe() print(starbucks.americano) print(pascucci.caffe_mocha)
class
를 이용하여 class를 만든다. Cafe를 만들어 보았다.
그리고 Cafe에 커피들의 가격을 적는다. 그리고 class밖에 스타벅스와 파스쿠치를 카페로 등록해 준다.
그 다음 스타벅스의 아메리카노를 출력하면 아메리카노 가격인 4000원이 출력되고, 파스쿠치의 카페모카를 출력하면 5300원이 출력된다.
하지만 모든 카페의 커피 가격이 동일하지 않기 때문에 카페별로 가격을 다르게 설정해줘야 할 것이다.
class Cafe():
americano = 4000
caffe_latte = 4500
cappuccino = 4800
espresso = 3800
caffe_mocha = 5300
starbucks = Cafe()
pascucci = Cafe()
starbucks.americano = 4500
starbucks.caffe_latte = 5000
print(starbucks.americano, starbucks.caffe_latte)
# 4500 5000
하지만 이렇게 일일이 지정해 주기에는 깔끔해 보이지 않다. 다음에는 메서드를 이용하여 깔끔하게 객체를 사용하는 방법을 작성하겠다.
Author And Source
이 문제에 관하여(TIL | Get Ready for Django - 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hrpp1300/TIL-Get-Ready-for-Django-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)