파이썬 - OOP Part 6. 매직 메소드 (Magic Method)

오늘은 우리가 항상 사용하지만 정확한 개념을 가지고 있지 않으며 심지어는 자신이 사용을 하고 있다는 자체도 모르는 매직 메소드에 대해서 알아 보겠습니다. 매직 메소드에 대한 정의는 다음과 같습니다. 

매직 메소드란?

  • 클래스안에 정의할 수 있는 스페셜 메소드이며 클래스를 int, str, list등의 파이썬의 빌트인 타입(built-in type)과 같은 작동을 하게 해준다.
  • +, -, >, < 등의 오퍼레이터에 대해서 각각의 데이터 ...
Read more

파이썬 - OOP Part 5. 상속과 서브 클래스(Inheritance and Subclass)

이번 강좌에서는 클래스의 상속과 서브 클래스에 대해서 알아보겠습니다.

이전 강좌에서 설명을 드렸듯이 클래스를 사용하는 이유는 네임스페이스를 이용하여 효율적으로 데이터를 관리하고, 같은 코드의 반복을 없애고자 하는 DRY(Don't Repeat Yourself) 개념이 담겨 있습니다. 상속 또한 한 번 정의한 데이터 타입을 필요에 따라서 수정을 하고 다시 재활용해서 반복되는 코드를 줄이고자 하는 목적을 가지고 있습니다. 예제를 통하여 게임 케릭터의 클래스를 만들면서 설명을 하겠습니다. 만...

Read more

파이썬 - OOP Part 4. 클래스 메소드와 스태틱 메소드 (Class Method and Static Method)

이번 강좌에서는 클래스 메소드와 스택틱 메소드에 대해서 알아 보도록 하겠습니다. 그리고 이번 강좌부터 파이썬 3.5를 사용하겠습니다.

이전 강좌에서 배운 인스턴스 메소드는 'self'인 인스턴스를 인자로 받고 인스턴스 변수와 같이 하나의 인스턴스에만 한정된 데이터를 생성, 변경, 참조 한다면, 클래스 메소드는 'cls'인 클래스를 인자로 받고 모든 인스턴스가 공유하는 클래스 변수와 같은 데이터를 생성, 변경 또는 참조하기 위한 메소드라고 생각하시면 됩니다. 예제를 보면서 클래스 메소...

Read more

나의 첫 Django 앱 만들기 - part 4 - 2

제너릭 뷰 사용하기: Less code is better

지난 강좌인 나의 첫 Django 앱 만들기 - part 3 - 1에서 만든 detail()results() 뷰는 아주 심플하고 두 뷰는 비슷한 구조를 가졌습니다. Question 인스턴스의 리스트를 보여주는 index() 뷰도 비슷하게 생겼습니다.

이 뷰들은 URL안의 파라메터를 보고 데이터베이스에서 필요한 데이터를 가져와 템플릿을 로딩하여 보여주는 웹 개발에서 일반적으로 사용되는 기본적인 형식입니다. 장고는 개발자들을 위해 이러한 일반적인 ...

Read more

파이썬 - OOP Part 3. 클래스 변수(Class Variable)

지난 강좌에서는 오브젝트의 개념을 배웠습니다. 그리고 클래스 정의, 인스턴스 생성, self를 이용한 인스턴스 메소드와 인스턴스 변수 사용 등을 해봤습니다. 이번 강좌에서는 인스턴스 변수와는 조금 다른 개념인 클래스 변수에 대해서 알아보겠습니다.

클래스 변수란?

인스턴스 변수가 사람의 이름과 같이 각각의 인스턴스마다 가지고 있는 고유한 데이터라면, 클래스 변수는 한 단체의 단체명과 같이 같은 클래스로 만들어진 모든 인스턴스가 공유하는 데이터입니다.

어떤 회사가 직원들의 연봉을 매년 1회 인상해 주는데...

Read more

파이썬 - OOP Part 2. 클래스와 인스턴스(Class and Instance)

이번 강좌에서는 클래스와 인스턴스에 대해서 배우도록 하겠습니다.

"파이썬은 객체 지향적 프로그래밍 언어입니다. 파이썬의 모든 것은 오브젝트입니다. 문자열, 리스트, 함수, 심지어 모듈 또한 오브젝트입니다..."라고 하는 얘기는 귀가 아프도록 들으셨을 겁니다. 그런데 도데체 오브젝트가 무엇일까요? 오브젝트란 속성과 같은 여러가지의 데이터와 함수(오브젝트 안에서는 메소드라고 부릅니다.)를 포함한 하나의 데이터 구조를 말합니다. 또한 파이썬에서 이 오브젝트들은 변수에 할당될 수도 있고, 함수의 인자로 전달될 ...

Read more

파이썬 - OOP Part 1. 객체 지향 프로그래밍(OOP)은 무엇인가? 왜 사용하는가?

이번 강좌에서는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)에 대해서 알아 보겠습니다.

OOP는 내용이 조금 많기 때문에 다음과 같이 본 강좌를 포함하여 7개의 강좌로 나눠서 진행하도록 하겠습니다.

1. 객체 지향 프로그래밍(OOP)은 무엇인가? 왜 사용하는가?
2. 클래스와 인스턴스(Class and Instance)
3. 클래스 변수(Class Variable)
4. 클래스 메소드와 스태틱 메소드(Class Method and Static Method)
5. 상속과...

Read more

파이썬 - 제너레이터 (Generator)

지난 파이썬 강좌인 파이썬 - 데코레이터 (Decorator)에 이어서 이번 강좌에서는 파이썬의 제너레이터에 대해서 알아보고자 합니다.

프로그램을 조금이라도 접해본 사람이라면 파이썬이 배우기 쉬운 프로그래밍 언어라는 정도는 알고 있을 겁니다. 하지만 쉬운 파이썬에도 대부분의 파이썬 초보자들이 이해하기 어렵다고 공통적으로 말하는 몇가지가 있습니다. 그 중의 하나가  제너레이터와 yield에 대한 개념입니다.

제너레이터의 사전적 의미는 "발전기"...

Read more

나의 첫 Django 앱 만들기 - part 4 - 1

이 강좌는 지난 강좌인 나의 첫 Django 앱 만들기 - part 3 - 2에 이어지는 강좌입니다. 이번 강좌에서는 간단한 유저폼을 만들어 보고, 지금까지 만든 코드를 조금 더 단순화해 보겠습니다.

간단한 유저폼 만들기

지난 강좌에서 만든 디데일(“polls/detail.html”)을 업데이트하여 템플릿에 HTML <form> 태그를 추가하겠습니다.

polls/templates/polls/detail.html
<h...
Read more

파이썬 - 데코레이터 (Decorator)

이번 강좌에서는 전 강좌에서 예고한 대로 데코레이터(Decorator)에 대해서 알아 보겠습니다. 이 강좌를 이해하시기 위해서는 퍼스트 클래스 함수와 클로저를 이해하고 계셔야 합니다. 만약 이해하고 계시지 않으시다면 밑의 강좌를 참고하여 주십시오.

파이썬 - 퍼스트클래스 함수 (First Class Function)
파이썬 - 클로저 (Closure)

데코레이터란 무엇일까요? 사전적 의미로는 "장식가" 또는 "인테리어 디자이너" 등의 의미를 가지고 있습니다. 이름 그대로...

Read more