웹 개발2008. 12. 27. 22:26

1. 실버라이트가 2.0 넘어가서 좋아진 점은? 초기화가 간단해졌더군요.

실버라이트 사이트에 있는 메뉴얼 다운로드 받아서 보다가 내용이 너무 단편적인 것 같아서
도서관에서 책을 빌려보았습니다.

우선은 쉽게 구할 수 있는 실버라이트 1.1에 대한 책을 빌려서 따라하기 시작했습니다.
1.1에서 2.0. 분위기나 명령어들이 변한 게 좀 있더군요. 예전 코드가 실행 안 되는 것도 있고, 어떻게 2.0에서 바꿔서 작성해야 할지 몰라서 실행해보지 못 하는 예제도 있었습니다.
(이런 점은 레일즈가 하위 버전과 많이 달라져서 예전 책으로 보는 사람이 난감해 하는 거랑 비슷하네요. 기본적으로 하위버전 호환성은 지켜주었으면 하는데 말입니다. ㅡㅜ)

대강 책으로만 이해하고 넘어가야지 했다가 문득 이러다가 실행해 보는 게 너무 없어지는 것은 아닐까?하는 위기감이 들었습니다. 그래서 인터넷에서 예전 버전에 쓰던 명령어가 어떻게 바뀌었나 찾아보기 시작했고, 그렇게 바꿔서 작성해보기 시작했습니다.

그러다가 문득 든 생각. 왜 이렇게 바꿨을까? 이거 너무 복잡하지 않을까?

복잡에서 또 다른 복잡함으로 넘어갈 이유는 없지 않을까 하는 생각이 들더군요.

복잡하던 명령이 없어진 것은 그걸 안 써도 된다는 것이 아닐까?
이미 디자인에서 작성하고, 이름을 붙여준 것을 코드에서 다시 정의해주는 의미가 있을까?

그래서 예전 1.1에서 해주던 초기화 코드들을 과감하게 빼 보았습니다.
대신 2.0에서 기본적으로 적혀있는 InitializeComponent()가 그 역할을 해 줄 것을 기대하면서 실행 해 보았습니다.

예전의 여러줄의 걸쳐서 xaml을 불러오고, UI 개체의 인스턴스를 만들고 하던 부분이 매소드 하나 부른 것으로 바꿨다니 확실히 편해졌긴 하네요.
(하지만 이건 이전 버전의 불편한 점의 개선이지 실버라이트의 장점이 될 수 있는 부분은 아닙니다.)


2. 실버라이트도 디자인하고 코딩하는 것은 마찬가지인데 플래쉬보다 좋은 점은 뭘까요?

플래쉬도 메뉴 만들때 그림 그리고 스토리보드 만들고, 마우스 이벤트에 따라 스크립트 만드는 걸 실버라이트에 비교하면
실버라이트에서 비슷한 과정을 거쳐서 만드는 데 실버라이트가 좋은 점은 무엇일까요?

메뉴를 동적으로 생성할 수 있다는 점. 메뉴 만들 때 필요한 정보를 파일이나 DB에서 불러와서 상황에 맞게 변화를 줄 수 있다는 점?

플래쉬에서는 그것을 못 할까요? 어쩌면 할 수 있을지도 모릅니다. 단지 플래쉬를 다루는 사람이 디자이너의 경우가 많았기에 파일 처리라던가 DB 처리와 같은 프로그램과 관계된 부분을 생각 안 했을지도 모르겠습니다.
플래쉬가 그랬을지다도 Flex나 Air에서는 이런 것들을 다 처리할 수 있을텐데 실버라이트의 좋은 점은 뭘까요?

평소에 쓰던 언어를 혹은 방식을 그대로 쓸 수 있다는 점이겠죠?
C#을 그대로 쓸 수 있고, xaml을 이용하는 면에서 WPF하고 비슷하기에 기존 사용자가 쉽게 접근할 수 있습니다.
실버라이트를 보면 ASP.NET 2.0하고 구조가 비슷하다는 느낌도 듭니다. 디자인하고 비하인드 코드를 분리해 놓은 점이 말입니다. (MS가 시장 진입에 쉽게 하려고 기존 개발자가 사용하던 것을 새로운 곳에 그대로 적용하는 전략 덕분이겠죠^^;)

개발자가 아무리 새로운 것을 배우는 것을 좋아한다고 할지라도 바쁜 프로젝트를 하는 와중에 전혀 새로운 것을 배우는 것은 쉬운 일이 아니기에 기존에 알 던 것을 그대로 이용할 수 있다는 점은 좋은 점이겠죠 :)


3. 접근하기 쉬운 JavaFX와 같은 또다른 RIA 언어와 비교하면 어떨까요?

제 경운 C#을 알고 상황에서 실버라이트를 접근한 거고, 어떻게 올 초에 xaml로 디자인 할 일이 있었던 것이 더 쉽게 접근할 수 있는 계기가 되었지만, 순수(?) 자바 개발자라면 어떻까요?

웹 쪽에 UX를 더한게 RIA라면 웹 시장의 많은 부분을 차지하고 있는 JAVA 진영이 접근하기 쉬운 것은 실버라이트보다 JavaFX이겠죠? 다만 실버라이트가 유리한 점은 JavaFX보다 빨리 나와서 책이라던가 사용자들을 어느 정도 확보해 놓았다는 점이고 데스크탑 어플리케이션을 웹으로 옮긴다는 점에서 데스크탑 어플리케이션 개발자들이 접근하기 쉽다는 점이겠죠?

문제는 웹에서 돌아가는 프로그램인데, 데스크탑 개발자들이 얼마나 빨리 웹의 특성을 자유자재로 다루는 가와 웹과의 연동을 어떻게 처리하냐가 관건일 수도 일 수도 있을 겁니다. C#을 할 줄 알아도 ASP.NET를 다루는 것이 쉬운 일이 아닌 반면, Java를 알면 JSP는 쉽게 할 수 있다는 점에서 JavaFX가 더 유리한 점일 수도 있고요.

디자인이라면에서 보면 JavaFX는 Adobe Photoshop CS3에서 플러그인을 달아서 디자인을 바로 넘길 수 있는 반면, 실버라이트는 디자이너가 Xaml을 배워야 하는 어려움이 있을 수 있습니다. 우리나라의 경우 실버라이트 시장이 형성되는데 시간이 걸릴텐데 복잡한 코드처럼 보이는 xaml을 공부하려는 디자이너가 얼마나 될지도 관건이고요.

HTML에 레이아웃을 테이블이 아닌 CSS로 짤 수만 있어도 개발자에게 인기 좋은 디자이너가 될텐데, 제가 많은 디자이너를 못 봐서 아직 그런 사람을 못 본 상황에서 Xaml을 다루는 디자이너란 관련된 큰 프로젝트가 생기지 않는 이상 양성되기 쉽지 않을까 하는 생각도 듭니다. JavaFX처럼 포토샵으로 레이어 나눠서 넘겨주면 그걸 받아서 프로그램 짜는 편이 편하겠지요.

저도 사실 JavaFX는 데모랑 설명 약간만 보고 하는 말이라서 정확히는 모라하기는 뭐하지만, JavaFX 잘 다루는 분과 만나서 얘기해보고 싶습니다 ^^*
Posted by net4all