본문 바로가기
  • 인공지능
  • 블록체인
  • 정보보안
코딩 알로하 :: one/python

파이썬 프로그래밍 이해하기 #1

by nathan03 2021. 7. 14.
반응형

요즘 데이터분석부터 웹프로그래밍 까지 파이썬의 인기가 하늘을 치솟고 있다. 
오늘부터 파이썬에 대해서 잘 이해하고 실제 프로그램을 구현하기까지 천천히 연재를 시작해보고자 한다. 
연재가 다 완료되면, PPT 로 강의 자료집도 만들어보고 싶다. 

 

# 파이썬 정의 (출처 wiki 백과)

파이썬(영어: Python)은 1991년 프로그래머인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것이다. 파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있다. C언어로 구현된 사이썬 구현이 사실상의 표준이다.

# 파이썬의 특징 

1. 스크립트 언어(Script language)
파이썬은 컴파일 과정 없이 인터프리터(Interpreter, 해석기)가 소스 코드를 한 줄씩 읽어 들여 곧바로 실행하는 스크립트 언어(Script language)이다. 그 때문에 컴파일 과정이 필요하지 않아 실행 결과를 바로 확인하고 수정하면서 손쉽게 코드를 작성할 수 있다.

2. 동적 타이핑(Dynamic typing)
파이썬은 동적 타입 언어이다. 변수의 자료형을 지정하지 않고 단순히 선언하는 것만으로도 값을 지정할 수 있다. 이때 변수의 자료형은 코드가 실행되는 시점에 결정된다. 자료형 변환 시 번거로운 과정을 거치지 않아도 된다는 장점이 있지만, 코드 실행 도중 예상하지 못한 타입으로 인한 에러가 발생할 수 있는 특징이 있다.

3. 플랫폼 독립적(Platform-independent)
파이썬은 리눅스(Linux), 유닉스(Unix), 윈도우즈(Windows), 맥(Mac) 등 대부분의 운영체제(Operating System, OS)에서 모두 동작한다. 운영체제별로 컴파일할 필요가 없기 때문에 한 번 소스 코드를 작성하면 어떤 운영체제에서든 활용이 가능하다.

# 파이썬으로 할수 있는 것 

1. 업무 자동화
파이썬을 통해서 엑셀을 다룰수 있고, 마우스와 키보드로 업무를 보고 있는 부분을 마음대로 조작하여 자동화 시스템을 만들수 있다. 

2. 크롤링
인터넷에 있는 다양한 정보를 가져와서 내 입맛대로 데이터를 분석 및 조작 가능하다. 

3. 서비스 구현 (백엔드, 서버)
서비스의 백엔드에서 DB 에서 데이터를 호출하여 사용자가 원하는 정보를 웹 상에서 보여줄수 있도록 구현 가능하다. 

4. 데이터 분석 
파이썬은 데이터 분석에 관련된 수많은 라이브러리를 제공하고 있어, 데이터를 정제하고, 분석하고 시각화가 가능하다. 

5. 머신 러닝
텐서플로우와 파이토치 처럼 머신러닝 라이브러리가 파이썬 언어로 제공하고 있어, 파이썬을 이해하면 머신러닝 공부가 가능하다. 

6. 파이썬 해킹 
파이썬을 통해, 애플리케이션, 웹, 시스템, 네트워크 해킹 등 정보보안에서 가능한 모든 해킹 도구들을 만들고, 자동화 가능하다. 

# 파이썬으로 할수 없는 것 (할순 있지만,,, 제한적)

1. 게임 개발 
파이썬은 인터프리터 기반의 언어이기 때문에, 파이썬을 인터프리터가 해석하고, CPU에 전달하는 시간이 오래 걸린다. 게임은 굉장히 많은 CPU 가 소모 되기 때문에, 훨씬 더 Low 한 Level 의 언어를 많이 사용하여 구현한다. 

2. 웹 또는 앱 개발  
웹은 HTML, CSS, JAVASCRIPT로 구현 되어 있어, Python 이 한계가 많고, 앱 개발의 경우도 안드로이드는 코틀린, IOS는 SWIFT의 언어가 사용되고, 하이브리드앱은 React Native 언어가 사용된다. 파이썬으로 비즈니스를 위한 웹/앱 서비스 개발은 어렵다. 

# 파이썬의 장점 

1. 굉장히 쉽다. 
파이썬은 영문법을 빌려 개발한 프로그래밍 언어이므로, 파이썬 명령을 내리다 보면 영어와 유사하다는 것을 느낄수 있다.  

2. 다양한 라이브러리 활용 가능 하다. 
위에서 할수 있는 것들에 대해 설명했는데, 이부분의 구현은 대부분 라이브러리와 패키지를 활용하여 빠르고 쉽게 응용 프로그램을 만들수 있다. 

 

반응형

댓글