UPDATED. 2024-04-19 16:34 (금)
[나는프로] 세이클럽 서버 관리자 남세동
[나는프로] 세이클럽 서버 관리자 남세동
  • 임채훈
  • 승인 2000.09.06 00:00
  • 댓글 0
이 기사를 공유합니다

‘여럿을 하나처럼’ 서버를 짝짓는다
36시간 동안 한숨도 못잤다.
잠시라도 한눈을 팔면 고개는 저절로 떨어진다.
새로운 서버에 자료를 옮기고 프로그래밍도 다시 해야 하는데…. 머리가 너무 어지러워 도저히 참을 수가 없다.
사무실 구석의 침낭에서 잠시 눈을 붙인다.
커뮤니티 사이트 세이클럽 www.sayclub.com의 서버 관리자 남세동(22)씨는 그렇게 침낭 속에서 세시간만 눈을 붙이고 다시 일을 시작했다.
“이 정도는 기본이죠.” 별일 아니라는 듯이 웃는다.
“지난해는 정말 고생이 심했습니다.


말 그대로 막노동이었다.
지난해 상반기에는 48시간 내내 뜬눈으로 일하고 사우나에서 잠깐 눈을 붙이는 식의 생활을 반복했다.
한국과학기술원(KAIST) 전산과학과 동기와 함께 세이클럽을 만들던 초창기 시절이었다.
몸은 축났지만 세이클럽은 폭발적인 인기를 끌었다.
지금도 일이 힘들면 주변의 칭찬과 네티즌의 성원을 생각하며 위안을 삼는다.
세이클럽 만들면서 ‘산고의 고통’ 겪어 세이클럽이 이토록 인기를 얻은 데엔 상당부분 서버관리 기술이 큰몫을 했다고 그는 설명한다.
그가 새로운 세이클럽의 채팅 사이트를 만들면서 가장 중점을 둔 부분은 사용자 불편을 최소화하는 것이었다.
한 채팅 사이트가 동시 접속하는 수만명의 이용자를 넉넉하게 받아들이려면 수십대의 서버가 필요한 법이다.
이 서버를 어떻게 연결해 구축하느냐에 따라 채팅 사이트의 성패는 갈린다.
“채팅 사이트를 이용하면서 겪는 대부분의 불편은 서버 연결 기술이 좋지 않기 때문입니다.
그래서 서버 연결 기술은 채팅 사이트 기획 초기단계부터 가장 예민하게 신경써야 하는 부분이죠.” 세이클럽이 결국 채택한 서버 기술은 분산시스템. 30대의 서버를 이어 쓰면서도 이용자들은 단 한대의 서버에 접속한 듯한 착각을 하게 한다.
하지만 그가 분산시스템을 구축할 때만 해도 국내엔 참고할 만한 사이트가 없었다.
흔한 말로 ‘맨땅에 헤딩하기’였다.
외국 프로그램을 일일이 참고하며 친구와 함께 하나하나 새로 만들어가며 새로운 지식으로 쌓아갔다.
“넉달 동안 컴퓨터를 붙들고 밤샘하기는 정말 예사였죠.” 다행히 유닉스·리눅스는 물론, 서버에서 많이 쓰는 프로그래밍 언어인 C와 자바, 스크립트 언어인 PHP 등 대학에서 배운 전산학 지식들이 많은 도움이 됐다.
“분산시스템을 짤 때에도 분석력과 언어에 대한 이해는 기본이죠. 더 중요한 것은 뭐니뭐니 해도 응용력입니다.
똑같은 효과를 내는 프로그램이라 하더라도 그 속을 들여다보면 아주 간단한 것부터 복잡한 것까지 다양합니다.
응용력을 발휘해야 프로그램을 간단하게 짤 수 있고 그래야 프로그램이 돌아가는 속도도 빨라지고 나중에 수정하기도 편하죠.” 공학도가 갖춰야 하는 것들은 다 갖춰야 한다는 것이다.
분산시스템 개발자는 건축가 자질을 가져야 그는 자신의 직업이 두가지라고 말한다.
하나는 엔지니어다.
“과학자들은 쥐 1천마리를 잡기 위해 실험실에서 수십억원을 들입니다.
그 정도 비용이면 아마 혁신적인 쥐약을 개발할 수 있을 겁니다.
하지만 엔지니어라면 1억원 정도를 들여 아줌마 100명을 고용할 겁니다.
그게 훨신 더 효율적이니까요.” 엔지니어라면 비즈니스 마인드를 가져야 한다는 것이다.
비용을 줄이는 기술만이 살아남을 수 있기 때문이다.
분산시스템도 결국 마찬가지다.
현재 세이클럽에는 채팅 서비스를 관리하는 서버가 30대나 있다.
한대 값이 300만원씩, 총 9천만원이다.
“대용량 서버 한대를 사려면 10억을 넘게 줘야 합니다.
우린 9천만원으로 해결했죠. 분산시스템이 얼마나 경제적인 기술인지 알 수 있겠죠.” 또 하나의 직업은 건축가다.
일반 PC와 마찬가지로 서버도 작동을 멈추는 일이 잦다.
서로 연결된 30개의 서버 중 하나가 정지하더라도 사용자는 눈치채지 못하게 해야 한다.
“그러기 위해서는 서버를 어떤 구조로 연결할 것인가를 잘 설계해야 합니다.
서버의 대수가 많아지면 설계 수준은 거의 웬만한 건축 설계 수준이 되죠.” 한번은 술 먹고 프로그램을 짠 적이 있다.
워낙 바쁜 시절이었지만 도저히 거절할 수 없는 술자리였다.
술이 워낙 취해 쓰러지고 싶은 마음이 굴뚝 같았다.
해야 할 일이 산더미 같아 그런 상태에서도 프로그램을 짜기 시작했다.
“아무리 프로그램을 다시 짜도 에러가 나는 겁니다.
나중에 확인해보니 70번째 행에 쉼표가 빠졌다고 나오더군요. 그래서 쉼표를 찍었습니다.
그런데도 계속 에러가 나는 거예요. 그러고는 기억이 나지 않았습니다.
” 잠시 미소를 지었다.
“아침에 일어나서 확인해보니 쉼표가 빠진 자리에 제가 ‘쉼표를 찍었습니다’라는 문장을 써버렸더군요. 어이가 없었습니다.
분산시스템이란?
온라인 게임이나 채팅 사이트에는 큰 사이트일수록 사용자 공간(서버)이 여러개로 나뉘어 있다.
만일 다른 서버에 있는 사람에게 실시간으로 쪽지를 줄 수 없거나 귓속말을 할 수 없다면 그 곳은 분산시스템을 적용하지 않은 곳이다.
분산시스템은 여러대의 서버를 하나의 서버처럼 사용하는 기술이다.
최근 채팅 사이트나 온라인 게임 사이트에서 주로 사용하고 있다.
분산시스템에서 가장 중요한 것은 한 대의 서버가 정지됐을 때 이를 어떻게 처리할 것인가다.
서버 연결 방법에 따라 선형구조, 나무구조, 원구조, 망구조로 나뉜다.
각 구조에 따라 서버가 정지했을 때 대응방법도 달라진다.
아주 단순하게 1-2-3-4-5-6 여섯대의 서버가 있다고 가정을 해보자. 3번 서버가 정지하면 연결된 서버는 1-2와 4-5 두 부분으로 쪼개지게 된다.
하지만 여섯대의 서버가 원형 구조로 돼 있다면 3번 서버가 다운되더라도 연결을 계속 유지할 수 있다.
얼핏 간단해 보이지만 실제 고려해야 할 사항과 각 서버의 중요도 등을 고려하면 무척 복잡해진다.
즐겨찾는 사이트 아마존 www.amazon.com 씨네21 www.cine21.co.kr 엔키노 www.nkino.com 렛츠뮤직 www.letsmusic.com 최근 관심 분야 ·XML “콘텐츠를 사고파는 몰을 구축해보고 싶다” ·Java servlet “자바 서버는 아직 안써봐서…” ·시나리오 작성법 “프로그래머의 생명은 10년. 그 이후를 대비해야죠.”

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.