찬란하게

[데이터보안][python] 함수, 객체지향, 클래스 본문

AI (인공지능)/파이썬 프로그래밍

[데이터보안][python] 함수, 객체지향, 클래스

체리핫 2021. 3. 22. 16:59

자료형

함수

함수가 등장하게 된 배경은 다음과 같다.

 

1) 효율적인 프로그래밍 방법에 대한 고민

2) 코드의 재사용성을 높이자

3) 코드를 모듈화하자

4) 함수 또는 객체를 사용하자

 

 


함수 = 코드의 모음

data는 함수 바깥에 존재하면서 코드의 재사용성을 높인다.

 

함수는 코드의 재사용성을 높이면서 개발 비용을 줄일 수 있었지만, 유지보수비가 올라갔다.

 

data의 구조나 자료형이 바뀔 때 유지보수가 빈번하게 일어났다.

 


클래스

객체지향 패러다임

함수가 갖는 유지보수의 어려움을 극복하기 위해 객체지향 패러다임이 등장했다.

 

object = 오브젝트 : 관련된 다수의 기능 + 관련된 다수의 data

 

객체지향 패러다임이 오면서 모듈을 객체 단위로 만들게 되었다.

단일 책임=단일 역할을 갖는 관련된 data와 code로 묶는 방법이다.

 

모듈 단위를 함수로 만든다면 data들이 중앙에 놓이게 된다.

모듈 단위를 객체로 만든다면 data들이 객체 안에 놓이게 된다.

 

 

 

 


객체가 갖는 특징은 캡슐화와 추상화이다.

 

하지만 이런 객체지향도 단점이 존재한다.

메모리 사용이 많고, 무겁다는 점이다.

 


클래스 문법

가장 쉽게 표현하자면, class는 붕어빵 틀이고, object는 붕어빵이다.

 

객체지향 = data+기능

 

같은 클래스에서 나온 인스턴스들은 서로 코드는 공유하지만, 변수는 각자 갖게된다.

각자 갖게 되는 변수를 인스턴스 변수라고 한다.