python
-
클래스 - 클래스 관계python 2021. 3. 11. 23:30
1.클래스 관계 IS-A IS-A는 '~은 ~의 한 종류다'라는 의미다. 예를 들어 '노트북은 컴퓨터의 한 종류다'라는 문장은 관계가 성립하므로 Computer 클래스와 Laptop 클래스는 IS-A 관계다. 영어로는 'A laptop IS-A computer'인데 '한 종류다'라는 의미가 IS-A이므로 IS-A 관계라고 부른다. IS-A 관계를 프로그램에서 표현할 때는 상속(inheritance)을 사용한다. 상속은 객체 지향의 근간이라고 불릴 만큼 중요하며 유용하다. 하지만 IS-A 관계가 아닐 때 상속을 하면 클래스를 설계하는 데 어려움이 따른다. 상속 관계에서 상속을 하는 클래스를 기본(base)클래스, 부모(parent)클래스, 슈퍼(super)클래스라고 하며 상속을 받는 클래스를 파생(deri..
-
객체 지향 프로그래밍python 2021. 3. 5. 16:13
'이 프로그램이 무슨 일을 하는가?'에 대한 답을 알려 준 절차 지향과 달리 객체 지향은 '현실 세계에 존재하는 객체(object)를 어떻게 모델링(modeling)할 것인가?'에 대한 물음에서 시작된다. 캡슐화 주변을 둘러보면 모든 사물이 저마다 특성이 있다는 것을 알 수 있다. 그 특성을 기준으로 객체들을 분류하거나 계층을 만들 수 있다. 필자는 '사람'이라는 계층(클래스)에 속한다. 모든 사람이 같은 특성을 갖고 있지만, 그 특성의 값은 다르다. 예를 들면 키, 나이, 몸무개, 성별, 인종은 모든 사람이 가지는 특성이지만, 그 값은 사람마다 다르다. 특성 값 하나하나가 모여 '나'라는 '객체'를 완성하는 것이다. 또한 사람은 '잠자기', '숨쉬기', '먹기' 같은 행동을 할 수 있다. 이처럼 객체는..
-
파이썬 - 절차지향 프로그래밍python 2021. 3. 4. 17:46
프로그래밍을 배우다 보면 절차 지향 프로그래밍(procedural programming)이나 객체 지향 프로그래밍(object-orient-programming) 혹은 함수형 프로그래밍(functional programming) 같은 다양한 용어를 만난다. 이들 모두 프로그래밍 패러다임의 한 종류다. 패러다임이란 어떤 사물을 바라보는 사고의 틀이나 체계를 말한다. 그렇다면 프로그래밍 패러다임이란 프로그래밍을 어떻게 바라볼 것인지, 어떻게 프로그래밍할 것인지에 대한 인식이나 체계라고 말할 수 있다. 절차 지향 프로그래밍 절차를 의미하는 procedure은 서브 루틴, 메서드, 함수라고도 불린다. 함수라는 용어가 익숙하니 절차 대신 함수라는 단어를 사용한다. 함수는 입력을 받아 일련의 연산 과정을 거쳐 출력..
-
함수python 2021. 3. 3. 21:34
프로그래밍을 하다 보면 똑같은 내용을 반복해서 작성하고 있는 자신을 발견할 때가 종종 있다. 이때가 바로 함수가 필요한 때이다. 즉 반복되는 부분이 있을 경우 "반복적으로 사용되는 가치 있는 부분"을 한 뭉치로 묶어서 "어떤 입력값을 주었을 때 어떤 결괏값을 돌려준다"라는 식의 함수로 작성하는 것이 현명하다. 함수를 사용하는 또 다른 이유는 자신이 만든 프로그램을 함수화하면 프로그램 흐름을 일목요연하게 볼 수 있기 때문이다. 마치 공장에서 원재료가 여러 공정을 거쳐 하나의 상품이 되는 것처럼 프로그램에서도 입력한 값이 여러 함수를 거치면서 원하는 결괏값을 내는 것을 볼 수 있다. 이렇게 되면 프로그램 흐름도 잘 파악할 수 있고 오류가 어디에서 나는지도 바로 알아차릴 수 있다. 함수를 잘 사용하고 함수를 ..