Python 공부를 시작하며...

자바를 간단하게 끝마치고 스윙을 이용하여 GUI 개발을 하려했는데 자바로는 GUI개발이 너무 불편하다는 사실을 알았다.
시각적으로 편집이 불가능한 거 같고 좌표로 설정해야하여 직관적이지 않았다.
그래서 대신하여 Python을 활용한 Kivy를 이용해 프로그래밍을 하기 위해 파이썬 공부를 시작했다.
파이썬 참고 책으로는 A Byte of Python을 선택했다. 첫 시작으로 좋다고 하고, 한글판으로 인터넷에서 무료 열람이 가능하여 선택하였다.
http://byteofpython-korean.sourceforge.net/byte_of_python.html#basics에서 열람 가능하다.

서문에 이러한 글이 있다. "이 책은 파이썬의 가이드 혹은 튜토리얼의 역할을 하도록 작성되었습니다. 프로그래밍에 대해 아무런 지식이 없는 '완전 초보자’들을 주 독자로 설정하였습니다. 물론 경험이 많은 프로그래머들에게도 유용한 책입니다."  이 말을 믿고 한번 시작을 해본다.

파이썬의 공식 소개글
  • 파이썬은 배우기 쉽고, 강력한 프로그래밍 언어입니다. 파이썬은 효율적인 고수준 데이터 구조를 갖추고 있으며, 간단하지만 효과적인 객체 지향 프로그래밍 접근법 또한 갖추고 있습니다. 우아한 문법과 동적 타이핑, 그리고 인터프리팅 환경을 갖춘 파이썬은 다양한 분야, 다양한 플랫폼에서 사용될 수 있는 최적의 스크립팅, RAD(rapid application development - 빠른 프로그램 개발) 언어입니다.

파이썬 이름의 유래
  • 파이썬의 창시자 귇 반 로섬(guido van rossum)이 bbc에서 방영되던 "monty python's Flying circus"라는 tv프로그램의 이름을 따서 지었다.

파이썬의 특징
  • 단순함
    • 단순하고 최소화된 언어이며, 잘 쓰여진 파이썬 프로그램을 읽는 것은 좀 딱딱한 영어문장을 읽는 것과 크게 다를 바 없다. 이로 인해 파이썬이라는 언어 자체보다 풀려고 하는 문제에 집중할 수 있다.
  • 배우기 쉬운 언어
    • 배우기 정말 쉬우며, 굉장히 쉬운 문법 체계를 갖고 있다.
  • 자유, 오픈 소스 소프트웨어
    • 파이썬은 floss(free/libre and open source software)의 좋은 예이다.
  • 고수준 언어
    • 메모리 관리등 세부적사항을 신경쓸 필요가 없다.
  • 이식성
    • 소스가 공개되어 있고, 여러 플랫폼을 지원하도록 수정되어 왔다. 그를 통해 파이썬이 동작하는 모든 플랫폼 위에서 수정없이 사용 가능하다. 혹은 kivy같은 플랫폼을 활용하면, 컴퓨터, iphone ipad, android 상에서 동작하는 게임을 만들 수 있다.
  • 인터프리터 언어
    • 컴파일러 언어인 c/c++로 작성된 프로그램은 컴파일러에 프로그래머가 작성한 소스 코드로부터 컴퓨터가 사용하는 언어로 번역하는 과정을 거친다. 이렇게 번역된 프로그램을 실행하면, 링커 또는 로더라 불리우는 소프트웨어가 프로그램을 하드 디스크로부터 메모리로 불러들인 후 프로그램을 실행하게 된다.
    • 반면 파이썬은 이러한 컴파일 과징이 필요가 없다. 파이썬은 소스 코드로 부터 곧바로 실행된다. 이는 내부적으로 실행되는 소스 코드를 '바이트코드'라고 불리우는 중간 단계 형태로 변환 후, 이것을 다시 컴퓨터가 사용하는 언어로 변환한 뒤 실행하게 된다. 이러한 요소는 컴파일 과정을 신경쓰지 않아도 쉽게 사용할 수 있게 해준다. 그리고 여러 플랫폼에서 잘 동작하게 해준다.
  • 객체지향언어
  • 확장성
    • 작성해야 하는 프로그램의 일부분이 빠르게 동작해야 하거나 알고리즘 일부를 공개하고 싶지 않은 경우, 코드의 일부분을 c혹은 c++로 작성한 후 파이썬 프로그램에서 읽어들여 사용하도록 할 수 있다.
  • 포함성
    • c/c++ 프로그램에 파이썬을 포함하도록 하여 프로그램을 사용하는 사용자들이 '스크립팅'기능을 사용할 수 있게 한다.
  • 확장 가능한 라이브러리
    • 방대한 표준 라이브러리를 갖추고 있다.


    

댓글

댓글 쓰기

이 블로그의 인기 게시물

KV Language(Pycharm에 Highlighting 기능 설정하기)

Python 코딩 공부 시작과 Github 활용

Kivy Tutorial - PingPong