서버 프로그래밍의 어려운점

프로그래밍/서버프로그래밍 2006/09/06 09:29
  서버 프로그램을 만드는 일은 그리 어려운 일이 아닙니다.
  네트웍관련 서적과 프로그래밍 공부를 하고 간단한 서버부터 시작하여 차근차근
  나아가면 큰 시간을 들이지 않고도 충분히 작성할 수 있습니다.
또한 일단 하나를 만들어보면 다음은 더욱더 짧은 기간에 쉽게 작성할 수 있습니다.
  더우기 데이타베이스에 대한 지식까지 공부와 경험을 통해 늘려나가면
  서버 프로그램을 만들 수 있는 파워는 더욱더 늘어납니다.

  하지만 서버프로그램의 가장 어려운 점은 이러한 작성에 있는것이 아닙니다.
테스트앤 디버깅에 있습니다.

  서버프로그램의 가장 어려운 점은 실제사용환경에서의 테스트가 그 상황이
  되기전까지 테스트를 할 수 없는것에 있습니다. 아무리 더미클라이언트를
  만들어서 통신테스트를 하고 여러가지 테스트를 하여도 말 그대로 가상테스트이지
  실제 테스트가 아니기 때문입니다.

  단일사용자를 위한 클라이언트 프로그램 같은 경우는 여러가지 타입의 PC가
  있기때문에 여러환경의 PC에서 테스트 할 수 없다는 점이 어려운 것처럼
 
  서버프로그래밍의 가장 큰 난점은 프로그램을 만들때 정말로 정말로 중요한
  테스팅을 가상으로 밖에 할 수 없다는 것입니다.
결국 시험서비스라는게
  어쩔수 없이 필요하고 그 기간에 사용자를 통해서 테스트를 해야된다는 것입니다.
  그러나 시험테스트 역시 실제사용자들의 인원이 들어오는 환경은
  또 테스트가 불가능 합니다. 결국 실제서비스가 되서 나오는 문제는 그때 그때
  해결할 수 밖에 없습니다.

  문제는 여기에 있습니다. 실제 서비스중에 서버프로그램의 디버깅을 해야 한다는
  것이 서버프로그래머의 비애입니다.
  실제 서비스중이기때문에 그 파장이 대단히 크고 그러한 파장은 개인 뿐만 아니라
  기업에 영향을 줄 수 있기때문에  책임감으로 따지면 엄청난 스트레스를 남몰래
  받게 됩니다.


  또한 그런 실제상황에서 관리자가 서버프로그램의 특성을 모르는 경우는 그렇지
  않아도 난감한 상황을 더욱더 힘들게 만들어 버립니다.



  결국 작성하는 서버프로그램이 많아질 수록  안정성을 위한 쪽으로 점점 다가갈수
  밖에 없습니다.

  서버타입이 게임서버같은 경우도 게임사용자의 경험에 의해서 서버는 다운될수
있다는 사실을 알고 있지만 아무리 경험한다고 해도 그런일이 발생하면
사용자들의 불만은 커지고 게임의 인지도를 떨어뜨리고 또한 환불도 있을 수 있으며
전체적으로 그리고 결과적으로
비지니스 자체에 큰 영향을 줍니다.


더우기 서버타입이 금융이나 항공/항만 공장또는 시설등등에 관련된 것이라면
단한번의 서버프로그램의 장애로 인한 피해와 손실액은 아주 막대합니다.
서버프로그램은 원래 운영중에 문제가 있을 수 있다는 것은 모두가 알고 있어도
손실은 피해갈 수 없습니다.  
그 피해가 너무 크기 때문에 어떻게든 금전적인 손실책임등을 져야 되기 때문입니다.

PS. 결국 역으로 생각해보자면 서버프로그램의 어려운 점은 '디자인'에 있습니다.
모든 상황을 미리 감안한 디자인이 결국 최후의 테스팅과 디버깅을 손쉽게 하고
문제를 발생할 확률을 줄인다고 생각합니다.

물론 언제나 그렇듯이 제 블로그의 프로그래밍 이야기는 , 프로그래밍 세계의
작은 이야기 일 뿐입니다. 이럴 수도 있다는 것이죠. 정답은 없습니다.
top

◀ PREV : [1] : .. [3] : [4] : [5] : [6] : [7] : [8] : NEXT ▶