통계 위젯 (화이트)

1170
487
2183754

저작권

모든 내용은 허락없이 상업적으로 사용하실 수 없습니다.
- 오광섭 -

클릭몬 (와이드)


ActiveX 컨트롤, 프린팅에 관한 잡담.. ▣ 컴터야그 ▣

내가 만들어본 ActiveX 컨트롤들은 대부분 데스크탑 어플리케이션과 웹어플리케이션, 모두를 위해 만들어진 것 보다는 웹 어플리케이션을 위한 것들이 대부분이었다.. 웹 어플리케이션에 사용되는 ActiveX 컨트롤은 UI를 갖는 것과 그렇지 않은 것으로 분류해볼 수 있는데, 전자는 MFC나 WTL을 활용하여 만들게 되는 경우가 많고 후자는 ATL을 사용하는 경우가 많다..

하지만, 현실에서는 거의 대부분이 UI를 갖고 있는 경우가 많고 MFC를 사용하는 경우가 대부분이다.. 물론, 다른 사람의 경험은 이와 다를 수 있다.. 비베(VB, Visual Basic)로 만들수도 있고, 델파이(Delphi)로 만들수도 있고, C++빌더 등 Win32 환경의 데스크탑 어플리케이션을 만드는 개발툴로는 다 만들어 낼 수가 있다.. (사실 따지고 보니 그런 개발툴이 Microsoft와 볼랜드 말고는 없는 것 같다.. 윈도우즈에서는 MS 때문에 모두 다 죽었고 볼랜드만 간신히 연명하고 있다.. 하긴 더 오래전에는 볼랜드 때문에 다른 개발툴은 살아남지 못하던 시절도 있었다.. 이때는 볼랜드가 지금과 같은 운명에 처할줄 아무도 몰랐다.. 당시 난 Microsoft Windows에서 돌아가는 프로그램을 개발하는 개발툴은 Microsoft가 가장 잘 만들 수 있을 것이라는 생각에 VC++ 1.5로 공부를 시작했는데, 주변에서 왜 볼랜드 C++을 사용하지 않느냐는 이야기를 무척 많이 들었다.. 주변에 VC++을 사용하는 사람이 거의 없을 정도로 볼랜드가 강세였다.. 그러던 볼랜드가 요즘에는.. 격세지감이다..)

어느날 내가 만든 ActiveX 컨트롤은 인쇄시 아무런 내용도 안 나오는데, 플래쉬의 경우는 내용물이 찍힌다고 개선요구가 들어온 적이 있었다.. 하지만, 처리하기가 애매한 상황이었는데, 내가 만들던 컨트롤은 에디터 컨트롤로 에디팅 모드에서는 프린팅이 불가능했다.. 뷰잉모드에서 처리를 하려고 했더니 내용이 무지 길어지는 경우 웹브라우저의 페이징에 의존하지 못하고 내가 페이징을 해야 했으나 일부 내용은 웹브라우저가 프린팅을 담당해줘야 하는 부분도 생기게 마련이므로, 원천적으로 인쇄라는게 불가능한 구조였다..

플래쉬 콘텐츠인데 길이가 세로로 매우 길어서 A4 용지 4~5 페이지가 나올 분량으로 길다면 어떻겠나? 정상적인 구조라면 Acrobat Reader 처럼 문서를 읽어 그 안에서 페이징 하는게 맞다.. 하지만, 내가 만들던 것은 웹 브라우저 안에서 마치 웹 문서처럼 동작을 했으므로 문제가 발생.. 게시판에서 text area 대신 동작하는 웹에디터나 비슷하다고 보면 된다.. 하지만, 웹 에디터는 결과물을 HTML로 내면서 최종 모습이 웹브라우저가 처리 가능한 웹문서인 반면, 우리 컨트롤은 그렇지 못하다는게 골치아픈 상황을 만들고 있었다..

결국 기준 포멧을 HTML로 하지 않는한 해결할 수 없는 문제로 지금까지 해결이 안되고 있는 부분인데, 최근에 .NET의 Smart Client (혹은 Rich Client)의 경우 UI를 갖는 녀석도 그냥 웹브라우저에서 인쇄를 하면 그냥 인쇄가 되는 모습을 보면서 신기해 했었는데 이때 예전 일이 떠오르더라.. 최신 기술이 이럴땐 편리한게 많다..

사실, MFC로 만든다고 해도 프린팅 자체가 문제가 될 것은 없다.. OnDraw 이벤트 핸들러에서 DC에 그려주면 간단히 해결된다.. 페이징 문제가 웹 문서 안에서 같이 이루어져야 하니 문제지.. 그리고 .NET 환경의 단점 하나.. 이런 저런 여러 편리한 점들을 많이 제공해주지만, 항상 공짜는 없다.. 이런 것을 얻는 대신 단점이 있으니 초기 기동이 절라 느리다는 점.. 아무래도 .NET 프레임워크가 시스템에 올라오는데 걸리는 시간 같은데, 참고 기다려주기 힘들 정도로 느리다.. OS 부팅시 메모리에 같이 올려버리면 안되나? 왜 사용자에게 느리다는 느낌을 줄 정도로 방치를 하고 있는지.. 쩝.. 이래서 아직까지는 서버 기술일 수 밖에 없는 것 같다.. 클라이언트 개발에 써주면 좋고, 안 써줘도 리눅스나 유닉스와의 서버쪽 경쟁에 바쁘니 별로 신경 못 쓰는건지.. 쩝.. 뭐든 쉽게 공짜로 죄다 얻을 수는 없는 법이다..

공짜는 없다.. 편한만큼 잃는 것들이 있다..

핑백

덧글

  • 비누개발자 2007/08/31 01:10 # 삭제 답글

    올빼미 말고는 윈도 프로그래밍이 되지 않는다는 때가 정말 엊그제 같네요.
  • Mc뭉 2007/08/31 13:54 # 답글

    너무 어려워요...ㅠ_ㅠ;;
  • 미친병아리 2007/09/02 13:16 # 답글

    비누개발자님 : OWL은 이제 .NET Framework 이라는 모습으로 재탄생하고 있으니 그때 향수는 앞으로 .NET에서 느낄 수 있을 것 같습니다..

    Mc뭉님 : ㅎㅎㅎ
댓글 입력 영역