Rev. 2.73

cibox.gif

celum IMAGINE은 오스트리아에 있는 회사에서 만든 온라인 소프트웨어이다. 그림, 사진, 여러가지 문서와 같은 디지털 문서를 처리하고, 가공하고, 배부하는 것을 통합할 필요가 있는 회사에 제공하기 위한 솔루션이다. 그들은 CSS 표준을 사용하는 아주 간단하고, 명료한 디자인을 사용한다. 특징을 살펴보자.

Feature overview

당신이 오직 필요로 하는것은 웹 브라우저 - celum IMAGINE은 어떠한 데스크탑의 플러그 접속도 요구하지 않고, 오직 웹 브라우저만을 통해 전달한다.
약 100가지 파일 형식 - celum IMAGINE은 파워포인트와 워드 뿐만아니라 EPS, TIFF등 거의 100가지 파일형식을 자동변환, 화한 그리고 편집한다.
파워포인트와 PDF 처리 및 배부 - 사업에 요긴한 자료 중 상당량은 파워포인트에 저장된다. celum IMAGINE은 이들을 수시로 처리하고 찾고 배부하도록 도와준다.
이미지 변환및 편집 - celum IMAGINE은 거의 모든 파일형식의 이미지를 편집한다. 약간의 마우스 클릭만으로 정확하게 변환하고 사이즈를 변경한다.
사용자와 팀을 위한 개인 작업 공간 - 팀 협력을 완벽하게 지원한다. celum IMAGINE은 팀원으로부터 목표를 모으고 배부하는 완벽한 도구이다.
똑똑한 배급 도구 - 단일 또는 전체 파일을 배부한다. 전자 우편은 열결과 PIN을 포함해서 보내질 것이다. 스팸 필터링도 회피한다.
똑똑한 검색 - 일단 색인이 붙으면 똑똑한 검색에 의하여 쉽게 자료를 찾는다. 이것은 각각의 사무문서 양식에 색인을 붙이고 찾을 수 있는 PDF를 포함한다.
문서 색상으로 검색 - 이미지를 찾기위해 별다른 힌트없이 이미지의 기본색생에 근거하여 가져올 것이다.
연습이 필요없는 사용하기 쉬운 인터페이스 - 인터넷을 훑어볼 수 있는 사용자라면 어떠한 훈련도 필요없이 celum IMAGINE을 사용할 수 있다. 그럼에도 불구하고 celum IMAGINE은 업무용으로 빈번하게 사용할 이상적인 환경을 전달한다.
중앙 데이터 허브 - celum IMAGINE은 사용자를 완벽하게 연결하고 카탈로그 관리, ERP와 같은 요청은 웹 CMS와 품질관리 시스템을 온라인으로 검색한다.
파워포인트와 워드 지원 - 워드와 파워포인트에서 마우스 클릭만으로 당신의 모든 디지털 자산에 접근한다. celum IMAGINE은 크기를 해결하고 최적화한다.
과정 감시와 자동화 - 당신이 당신의 이미지 및 문서를 어느 누군가 갑자기 이용하거나 바꿔버리는 것에 대한 내용을 알리는 것은 긴급하다. 당신은 이미지 사용의 권리를 확인해야 한다. celum IMAGINE은 이것을 전송하는 특별한 메니저가 있다.
모든 파일을 초고속으로 업로드 및 동기화 - celum IMAGINE은 폴더, CD를 메타 정보를 추가하여 통째로 올려준다. 예를들면 최신 발표자료를 제공하기 위해 현지와 자동으로 동기화한다.
아도비 포토샵 지원 - celum IMAGINE은 아도비 포토샵 이미지를 지원한다. 이미지를 열고 편집된 새이미지를 다시 올려준다.
아도비 인디자인, 쿽익스프레스 지원 - 책자 생성을 위한 완전한 협력도구로 다른 사람은 문서를 인쇄한다. 해결책에 있는 배치 이미지를 추가하고 고해상도에서 자동으로 대체한다. 이미지 분실염려 없음.
높은 보안 - 특히 높은 보안환경을 지원하기 위해 celum IMAGINE은 multi-zone 아키텍쳐를 사용한다. 특히, 배급기능에서 유용할 것이다.
celum.png
celum IMAGINE의 메인화면 스크린샷

소정의 양식을 기입하면 심사 후 테스트-드라이브 계정을 발부 받을 수 있다. 테스트 계정으로 접속해 보니 방대한 양의 자바스크립트가 사용되고 있으면서도 멋스러운 비주얼 효과나 다이네믹함은 없다. 기능면에서는 Fluxiom을 압도하는 것 같다.(Ajax함수가 사용되지는 않음) 그리고 발부 양식에는 "사업과 업무용도로만 유일하게 사용하시오. 공유와 개인 사진관리를 위해서는 flicker.com과 같은 서비스를 추천하오."라고 써있다. Ajax기술을 본격적으로 도입하지 않은 것이 아쉽기는 하지만 iframe을 극도로 활용하여 Ajax가 돌아가는 것처럼 느끼지게 만든다. 자바스크립트를 공부한다면 이 곳을 꼭 한번 둘러보기 바란다.

Comments

"a태그를 a태그라 쓰지 못하고 img태그를 img태그라 쓰지 못하니,
심장이 터지고 애간장이 녹 내릴지라. 이 어찌 통한치 않으리오."
ㅡ,.ㅡ;

모델- Model
Rails 애플리케이션의 모델은 이 애플리케이션이 사용하는 기반 데이터베이스이다. 사실, 많은 경우, Rails 애플리케이션은 관계형 데이터베이스 관리 시스템(RDBMS)에서 지정한 방식으로 데이터 조작을 수행하는 수단이다.

Rails의 중앙 컴포넌트는 ActiveRecord 클래스이다. 이것은 관계형 테이블을 Ruby 객체들로 매핑한다. 거기에서 데이터가 컨트롤러에 의해 조작되고 뷰에서 나타난다. Rails 애플리케이션은 유비쿼터스 MySQL 데이터베이스를 사용하지만, 바인딩은 수 많은 기타 RDBMS (IBM® DB2®포함)에도 존재한다.

원한다면, Ruby코드를 추가하여 애플리케이션 모델 내에서 추가 밸리데이션을 수행하고, 데이터 관계를 적용하거나 기타 액션들을 실행한다. 애플리케이션의 app/models/ 디렉토리에 있는 Ruby 파일들은 ActiveRecord의 다양한 밸리데이션 메서드를 호출할 수 있다. 하지만 이 모델 코드를 스텁으로서 남겨두고 데이터를 저장하고 있는 RDBMS에 의존한다. 예를 들어, 이 예제에서 내가 구현하는 애플리케이션에는(적어도 초기에는) 뼈대 모델 코드만 포함된다.

뷰 - View
Rails 뷰는 Ruby 코드를 저장한 곳에 있다. Rails에는 순수 HTML을 임베디드 Ruby 코드와 결합하는 .rhtml 파일용 템플릿 언어를 포함하고 있다. Rails 애플리케이션 스크린 외형은 일반적으로 CSS 스타일시트로 제어된다. .rhtml 포맷은 HTML에서 발전한 것이다. 실제로 HTML도 유효한 RHTML 템플릿이 될 수 있지만 스크립팅 제어 외에는 이점이 별로 없다.

RHTML은 진정한 템플릿 포맷이다. HTML에 코드를 삽입하는 단순한 방식만이 아니다. 보다 강력한 접근 방식이다. PHP에 익숙하다면 PHP와 Smarty 템플릿을 비교해보라. 임베디드 스크립팅은 코드와 인터프리팅 되지 않은 HTML을 그저 섞기만 한다. 클라이언트에게 무엇인가를 보여줄 때 print 문장을 만들어내는 것은 여전히 코드에서 수행하고 있다.

반대로 템플릿 엔진은 커스텀 세트의 태그를 HTML에 추가한다. 조건, 루프, 기타 로직을 강화된 HTML 마크업의 일부로서 나타낼 수 있다.

컨트롤러 - Controller
컨트롤러는 추상 형식으로 애플리케이션 로직을 수행한다. 애플리케이션의 app/controllers/ 디렉토리에 있는 Ruby 스크립트는 모델 데이터를 변수에 로딩하고 이를 저장하여 이를 조작한다. 하지만 컨트롤러는 데이터가 구체적으로 표현되고 사용자에 의해 입력되는 방식과는 관계가 없다. 일반적인 MVC 다이어그램에서 같은 컨트롤러와 다중 인터랙션이 허용된다. 원시 GUI, 웹 인터페이스, 시각 장애자를 위한 스피치 인터페이스는 모두 같은 컨트롤러와 인터랙팅한다.

하지만 Rails가 그렇게 일반적인 것은 아니다. 대신 웹 페이지 내에 데이터를 제공하고 모으는데 집중한다. 웹 페이지의 레이아웃(색상, 폰트, 테이블, 스타일시트)을 수정할 수 있다.

코드 만들기
Rails가 제공하는 툴은 기본적으로 코드 생성기 세트이다. 나는 워크스페이스와 IDE(Integrated Development Enviroment)를 사용해야 하는 개발 환경 보다 이 방식을 훨씬 좋아한다. 직접적인 프로그래밍 작업을 줄여준다. 스카폴딩(scaffolding)을 무료로 제공하여 직접 코딩하는 부분이 줄어든다.

스카폴딩(scaffolding)은 Rails의 기본 개념이다. 매우 간단한 애플리케이션들의 경우, Rails가 동적으로 클라이언트 HTML 페이지를 만들기 때문에 직접 코딩하지 않아도 된다. 코드 생성의 첫 번째 단계는 미가공 스카폴딩을 만드는 것이다. 그런 다음 커스터마이징 할 수 있는 보다 구체적인 컨트롤러, 뷰, 모델을 만들 수 있다. 하지만 시작부터 그렇게 많은 것을 만들 필요는 없다.

Rails는 고정되고 일반적인 파일 구성에 의존하지만 이 구성은 비교적 융통성이 없다. 다른 파일 및 코드 구성을 실행하려고 한다면 Rails 환경과의 사투를 벌여야 한다. Rails가 제공하는 구성을 따르지 않는 이유가 없다. 프레임웍을 처음부터 디자인한다면 디렉토리 이름과 구조가 여러분이 선택했던 것과 완전히 다르다.

Rails는 빠른 웹 애플리케이션 개발을 보장한다. 완벽한 프레임웍에는 웹 기반 애플리케이션에 가장 많이 사용되는 액션들을 수행하는 매우 유용한 클래스들과 메서드가 포함되어 있다. 무엇보다도 Rails는 우리가 필요로 하는 모든 지원 코드를 갖추었기 때문에 완전한 "Rails 방식"이 가능하다. 이는 다른 툴킷과 프레임웍에 월등히 앞서는 부분이기도 하다.

중급 실습 : Ruby On Rails로 웹 어플리케이션 구현하기

겨우 컨트롤러가 돌아가는 방식을 감 잡았습니다. 뷰의 link_to 명령과 맞물려 돌아가는 컨트롤러에 온클릭(onclick)이벤트를 쑤셔박는데 성공했습니다. 다소 생소하지만 그 심플함에 치를 떨었습니다. a 또는 img태그를 대신 그려주는 멋진 Rails입니다. :)

Comments

'올라로그'의 웹프로그램은 Ruby On Rails입니다. 프로토타입 프레임웍 라이브러리를 공부하면서 적잖게 눈에 밟힌 이름입니다. 프로토타입은 루비 프로젝트에서 파생된 프로젝트라더군요. 목이 쉬도록 열심히 가르쳐 주시는 nohmad 팀장님 덕분에 추진력을 얻긴했지만, 왜 생산성이 향상되는지, 뭐가 좋고 나쁜지 이해도 못하고 있는 실정입니다.(고생 많으십니다...) 조금씩 감을 잡아가고는 있습니다만, 실무에 투입하기에는 아직 이릅니다. 어서 개념부터 탑재해야겠습니다. 아래에 있는 글은 IBM에서 Rails를 다룬 자료를 추린것 입니다.

rails.png

루비(Ruby)는 일본의 Yukihiro Matsumoto가 개발한 순수한 객체 지향 스크립팅 언어이다. 텍스트 프로세싱과 시스템 관리 태스크를 핸들하도록 디자인되었다.

Rails는 대부분의 웹 애플리케이션의 구현을 자동화한다. 더욱이 웹 애플리케이션의 개별 양상들을 수행하는 Free Software 라이브러리들과 비교해 볼 때, Rails는 모든 양상에 맞는 통합된 툴 세트들을 포함하고 있다. Ruby는 무료의 간단하고 단순하며 확장성 있고 이식 가능한 인터프리티드 스크립팅 언어로서, 빠르고 쉬운 객체 지향 프로그래밍으로서 텍스트 파일을 처리하고 시스템 관리 태스크를 수행하는 많은 기능들을 갖추었다. Rails는 Ruby의 풀-스택, 오픈 소스 웹 프레임웍으로서 애플리케이션 구현이 쉽고, 코드는 적게 든다.

풀-스택(full-stack) 프레임웍이란 Rails의 모든 레이어들이 함께 작동하도록 구현되었기 때문에 처음부터 끝까지 한 언어를 사용할 수 있다는 것을 의미한다. Rails 안에서 모든 것(템플릿, 제어 흐름, 비즈니스 로직)은 Ruby로 작성된다. Rails는 리플렉션과, 설정 파일과 주석을 통한 런타임 확장을 선호한다. Rails를 이해하기 위해서는 모델/뷰/컨트롤러(MVC) 아키텍쳐를 알아야 한다. 이 방식이 Rails에만 적용되는 것은 아니지만, Rails는 매우 명확하고 집중적으로 MVC 방식을 사용한다.

펄 또는 PHP 같은 스크립팅 언어를 작성해 본 경험이 있는 사람이라면 루비 신택스도 익숙할 것이다. 그러나, 펄 또는 PHP와는 다르게, 라인 종결자로 세미 콜론(semi-colon)을 사용해야 한다. 어떤 개발자들은 이런 사실 때문에 혼란스러워 할 수도 있지만 실제로 이것은 개발 속도를 높일 수 있다.

< 뭔 말인지 하나도 모르겠소! 외계어요?>

초급 실습 : 루비(Ruby) 프로그래밍

Comments