목록전체 글 (24)
CODICT
뭐든지 기초가 튼튼해야 합니다. 건물을 세울 때 기초를 다지고 뼈대를 세우는게 일의 첫 순서인 것과 같은 이치입니다. 기초와 뼈대가 튼튼하지 않으면 나중에 창문이나 문틀과 같은 세부적인 구조물을 설치하는 데 어려움을 겪기 때문입니다. 컴퓨터 언어를 배우는 것도 이와 같습니다. 프로그램의 기본적인 구조부터 확실하게 알아야 하며, 그러고 나서 루프(Loop)나 객체(Object)와 같은 세부 구조를 기본 구조 위에 세워야 합니다. 이 게시글에서는 C++의 가장 기본이 되는 구조를 살펴볼 것입니다. 1. C++의 시작 하나의 메시지를 출력하는 간단한 C++ 프로그램을 통해 시작을 해봅시다. 아래의 코드는 C++의 cout 기능을 사용하여 문자를 출력합니다. 이 코드에는 몇 개의 주석문이 달려있습니다. C++의..
지금까지 작성한 대부분의 프로그램은 한 장소(싱글 머신)에서 한 번에 한 라인씩(순차적으로) 실행했습니다. 여러 장소(분산 컴퓨팅 혹은 네트워킹)에서 동시에 여러 개의 일(병행성(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을 받습니다. 그는 먼저 웹 브..

하노이의 탑(Tower of Hanoi)은 원반을 옮기는 간단한 퍼즐이다. 규칙을 설명하자면, 하노이의 탑에는 크기가 다른 원반이 n개가 존재하고 원반을 끼울 수 있는 기둥에 3개 존재한다. 하노이의 탑 문제는 어떻게 하면 원반 n개를 모두 가장 왼쪽 기둥에서 가장 오른쪽 기둥으로 옮길 수 있을지에 대한 답을 구하는 문제이다. 단 원반을 옮길 때는 3개의 조건이 존재한다. 원반은 한 번에 한 개만 옮길 수 있고, 각 기둥의 맨위의 원반을 다른 기둥의 맨 위로만 옮겨야 하고, 옮기는 과정에서 큰 원바을 작은 원반 위에 올려서는 안된다. 이 규칙을 지키면서 원반을 옮기려면 중간에 여분으로 주어진 보조 기둥을 활용해야 한다. 풀어보기 원반이 한 개일 때 1번 기둥에 있는 원반을 3번 기둥으로 옮기면 끝이다. ..