목록분류 전체보기 (24)
CODICT
지난 글에서, 기하학적으로 해석했을 때 도함수를 접선의 기울기로 정의했습니다. 1/x의 도함수를 구하는 과정을 예제로 풀어보았고, Power Rule을 증명해보기도 했습니다. 이번 글에서는 도함수를 변화율로 해석하고, 극한의 개념을 명확히 하며, 연속성을 설명하기 위해 극한을 사용하는 방법에 대해 설명하겠습니다. Derivative as Rate of Change 전 글에 이어서 계속해서 도함수에 대해 이야기해보겠습니다. 앞서 서술한 것처럼 지난 글에서는 도함수를 기하학적 해석을 통해 접선의 기울기로 정의했습니다. 이번에는 도함수를 변화율로 해석하겠습니다. Δx 만큼의 시간 동안 Δy 만큼 움직이는 물체의 위치를 기록한 함수 f가 있다고 하겠습니다. Δy/Δx는 해당 시간동안 움직인 물체의 위치의 평균 ..
당분간은 미분(Differentiation)에 대한 이야기를 하고자 합니다. 모든 측정과 관련해서 미분의 중요성 때문에 미분은 문이과를 가리지 않고 대부분의 분야에서 굉장히 많이 사용됩니다. 그래서 대부분의 이공계 과정에서는 시작을 미적분학으로 하게 되고, 대부분의 기초는 미적분학입니다. 이번 글에서는 도함수에 대해 알아보겠습니다. Geometric Interpretation of Derivatives 어떤 함수의 그래프에서 한 점에서의 접선을 찾는 기하학적 문제를 살펴보겠습니다. 함수 f(x)가 있고, 이 함수 위의 두 점 P와 Q가 있습니다. 고등학교에서, 접점이 주어질 때의 접선의 방정식에 대해 배웠습니다. 점 P를 통과하고, 기울기가 m인 접선에 대해 다음의 방정식으로 쓰여진다는 것을 알고 있습니..
뭐든지 기초가 튼튼해야 합니다. 건물을 세울 때 기초를 다지고 뼈대를 세우는게 일의 첫 순서인 것과 같은 이치입니다. 기초와 뼈대가 튼튼하지 않으면 나중에 창문이나 문틀과 같은 세부적인 구조물을 설치하는 데 어려움을 겪기 때문입니다. 컴퓨터 언어를 배우는 것도 이와 같습니다. 프로그램의 기본적인 구조부터 확실하게 알아야 하며, 그러고 나서 루프(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번 기둥으로 옮기면 끝이다. ..
활성화된 프로그램은 데이터를 램(RAM; Random Access Memory)에 저장합니다. 램은 아주 빠르지만, 비싸고, 일정한 전력 공급을 필요로 합니다. 전원이 꺼질 경우 메모리에 있는 모든 데이터가 사라집니다. 디스크 드라이브는 램보다 느리지만 용량이 넉넉하고, 비용이 싸며, 전원이 꺼지더라도 데이터를 유지합니다. 지금까지 컴퓨터 시스템 개발자들은 디스크와 램 사이의 격차를 줄이기 위해 상당한 노력을 기울였습니다. 프로그래머는 디스크와 같은 비휘발성(Nonvolatile) 장치를 사용하여 데이터를 저장하고 복구할 수 있는 지속성(Persistence)이 필요합니다. 이 게시글에서는 일반 파일, 구조화된 파일, 데이터베이스와 같이 특수 목적에 맞게 최적화된 데이터 스토리지의 각 특징에 대해 살펴봅..