나의 웹개발 20년 역사-1부

지금이야 개발을 거의 안하기 때문에 잘 못하지만 나도 코딩을 꽤 열심히 하던 시기가 있었다. 1999년 가을부터 2011년 5월까지는 거의 풀타임 개발자로 꾸준히 개발했다. 오늘 웹서핑을 하다가 IT 15년 썰 -2 라는 글을 보았기에 나도 그나마 기억나는 나의 예전 개발 기억을 기록으로 남겨보고자 한다.

1999년 컴공과에 입학하고나서 여름 농활에서 알게된 선배의 소개로 그 해 가을에 학교 도서관에서 홈페이지 관리 근로장학생 아르바이트를 하게 되었다. WS_FTP 로 홈페이지를 관리하는 일이었는데 편집기는 노트패드를 썼고 서버 OS는 HP-UX 였던 것으로 기억한다. 그러다가 나중에는 UltraEdit 라는 신문물을 접하게되는데, 그리고나서 한 5년 이상은 UltraEdit를 주 편집기로 사용했던 것 같다. 정말로 빠르고 커다란 파일도 잘 열었으며 각 언어의 syntax highlighting 도 잘해주었다. 또한 당시 HTML편집에서 매우 중요한 기능이었던 정규표현식 search&replace 를 잘 지원했는데 perl 정규표현식과 자체버전의 정규표현식 등 여러 규칙을 골라서 사용할 수 있었다.

당시에 학교 홈페이지 운영실에서 많이 했던 일중 하나는 다양한 HWP문서를 HTML로 변환하여 홈페이지에 올리는 일 이었다. 당시 HWP는 ‘HTML로 저장하기’ 기능을 제공했지만 그대로 쓰기에는 다양한 문제가 있었다. 일단 HWP문서대로 안나오는 문제가 가장 크고, 굉장히 쓰레기 코드가 많이 들어있었다. 잘 기억은 나지 않지만 비어있는 span 태그라던지 CSS는 절대 없이 각 font의 속성이 HTML attribute로 지정되어있었다던지.. 이런걸 엄청나게 많이 수정하느라고 HTML+CSS 실력이 많이 늘었다. 아, 그리고 당시에는 물론 table layout을 사용했다. div를 사용한 flexbox 이나 box model 따위는 없었다.

처음 경험한 웹 프로그래밍은 qDecoder를 사용해 오라클 서버를 사용하는 Pro*C CGI 였다. 예전에 관련 글 을 쓴적이 있다. (이런.. 이 글을 쓴게 벌써 15년전이네 ㄷㄷㄷ) 당시에는 알짜리눅스를 잘 썼던 기억이 있다. 컴파일을 해야 하는 CGI를 쓰다가 나중에는 Perl로 CGI를 짰는데 너무나 놀랐던 기억이 있다. 아니 string의 길이를 지정할 필요가 없고 컴파일도 할 필요가 없다니! 놀랄 노짜였다. DB는 Berkeley DB를 썼던거 같다. 이제는 오라클에 인수되었다고 들었는데 요즘에도 쓰는 사람이 있나?

그 다음은 물론 PHP다. 지금 찾아보니 PHP 4.0이 2000년 5월에 나왔다. 내 기억이 맞다면 PHP4는 제로보드로 대표되는 PHP의 대중화를 이끌었던 버전이다. 당시 한국형 게시판으로는 오픈소스가 아닌 제로보드가 가장 유명했고 GPL라이센스인 JSBoard 도 꽤 유명했다. 그리고 그 게시판을 만드신 분들은 둘다 지금 라인에서 일하고 있다. PHP의 편리함 중 하나는 register_globals 이라는 환경변수의 default가 on 이었는데 그대로 사용하면 그냥 PHP 코드에서 변수를 사용하면 GET/POST로 넘어온 값을 그대로 쓸 수 있었다! 지금 개발자들은 상상이 안갈것이다. 그냥 아무것도 안하고 코드에서 $TEBICA 를 쓰면 GET/POST로 TEBICA=abc 라고 넘어온 값을 사용할 수 있다. 보안 따위… 지금 위키피디아를 찾아보니 2002년 4월 발표된  PHP 4.2 에서 register_globals 의 기본값이 off로 변경되었다고 한다. 당시에는 웬만한 웹 어플리케이션을 쓰려면+기존 코드를 쓰려면 한동안은 register_globals를 on 으로 해두어야 했다.

당시에는 당연히 배불뚝이 CRT 모니터를 썼다. 지금은 안하지만 젊을때는 팔찌와 목걸이를 하고다녔다

그리고 당시에는 -한국만 그랬는지는 모르겠지만- 아파치를 리눅스 배포판에 있는 것이 아닌, 코드를 받아서 직접 빌드해서 사용하는 경우가 많았다. 빌드를 하면서 다양한 라이브러리 (예를 들어서 그래픽 지원을 위한 gd라던지)를 필요하면 넣기도 하고 빼기도 하고 다양한 설정을 추가하기도 했다. 그때 PHP를 넣어서 빌드 하기도 했다. 물론 배포판에 있는 것을 직접 사용하기도 했는데 당시에 커뮤니티의 분위기는 직접 빌드해서 썼을때 가장 성능이 좋다는 분위기였던 것으로 기억한다. 그때는 nginx는 세상에 나오기 전 이었다.

병특을 하면서는 Java 도 했었는데 Resin 을 썼던 기억이 있다. 그리고 서버에서 다양한 동기화를 위해서 rsync를 열심히 설정해서 cron으로 동기화를 했던 기억이 난다. 이메일은 sendmail이 더 많기는 했지만 qmail이 핫했다. qmail +vpopmail+MySQL 로 멀티도메인 웹메일 구축을 한적이 있다. 내가 병특을 할때만 하더라도 주5일제 시행 이전이어서 토요일 오전은 일하는 날이었던 기억이 난다. 물론 평일에도 저녁늦게까지 일했다. 저녁 식사는 회사에서 식권을 주었던거 같다. 그러다가 병특 끝나고 캐나다에서 개발자로 일했는데 한국처럼 일했더니 야근 좀 그만하라고 경고 받았었다

종종 IDC에 가서 서버설치를 하곤 했다. Docker, k8s는 커녕 가상화는 거의 없었기 때문에 모니터와 키보드/마우스/ RGB 케이블이 있는 터미널을 질질 끌고가서 1U 서버에 꼽아서 설정 하곤 했다.

이제는 Flash가 죽어버렸지만 Flash에서 다양한 코딩을 할 수 있는 액션스크립트가 유행하던 시절이 있었다. 액션스크립트 전문 개발자도 있었다. 나도 액션스크립트로 간단한 게시판을 만든적이 있는데 나쁘지 않았다. 지금으로 치면 react 개발에 해당한다고나 할까? 당시에는 Rich Web 이라는 단어로 표현하고는 했다.

글이 길어져서 나중에 2부를 써야겠다. Subversion 쓴 이야기, KDE, kdevelop, 오에카키, RoR만든 DHH 만난 이야기, jQuery, Git, Jekyll, FireBug로 JS디버깅하기 등등~

마지막으로, 위에 인용한 글에서 기억에 남는 문구가 있다. “그땐 풀스택 밖에 없었다”


  1. 이청규 Avatar
    이청규

    짬바가 느껴지는 스토리네요 ㅎㅎ
    2부도 기대해보아요~

  2. lucas Avatar
    lucas

    안녕하세요
    저는 라이언로켓이라는 스타트업에 다니는 정승환이라고 합니다.

    블로그 내용들을 보다가, 제안드리고 싶은 부분이 있어서
    이렇게 댓글 남깁니다.
    혹시나 “온라인 강의” 에 대해서 관심이 있으시면
    hwan@lionrocket.ai
    메일 한 번 주실 수 있으실까요?
    메일로 자세한 내용 나누고 싶습니다

    감사합니다.
    좋은 하루되세요 🙂