2011년 2월 20일 일요일

웹개발언어

ASP, PHP, JSP 는 서버기반 웹 개발언어 입니다. 웹개발언어의 세대로 생각해 본다면 3세대 언어라 생각하시면 될듯 합니다.

Web서비스는 Server와 Client 간에 이루어 지는 서비스 입니다.
1세대 언어는 Server에서 일방적으로 배포 개념으로 Client 와의 서비스가 이루어 진다면,
2세대 언어는 Server와 Client와의 상호작용으로 서비스가 이루어 지고, 리소스에 대한 부담은 Server가 지고 있습니다.
이에 반해 3세대 언어는 2세대 언어와 동일한 방법으로 서비스가 이루어 지지만, 리소스에 대한 부담은 Server 와 Client가 동등하게 부담하는 방식입니다..
1세대 언어의 대표적인 언어가 html이라 생각하시면 이해하시기 쉬울듯 합니다. 2세대 언어는 CGI같은 언어가 있습니다.. 세대 구분은 학계에서도 그 기준에 대해서 많은 이론들이 있는 상황이라 참고사항으로 생각하시면 될듯 합니다..

3세대 언어인 ASP, PHP, JSP의 경우 아래와 같은 특징이 있습니다.

◈ ASP : VB스크립트를 기반, MS사의 제품군과 호환성이 높다.
Windows Server계열에서 주로 사용하며, IIS웹서버 엔진을 통해서 배포된다.
DBMS로써는 MS-SQL 계열의 DB와 호환성이 높다.
주로 Web솔루션이나 비즈니스 사이트 구축시 많이 사용된다.

◈ PHP : CC스크립트를 기반, GNU기반의 제품을 주로 사용한다.
Linux 계열에서 주로 사용하며, Apache 웹서버 엔진을 통해서 배포된다.
DBMS로써는 My-SQL계열의 DB와 호환성이 높다.
주로 개인 홈페이지 제작시에 많이 사용된다.

◈ JSP : JAVA 기반, 플랫폼 독립적인 운영으로 호환성이 높다.
DBMS로써는 Oracle을 많이 사용하지만, 타 DBMS에서도 호환성이 높다.
보안성이 좋아 보험사, 금융, 관공서 프로젝트에서 많이 사용된다.

이런 특징들에 의해서 해당 프로젝트에서 사용될 언어가 결정이 됩니다.

물론 4세대 언어에 해당하는 .net 언어들도 존재하고 있습니다.

개발 입장에서 개발하는 방법이 각 언어별로 다르기 때문에 프로젝트의 성격에 맞게 운영되는 것이 일반적입니다. 디자이너가 코딩을 하는데 있어서 확장자가 html,ASP,PHP 어떤 거든 동일한 작업물이 될것으로 예상됩니다. 여기에 개발요소가 들어가게 된다면 달라지겠지만. 프로그램 작업이 없는 상황이라면 3가지 모두 html과 동일한 결과물입니다. 단지 3세대 언어의 특징을 살려서 include 등의 기법을 활용할때 해당언어의 특징을 살려서 코딩을 할수 있는 부분에서 차이가 납니다.

3세대 언어 중심의 코딩을 할때 주의할 부분은 공통적인 요소를 찾아서 include로 묶는 방법으로 코딩을 진행합니다. include개념을 디자이너 분들이 이해하기 조금 힘들듯 해서 개발파트를 담당하시는 분과 상의 후에 개발에 맞는 방법으로 include를 진행하시면 될듯 합니다.

만약 프로젝트의 범위가 조금 큰 편이고, 해당 사이트의 접속자가 많다면, 언어의 측면을 떠나서 코딩 방법자체가 달라져야 합니다. 대형 프로젝트에서 코딩시스템의 경우 드림위버와 같은 툴로써 코딩을 하는 것이 아니라 메모장과 유사한 도구(에디터플러스 등)을 활용해서 코딩하는 하드코딩을 기반으로 해야 합니다.

그 이유는 하드코딩으로 해야지만, 소스코드의 군더더기가 없어서 많은 유저들을 수용할수 있는 최적의 사이트를 만들수 있기 때문입니다.

요 근
들어 DIV 태그를 사용한 표준화 코딩을 많이 진행하고 있습니다. 표준화 코딩을 진행할때는 사용하는 스크립트 언어의 버전과 브라우저별 호환성을 채크해서 범용화된 코딩을 진행해야 합니다. 또한 크로스 브라우징 테스트를 통한 정상동작 요무를 확인해야 합니다.