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)하고 데이타를 보내주는 방식입니다. 이러한 요청과 응답이 가능할려면 서버-클라이언트 사이에 전송되는 컨텐트 데이타 외에, 전송이 제대로 되었는지, 어떤 클라이언트가 접속하는지, 접속 시간은 언제인지 등 메타 정보 역시 오고 가야 합니다..
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"; 위의 코드..
www.mackido.com 번역 1999-5-1 기계어(machine code)라고 불리우는 가장 하위에 위치하는 언어는 단지 0과 1로만 이루어진 이진 패턴을 그룹지어 놓은 비트로 이루어져 있습니다. 이렇게 그룹지어진 것은 일정한 명령을 컴퓨터에 내리게 되는데 이 명령을 인스트럭션(instruction)이라고 합니다. 인스트럭션의 종류에는 반복적인 일련의 명령을 수행하는 루프(loop), 특별한 조건이 만족될 때만 어떤 일을 수행케 할때 사용하는 제어문(conditionals) 그리고 몇 개의 연산 함수(덧셈, 뺄셈, 곱셈, 나눗셈, 참 거짓을 판단하는 불리언(boolean)연산)이 있습니다. 사실상 컴퓨터 CPU가 수행하는 작업의 95%가 위에서 말한 명령으로 이루어져 있습니다. 컴퓨터는 단지 이런..
이 글은 펄을 만든 래리 월이 직접 쓴 펄의 교과서랄 수 있는 "Programming Perl"(캐멀 북) 4장 "Statement and Declaration" 을 바탕으로 펄의 루프 및 관련 구문을 정리한 것입니다. 단문(Simple Statements) 단문, 복문. 흡사 영어 문법 책에서나 봤음 직한 단어들입니다. 단문은 세미콜론;으로 끝나며 그 문장 자체가 직접 어떤 기능을 하는 표현(expression)입니다. 예를 들면, $a++; $string = 'abc'; print "$myname is cool!"; 이러한 단문은 그 뒤에 modifier가 붙여서 의미를 바꿀 수 있습니다. 단문 뒤에 붙일 수 있는 modifier로는, if EXPR unless EXPR while EXPR until..
펄의 복수 명사 2002-7-21 배열(array) 한 개짜리 무엇을 담는 변수인 스칼라(scalar)가 있다면 여러 개의 무엇을 담는 변수로 배열(array, list)이 있습니다. 배열은 중고등학교 때 수학에서 배운 집합처럼 생각하면 이해가 쉽습니다. 집합은 집합인데 원소의 순서가 있는 집합이 배열 입니다. 펄 배열은 이렇게 생겼습니다. @array1 = (1, 2, 3, 4, 5); @array2 = ('a', "b", " ", 34); 먼저 좌측에 있는 변수를 배열 변수(array variable)라 합니다. 우측의 괄호로 묶인 부분은 리스트(list)라 합니다. 배열과 리스트는 크게 봐서 같은 의미로 쓰입니다. 배열변수는 @ 로 시작하는 변수라는 점을 주목하세요. array 의 "a" 와 @이 ..
웹 프로그래밍에서 많이 쓰이는 서버 사이드 스크립팅 언어 비교 webmonkey.com 글 번역입니다 2000-4-9 펄(Perl)이 최고다 웹 프로그래머가 원하는 것은 고객이 원하는 것을 최상으로 해낼 수 있는 툴입니다. 가급적 빠른 시간내에 필요한 작업을 완성하는 것입니다. 물론 안정적이어야 하고 적은 비용만으로 해내길 바랍니다. 또, 무엇인가 바꿔야 할 필요가 있을 때 쉽게 바꿀 수 있기를 원합니다. 왜냐하면 실제 코딩이 시작되기 전까지 어떤 프로젝트의 세부 요구사항들이 확실하게 알려지지 않는 경우가 많기 때문입니다. 그리고 고객은 빠른 속도로 발전해 나가고 있는 미래의 컴퓨팅 환경에 맞게 잘 업그레이드되는 것을 원합니다. 개발자로서 원하는 것은 이렇습니다. 개발자는 기술적 한계에 갖혀서 일하기는 ..
2000-12-14 xhtml과 css : 써맨틱스와 스타일의 분리 초기 html은 페이지의 보여지는 면을 규정하는 태그와 내용을 규정하는 태그가 뒤섞여 있어서 내용과 형식이 완전히 분리된 상태가 아니었습니다. 내용과 스타일의 분리가 중요한 이유는 일차적으로 싸이트의 유지관리와 업그레이드가 훨씬 쉬워진다는 측면에서 그렇고, 웹의 미래라고 할 수 있는 semantic web으로 나아가는 데 있어 가장 기초적인 요구조건이 웹 문서의 스타일과 써맨틱스의 분리이기 때문입니다. 하지만 대부분의 html 페이지는 그렇지 못 한 상태에 있고 그 점을 개선하기 위해 웹의 표준을 만들고 전파하는 w3c.org은 html의 차세대 버전인 xhtml(Extensible HyperText Markup Language)을 만들..