본문 바로가기

Programming/JSP

jsp와 Ajax 그리고 웹과 언어의 미래.

난 아직 학생이라 이런 고민을 많이 하는 듯 싶다.

우선 asp, php, jsp 모두 간략하게나마 다뤄봤을때 가장 내게 어필을 한 언어는 jsp.
근래에(?) 체계적으로 잡힌(?) 개념이지만 MVC패턴은 아주 명확한 프로그래밍이라는 느낌이 든다.
불필요한 매뉴얼을 배제한 간단한 인터페이스제공만으로 서비스를 제공한다는 측면은
웹관련 언어는 모두 마찬가지... 아니 어떤 언어로 만들어지는 프로그램이든 마찬가지일듯 싶다.
리모콘을 예를들어 우리는 필요한 버튼만으로 조작하여 내부적인 상황은 고려하지 않은채
유용하게 주변을 조종하고 있지않은가?

하지만 asp나 php는 군전역과 동시인 약 2년전에 다뤘던 때라 지금은 어떨지 모르겠으나
구조적인 언어라고 강하게 느꼈다. 물론 수업시간에 집중을 못해 강한 부정적 인식이 자리잡고있어서
그런지 모르겠지만...

jsp는 완벽한 캡슐화에 따른 결집도가 낮고 응집도가 강한 모듈들의 집합으로 이루어진 언어.
(물론 프로그래머의 역량에 따라 완전 다르게 프로그래밍될 수 있는건 어쩔 수 없다.)
단점인 동시에 장점으로 어필이 가능한 부분으로써... OS에 독립적이지만 그러기 위해서는
플랫폼이 기반하여야 한다. OS에 독립적이라는 건 사실 윈도우운영체제외엔 접해보지 못한 나로써는
큰 메리트라 여겨지진 못하고 다만 단점만 부각된다. 플랫폼이 OS위에 있다보니 컴파일자체가
당장은 내가 느끼긴 힘들겠지만 데이터처리량이 방대할 경우엔 문제의 소지가 있지 않을까 싶다.
그럼에도 jsp에 중점을 두고 공부를 하는 이유는 앞서 말한대로 객체지향적 언어이기 때문이다.
결집도가 낮고 응집도가 높으면 그만큼 개개의 모듈은 본연의 임무에 충실할 것이고
이는 언제든 재사용성이 뛰어날 것이며 이를 수정보완할 일이 생길 경우에는 여타 다른 메소드들이나
페이지, 함수들을 신경쓸 필요없이 해당 기능만 수정해주면 될 것 아닌가?
물론 나는 겨우 게시판하나 짜는데 몇일씩 앓아가며 프로그래밍하기때문에 너무 쉽게 생각하는 경향이
없지않아 있다. 그러나 객체지향언어 본연의 목적은 그게 아닌가? 프로그래머가 꿈인 나로서는
이런 이상이 뜬구름이지만 손에 쥐어질듯 선해보이고 따라서 jsp에 집중코자한다.

그럼 제목에 적어놓은 ajax?
이는 2006년에 본격적으로 다뤄지기 시작한 javascript기반의 언어(?)라고 한다.
벌써 4년이 지난 지금에서야 난 이것이 무엇인가 궁금증을 가져본다...
(이 궁금증을 가지게 하는데있어서까지 도와준 웹2.0 관련 서적들에 감사함을 가져본다;;)
사실 이제 4학년으로 졸업까지 2학기만 남겨놓은 내 입장에서는 웹의 미래, 또는 애플리케이션의 미래가
엄청 중요하다. 어떤 언어가 주름잡느냐도 물론 중요하겠지만 그보다는 어떤 분야에 집중을 할 것인가가
어떤 분야가 소위 돈이 될 것인가가 내게는 정말 중요하기 때문이다.(바로 취업때문에...ㅠ_ㅠ)
따라서 이미 취업을 하고 현장에 있는 사회새내기선배들이나 친구들의 조언을 들어보면
RIA(Rich Internet Application)가 화두라고 한다.
ajax는 위에 말한대로 자바스크립트를 기반으로 하여 dynamic한 처리를 할 수 있도록 도와주는 언어이다.
클라이언트 단에서 이루어지는 처리들을 서버와 계속 통신을 함으로써 클라이언트단의 웹브라우저사용자는
실시간으로 업무를 진행함으로써 실제 브라우저가 하나의 소프트웨어처럼 느낄 수 있도록
통신을 이루게 도와주는 것이다.
이렇게 표현하면 점진적으로 발전해온 웹언어들로부터 서비스를 받아온 수많은 end유저들은
그 강력함을 낯설기보다는 너무 당연시하게 받아들일 수 있겠지만 실제 개발자들의 입장에서는
차원이 다른 얘기라 생각한다.
클라이언트단에서 이루어지는 행위들을 제어할 수 있다는 것만으로도 서버단에서는 수많은 부화를 줄일 수 있으며
또한 보다 강력한 서비스를 제공할 수 있기때문이다.

그럼 나는 jsp를 왜 굳이 ajax같은 dynamic한 markup 언어를 엮는 걸까?
그건 jsp의 MVC패턴을 dynamic한 markup언어를 활용하여 더욱더 구분지을 수 있기때문이다.

view단을 접하고 있는 end 유저의 상황을 markup언어가 통제해줌으로써 서버와의 통신은
서버단의 자료가 필요하거나 서버단에서 현재 client단의 상황을 궁금할때만 이루어짐으로써
자료의 이동은 확연하게 줄 것이다. 하지만 view단을 접하고 있는 end유저는 지속적인 서비스를 제공받음으로써
웹브라우저에서 이루어지는 상황에 만족할 것이다.
이는 액티브X등의 설치가 강요되어 실제 end유저가 프로그램을 설치한다던가 해서 이루어지는 상황이 아닌
순수히 웹에서 이루어지는 상황인 것이 더욱 매력적이다.

아직 ajax같은 RIA에 대해 공부가 미진한 터라 이런식의 두리뭉실한 결론아닌 결론뿐이 못내리지만
확실히 client단의 자료는 server단의 servlet이 WAS를 통하여 database와 자료를 소통할 것이고
이는 server의 view단에서 client에게 서비스를 제공할 때 dynamic한 mark-up언어를 이용하여
한번의 소통으로 클라이언트의 브라우저가 소스를 이해하고 결과를 출력과 동시에 end유저를 제어하기위해
실제 계속적인 소통이 이루어질 것이기때문이다.

휴... 어떻게 잘 정리가 된건지 모르겠지만 차후에 이 글은 내 배움이 진행됨에 따라 수정되고 수정되어
만족할 만한 결과로 재탄생되길 바란다.

----_이상 웹2.0에 관련하여서는 하단부분에 소개._----
RIA는





웹2.0 이란 (웹2.0컨퍼런스를 통해 팀오라일리가 주장한 정의(?)) ps괄호안은 개인적인 내 의견.
_플랫폼으로서의 웹(플랫폼이 더이상 데스크톱에 주거하지 않는다. 더이상 소프트웨어가 아니란 말)
_집단지성의 원동력이 되는 데이터
  (인터넷은 결코 지역성을 띄지 않으며 인터넷에서의 자료는 언제나 누구에게나 정보화가 가능하고
   따라서 서비스제공자는 이를 활용하라??)
_참여 구조에 의한 네트워크 효과 (서비스 제공자는 세계를 대상으로 접근성을 가지고 그들을 콘텐츠화시켜라)
_여러 시공간에 흩어져 있는 독립적인 개발자들이 공동으로 참여해 혁신하는 시스템이나 사이트
  (Open API - 이는 하나의 혁신이 될수 있을 것인가?... 이는 깊게 공부할 필요성이 느껴진다.)
_콘텐츠와 서비스 신디케이션을 통한 가벼운 비즈니스 모델
  (RSS, ATOM.....?)