목록Programming/Python (11)
CODICT
지금까지 작성한 대부분의 프로그램은 한 장소(싱글 머신)에서 한 번에 한 라인씩(순차적으로) 실행했습니다. 여러 장소(분산 컴퓨팅 혹은 네트워킹)에서 동시에 여러 개의 일(병행성(Concurrency))을 할 수 있습니다. 시간과 공간에 도전하는 여러 가지 좋은 이유가 있습니다. 성능(Performance) 느린 요소(Component)를 기다리지 않고, 빠른 요소를 바쁘게 유지합니다. 견고함(Robustness) 하드웨어 및 소프트웨어의 장애를 피하기 위해 작업을 복제하여 여러 가지 안정적인 방식으로 운영합니다. 간소화(Simplicity) 복잡한 작업을 좀 더 이해하기 쉽고, 해결하기 쉬운 여러 작은 작업으로 분해합니다. 커뮤니케이션(Communication) 데이터(바이트)를 보내고 싶은 곳에 원격..
컴퓨터를 사용하면, 폴더 또는 디렉터리의 컨텐츠를 나열하고, 파일을 생성하거나 지우고, 이들을 정리하는 일을 매일 수행하게 됩니다. 이러한 작업을 파이썬으로 해결할 수 있습니다. 1. 파일 파이선은 많은 다른 언어처럼 유닉스의 파일 연산 패턴을 갖고 있습니다. chown(), chmod() 함수 등은 똑같은 이름을 사용합니다. 그리고 몇 가지 새로운 함수가 존재합니다. 1.1. 생성하기: open() 이전 게시글의 파일 입출력과 관련된 부분에서 open() 함수를 소개하면서 파일을 여는 방법과 파일이 존재하지 않는 경우 새로운 파일을 생성하는 방법을 배웠습니다. 먼저 oops.txt 텍스트 파일을 생성해봅시다. >>> fout = open('oops.txt', 'wt') >>> print('Oops, I..
1989년 영국의 과학자 팀 버너스-리(Tim Berners-Lee)는 유럽 입자물리연구소(CERN)와 연구소 커뮤니티 내에서 정보의 공유를 돕는 제안을 먼저 했습니다. 그는 이것을 월드 와이드 웹(World Wide Web)이라 불렀고, 설계를 간추려 3가지 간략한 아이디어로 나타내었습니다. HTTP(Hypertext Transfer Protocol) 요청과 응답을 교환하기 위한 웹 서버와 클라이언트의 명세 HTML(Hypertext Markup Language) 결과에 대한 표현 형식 URL(Uniform Resource Locator) 고유의 해당 서버와 자원을 나타내는 방법 이러한 간단한 사용 방법에서 웹 클라이언트는 HTTP로 URL을 요청하고, 서버로부터 HTML을 받습니다. 그는 먼저 웹 브..
활성화된 프로그램은 데이터를 램(RAM; Random Access Memory)에 저장합니다. 램은 아주 빠르지만, 비싸고, 일정한 전력 공급을 필요로 합니다. 전원이 꺼질 경우 메모리에 있는 모든 데이터가 사라집니다. 디스크 드라이브는 램보다 느리지만 용량이 넉넉하고, 비용이 싸며, 전원이 꺼지더라도 데이터를 유지합니다. 지금까지 컴퓨터 시스템 개발자들은 디스크와 램 사이의 격차를 줄이기 위해 상당한 노력을 기울였습니다. 프로그래머는 디스크와 같은 비휘발성(Nonvolatile) 장치를 사용하여 데이터를 저장하고 복구할 수 있는 지속성(Persistence)이 필요합니다. 이 게시글에서는 일반 파일, 구조화된 파일, 데이터베이스와 같이 특수 목적에 맞게 최적화된 데이터 스토리지의 각 특징에 대해 살펴봅..

이번 게시글에서는 데이터에 대한 기술을 살펴봅니다. 내용의 대부분은 파이썬에 내장된 다음 데이터 타입입니다. 문자열 텍스트 데이터에 사용되는 유니코드(Unicode) 문자의 시퀀스 바이트와 바이트 배열 이진 데이터에 사용되는 8비트 정수의 시퀀스 1. 텍스트 문자열 텍스트는 대부분의 파이썬 프로그래머에게 가장 친숙한 데이터 타입일 것입니다. 파이썬 텍스트 문자열의 강력한 특징을 살펴보겠습니다. 1.1. 유니코드 지금까지 이 책의 모든 텍스트 예제는 평범하고 오래된 아스키(ASCII) 문자를 사용했습니다. 아스키코드는 1960년대에 정의되었습니다. 그때의 냉장고만한 컴퓨터는 단순한 계산을 잘 수행했습니다. 컴퓨터의 기본 저장 단위는 바이트(Byte)입니다. 바이틑 8비트에 256개의 고유한 값을 저장할 수..
지금까지 문자열과 딕셔너리 같은 자료구조, 함수와 모듈 같은 코드구조를 익혔습니다. 이번 게시글에서는 커스텀 자료구조인 객체(Object)를 배웁니다. 1. 객체란 무엇인가? 이전 게시글에서 본 것처럼, 숫자에서 모듈까지 파이썬의 모든 것은 객체입니다. 하지만 파이썬은 특수 구문을 이용하여 대부분의 객체를 숨깁니다. num = 7을 입력했을 때 7이 담긴 정수 타입의 객체를 생성하고, 객체 참조(Object Reference)를 num에 할당합니다. 이번 게시글을 통해 객체를 직접 만들고, 기존 객체의 행동을 수정하면서, 객체를 자세히 들여다봅시다. 객체는 데이터(변수, 속성(Attribute)이라고 부름)와 코드(함수, 메소드(Method)라고 부름)를 모두 포함합니다. 개체는 어떤 구체적인 것의 유일..
지금까지 데이터 타입에서부터 큰 데이터와 자료 구조를 구축하기까지, 파이썬을 상향식으로 접근했습니다. 이번 게시글에서는 수련한 여러분들이 하산하기 전 마지막 스테이지로, 현실적이고 큰 프로그램을 작성하는 방법에 대해 서술할 계획입니다. 1. 스탠드얼론 프로그램 지금까지는 파이썬의 대화식 인터프리터에서 코드를 작성하고 실행했습니다. >>> print("This interactive snippet works.") #This interactive snippet works. 이제 첫 번째 스탠드얼론(Standalone) 프로그램을 만들어보겠습니다. 컴퓨터에 test.py 파일을 생성하고, 다음 파이썬 코드를 입력합니다. print("This standalone program works!") 파이썬 코드 줄에 >..
지난 게시글에서 많은 데이터 타입과 자료구조에 대한 코드를 살펴봤지만, 코드가 그렇기 길지 않았습니다. 대부분의 코드는 대화식 인터프리터를 사용하는 짧은 코드였습니다. 이제부터는 데이터가 아닌 파이썬 코드를 어떻게 구조화하는지 살펴보겠습니다. 수많은 컴퓨터 언어는 코드의 시작 부분과 끝 부분을 표시하기 위해 키워드 혹은 중괄호와 같은 문자를 사용합니다. 그리고 코드 작성자와 다른 사람이 코드를 좀 더 읽기 쉽도록 일관된 들여 쓰기를 하는 것은 좋은 습관입니다. 심지어 개발 도구에는 코드의 라인을 잘 정리해주는 기능도 있습니다. 파이썬이 설계될 때, 설계자인 귀도 반 로섬은 코드 구분을 위해 괄호를 입력하지 않더라도 들여 쓰기로 프로그램의 구조를 정의하는 것이 충분하다고 생각했습니다. 파이썬은 프로그램의 ..