우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 - 웹 개발자가 하는 일
Human Information Interaction 2010/01/06 00:14이번 포스트의 주제는 우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 입니다. - how to teach my grandmother to development website 입죠
현재 대한민국의 학부생 또는 청소년들이 개발자 또는 웹개발자가 되기를 희망하는 사람이 얼마나 될지 모릅니다. 후배들에게 개발자를 직업으로 추천 할 수 있을지 또한 의문입니다.
개발자의 세계가 현실 세계와 너무 동떨어져 있는 것과 개발자 이외의 집단이 개발자를 이해하는 것, 그리고 개발자 집단 내부에서도 개발자를 이해하는 것은 쉽지 않습니다.
개발자는 디테일 하나 하나에 집착 합니다. 작은 것 하나쯤이야 하고 소홀히 대했을 때 석달 열흘을, 원인 모를 오류로 디버깅을 하면서 밤을 세울 수도 있기 때문입니다. 그런 개발자들에게 그냥 두리뭉실 좋은 게 좋은 것 아니냐며 대충 이래 저래 돌아가게 만들어라 하는 것은 타협 할 여지가 없음을 이외의 사람들은 이해하지 못합니다.
개발자들도 개발이외의 집단에서의 요구사항인 "뭔가 좀 맘에 안들어요, 그 뭔가를 좀 고쳐줘 봐요" 의 그 뭔지 모를 "뭔가"를 이해 하는 회로가 뇌에서 빠져 버린 듯 합니다.
아무리 연관 관계를 줄이려고 해도 코드들 객체(오브젝트)들은 연관을 가지고 있습니다. 현실 세계와 마찬가지로 프로그램의 세계에서도 독야청청 홀로 떨어져 있는 객체는 존재 할 수 없음을 개발자들은 알고 있으니까요. 개발자 이외의 집단에서 하는 말인 "그거 하나 수정하는데 뭐가 그렇게 어려워!?"라는 말에 속시원히 답하기 어려운 개발자들 마음은 더욱 답답합니다.
그럼 개발자들이 왜 그렇게 생각이 많고, 혼자서 집중할 수 있는 공간을 요구하는지 우리 할머니에게 설명하는 것처럼 말해 보겠습니다.
개발자들이 하나의 웹사이트를 개발하기 위해서, 또는 개발자가 되기 위해서는 무엇을 공부해야 하나? ASP.NET 개발자의 경우로 말해 보도록 하죠.
웹사이트의 컨셉, 목표, 해결해야 할 현실 문제, 요구사항, 기획, 디자인이 나왔다고 가정하도록 하죠.
첫번째, 윗 줄에 열거한 모든 것을 이해 해야 합니다. 그리고, 머리 속으로 시스템을 그립니다. 머리 속으로 그리려면 열거한 모든 것들에 대해서 공부 해야 합니다. 업무 영역, 업무 프로세스, 업무가 해결해야 할 과제 등등. 현실 세계의 거의 모든 상식을 지니고 있어야 합니다.
개발자의 좀더 구체적인 세계로 들어가 보도록 하죠.
두번째, 윈도우즈 서버 환경에 대해서 공부하고 이해 해야 합니다. 여러개의 서버가 함께 일할 수 있는 서버팜 , High availability 환경에 대해 이해하고 통제 할 수 있어야 합니다.
세번째, 웹사이트를 구동 시켜 줄 수 있는 IIS(Internet Information Services)를 공부하고 이해하고 통제 할 수 있어야 합니다. 버전 별로 특성과 지원되는 기능을 알아야 합니다.
네번째, web application framework인 ASP.NET을 공부하고 이해해야 합니다.
다섯번째, ASP.NET 위에서 구동할 주로 사용할 언어에 통달 해야 합니다. C#.NET 또는 VB.NET을 공부 해야 합니다.
여섯번째, 언어가 구동되는 프레임워크인 .Net Framework를 공부해야 합니다. 주요 모듈이 Common Language Runtime 이라는 CLR에 대한 공부가 필요 합니다.
일곱번째, 언어를 가지고 문제를 해결하기 위해서 알고리즘과 자료구조, 객체를 구조화 하기 위한 디자인 패턴 , 아키텍쳐를 공부하고 머리에 담고 있어야 합니다.
여덟번째, 드디어 사용자들이 볼수 있는 화면을 구성하는 언어인 HTML: Hypertext Markup Language 을 공부해야 할 시간입니다. <html></html><body></body><a href="src" ></a> <img src="" alt="" /> 이런 것들이 HTML입니다.
아홉번째, 내용을 디자인과 분리하기 위해서 CSS(Cascading Style Sheet) 를 공부 해야 합니다.
열번째, 사용자에게 더욱 좋은 경험 또는 서비스 요구 사항을 들어 주기 위한 언어인 Javascript 라고 불리우는 ECMA Script를 공부해야 합니다. javascript를 좀더 사용가능한 언어처럼 사용하기 위해서 javascript framework인 jQuery 또는 Prototype을 익혀야 합니다.
열한번째, 위에서 만든 서비스의 데이터를 영구적으로 저장 하기 위한 Server인 RDBMS, SQL 서버를 공부 해야 합니다.T-SQL이라고 불리우는 언어를 공부해야 합니다.
열두번째, 웹서비스에서 DB 서버와 통신하는 여러가지 기술을 익혀야 합니다. ADO.NET, 최근의 LINQ TO SQL, ENTITY FRAMEWORK, NHibernate, iBatis.NET등의 ORM( Object-Relation-Mapping)이라는 것을 익혀야 합니다.
열세번째, 소프트웨어를 구동할 수 있는 물리적인 컴퓨터의 네트워크, RAID, SCSI, HBA, SAN등의하드웨어와 기술들에 대해서 알고 있어야 합니다.
열네번째, 첫번째에 이해한 것들을 구현하기 위해서 열세개의 영역을 엮어(Weaving) 나갑니다. 위에 언급한 언어들(흡사 영어,프랑스어,스페인어와 같은 언어로 보시면 됩니다.)을 적절히 섞어가며 감동과 재미를 동시에 충족하는 문학작품 같은 것을 써 내려 갑니다. 아니 부분 부분을 써서 적재 적소에 엮습니다.
드디어 뭔가 돌아가는 화면을 볼 수 있습니다.
웹사이트 개발을 진행 하는 동안 요구사항의 변경과 버전의 변경, 개발 트렌드의 변화을 추적하면서 위에 언급한 열 세가지를 반복합니다.
개발자 이외의 잡단이 볼때 키보드나 또닥 거리며, 사무실 주변을 어슬렁 거리는 행위를 하는 동안 머리 속으로 , 또는 문서에 , 또는, 노트에 위의 열 세가지를 엮고 있는 것입니다. 비지니스의 선행조건 , 후행조건 등의 제약사항을 준수 하면서 말이죠.
개발자들은 위의 열세가지의 요소를 엮고 있으니, "제발 좀 나를 내버려 둬"라고 무언으로 말하지만, 회사 인간 관계에 서툰 미친놈 소리를 듣지 않기 위해서 뇌의 일부 영역을 주변 인간 관계를 위해서 남겨둡니다. 가끔 다른 팀의 컴퓨터도 고쳐줘야 하고, 윈도우도 깔아주거나 오피스도 깔아줘야 합니다. 개발자들이 자신의 세계로 다시 돌아가서 자신의 일을 하기 위해 갖추어야 할, 책에서 가르쳐 주지 않는 소양입니다.
인고의 시간이 지나고 프로덕트가 나옵니다. 많은 아니 대부분의 프로젝트가 아래의 결과를 보입니다.
위의 프로젝트 결과에 고객과 여타의 팀에서 볼맨 소리가 빗발칩니다. 비에 홀딱 젖어 익사하지 않기 위해서는 구멍난 우산이나 스노클이라도 준비 해야 합니다.
새로운 요구사항을 들어주고 변경된 제품을 내놓기 위해서 개발자들은 위의 열세가지를 수정하고, 삭제하고, 재배치하고, 새로 작성하고 동시에 유지관리를 걱정하며 엮어갑니다.
열세가지의 실로 엮은 스웨터가 구멍이 숭숭 난 누더기가 아닌 명품 캐시미어 스웨터로 만들려고 머리 속이 꽉차 있는 하루 하루를 보내는 것입니다.
실력이 있는 개발자 이건 부족한 개발자이건 모두가 같은 입장입니다. 한 가지도 소홀 할 수 없습니다.
개발자를 꿈꾸고 있거나 개발자이외의 우리 할머니, 개발자가 하는 일이, 되기 위해 하는 일이 무엇인지, 개발자들의 뇌속이 조금 머리 속으로 그려 지십니까? 다른 세계에 사는 사람인 듯 타협하기 힘든 개발자들의 속성을 조금 이해 하시나요?
이런 끊임없이 공부 해야 하고 머리속이 꽉찬 하루 하루를 보내는 개발자라는 직업이 쉽지만은 않습니다. 개발팀을 영원한 '을'로 여기는 대한민국의 인식은 후배들에게 개발자를 추천 하는 것을 망설이게 합니다.
그러나 개발자들은 무형의 그 상상을 현실화 하는 것에 무한한 행복을 느낍니다. 무한한 기쁨을 느낍니다. 한단계 한단계 성장하는 자신을 느끼면서 세상 그 무엇도 부럽지 않습니다. 현실로 돌아오면 깨지기 쉬운 유리 그릇 같은 만족감 이지만 행복합니다. 개발을 사랑합니다.
이 행복이 노력의 댓가로 지불되는 것이 아니기에 망설여집니다. 이것도 딜레마에 빠지게 합니다. 모두가 개발자를 하지 않으면 유능하며, 발전하며 행복을 느끼는 후임 개발자를 볼 수 없기 때문입니다.
"그거 하나 고치는데 뭐가 그렇게 어려워?" 라는 질문에 대한 답이 조금 되셨습니까? 물론 고치기 쉬운 것이 얼마간 있는 것도 인정합니다.
개발자 이외의 분들 이제 개발/개발자가 되기 위해 뭘 해야 하는지 아셨으니 한번 직접 개발해 보시겠습니까?
'Human Information Interaction' 카테고리의 다른 글
| 웹기획자는 무엇을 하는 사람일까요? - 개발에서의 웹기획자 역할 (0) | 2010/01/25 |
|---|---|
| 인포메이션 아키텍처 - Information Architecture (0) | 2010/01/12 |
| 우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 - 웹 개발자가 하는 일 (10) | 2010/01/06 |
| 트위터(Twitter)의 3가지 성공 요인 (0) | 2009/12/30 |
| 비메오(Vimeo.com) - 유튜브와는 색다른 동영상 공유 서비스 (0) | 2009/09/07 |
| 블로그(Blog)와 위키(wiki)의 차이점-생각을 담는 그릇과 사실을 담는 그릇 (1) | 2009/04/24 |
현재글 : 우리 할머니에게 웹사이트 개발 방법 가르쳐 주기 - 웹 개발자가 하는 일 posted By - 반더빌트 2010/01/06 00:14



이올린에 북마크하기
이올린에 추천하기