SimpleIsBest.NET

유경상의 닷넷 블로그

IT 발전의 원동력 :: 귀차니즘

by 블로그쥔장 | 작성일자: 8/5/2005 11:43:00 AM
이 글은 오래된 전에 작성된 글입니다. 따라서 최신 버전의 기술에 알맞지 않거나 오류를 유발할 수 있습니다. 저자는 이 글에 대한 질문을 받지 않을 것입니다. 하지만 이 글이 리뉴얼 되면 이 글에 대한 질문을 하거나 토론을 할 수도 있습니다.
안녕하세요... 요즘엔 날씨가 더운지 글쓰기도 귀찮고... 쩝... 그래서 주저리 주저리 노가리나 풀어볼까 합니다...

졸라 귀찮네...

필자가 현재 수행하는 프로젝트는 개발이 완료(?) 되었고, 운영 서버를 셋업하고 운영 서버 상에서의 다양한 테스트를 수행하는 시스템 테스트 단계에 와 있다. 여기서 몇가지 귀찮은 작업들이 발생했다. 시스템은 약 30개의 웹 어플리케이션으로 이루어져 있고 이들 어플리케이션은 서로 독립적으로 작동한다(물론 DB는 통합되어 있다). 어플리케이션들을 여러 웹 서버에 분산 시킴으로써 서버의 확장성을 고려했기 때문이다. 이 확장성을 고려한 설계가 셋팅 단계에서 태클을 거는 것이다.

웹 어플리케이션이 30개가 넘는 다는 얘기는 설정해야할 가상 디렉토리가 30개가 넘는 다는 얘기이며, 또한 설정해야할 web.config 역시 20개가 넘는 다는 얘기이다. 개발 중이라면 달랑 개발 서버 1대에 대해서 20여 번의 설정을 두 사람(기술 지원팀의 인력)이 어떻게 노다가를 뛰면 되지만 운영 환경이라면 이야기가 달라진다. 운영환경의 웹 서버는 업무(프로젝트 관리, 용역관리, 인사/노무, 영업지원, 자료관리)별로 각 2대씩의 서버가 있기 때문에 설정해야할 가상 디렉토리의 개수나 설정해야할 web.config의 개수가 백개가 넘어 버린다. web.config에 설정하나를 바꾸어 줄려면 절라 귀찮고 빡센 작업을 여러 디렉토리, 그리고 여러 서버를 돌아다니면서 설정해야 한다는 것이다.

쓰바 졸라 귀찮게 되버린 거다. 물론 이러한 작업을 대행해 주는 소프트웨어가 있다. 하지만 중요한 '돈'이 든다는 것이며 예산도 할당되지 않았다. 귀차니즘의 습격을 받은 기술 지원팀은 먼저 가상 디렉토리를 자동으로 설정하는 유틸리티 프로그램을 만들었다. Windows Script Host (VBScript)를 이용하여 작성하는 것이 일반적이지만 담당자가 vbscript에 능숙하지 않은 관계로 System.DirectoryServices 네임스페이스의 도움을 받아 닷넷 기반의 유틸리티를 작성했다. 디렉토리의 구조 및 가상 디렉토리 설정은 적절한 하드코딩(불변의 사항)과 외부 XML로 디스크립션 되도록 했으며 유틸리를 수행하면 시스템의 초기 디렉토리 구조와 IIS 웹 사이트 생성, 가상 디렉토리 설정, 웹 어플리케이션 설정, ISAPI 익스텐션(extension) 매핑 등의 작업을 수행해 준다. 캬~~

두 번째로 작성한 유틸리티는 개발 서버에서 작성된 어플리케이션 요소(aspx, asmx, dll 등등)를 운영 서버에 옮기는 작업을 수행한다. 이 유틸리티는 원본 파일(혹은 디렉토리)을 목적지로 복사해주는 유틸리티로서, 복사 목록을 XML로 기록해 둔다. 그리고 이 XML에 근거하여 복사를 수행하며, 동일한 파일(날짜로 비교)은 복사하지 않고 복사 도중 오류가 발생하면 롤백하는 기능에다가 복사가 완료되더라도 Undo를 수행할 수 있는 능력을 갖고 있다. 오.. 놀라워라... 소프트웨어를 안사주니 대타라도 만들어야...

Posco_Util1.jpg

세 번째로 작성한 유틸리티는 hosts 파일을 수정해 주는 것이였다. 개발자는 개발이 완료된 DLL, asmx 를 스테이징 서버에 먼저 올리도록 되어 있다. 그리고 배포 요청에 의해 관리자가 스테이징 서버의 내용을 여러 운영 서버에 배포하는 것이다. 이때 개발자는 운영 서버와 동일한 환경으로 구성된 스테이징 서버에 대해 테스트를 할 필요가 있다. 이때 스테이징 서버가 운영 서버와 동일한 환경을 가지므로, url 역시 정확하게 운영서버와 같게 설정되어야 하는 것이다. 물론 운영서버의 도메인 이름은 DNS 서버에 등록되어 있기 때문에 단순히 url을 입력하게 되면 스테이징 서버가 아닌 운영 서버에 접속해 버리는 것이다. 이를 해결하기 위해 hosts 파일을 수정하여 운영 서버가 아닌 스테이징 서버가 사용되도록 하면 된다. 하지만 매번 hosts 파일을 수정하고 원복하는 일이 귀찮지 아니한가? 그래서 만든 것이 hosts 수정 유틸리티 이다.

참고로... 이 프로그램들은 모두 필자가 작성한 것이 아니다. 필자는 단지 프로그램 기능에 대한 요구사항과 설계만을 지시/조언 했을 뿐이며.유능한 공 모씨(꺄~~ 오빠 머쪄요... 꺄~~~)가 개발한 코드이다. 작성 기간은 2-3일 소요된 것도 있고 2주 정도 소요된 것도 있다.

편리함, 아니 귀차니즘을 피하기 위해...

컴퓨터는 왜 사용하는가? 왜 종이와 계산기 혹은 주판, 연필 대신 엑셀을 쓰는가? 뭐 뽀대를 위해 쓰는 사람도 있겠지만 대다수는 보다 편리하기 때문일 것이다. 컴퓨터를 사용하는 가장 큰 이유 중 하나는 보다 편리함을 추구한다고 볼 수 있겠다(게임과 같이 엔터테인먼트를 위해 사용하는 경우도 있다). 그리고 사실 컴퓨터의 발전 역시 편리함을 추구하는 쪽으로 발전했다고 생각할 수 있다. 보다 빠른 CPU, 커다란 용량의 메모리, 디스크... 이러한 하드웨어의 발전 역시 보다 편리한 프로그램을 작성하기 위해 필요하기 때문에 발전한 것이 아닐까?

여기서 필자는 한가지 억측이 생각 났다. 편리하고자 하는 것은 기존의 작업이 불편함을 의미하며 이는 곧 기존 작업이 컴퓨터/프로그램 없이 불가능하거나 귀찮기 때문 아닐까? 포탄/미사일의 탄도 계산을 위해 태어난 초기의 '컴퓨터'도 주판과 종이, 연필로 계산하는 것보다 편리하고 빠르기 때문이며 이는 곧 컴퓨터가 없으면 일이 귀찮아짐을 의미한다. 비슷하게 프로그램을 작성할 때 비주얼 스튜디오와 같은 통합 개발 환경을 사용하는 이유가 무엇인가? 비주얼 스튜디오가 없더라도 커맨들 라인에서 make, editplus, 커맨드라인 컴파일러 등을 이용하여 프로그램을 작성할 수 있다(가끔은 비주얼 스튜디오 띠우는게 귀찮을 때도 있다!). 하지만 보다 많은 수고를 해야 할 것이다. 보다 많은 수고를 한다는 것은 반복되는 작업이 귀찮아 짐을 의미하기도 한다. 왜 검색 사이트에서 검색을 하는가? 누구한테 물어보거나 114를 누르거나 백과사전이나 도서관에서 자료를 찾을 수도 있는데 말이다. 보다 빠르고 편리하기 때문일 것이다. 좀더 생떼를 쓴다면 114 누르기가 귀찮거나 백과사전을 찾기가 귀찮아서 아닐까?

걍 흘러가는 생각으로 IT에 종사하는 사람들이 수행하는 많은 일들(전부는 결코 아닐 것이다)이 모두 누군가의 귀차니즘을 제거해 주는 일들이 아닐까 하는 생각에 몇 자 씨부려 봤다.



Comments (read-only)
#re: IT 발전의 원동력 :: 귀차니즘 / 김종호 / 8/5/2005 4:36:00 PM
누군가는 그러더군요. 프로그래머는 게을러야 한다. 게을러야 귀차니즘을 많이 만나고 그래야 그거 해결할라구 새로운 프로그램을 만드니까~ ㅋㅋ 이상한 결론이 나오긴 했지만~ 아 그리고 프로그램 작성하신분 어느분인지는 모르겠지만 프로그램 이미지만으로도 상당한 내공이 느껴집니다. ^^