티스토리 뷰

python

Python이란 ? (특징, 장단점)

on1ystar 2019. 3. 5. 00:20
728x90
반응형

본 내용은 재학중인 학교 강의에 개인적인 공부를 더한 흔적입니다. 때문에 제가 조금은 오해한 부분이 있을 수 있습니다. 발견하실 경우 댓글로 남겨주시면 정말 감사하겠습니다 !! ( 책은 점프 투 파이썬&파이썬 for Beginner을 참고했습니다. )


파이썬이란 언어를 잘은 모르지만 여기저기서 많이 들어봤을 만큼 핫한 언어이고, 

이유는 코드가 단순하고 길이가 짧아 접근성이 좋고, 때문에 비전공자들도 쉽게 배울 수 있는 언어로 인지하고 있었습니다.

그리고 많은 프로그래밍 자료들이 파이썬으로 코딩되어 있다는 것을 들었고, 실제로 공부하면서 파이썬 코드 자료들을 많이 접하기도 했었습니다.

따라서 언젠가 한 번은 파이썬을 공부할 필요가 있겠다 싶었는데 다행이도 이번 3학년 1학기 과목 중에 파이썬을 배울 수 있는 기회가 생겨서 열심히 공부해 보려고 합니다.


About to Python


파이썬은 최근들어 굉장이 인기있는 프로그래밍 언어로 급부상 중인 오픈소스 언어입니다. 이 파이썬으로 만들어지는 프로그램들도 우리가 익숙히 아는 구글 페이지들이나 소프트웨어들, 인스타그램 등이 있습니다.


(출처 : TIOBE)

위의 자료는 간단하게 말해서 2019년도 프로그래밍 언어들의 인기 순위표 입니다. 그 중 Python은 3위에 랭크되어 있는데, 2018년도에 비해 1단계 상승한 상태입니다.

3위에 랭크되어 있는 것도 의미가 있겠지만 더 중요한 것은 상위권의 언어들 중, 상승폭이 2.39%로 가장 크다는 점입니다. 이로 비추어 보면 Python의 인기는 계속해서 증가할 것으로 판단됩니다.

참고로 최상위권에 랭크되어 있는 대부분의 언어들은 공통적으로 운영체제에 종속되어 있지 않다는 특징이 있습니다. 이는 중요하고 매력적인 특징입니다.

예를들어 Java로 짠 프로그램은 큰 변화없이 windows나 Mac, Linux 등에 무리없이 동작한다는 것입니다. C언어의 경우도 우리가 배운 것은 아마 windows용 c++이고, 이를 몇몇부분 수정해야 순수한 C코드가 된다고 합니다. 

과거에는 windows에 종속되어 있는 프로그래밍 언어들이 많았는데, 그러한 언어들은 현재 거의 사라져가고 있습니다.


그렇다면 Python이 현재 많은 사랑을 받는 이유가 궁금해 지는데, 이는 Python의 특징들을 보면 알 수 있습니다.


Python의 특징


쉽고 간결하다

파이썬의 코드를 다른 언어의 코드와 비교해 보면 상당히 간단한 것을 확인할 수 있습니다.

가장 쉬운 예를 하나 들어보겠습니다.

1
2
3
4
5
#include <stdio.h>
int main(){
    printf("Hello world");
    return 0;
}
cs
(hello.c)

1
print("Hello  world")
cs
(hello.py)

5줄로 Hello world를 출력하는 C에 비해 단 1줄이면 되는 Python이 훨씬 간결해 보입니다. 특히 비 전공자들이 보기에 C언어의 #include나 헤더파일, main함수, 0을 반환하는 retrun 0들은 딱 보기에 무엇을 하는 지 알 도리가 없고, 알고 싶지도 않아 보입니다.

하지만 Python의 코드는 print라는 영어 안에 "Hello world"만 작성되어 있기 때문에 대충 "Hello world"라는 문자열을 print하는 거겠구나라고 쉽게 짐작 가능합니다. 즉, 접근성이 매우 좋습니다.

그리고 {나 ;같은 자질구례한 문법적인 요소들이 필요 없으며, 들여쓰기를 하지 않으면 오류를 발생시키기 때문에 강제적인 들여쓰기는 코드를 더 가독성 좋게 만들어 줍니다.

때문에 비 전공자들에게 쉬운 문법과 간결한 코딩 덕에 프로그래밍에 입문하기 좋은 언어로 추천받는 경우가 많고, 다른언어를 사용해 본 경험이 있는 전공자라면 한 달도 채 안되서 간단하게 원하는 프로그램을 만들어 볼 수 있습니다.


빠른 개발속도 

파이썬의 코드들은 대부분이 영어 문장 형식으로 되어있습니다. 즉 우리가 매일 말하고 쓰는 방식으로 코딩을 할 수 있다는 것입니다. 따라서 머릿속으로 생각한 프로그램의 구성들을 그대로 코딩할 수가 있게 되고, 자연스레 빠른 작업 속도로 이어지게 됩니다.

"Life is too short, You need python." (인생은 너무 짧으니 파이썬이 필요해.)

이 말은 파이썬 개발자들 사이에서의 유행어라고 합니다.


오픈소스 언어 + 흡수성

Python은 오픈소스 개발 언어입니다. 때문에 무료인 것은 당연하거니와 수 많은 모듈들이 존재합니다. 사실 Python은 문법같은 내부적인 측면으로는 큰 매력을 가진 언어가 아닐 수 있습니다. 

하지만 이 Python이 이용할 수 있는, 다른 개발자들이 만들어 놓은 수 많은 모듈들이 있기 때문에 지금의 인기있는 Python이 될 수 있었습니다. 

심지어 다른 언어로 제작된 모듈들도 포함시켜 사용이 가능합니다. Python은 처음에 C언어로 제작된 언어로써 C언어의 프로그램들을 Python에 포함시킬 수 있으며, 그 밖에도 다른 언어로 제작된 프로그램들을 Python 프로그램이 쉽게 포함시켜 흡수할 수 있습니다.

Python은 인터프리터 언어이므로 복잡하고 연산이 많은 프로그램에는 어울리지 않지만, 이러한 부분을 C언어로 코딩한 프로그램을 포함시켜 해결할 수 있습니다.

실제로 큰 틀은 Python으로 간단하고 빠르게 잡고, 복잡한 로직들은 C언어로 제작해 포함시키기도 한다고 합니다.

똑똑하고 실력있는 개발자들이 만들어 놓은 모듈들은 모듈 자체로도 훌륭한 것들이 많았고, 이들을 손쉽게 사용할 수 있는 것은 Python의 가장 주요한 특징 중 하나입니다.


중요한 문법적 5가지 특징

Dynamic typing

변수를 사용할 때 변수 타입을 따로 지정하지 않고 실행할 때 변수의 타입을 자동으로 검사한다. 

C언어의 경우 변수를 선언할 때 타입을 명시해 줌으로써 자료형의 크기 만큼 메모리에 변수가 할당이 되는 형식인 반면, python은 변수에 넣는 값을 실행할 때 검사한 후 변수가 참조하는 방식이다. (객체이기 때문에 가능) 


Script language

컴파일을 하지 않고 인터프리터가 코드를 직접 한 줄 씩 실행하는 방식이다. 때문에 컴파일 과정이 필요 없고 실행 결과를 바로 확인하면서 코딩할 수 있다. 

하지만 컴파일된 기계어 코드를 읽는 것이 아니기 때문에 속도가 느리다. 그래서 python은 속도 향상을 위해 byte 코드를 일부 생성하거나 JIT를 사용한다.


Multi paradigm

절차적, 객체지향, 함수형, 관점형 프로그래밍이 모두 가능하다.


Unlimited access

사용의 단순함과 편리함을 위해 접근제어 없이 객체, 구조체 member에 무제한적 접근이 가능하다. 


Everything is object

변수와 함수 모두가 거의 다 객체다.


728x90
반응형

'python' 카테고리의 다른 글

Python List tip, lambda  (0) 2019.03.13
Python mutable vs immutable  (0) 2019.03.12
Python Quicksort  (0) 2019.03.08
자료형(1)  (0) 2019.03.06
개발환경 (Python 3.x, visual studio code)  (0) 2019.03.06
댓글