python 소개
Language/Python

python 소개

728x90
반응형

최근에 IT 산업이 발달하면서 기술도 비약적으로 발달하게 되었고 그로 인해 다양한 프로그램 언어들이 발달하게 되었는데, 그 중심에는 간결한 언어와 문법으로 프로그래밍 입문자들도 쉽게 접할 수 있는 프로그래밍 언어가 바로 파이썬이다. 또한, 파이썬은 다양한 업계에서 선호하는 언어이기도 하다.

 

해외 뿐만 아니라 국내에서도 소프트웨어 교육이 의무화가 되면서 다양한 연령층이 코딩 공부를 시작하고 있으며, 인기 있는 프로그램 언어로 자리를 잡아가고 있는 파이썬에 대해 알아보자.

 

파이썬은

컴퓨터 언어의 일종으로 간결하고 생산성 높은 프로그래밍 언어이다.

, 파이썬은 교육을 위해 개발된 프로그래밍 언어로서, 간결한 문법 덕분에 프로그래밍 입문자들이 쉽게 배울 수 있다는 특징을 가진다.

 

 

2016년도에 최고 인기 코딩 언어에 대한 분류를 보면 알 수 있듯이 교육용으로 개발된 프로그래밍 언어를 실무에서 가장 많이 선호하는 이유는 무엇일까?

 

파이썬(Python)

1990년에 개발된 인터프리터 1 언어이며, 파이썬의 사전적인 의미는 고대 신화에 나오는 파르나소스 산의 동굴에 살던 큰 뱀을 뜻하며, 아폴로 신이 델파이에서 파이썬을 퇴치했다는 이야기가 전해지고 있고 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려져 있는 이유가 여기에 있고 아나콘다(Anaconda)라는 다양한 자료 분석 라이브러리들을 제공하고 있다.

 

1. 플랫폼이 독립적이기 때문에 다양한 플랫폼에서 사용 가능하고

2. userCompile을 하지 않아도 작성한 프로그램을 바로 실행할 수 있으며,

3. 한 줄 단위로 실행되기 때문에 개발자는 쉽게 결과를 확인하며 오류 수정을 쉽게 할 수 있다.

 

위와 같은 장점으로 인해 실무에서 파이썬을 다룰 줄 아는 개발자를 선호하고 있다.

 

요즘 미디어를 통해 4차산업혁명, 빅데이터 또는 AI 인공지능에 대한 미래 유망 직종이 새롭게 떠오르고 있는데, 이와 같은 대부분의 IT 분야에서는 코딩이 필수적이기 때문에 코딩 언어를 필수적으로 알아야 하므로 수많은 프로그램 언어 중 파이썬이 기초가 되기 때문에 그 수요가 폭발적으로 늘어가고 있는 현실이다.

 

4차 산업혁명이란, 인공지능(AI), 사물인터넷(IoT), 빅 데이터(Big Data), 모바일(Mobile) 등 첨단 정보통신 기술이 경제 및 사회 전반에 융합되어 혁신적인 변화가 나타나는 차세대 산업혁명을 말한다.

 

Web 개발, Mobile, Server 구축 등의 프로그래머가 되기 위해서는 기본적으로 C Language, 자료구조, JAVA, TCP/IP 소켓 프로그래밍, 파이썬 언어를 다룰 줄 알아야 하는데, 전세계적으로 JAVA를 가장 많이 사용하지만, 대기업에서는 파이썬을 주로 사용하고 있으며, C Language 보다 쉽고 모든 업무에서 호환이 되기 때문에 가장 트렌디한 언어로 급부상하고 있는 것이다.

 

 

 

파이썬의 특징

1. 파이썬은 인간다운 언어이다.

, 파이썬은 사람이 생각하는 방식을 그대로 표현할 수 있는 언어로 프로그래머는 굳이 컴퓨터의 사고 체계에 맞추어서 프로그래밍을 하려고 애쓸 필요가 없다는 것이다.

if 4 in [1,2,3,4]: print("2가 있다.") 라는 코드가 있을 경우

만약 1,2,3,4 중에 2가 있으면 "2가 있다."라는 메시지를 출력하게 된다.

 

2. 파이썬은 문법이 쉬워 빠르게 배울 수 있다.

어려운 문법과 수많은 규칙에 둘러싸인 언어가 아니기 때문에 파이썬을 공부한 지 단 하루

만에 자신이 원하는 프로그램을 작성할 수 있다고 하며, 프로그래밍 경험이 조금이라도 있

다면 파이썬의 자료형, 함수, 클래스 만드는 법, 라이브러리 및 내장 함수 사용 방법 등을

익히는데 1주일이면 충분하다고 할 수 있다.

 

3. 파이썬은 무료이지만 강력하다.

오픈 소스이며, 파이썬과 C는 찰떡궁합이란 말이 있다. , 프로그램의 전반적인 뼈대는

파이썬으로 만들고, 빠른 실행 속도를 필요로 하는 부분은 C로 만들어서 파이썬 프로그램

안에 포함시키는 것이다.

 

4. 파이썬은 간결하다.

파이썬 개발자가 의도적으로 간결하게 만들었다.

그러나, 파이썬 프로그램은 줄을 맞추지 않으면 실행이 되지 않는다.

코드를 예쁘게 작성하려고 줄을 맞추는 것이 아니라 실행이 되게 하려면 꼭 줄을 맞추어야

하는 것이다. 이렇듯 줄을 맞추어 코드를 작성하는 이유는 가독성 때문이다.

 

# simple.py

languages = ['python', 'perl', 'c', 'java']

 

for lang in languages:

if lang in ['python', 'perl']:

print("%6s need interpreter" % lang)

elseif lang in ['c', 'java']:

print("%6s need compiler" % lang)

 

위 코드는 프로그래밍 언어를 판별하여 그에 맞는 문장을 출력하는 파이썬 프로그램 예제

이다. 다른 언어들에서 늘 보게 되는 단락을 구분하는 괄호({ }) 문자가 보이지 않는 것

을 확인할 수 있다.

 

결론적으로 코드의 줄을 맞추는 것을 "들여쓰기" 라고 하는데, 파이썬에서 들여쓰기를

하지 않으면 프로그램이 실행되지 않는다는 것을 반드시 명심하기 바란다.

 

5. 파이썬은 프로그래밍을 즐기게 해준다.

 

6. 파이썬은 개발 속도가 빠르다.

 

 

스크립트 언어로써의 파이썬의 특징

파이썬은 스크립트 언어이다. C JAVA처럼 실행을 위해서 프로그램을 모두 모아서 컴파일을 하고 실행하는 과정을 거치지 않고 프로그램을 실행시킬 수 있다. 이런 언어의 특징은 코드의 부분 부분을 쉽게 테스트하고 적용할 수 있다. 이런 언어적인 특징 때문에 빠르게 만들고 실행해야 하는 웹 프로그램을 작성할 때 유리하다.

 

 

파이썬으로 할 수 있는 일과 없는 일은

어떤 언어든지 강점과 약점이 존재하기 때문에 파이썬으로 할 수 있는 일과 할 수 없는 일이 있다.

 

 

 

먼저 파이썬으로 할 수 있는 일은 대표적으로

1. 시스템 유틸리티 제작

파이썬은 운영체제(윈도우, 리눅스 등)의 시스템 명령어들을 이용할 수 있는 각종 도구를

갖추고 있기 때문에 이를 바탕으로 갖가지 시스템 유틸리티1를 만드는 데 유리하다.

 

2. GUI 프로그래밍

GUI(Graphic User Interface) 프로그래밍이란, 윈도우 창처럼 화면을 보며 마우스나 키보

드로 조작할 수 있는 프로그램을 만드는 것이다.

파이썬으로 GUI 프로그램을 만드는 것은 다른 언어를 이용해 만드는 것보다 훨씬 쉽다.

예로 파이썬 프로그램을 설치할 때 함께 설치되는 기본 모듈인 Tkinter(티케이인터)

이용해 만드는 GUI 프로그램을 들 수 있다.

실제로 Tkinter를 이용한 파이썬 GUI 프로그램의 소스 코드는 매우 간단하다.

Tkinter를 이용하면 단 5줄의 소스 코드만으로도 윈도우 창을 띄울 수 있다.

 

3. C/C++와의 결합

다른 언어들과 잘 어울려 다른 언어와 결합해서 사용할 수 있다.

 

4. Web 프로그래밍

일반적으로 익스플로러나 크롬, 파이어폭스와 같은 브라우저를 이용해 인터넷을 사용하는

, 누구나 한 번쯤 웹 서핑을 하면서 게시판이나 방명록에 글을 남겨 본 경험이 있을 텐

, 그러한 게시판이나 방명록을 바로 웹 프로그램이라고 한다. 파이썬은 웹 프로그램을

만들기에 매우 적합한 도구이다.

 

5. 수치 연산 프로그래밍

실제 파이썬은 수치 연산 프로그래밍에 적합한 언어는 아니다.

수치가 복잡하고 연산이 많다면 C 언어로 하는 것이 더 빠르기 때문이다. 하지만 파이썬에

Numeric Python이라는 수치 연산 모듈이 제공되는데, 이 모듈은 C로 작성되었기 때문에

파이썬에서도 수치 연산을 빠르게 할 수 있다.

 

6. 데이터베이스 프로그래밍

파이썬은 사이베이스(Sybase), Infomix, Oracle, MySQL, PostgreSQL 등의 데이터베이스에

접근할 수 있게 해주는 도구들을 제공하며, 파이썬에서 제공하는 피클(pickle)이라는 모듈

은 파이썬에서 사용되는 자료들을 변형 없이 그대로 파일에 저장하고 불러오는 일들을 담

당한다.

 

7. 데이터 분석과 사물 인터넷

파이썬으로 만들어진 판다스(Pandas)라는 모듈을 이용하면 데이터 분석을 더 쉽고 효과적

으로 할 수 있다.

데이터 분석을 할 때 아직까지는 데이터 분석에 특화된 "R"이라는 언어를 많이 사용하고

있지만, 판다스가 등장한 이후로 파이썬을 이용하는 경우가 점점 증가하고 있다.

 

사물 인터넷 분야에서도 파이썬은 활용도가 높은데, 예로 라즈베리 파이(Raspberry Pi)

리눅스 기반의 아주 작은 컴퓨터이다. 라즈베리파이를 이용하면 홈 시어터나 아주 작은

게임기 등 여러 가지 재미있는 것들을 만들 수 있는데 파이썬은 이 라즈베리 파이를 제어

하는 도구로 사용된다.

예를 들어 라즈베리 파이에 연결된 모터를 작동시키거나 램프에 불이 들어오게 하는 일들

을 파이썬으로 할 수 있다.

 

그렇다면 파이썬으로 할 수 없는 일은 우엇일까?

 

1. 시스템과 밀접한 프로그래밍 영역

파이썬으로 DOS 나 리눅스 같은 운영체제, 엄청난 횟수의 반복과 연산을 필요로 하는 프로

그램 또는 데이터 압축 알고리즘 개발 프로그램 등을 만드는 것은 어렵다.

, 대단히 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 어울리

지 않는다.

 

2. Mobile 프로그래밍

파이썬은 구글이 가장 많이 애용하는 언어이지만 파이썬으로 안드로이드 앱(App)을 개발하

는 것은 아직까지는 어렵다.

안드로이드에서 파이썬으로 만든 프로그램들이 실행되도록 지원하긴 하지만 이것만으로 앱

을 만들기에는 아직 역부족이다.

아이폰 앱을 개발하는 것 역시 파이썬으로는 할 수 없다.

 

 

 

파이썬의 종류

 

1. cpython : C 로 구현된 기본적인 파이썬

2. Jython : JAVA 로 구현된 파이썬

3. IronPython : C#으로 구현된 파이썬

4. pypy : 파이썬의 파이썬으로 구현된 파이썬

 

 

 

 

파이썬의 2.x 버전과 3.x 버전의 차이

 

파이썬 3 에서는 모든 변수가 객체(Object)로 처리되며, 여러 가지 내부적 변화가 있지만

다음과 같이 4가지 정도만 필수적으로 알아둔다.

 

1. print 문 괄호 필수

, print가 함수로 변경 : print"hello world" print("hello world")

 

 

) Python 2

print('hello')

# hello

print 'hello'

# hello

 

Python 3

print('hello')

# hello

print 'hello'

# Error! invalid syntax

 

2. long 형이 없어지고 int로 통일

 

) Python 2

print( 2**30 )

print( type(2**30) )

print( 2**100 )

print( type(2**100) )

# 1073741824

# <type 'int'>

# 1267650600228229401496703205376

# <type 'long'>

 

Python 3

print( 2**30 )

print( type(2**30) )

print( 2**100 )

print( type(2**100) )

# 1073741824

# <class 'int'>

# 1267650600228229401496703205376

# <class 'int'>

 

3. int/int(나누기) 연산 결과는 float으로 처리

 

) Python 2

print( 1/2 )

print( type(1/2) )

# 0

# <type 'int'>

 

Python 3

print( 1/2 )

print( type(1/2) )

# 0.5

# <class 'float'>

 

4. string, unicode 체제 변경(통일)

 

) Python 2

print( type('hello') )

print( type(u'hello') )

# <type 'str'>

# <type 'unicode'>

Python 3

print( type('hello') )

print( type(u'hello') )

# <class 'str'>

# <class 'str'>

, 모든 문자열은 유니코드인 str 이다.

 

 

 

파이썬에서

한글을 사용할 경우 간혹 깨지는 경우

 

다음과 같은 방법으로 한글 인코딩 설정을 해주면 된다.

 

# coding: UTF-8

 

, 소스 코드 맨 앞(상단)# coding: UTF-8 이라고 선언해주면 된다.

 

 

 

Python 소스 코드 버전 변환 방법 2to3.py

 

소스 파일이 3 버전에 맞게 변환되고, 원본은 "파일명.bak"으로 보존된다.

 

 

형식

python C:\Python3\Tools\Scripts\2to3.py -w 소스 파일명

 

 

) D:\workspace\python>type vercon.py

print 'hello'

 

--------------------------------------------------------------------------------

D:\workspace\python>python C:\Python3\Tools\Scripts\2to3.py -w vertest.py

RefactoringTool: Skipping implicit fixer: buffer

RefactoringTool: Skipping implicit fixer: idioms

RefactoringTool: Skipping implicit fixer: set_literal

RefactoringTool: Skipping implicit fixer: ws_comma

RefactoringTool: Refactored vertest.py

--- vercon.py (original)

+++ vercon.py (refactored)

@@ -1 +1 @@

-print 'hello'

+print('hello')

RefactoringTool: Files that were modified:

RefactoringTool: vertest.py

 

--------------------------------------------------------------------------------

D:\workspace\python>type vertest.py

print('hello')

--------------------------------------------------------------------------------

D:\workspace\python>type vertest.py.bak

print 'hello'

 

728x90
반응형