Entries for month: January 2010



Acrobat.com for iPhone 출시
Category : Mobile Comments : 7 Comments Posted by 장창학 at 1:47 PM

Acrobat.com mobileAcrobat.com의 서비스를 아이폰에서 이용할 수 있는 어플이 나왔습니다.

Photoshop.com을 이용하는 모바일포토샵이 나온 이후 약 두어달만인데요. 우선 모바일 포토샵이 아이폰으로 사진을 찍어 편집한 후 자사의 Photoshop.com으로 전송할 수 있는 기능이 주요하다면, Acrobat.com의 모바일서비스는 사진을 찍어 PDF로 변환하여 Acrobat.com으로 전송하거나, 사진갤러리에서 PDF를 생성하거나, Acrobat.com에 업로드된 PDF문서를 열람하는 기능이 주로 제공됩니다.

또한 변환된 PDF를 이메일이나 Fax로 전송가능합니다. 한국의 경우 국가번호82와 0을 뺀 지역번호와 함께 팩스번호를 입력하면 됩니다. 예를 들어 팩스번호가 123-4567이고, 지역이 서울이라면 82 2 123 4567이 되겠죠.(단, 계정별로 스캔5건, 팩스2건을 무료로 주는 것 같습니다. 그 이상쓰려면 돈내라 이거죠 ㅠㅠ;) 팩스가 오긴 오는데 오류가 좀 잦습니다. 단 오류나면 다시 보내오더군요.

scanR이라는 곳에서 Adobe의 허가하여 제작 배포하는 거 같습니다. Adobe 계정이 있다면 바로 가입하여 사용할 수 있습니다.

다음은 이 어플을 이용하여 사진촬영 후 PDF로 변환한 샘플입니다.

Sample PDF

 


ColdFusion에서 DB보안을 강화하려면?
Category : ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 12:55 PM

ColdFusion 뿐만 아니라 PHP등에서도 취약한 코딩방법에는 SQLInjection 공격 등에 노출되기 쉽습니다. SQL구문을 작성할때 cfqueryparam 태그로 Data의 타입과 값의 범위를 지정해서 회피하기도 하지만 더 중요한 것은 웹호스팅 환경이 아니라도 DBA가 아닌이상 ColdFusion코드로 DB를 생성하거나, Database를 Drop하는 등의 권한을 주면 안되겠습니다.

MySQL등의 DB계정생성시 권한을 최소화할 수 있지만 간단하게 ColdFusion서버내에서 제한하려면 각각의 엔진의 관리자모드에서 Data Source Name을 생성시 권한을 제한하면 됩니다. Database를 생성하거나(Create), 삭제하는(Drop) 등의 권한을 제한하고, Select, Insert, Update, Delete권한만 주어 최소화하면 됩니다.


jQuery 1.4 출시
Category : jQuery Comments : 댓글쓰기 Posted by 장창학 at 10:00 AM

Adobe ColdFusion 8부터는 AJAX관련기능이 대폭강화되어서 일부 Grid도 간단하게 AJAX로 출력할 수 있겠되었습니다. (폼요소의 Auto suggest기능, Auto save 등) 아울러 다양한 Javascript소스들이 추가되어 최근에 jQuery를 공부하고 있는데요. 오늘 아침에 출근하는 택시(늦잠을 자버려서 ㅠㅠ)안에서 Adobe Feed를 아이폰의 RSS로 읽던 중 jQuery가 1.4로 업데이트 되었다는 소식을 접했습니다.

젠장 엊그제 1.3 책 샀는데 좀 있다 살걸 했습니다만, 뭐 기초가 중요하므로.. Flash나 Flex에서도 할 수 있는 간단한 동적인 화면구성은 복잡하게 Actionscript나 Flex또는 Flash를 왔다갔다 하지 않으면서 신기하게 화면을 구성하니 참 재미있습니다. 프로그래밍 언어를 공부하면서 재미 느낀건 ColdFusion 이후로 처음인거 같습니다. 그만큼 쉽고 재밌단 것이겠죠.

그렇습니다. 언어는 재밌고 쉬워야 합니다. 그러면서 강력해야 합니다. HTML5가 나오면 Flash나 Silverligh와 같은 플러그인을 남발하지 않아도 간단하게 그들이여야만 했던 것들이 구현됩니다. 아직 구글의 크롬베타버전외에 HTML5를 지원하는 브라우저는 없지만 구글이 HTML5를 미는 이유는 특정 회사의 Plugin에 종속적이지 않고, 범용브라우징을 보장하며, 무엇보다 강력하고 쉬운 언어이기 때문인데요. 물론 Adobe나 Microsoft입장에서는 자사의 브라우저 플러그인이 사라지길 절대 바라지 않겠지만 말입니다.

최근에 아이폰, 넥서스원 등 많은 스마트폰이 나오고 있고, 기존의 웹을 이 스마트폰에 최적화하는 작업을 많이 하고 있는데요. 아이폰을 제외한 나머지 스마트폰에서 Flash가 구동되긴 하지만 역시나 구동이 되므로서 너무 Flash를 남발하는 상황도 많이 연출되어 결과적으로 Adobe가 주구장창 입에 침이 마르게 자랑하는 "최상의 사용자경험"이 애플의 스티브잡스가 염려하는 상황인 단말기가 뻗어버리는 상황과 악성 Actionscript(특정 URL을 로드하거나, 광고창을 띄우는 등)가 활개치는 부정적인 면에 직면하여 "최악의 사용자경험"을 만들기도 하는 것을 보면 역시 범용 브라우저에서 구동되는 표준 Javascript와 HTML이 가장 최상의 선택이 아닌가 싶습니다. (물론 이들로도 악성을 많이 만들어내고 있지만...)최근 아이폰에서 구동되는 웹브라우저기반 게임은 모두 이런 HTML, AJAX 기술이 근간을 이루고 있어 Javascript해도 밥먹는 시대는 온거 같네요. ㅎ

암튼 여러분들도 jQuery 공부 시작해 보시길.. 은근히 땡깁디다.ㅋㅋㅋㅋ

 


Haiti를 도와주세요.
Category : Miscellaneous Comments : 댓글쓰기 Posted by 장창학 at 9:21 PM

Save Haiti Quake Victims!!!

작지만 작은 정성 담아 기부를 했습니다. 부끄럽게도 말이죠. 10만명이 죽거나 다쳤다는데 왜 가난한 나라만, 왜 가난한 사람들만 이렇게 아파야 하는 것일까요? 신이 진정 존재한다면 도대체 얼마나 더 많은 피와 눈물과 기도를 원하는 것인지 물어보고 싶네요. 있는 자가 원하는 것은 쉽게 이루워 주면서 힘들게 사는 사람들 한끼 따뜻한 주먹밥 하나도 허락하지 않는 이 세상은 어쩌면 누구의 말대로 낙원이 아니라 지옥인가 봅니다. 힘없고 나약한 아이티의 사람들의 고통이 오늘은 몹시 가엽기만 합니다. 지금 아래의 링크를 따라 클릭하시여 조그만 도움주실 것을 진심으로 부탁드립니다. 도와주세요.

아이티 돕기(네이버 해피빈) : http://happybean.naver.com/donation/IssueServiceMain.nhn?thmIsuNo=135 


ColdFusion Flex File Upload
Category : ColdFusion Comments : 4 Comments Posted by 장창학 at 4:55 AM

Adobe ColdFusion 9에서는 cffileupload라는 태그(Railo, OpenBD, Adobe ColdFuaion 8이하 지원안함)를 지원하여 간단한 CFML코드 몇줄로 Flash기반의 파일업로드 어플리케이션을 쉽게 만들 수 있습니다. (참조 : Adobe ColdFusion 9의 새로운 태그 2가지 - cfmediaplayer, cffileupload) 일반적으로 http프로토콜을 이용하는 웹서버는 10~20MB가 안정적인 파일전송 용량입니다. 물론 그 이상의 파일도 전송할 수 있지만 중간에 전송이 끊어지는 경우 이어전송이 안되므로 비교적 저용량의 파일을 전송하는데만 이용합니다. 그래서 대용량의 파일을 업로드할 경우 ActiveX나 Java등을 이용했는데, Flash Player 8이 나오면서 Flash에서도 이런 대용량 파일전송이 가능해 졌습니다.

문제는 ColdFusion과 같이 빠르게 웹어플리케이션을 만드는데 촛점이 있는 언어에서는 Flex나 Flash로 파일전송 어플리케이션을 만들어야 했는데요. Macromedia ColdFusion MX 7버전이상부터는 CFML자체(Flex의 MXML과는 다른 언어이지만 단순 텍스트 코드만으로 SWF를 만드는 것은 같음. ColdFusion 내부적으로는 MXML을 씀.)만으로 SWF를 생성하는 기능이 추가되었고, 주인이 Adobe로 바뀐 뒤 올해 출시된 Adobe ColdFusion 9부터는 Adobe ColdFusion 8에서 지원했던 여러 SWF관련 태그와 마찬가지로 cffileupload라는 태그를 추가함으로써 ColdFusion개발자가 바쁜시간을 쪼깨어 Flex로 파일업로드 어플리케이션을 만들지 않아도 되도록 개발 편리성을 극대화했습니다. (물론 순전히 ColdFusion으로만 구현할 수 도 있습니다. http://www.asfusion.com/examples/item/file-upload-with-coldfusion-flash-forms 참조)

더욱이 File용량, 확장자필터링, 오류예외처리, 개별 파일 전송 및 전체파일의 전송완료시의 이벤트처리 등 Flex에서는 다소 구현이 복잡한 것을 cffileupload태그의 Attributes로 제공하여 정확히 한줄의 코드로 Flex기반의 File 업로드 어플리케이션의 생성 및 브라우저출력, 그리고 앞서말한 여러 속성들을 생성할 수 있습니다. Flex의 경우 화면을 이루는 mxml코드와 이벤트처리, 예외처리를 위한 actionscript코드를 생성해야 하고, 더욱이 서버측 언어, 가령 PHP 등의 코드도 필요하게 됩니다. 물론 이 경우 좀더 유연하게 어플리케이션을 제작할 수 있지만 바쁜 웹개발자에게 솔직히 파일업로드 하나 만들자고 수일에 걸쳐 Flex와 Actionsctipt, 그리고 PHP까지 하라는 것은 좀 많은 부담이지요. ColdFusion하나만 알면 쓸만한 어플리케이션을 단 한줄로 만들수 있으니까요.

그런데, 여느 상용제품에 대응하는 OpenSource가 그렇듯이 cffileupload태그는 Adobe의 제품에서만 지원하는 태그입니다. Railo나 Open BD에서는 사용할 수 없죠. 물론 Javascript Flashvars로 제어할 수 있도록 Flex로 어플리케이션을 만들고 ColdFusion에서 Custom Tag로 만들거나, 아예 소스가 공개되어 있는 Railo나 Open BD의 소스코드에 cffileupload를 지원하도록 스스로 기능을 확장해 버릴 수 있지만 시간과 노력이 많이 필요합니다. 알아야 할 기술도 더 많이 늘어나고요. 제가 위에서 지난 10월 소개한 Daniel Vega의 Adobe 기술문서(참조 : Adobe ColdFusion 9의 새로운 태그 2가지 - cfmediaplayer, cffileupload)를 참조하시면 어떻게 Adobe ColdFusion 9에서 쉽게 파일업로드를 생성하는 지 확인할 수 있습니다.

오늘은 소개한 글의 원작자인 Daniel Vega가 RaiForge에 공개한 CFMU(ColdFusion Multi Upload)를 이용하여 Railo나 Open BD에서 Flex기반의 파일업로드를 구현하여 보도록 하겠습니다. Flex코드는 공개되어 있지 않고, 컴파일된 SWF파일만 이용하므로 Flex코드능력은 필요하지 않습니다. 물론 이 SWF는 제어가 가능합니다. 우선 CFMU 소스를 한번 살펴보세요. 간단하게 로컬의 Railo나, Open BD에서 테스트해보시길 바랍니다. 소스내의 demo에서 보시면 파일확장자 필터링이나, 용량, 업르드갯수제한, 업로드디렉토리 변경 등 Flex원본 소스가 없어도 대부분의 파일업로드 기능제어가 가능합니다. (문제는 이 원본 Demo소스가 정리가 좀 안되어 있고, 일부 오타가 있어서 :( 간단하게 정리를 다시 했습니다. 사실은 제가 필요해서 였죠.)

우선 소스압축을 풀면 나오는 cfmu 디렉토리와 안의 파일은 수정할 일이 없습니다. swf파일과 해당파일을 cfmodule태그로 동적으로 로드하기 위한 uploader.cfm 등이 있습니다. 그리고 uploads디렉토리는 업로드된 파일이 업로드될 곳입니다. CFMU의 여러 데모소스에서는 사용자 Session을 가져와 사용자별 디렉토리를 만들고 해당 디렉토리에 업로드 하는 등의 데모도 있지만 여기서는 가장 일반적으로 파일업로드 파일확장자제한, 업로드디렉토리, 그리고 jQuery를 이용하여 업로드된 항목의 파일명을 동적으로 업로드 완료시 리턴을 받아오는 것(DB에 파일명을 넣을 경우)을 구현해 보겠습니다. 다음의 두 파일만 원하는데로 수정하면 됩니다.


About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments