개발자들끼리 통하는 한가지!.
소스 코드로서 시스템을 설명하고 이해할 수 있다라는 것이 아닐까 싶다.

2003년 학교를 졸업하고 들어가게된 직장에서 나는 이전 개발자의 철학프로그래밍 스킬의 정도 회사에 대한 충성심을 느낄 수 있었다.

그 개발자의 의해서 생산(?)된 코드의 일부를 생각나는데로 기재해본다.

델파이 소스 중 일부입니다.  변수명에서 느껴지는 회사에 대한 충성심?
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  cipal, zot : integer;
begin
  //do something
end;
변수명에서 느껴지는 프로그래밍 스킬(전역 변수를 위해 Label Component를 사용)
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  result := 1 + 2;
  TLabel1.caption := i;
  //do something
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i : integer;
begin
  ShowMessage(TLabel1.caption);
  //do something
end;

이 개발자의 본성이 그대로 들어나는 레거시한 코드 델파이라 와닿지 않을 수 있지만 저런 코드가 다량의 unit 파일에 내제되 있었고 그의 철학을 느끼며 재개발에 들어갔었다.

과연 저 개발자는 어떤 생각을 가지고 변수에 cipal 과 zot를 남발하였을까? ^-^



한가지의 사물을 보고 단순화 하는 작업에 있어서 개발자마다의 특징이 있고 오브젝트화 하는 작업이 제 각각 틀릴 것이다.  이렇게 다양한 스타일의 레거시한 코드 덕분에 개발자들은 좀더 나은 코드를 위해, 좀더 좋은 서비스/소프트웨어를 개발하기 위해 노력할 수 있는 시간이 줄어든다.

사용자 삽입 이미지
오늘도 레거시한 코드를 살펴보며 이런 저런 고민끝에 역시 재 개발
이미 내가 생각하는 객체화의 영역에서 심하게(?) 벗었났다.


레거시 코드를 관리하는 내 능력의 한계일까 레거시 코드의 문제일까?

라는 질문을 던져보며 또 한가지의 다른 걱정 한번 해봤다.


오지랖인가 싶지만...
사용자 삽입 이미지


javascript 를 이용한 Rich UI, Ajax UI 개발이 조금씩 자리를 만들어 가면서 기존 ASP, PHP, JSP 로 만들때 보다. 개발에 필요한 요소가 더 복잡해졌다라고 하겠다.

디자이너가 해주던 HTML에 서버사이드 언어와 DB Query만 알면 왠만한 사이트 개발은 해치울 수 있다.
(이것도 그다지 간단한 일은 아니지만...)

하지만 javascript를 이용한 Rich UI, Ajax UI 개발시에는 알아야 할 표준만도 DOM, CSS, HTML, JSON, XML, ECMAS 2-262, Cross-Browsing 정도는 기술적 Base로 알아야 한다.  이미 Rich UI, Ajax UI 개발자라면 언급한 7가지의 접근법은 다양하고 많은 경험을 했을 것이라 본다.

사용자 삽입 이미지
(아직도 국내에서는 자바스크립트는 프로그래밍 언어로 보지 않는 개발자들이 아직도 많이 있다는 것)

하지만 국내의 Rich UI 개발자들의 실상은 그다지...
이미 생산성에 맞춘 RIA 개발에 포커싱되어있지 않을까?
이러한 실정을 토대로 이 분야를 선도하는 포털 사이트와 거대 사이트 들에서 자리잡혀 버린다면 최근 강조되고 있는 웹 표준에 대응하면서 생기는 다양한 문제점 보다 더욱 큰 문제를 또 한번 겪게 될지도 모른다. 

또한 한가지 절대적으로 Rich UI, Ajax UI Tech guru로 활동하는 개발자들도 그리 많지 않다라는 것이다.
(숨어있는 고수님들의 노하우 좀 공유 부탁드려요. ^-^)

국외 다양한 자바스크립트 프레임웍을 보고 있자면 그들에게는 위에서 언급한 기술적 Base에 대한 발전된 모습을 느낄 수 있다.  그런 기술을 빠르게 습득하는 것도 우리 개발자들의 문제이겠지만 국내의 기술적인 모티브를 제공하고 외국의 프레임웍처럼 기술적 표본을 잘 정립해야하지 않을까 라는 걱정을 해봅니다.

과연 javascript에서 var foo = { }; 라는 코드가 어떻게 동작하고 각 자바스크립트의 엔진마다 메모리는 얼만큼 사용하고 어떤 차이가 있는지 그로 하여금 각 브라우저에서 구동될 Application에는 어떠한 영향을 미치는지? 

1 + 1 = 2 라는 증명은 매우 간단해 보이지만 러셀의 1 + 1 = 2 에 대한 증명을 보면 그렇지 않다.
참고 : http://k.daum.net/qna/view.html?qid=3Sp2R


내가 짠 코드가 남에게 도움이 될 수 있다면....


이하 영상은 레거시 코드 관리에 대한 영상 및 자료입니다.



신고
Posted by Rhio.kim