2002-6-20 이 글은 펄 CGI 프로그램을 이용해서 아래 링크에 있는 것과 같은 간단한 웹 기반 복리 계산기를 만들어 보는 과정을 설명하는 글입니다. 복리 계산기는 원금과 연이율 그리고 투자기간(연 단위)을 입력하면 복리로 계산해서 원리합계 표를 만들어 보여주는 프로그램입니다. 간단한 프로그램이지만 펄 CGI 프로그램의 기본 원리를 이해하는 데는 충분할 것 같습니다. 사용자가 폼을 통해 입력한 정보는 CGI를 통해 웹 서버로 전달된다고 했습니다. 원금 입력 란이나 이율 입력 란에 입력한 숫자들이 사용자가 입력한 정보입니다. 이 정보는 "보내기(SUBMIT)" 버튼을 누르면 웹 서버로 전달됩니다. 그렇다면 그 데이타는 어디로 가는 것일까요? GET 메쏘드와 POST 메쏘드 우선, 폼을 통해 입력한 정..
2002-6-20 CGI 란? CGI는 "common gateway interface"의 약자입니다. CGI를 이해하기 위해 예를 하나 들어 볼께요. 웹 브라우져로 웹 서버 프로그램에 접속한 경우에 그 서버 컴퓨터에 있는 mysql DB에 그냥은 직접 접근할 수 없습니다. mysql 데이타를 다룰 수 있는 CGI 프로그램을 이용하면 웹 브라우져를 통해 mysql 데이타에 접근할 수 있습니다. CGI 프로그램이 mysql DB로의 gateway를 제공하는 것입니다. 서버 컴퓨터에 존재하는 여러 데이타나 프로그램으로의 게이트웨이를 만들어 주는 인터페이스인 것입니다. 그러면 게이트웨이를 통해서 무엇이 들어가고 무엇이 나올까요? 쉬운 예로 회원 등록 폼(form)에 개인 정보를 입력하는 경우를 생각해 봅시다. ..
2000-12-6 HTTP 헤더(HyperText Transfer Protocol Header) 팀 버너스 리는 TCP/IP 프로토콜 위에서 운용되는 HTTP라는 프로토콜을 완성해서 전 세계를 거미줄처럼 엮는 월드와이드웹(www)의 기초를 완성했습니다. HTTP는 이름처럼 (하이퍼)링크를 통해 연결된 하이퍼텍스트 데이타의 전송을 위한 프로토콜입니다. HTTP는 기본적으로 클라이언트 쪽에서 웹 서버에 무엇인가를 요청(request)하면 서버에서 판단하여 응답(response)하고 데이타를 보내주는 방식입니다. 이러한 요청과 응답이 가능할려면 서버-클라이언트 사이에 전송되는 컨텐트 데이타 외에, 전송이 제대로 되었는지, 어떤 클라이언트가 접속하는지, 접속 시간은 언제인지 등 메타 정보 역시 오고 가야 합니다..
1999-8-24 TCP/IP 프로토콜 개발 과정을 이해하기 위해서는 먼저 네트웍 관련 용어 몇 가지 알아야 합니다. (1) 노드(Node) 네트웍을 이루고 있는 각각의 컴퓨터나 기기를 노드라고 합니다. 로컬 네트웍(LAN)에 연결된 각 PC가 노드인 것입니다. 노드는 서로 연결되어 있고 그 연결을 매개하는 교량 역할을 하는 것이 있습니다. 그것을 라우터(router)라 합니다. 노드들 간에 데이타를 교환하려면 데이타가 어떤 방식으로 전송되어야 한다는 공통의 약속이 필요할 것입니다. (2) 프로토콜(Protocol) 바로 그 약속, 규약을 프로토콜이라 합니다. 전송할 데이타는 어떤 포맷이어야 한다든지, 전송하는 방식은 어떠 해야 한다는 것을 규정한 약속입니다. TCP/IP 프로토콜은 인터넷(Interne..
코넬 대학교 Jon Kleinberg 교수의 논문, "Authoritative Sources in a Hyperlinked Environment" 소개 2003-4-15 개괄 논문의 도입부에서는 질의어와 'authoratative sources'의 관계, 그리고 링크 구조의 분석 방법 등을 다룹니다. 우선 "broad search topic"이란 문구가 나오는데, 검색어는 주제의 범위가 넓은 것과 특화된 것이 있습니다. 예를 들어 "학교"라는 검색어는 대단히 광범위한 검색어로 많은 결과가 리턴됩니다. 반면 "정보검색"이라는 질의어는 매우 특별한 것으로 결과로 반환되는 것이 훨씬 적습니다. "Hubs and authorites"라는 링크 구조 모델을 다루는 본 논문에서 소개하는 알고리듬은 전자와 같은 광범..
2002-9-2 Globbing 디렉토리 내에 있는 파일 중 특정 확장자의 파일만 따로 모아야 할 경우가 많이 있습니다. 이처럼 파일 이름을 어떤 패턴에 맞는 것만 모으는 것을 globbing이라고 합니다. 펄에서는 glob "pattern";의 형태로 씁니다. 예를 들어 내 문서 디렉토리로 이동해서 확장자가 .txt인 파일의 이름만 따로 모으고 싶다면, chdir "/home/linuxer/doc" || die "can't cd"; @text_files = glob "*.txt"; print "@text_files"; @text_files 내에는 확장자가 .txt인 파일의 이름이 들어갑니다. glob " " 내에는 여러 가지 패턴을 쓸 수 있습니다. 확장자가 .html 인 파일 중 b로 시작하는 파일만..
2002-9-2 파일 핸들(File Handle) 파일 관련 내용에 들어가기 전에, 펄의 사용자 입력처리에 관한 내용을 먼저 알고 있어야 합니다. 그 글에서 설명한 것처럼 사이에 파일핸들을 넣으면 파일을 한 줄 읽어 들입니다. 그 파일핸들이 뭔 지를 우선 알아 봅시다. 라마 북(Llama book)에 보면, 파일핸들은 "바깥 세계와 펄 프로세스 사이의 I/O connection" 이라고 설명되어 있습니다. 바깥 세계라는 것은 하드디스크 등에 물리적으로 저장된 파일을 얘기합니다. 그 파일과 펄 프로그램 내의 프로세스 사이에 데이타를 넣고 뺄 수 있는(I/O) 하나의 연결을 만들 수 있는데 이것을 파일 핸들이라고 합니다. 예를 하나 봅시다. open MYFILE, "logfile.txt"; 위의 코드..
로니 제임스 디오(Ronnie James Dio)는 락 보컬리스트가 되어 보겠다고 연습을 시작했던 처음부터 높은 벽처럼 느껴진 보컬리스트입니다. 목이 틔이지 않은 상태에서 힘들지 않았던 곡이 없었지만 특히 디오가 부른 곡들은 더욱 힘들었습니다. 디오의 곡은 3 옥타브를 한참 넘기는 하이톤이 잔뜩 나오지는 않아서 처음 악보를 보면 어렵지 않게 할 수 있을 것으로 생각합니다만 실제 불러 보면 몇 소절 못 가서 헐떡거리게 됩니다. 멜로디 라인의 주축이 2옥타브 라, 시 그리고 3옥타브 도인데 이 음들은 사실 3옥타브 레, 미, 파보다 지속적으로 내기가 더 힘들기 때문입니다. 음 자체를 못 내서 못 부르는 것이 아니라 얼마 안 가 배 힘과 폐활량이 모자라 부르지 못합니다. 어느 정도 부를 수 있게 된 뒤에도 디..
2004-2-4 기업의 가치평가(Valuation) 또는 평가는 몇 가지 이론과 주장이 각자 장단점을 갖고 활용되고 있는 분야입니다. 밸류에이션은 예측(forcasting)의 최종 단계로 다양한 용도가 있습니다. M&A를 할 때 인수할 기업을 얼마에 사야 할 것인가의 문제나 부분적으로 지분을 사는 주식투자를 할 때 기업의 적정주가를 추산하는 문제는 밸류에이션과 직접적으로 관련되어 있습니다. 이 글을 이해하기 위해서는 배당자본환원 모형, 화폐의 시간가치와 복리에 대한 이해가 필요합니다. 그러면 버핏이 "An Owner's Manual"에서 밝힌 기업의 내재가치에 대해서 읽어보고 DCF 분석에 대해 알아 봅시다. 버핏은 왜 기업의 장부가치가 진정한 기업의 가치를 반영할 수 없는지에 대해 대학교육을 비유하며 ..
www.mackido.com 번역 1999-5-1 기계어(machine code)라고 불리우는 가장 하위에 위치하는 언어는 단지 0과 1로만 이루어진 이진 패턴을 그룹지어 놓은 비트로 이루어져 있습니다. 이렇게 그룹지어진 것은 일정한 명령을 컴퓨터에 내리게 되는데 이 명령을 인스트럭션(instruction)이라고 합니다. 인스트럭션의 종류에는 반복적인 일련의 명령을 수행하는 루프(loop), 특별한 조건이 만족될 때만 어떤 일을 수행케 할때 사용하는 제어문(conditionals) 그리고 몇 개의 연산 함수(덧셈, 뺄셈, 곱셈, 나눗셈, 참 거짓을 판단하는 불리언(boolean)연산)이 있습니다. 사실상 컴퓨터 CPU가 수행하는 작업의 95%가 위에서 말한 명령으로 이루어져 있습니다. 컴퓨터는 단지 이런..