본문 바로가기
PROGRAM

[Python] 파이썬 표류기 2 : python 2, 3의 차이와 python 활용도

by ojava 2020. 10. 21.
반응형

파이썬 언어를 공부하다보니 문법적인 내용은 크게 어려움이 없었다.
심지어 기대도 안했던 객체지향 개발도 가능했고 엄청난 패키지 제공으로 특별히 개발할 필요 없이 이미 제공되고 있는 기능들도 많아서 (잘 찾아서 사용한다면) 큰 어려움 없이 원하는 내용을 뽑아낼 수 있을 거 같다.
가끔 기존 java와의 차이가 있는 부분에서 헷갈리는 부분이 있긴 했지만 뭐 좋다.

오늘은 파이썬 언어를 공부하면서 현재 사용하고 있는 python3와 과거 python2의 차이를 알아보고, 현재 python을 통해 진행되는 데이터 분석 등의 활용도를 살펴보고자 한다.

 

1. python 2 vs python 3 

일단 버전 업그레이드가 되면서 소수점 뒷 자리가 아닌 정수부가 바뀐다는 건 엄청난 변화가 있다는 걸 뜻한다.
2와 3의 차이를 찾아보니 컨버젼에 대한 내용까지 나오는 걸 봐서 크게 바뀌었으며 2 버전을 쓰다가 3 버전을 쓰려면 일부의 변환 과정이 필요하다는 걸 알 수 있다.

python 2의 최종 버전은 2.7이며, 2020년 1월 1일 이후로는 더 이상 유지보수 되지 않는다고 한다.
2 버전의 경우, 현재도 많은 시스템에서 운영 프로그램에 사용중이지만 점진적으로 3 버전으로 전환되면서 2 버전 사용 비율은 점차 감소하고 있다고 한다.

  • Python 3는 새롭게 나왔고, 계속 버전이 증가하는 관리되고 있는 방식
    기존 2.x 버전으로 운영되는 시스템이 많다지만 과거 버전이고 이미 지원이 중단되었기 때문에, 새로 배워야 하는 사람이라면 당연히 3 버전으로 배우고 도입하는 것이 맞다.
  • Python 2와 Python 3은 많은 변화가 있기 때문에 호환되지 않을 수 있다.
    기존 2.x 버전의 내용을 3.x 에서 사용할 수 있으나 권장되지는 않는다.

  • Python 3의 기본 저장 방식은 Unicode 이다.
    기존 2.x 버전은 ASCII 방식으로 저장되었으며, 유니코드 방식을 지원하기는 하지만 유니코드 방식으로 저장하기 위해서는 별도의 설정이 필요했다.

  • Python 3는 정수 처리 기능이 개선되었다.
    예를 들어, 기존 2.x 버전은 5 나누기 2의 결과로 2.5를 얻기 위해서는 반드시 실수형태로 입력해서 5.0/2.0 으로 입력해야 했으나 3.x 버전은 생각하는 그대로 입력하면 원하는 결과가 나온다.

  • print 문 구문의 차이
    print "Hello World" 방식의 2.x 버전과 print("Hello World") 방식의 3.x 버전

  • Python 3는 가비지 수집 및 메모리 할당 기능 개선

  • Python 3에는 기존 목록을 기반으로 목록을 만드는 기능 추가

 

전반적으로 보면 유니코드를 통해 더 많은 언어를 지원하고, 직관적인 형태로 제공되어 새로 접하는 사람들에게 더 편리하게 변화하였다.

[참고 1 : pythonfundu.blogspot.com/2019/02/python-2-vs-3.html]
[참고 2 : coderseye.com/python-2-vs-python-3-version-differences]

 

결론은 Python 3 쓰자.
기존 코드 유지보수 해야하는 경우라도 가능하면 Python 3로 변경함을 권하겠지만, 유지보수라는게 내 맘같이 돌아가는 일이 별로 없다 ^_ㅜ 고객님덜은 2를 쓰던 3을 쓰던 일절 관계가 없다고 하므로 인력과 기간이 가능해야만 개발자의 발전과 편의를 위해 전환이 가능할 거다.

 

본인의 경우는 신규 개발할 예정이므로 3.x 을 사용하겠다.
최근 다시 python이 각광받는 이유는 직관적이고 간단하고 편하다는 점 이외에, 이 언어가 데이터 분석에 가장 많이 사용되고 있다는 점이다.

지금까지 데이터 분석 한다고 하면 당연히 R 아니겠어 하는 사람들 많았는데 이제는 아니다.
그럼 SAS냐 그것도 아니다. 이제는 python을 통해 통계 분석 다 한다.

 

데이터 분석을 진행하는 데이터사이언티스트, 엔지니어가 가장 많이 사용하는 언어에 대해 조사한 통계 결과에서 화면에서 조작하기 위한 JavaScript와 데이터 조회를 위한 SQL문을 제외하고 개발언어로 Python이 가장 높은 순위로 사용되고 있다.

[참고] towardsdatascience.com/data-science-101-is-python-better-than-r-b8f258f57b0f 

 

Data Science 101: Is Python better than R?

For decades, researchers and developers have been debating whether Python or R is a better language for data science and analytics. Data…

towardsdatascience.com

 

데이터 분석 분야에서 많이 사용되고 있지만, python 언어 자체의 특징이 배우기 쉽고 간결하고 직관성 있는 언어라 다양한 분야의 사람들이 사용하기 쉬운 접근성 높은 언어인 만큼 활용도도 매우 다양하다.

 

python 활용도, 활용분야

 

당연히 개발할 때 사용할 수 있고, 그 중에서 가장 많이 사용되는 분야는 빅데이터에 대한 데이터 분석 분야이다.
numpy, scipy, matplotlib 등의 라이브러리를 사용해서 데이터 분석 및 통계 정보에 대한 그래프 작성 등이 가능하다.

좀 더 구체적으로 말하면 머신러닝, 딥러닝, AI 등 빅데이터 관련 데이터 분석 및 모델링 작업이 가능하다.
이 중에 이름을 들어봤음직한 tensorflow는 머신러닝을 위한 오픈소스 라이브러리인데 python에서 사용할 수 있다. 

다양한 라이브러리가 제공되어 추가 구현이 많이 필요없다는 점은, 게임 개발에도 사용될 수 있다.
게임 개발을 위한 pygame로 게임을 만들 거나 게임 개발사에서 제공한 API를 이용할 수도 있고, Minecraft 패키지로 게임을 즐길 수도 있다. 

사실 활용성은 너무나 무궁무진하다. 제공되는 라이브러리, 계속해서 생성되는 패키지를 어떻게 이용하고 잘 응용하느냐에 따라 획기적인 프로젝트를 만들어 낼 수도 있는 강력한 언어라는 생각이 든다.

 

 

데이터 분석하고 통계 그래프를 그려보겠다는 마음으로 시작한거였는데, 딥러닝 학습모델을 통한 예측 기능까지도 구현이 가능할 듯 해서 어떻게 활용할지 기획을 잘 해봐야겠다.

반응형