Python의 시작

  • 1991년 귀도 반 로섬이 발표한 언어
  • 플랫폼 독립적
  • 인터프리터 언어
  • 객체 지향 언어
  • 동적 타이핑 언어
  • 처음 C언어로 구현됨

 

이름의 유래

귀도 반 로섬이 Monpy Python's Flying circus라는 코미디프로를 좋아하여 해당 프로그램에서 이름을 따서 Python이라고 지었다고 합니다.

혹은 그리스 신화 속에서 델포이 신탁소를 지키던 뱀인 피톤에서 유래했다고도 합니다. 정확한 것은 아니지만 이러한 이유 때문에 아나콘다라는 이름이 나왔다고 생각(?)할 수 있습니다ㅎㅎ

 

Python의 특징

플랫폼 독립적인 인터프리터 언어

  • 플랫폼(OS) : 윈도우, 리눅스, 안드로이드, Mac os, ios 등 프로그램이 실행하는 운영체제를 플랫폼이라고 합니다.
  • 독립적인(관계없는, 상관없는) : OS에 상관없이 한번 프로그램을 작성하면 사용가능.
  • 인터프리터(통역기를 사용하는 언어) : 소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법.

결론적으로 파이썬은 파이썬 문법에 따라서 적으면 되지만 운영체제에서 작동을 하기 위해선 각각의 운영체제에 맞는 인터프리터 프로그램을 설치해서 번역해주는, 해석해주는 것이라고 생각하면 됩니다.

 

컴파일러와 인터프리터 언어의 차이점

  컴파일러 인터프리터
작동방법 소스코드를 기계어로 먼저 번역
해당 플랫폼에 최적화되어 프로그램을 실행
별도의 번역과정 없이 소스코드를 실행한 시점에 해석하여 컴퓨터가 처리할 수 있도록 함.
장점
단점
실행속도가 빠름
한 번의 많은 기억 장소 필요
간단히 작성, 메모리가 적게 필요
실행속도가 느림
주요 언어 C, C++, C#, Java 파이썬, 스칼라

 

객체 지향 언어

실행 순서가 아니라 단위 모듈(객체) 중심으로 프로그램을 작성합니다.

하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)을 가지고 있습니다.

 

객체 지향 특징

  1. 캡슐화(Encapsulation)
    • 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것.
    • 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어, 변경이 발생할 때 오류의 파급효과가 낮아짐.
    • 재사용 용이
  2. 정보은닉(Information Hiding)
    • 캡슐화에서 가장 중요
    • 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근 허용.
  3. 추상화(Abstractions)
    • 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화한 것.
    • 모델화 하는 것.
  4. 상속성(Inheritance)
    • 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려 받는 것.
    • 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성으로 사용가능.
  5. 다형성(Polymorphism)
    • 메시지에 의해 개체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미.
    • 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함.

동적 타이핑 언어

프로그램이 실행하는 시점에 프로그램이 사용해야할 데이터에 대한 타입을 결정합니다.

간단하게 프로그램이 실행하는 시점이란 것이 동적이라는 것으로 생각하면 됩니다.

 

Why Python?!

  • 쉽고 간단하며 다양합니다.
  • 이해하기 쉬운 문법 -> 사람의 시간이 줄어든다.(사람의 시간이 기계의 시간보다 중요함)
  • 다양한 라이브러리 : 파이썬 대부분의 라이브러리가 다른 사용자에 의해서 구현되어 있습니다.

처음 들었지만 너무나 맘에 들었던 말로 마무리하겠습니다.😀

Life is short. You need Python!

글을 시작하며

해당 카테고리는 네이버 부스트캠프의 교육일지로 작성하는 페이지입니다.

강의를 기반으로 작성하며, 추가적으로 필요한 부분은 책과 구글링을 통해서 추가했습니다. 😀

 

Operating System(운영체제)

  • 우리의 프로그램이 동작할 수 있는 구동 환경입니다.
  • 프로그램은 운영체제에 따라서 방식이 다릅니다. 예를 들면 윈도우에서는 exe 실행파일로 프로그램이 실행되지만 Mac에서는 실행되지 않습니다.
  • 어떤 개발 환경에서 개발을 실행할 것인가에 대한 선택을 해야합니다.

File System(파일 시스템)

OS에서 파일을 저장하는 트리구조 저장 체계로 파일의 기본체계에는 파일과 디렉토리가 있습니다.

디렉터리(Directory) 파일(File)
폴더 또는 디렉터리라 불림. 컴퓨터에서 정보를 저장하는 논리적인 단위(위키피디아 참고)
파일과 다른 디렉터리를 포함할 수 있음. 파일은 파일명과 확장자로 구분(ex : hello.py)
실행, 쓰기, 읽기 등을 할 수 있음.

파일의 고유한 위치를 경로라고 합니다. 트리구조상 노드의 연결입니다. 경로에는 절대 경로와 상대 경로가 있습니다.

 

절대 경로

  • 루트 디렉터리부터 파일 위치까지의 경로
  • ex : C:\user\docs\test.txt

상대 경로

  • 현재 있는 디렉터리부터 타깃 파일까지의 경로
  • ../../test.txt

 

CLI(Command Line Interface)

GUI(Graphic User Interface)와 달리 Text를 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계

 

Windows - CMD, Windows Terminal, cmder

Mac, Linux - Terminal

 

MS Store에서 Unbuntu도 지원하고 있어서 Linux Terminal을 사용할 수 있습니다.

 

기본적인 Shell 명령어

윈도우 CMD 창 명령어 Shell 명령어 설명
CD cd 현재 디렉토리 이름을 보여주거나 바꿉니다. (change directory)
CLS clear CMD 화면에 표시된 것을 모두 지웁니다.(clear screen)
COPY cp 하나 이상의 파일을 다른 위치로 복사
DEL rm 하나 이상의 파일을 지움(delete)
DIR ls 디렉토리에 있는 파일과 하위 디렉터리 목록을 보여줌.(directory)

 

+ Recent posts