top of page
  • 작성자 사진JC.kim

[Python] Program 구조와 변수


Python은 1991년 Gudi Van Rossum에 의해 발표된 인터프리터, 객체지향형 동적 언어이다. python 언어를 설명하는 수식어구가 여럿 붙었는데, 오늘은 Python의 구조와 Program의 구조의 종류에 대해 알아 보도록 하자.

이전의 게시물에서 잠깐 언급했듯이, 프로그래밍 언어를 처리하는 방식에는 컴파일(Compile) 방식과 인터프리터(Interpreter) 방식이 존재한다. 컴파일 방식은 Source Code를 전체적으로 읽어 프로그래밍 언어를 기계어로 번역하여 실행하는 것을 의미한다. 인터프리터방식은 실시간 대화방식으로 Source Code 직접 실행한다. python의 경우 interpreter언어로 동적인 타이핑 언어이며, 미리 compile된 save code를 실행하여 큰 size의 source code를 빠르게 실행 할 수 있다. C언어를 기반으로 구현되었으며 여러가지 프로그래밍 스타일을 다양하게 사용할 수 있다.

그럼 Python에 사용되는 여러가지 프로그래밍 방식에 대해 알아보자. 크게 절차지향형, 객체지향형, 함수형으로 구분할 수 있다.

1. 절차 지향형 프로그래밍

절차 지향형은 말 그대로 처리해야할 문제를 여러가지 절차로 나뉘어 각각의 절차가 독립적으로 시행될 수 있도록 프로그래밍 하는 것이다. 프로그래밍 된 순서에 따라 문제를 처리하며 이 절차 지향 프로그래밍엔 독립된 함수의 개념이 필수적으로 도입된다. python에서 'def'를 이용해 함수를 정의한다.


2. 객체 지향형 프로그래밍

객체 지향형에는 서로 관련있는 데이터와 함수를 하나로 묶어 선언하는 클래스라는 개념이 도입된다. 클래스는 객체를 생성하여 프로그래밍 흐름 내에 특별한 타입을 정해준다. 객체지향 개념은 상속이나 다형성 등의 특별한 개념을 이용해 효율적인 코딩을 유도한다. python에서는 'class'를 이용해 객체를 정의한다.


3. 함수형 프로그래밍

절차 지향형과는 다르게, 기존 함수와 다른 모델링을 이용한 함수의 활용으로 프로그램의 동작의 능률을 높인 프로그래밍을 의미한다. 함수형 코드에서는 class와 def를 이용해 고차원의 함수를 구현하여, python 프로그램의 정교하고 예측하기 쉬운 구조를 완성 시킨다. python에서는 클래스와 함수가 정의된 이후에 시작코드를 작성한다. python은 main함수를 따로 선언하지 않아도 되는 특징을 가지고 있어, 프로그래밍에 필요한 class와 function을 정의한 뒤, 그것을 이용해 시작코드를 작성한다. 시작코드는 들여쓰기가 없는 문장으로 시작된다.

절차지향형과 객체지향형의 예시

python은 객체지향형의 Class와 함수의 개념이 혼합된 프로그래밍 방식을 이용한다. 그럼 python에서 변수는 어떻게 선언되고 처리 되는지 알아보자. 변수는 사용할 데이터를 저장하는 공간을 뜻한다. 그래서 변수는 메모리에 저장된다. C언어에서는 변수를 선언할때, Data Type을 반드시 적어 주어야 했지만, Python에서는 변수형을 따로 적지 않아도 된다.

C : int a = 1 ,b =2 ,c=3

Python : a=1, b=2, c=3

python에서는 내부적으로 스스로 data type을 잡기 때문에, 특별히 자신이 data type을 선언해야 할 때 말고는 따로 선언할 필요가 없다. 또한 인터프리터 방식으로, 변수에 값을 넣는 순간 마다, Data 형식이 바뀌게 된다.

Data Type이 실시간으로 변화한다

또한 변수에는 다른 변수의 값도 저장이 가능하다는 특징이 있다.


변수에 다른 변수가 와도 저장이 가능하다

이런 변수들은 각각의 고유한 ID가 존재한다. 아래의 그림엔 변수에 들어가있는 데이터가 가지는 고유의 주소를 나타내었다.

이처럼 변수는 메모리의 특정 지점에 데이터를 저장하는 역할을 한다. C언어와 비교를 하며, 변수를 다루는 방식이나, 프로그래밍 진행 방식에 대해 알아보았다. 위의 내용은 포항공과대학교 인터넷 강의(MOOC)를 바탕으로 작성하였다. 매 학기마다 인터넷 무료강좌가 열리며, 일정만큼 수료를 하면 수료증도 준다.



AI. 빅데이터, IoT관련 수업을 들을 수 있으므로, 참고해서 강의를 들으면 더 도움이 될 것이다.

조회수 1,204회댓글 0개

최근 게시물

전체 보기

bottom of page