달력

5

« 2020/5 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  
  •  
이번 주에는 Google App Engine에 feel이 꽂히는 바람에 몇가지 작업들을 해보았다.
그중에 하나는 우연히도 Eclipse에서 JRuby 환경을 남들고, 기존에 만들었던 Rails 프로그램이 실행이 가능하다는 사실을 알았다. 사실 이는 Eclipse의 기본 플러그인으로 바로 사용하는 것보다는 RedRails의 설치로 인하여 생기 긍정적인 Side Effect이다.
RedRails Plug-in을 설치할때, JRuby실행을 위한 Plugin또한 같이 설치되었기 때문에, 몇가지 작업과 몇가지 환경 구성을 위한 작업을 해주면 된다.

간략하게 순서를 설명하고, 진행 사항은 화면 캡쳐한 이미지를 이용하여 다시 설명하도록 하겠다.
(여기서 설명하는 방법은 기본적으로 RedRails 1.0 이상 버전이 설치되어 있다고 가정한다.)

- 진행 순서-
1. RedRails가 설치되어 있는, Eclipse에서 사용할 VM을 JRuby VM을 설정을 변경한다.
2. 관련된 플러그인들을  설치한다.
3. DB과련된 Plugin들을 gem을 이용하여 설치한다. (설명은 sqlite를 예로 하였음)

- 설 명 -
먼저 Eclipse를 실행하고, "Ctrl + 3" 키를 눌러서 빠른 찾기 창을 띄우고 "Preperences"를 창 상단에 있는 입력창에 입력한다. 그리고나서 "Preferences"창을 띄운다. (또 다른 방법으로는 Eclipse 메뉴의 Window 메뉴의 하위 메뉴인 "Preferences"메뉴를 클릭해서 창을 띄울수 있다.)

Preferences 창이 나타나면, 왼쪽 상단의 입력창에, "Installed Interpreter"라고 입력을 하거나, 직접 Ruby 설정 Tree 아래에 있는 "Installed Interpreters"를 찾아서 클릭을 한다.  

위 화면에서 보면, Ruby와 JRuby에 대한 VM을 선택할 수 있는 체크박스가 있는데, 여기서 "JRuby VM"을 선택한다. 위에서는 "org.jruby_1.1.6..."으로 표시되어 있는 것을 선택하면 된다.

그리고 조금만 기다리면, 아래와 같은 창이 RedRais(Eclipse)에 나타나는데, 이는 JRuby의 설치 경로가 기존에 설치되어 있는 Ruby의 경로와 다르기 때문이므로, 화면 아래에 있는 "Install"버튼을 눌러 그대로 진행 시킨다.


그러면 Rails를 위한 플러그인들과 라이브러리들의 설치가 아래와 같이 진행될 것이다.


플러그인들이 설치가 완료되고, 기존에 만들어 둔 Rails 프로젝트를 RedRails에서 열어, 서버를 실행을 시킨다.



서버가 Start되어 정상적으로 구동이되면, 웹브라우져에서 "http://localhost:3000" 를 입력하여 서버에 접속을 시키면 정상적으로 연결되는 것을 볼수 있을 것이다.

하지만, 기존에 만들어둔 프로그램이 정상적으로 동작하지 않는 것을 보게되는데, 이경우에는 몇가지 플러그인들을 더 설치해 주어야 한다.
나의 환경은 sqlite3를 이용하여 데이터베이스를 생성하고 어플케이션의 데이터를 저장하기 때문에 sqlite3 플러그인을 설치하는 것을 예로 들겠다.

먼저 다음 두개의 플러그인들을 gem을 이용해서 설치한다.
"jdbc-sqlite3"와 "activerecord-jdbcsqlite3-adapter" 플러그인을 설치하기 위해서는 아래와 같이 명령창에서 실행한다. RedRails가 설치되어 있으면, "Rails Shell"에서 실행하면 된다. 
    - Gem 실행 -
   1. gem install jdbc-sqlite3
   2. gem install activerecord-jdbcsqlite3-adapter

만약 정상적으로 위 명령이 실행이 되지 않는다면, Eclipse를 다시 실행하도록 한다.
버그인지는 모르겠지만, 새로 설치된 플러그인과 환경들이 정상적으로 메모리에 로딩되지 않았기 때문이다.

여기까지 따라왔으면, 한가지 더 수정할 것이 있다. 다름아닌 database 설정에 대한 것이다.
"config/database.yml" 파일을 열어서, adapter 를 sqlite3에서 jdbcsqlite3 로 변경해 주면된다. (아래 설정 예 참조)

- database.yml 설정 예- 
 development:
  adapter: jdbcsqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

위와 같이 설정을 변경하고, 서버를 재 실행하고 테스트 하면 된다.  다음과 같이 Rails Shell에서 실행하면 된다. 이미 잘 알고 있으리고 생각하지만, script/server 라고 타이핑하고 실행하면된다.
아니면, Eclispe에서 Severs View를 열고, 여기서 실행한다.

짤지만, 많은 부분을 달려왔다. 한가지 언급하지 못한 부분이 있는데, gem 명령을 실행해서 update와 Install이 정상적으로 이루어 지지 않고 다음과 같은 메시지가 뜬다면, 현재 로그인 계정에 한글이 들어 있는지 의심해 보아야 한다.

- 에러 메시지 -
 ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory - No such file or directory - C:/Documents and Settings/???
 
JRuby의 문제인지 RedRails의 문제인지 정확하게 알지는 못하지만, 한글 계정으로 윈도우를 실행해서 작업을 할 경우에 나타나는 문제인데, google을 통해서 찾아본 바로는 Unicode에 대한 문제였다. (으~~ 이것 땜시 새벽 늦게 까지 테스트 했다니....)
gem을 캐싱하기 위해서 임시로 만들어 놓는 디렉토리(.gem)인것 같은데, 아직 정확한 문제점을 확인하지 못하고 있다. 몇몇의 설정 파일들과 소스들을 찾아서 검토하고 있는데 정확히 어떤 위치인지 잘 모르겠다. 윈도우즈의 환경변수를 통해서 사용자 계정과 위치를 가져오는 것 같기도 한데, 이 역시 정보가 부족해서, 좀더 찾아와야 할 것 같다.
최근에 JRuby 1.2.0 버전이 올라왔다. 내가 설치한 것은 1.1.6 버전인데, 이 버전에서 해결이 되었으면 좋으련만....

 

Posted by 행복상자

댓글을 달아 주세요

오래 간만에 Ruby On Rails에 관한 이야기를 한다.
내가 좋아하는 Framwork이고, 앞으로의 발정 가능성에 대해서도 항상 눈여겨 보는 Framework이다.
한 동안 회사일로 바빠서, 그 동안 약간의 기술적인 관심만을 남겨두고 있다고, 이제 조금 여유가 생겨서 다시 들여다 보게 되었다.

내 노트북에 설치되어 있는 Rails의 버전은 1.2.6 였는데, 이를 먼저 Upgrade 하기로 하였다.

Rails의 새버전의 설치는 "gem instll rails"라고 도스창에서 실행하면 자동으로 인터넷에서 다운받아 설치하게 된다. 
아래는 이를 실행한 결과이다. 여기서는 rails를 설치할 때 dependency에 대해서는 사용자의 확인을 받도록 별도의 옵션을 명령행에 추가하지 않했다.


만약, 사용자의 확인 없이 rails 설치를 위해서 필요한 패키지들을 모두 설치하려면 아래와 같이 명령창에 넣어서 실행하면 된다. (y옵션을 주면 --dependencies 옵션을 준것과 동일하게 동장한다.)
gem instll rails -y
설치가 마쳐졌으면 아래와 같이 Rails의 버전을 확인할 수 있다.



이제 Rails의 업데이트를 끝 마쳤다. 이번에는 Ruby의 패키지와 컴포넌트를 Update해주는 gem을 업데이트 하겠다. 이는 자신을 업그레이드 해야 하므로 install명령으로는 동작하지 않는다.

아래와 같이 도스창에 명령를 실행시키면 된다.
 gem update --system


이역시 무척 간단하게 실행될 것이다.

마지막으로 embedded DBMS인 sqlite를 지원하기 위해서, 이에 관련된 모듈을 업데이트 하려고 한다.
아래과 같이 실행하면 된다.
gem install sqlite-ruby

 
gem이 이전 버전과 다른 점은 다른 OS의 버전이 있을 때 사용자가 수동으로 이를 확인하고 설치하였었는데, 이 부분이 자동화 된점이 이전 버전과 비교해서 편리해 졌다.

 
Posted by 행복상자

댓글을 달아 주세요

어제는 Roby 세미나에 다녀왔다.
김 정현 책인 2시경에 오라고 해서, 12시부터 자기는 Ruby 투터리얼 강의가 있는데 루비를 알는 사람들은 2시부터 참석하면 된다고 했다. 조금 일찍 도착한 나는 별다방에서 시원하고 단 음료를 시켜놓고, 홀로 요즘 공부하고 있는 자바 소스를 분석하고 있었다.

이젠, 가야지하고 포스코 사거리로 나섰다. 그리고 세미나가 열리는 빌딩을 찾아 갔는데, 이게 왠걸? 느낌이 이상했다. 건물 1층의 보안 요원은 그런 행사가 없다고 하며, 혹시 다른 건물이 아니지 확인해 주었다. 나도 이상해서 전화를 해보았다.
앗 이럴수가 세미나 장소는 가락시장역에 있는 소프트웨어 진흥원 건물이었다. 그 곳은 이전에 Spring 세미나가 열렸던 곳이라 찾는 데는 어려움이 없었다. 하지만 왜 장소를 잘못 알았을까? 참 미스테이한 일이었지만, 이유를 찾는데는 어려움이 없었다. 행사, 세미나 게시판에서 전년도 행사장 위치 소개를 이번 행사 약도로 잘못 보고 헛걸음을 친 것이었다.

암튼 행사는 엄청 늦었다.

행사는 소프웨어 진흥원 건물 5층에서 열렸다. 약 100명 정도의 참석자들이 모여있었다. 나름 준비해온 세미나 자료를 참석자들에게 열정적인 모습으로 설명하는 모습이 이상적이었다. 하지만, 전문적인 Speaker들이 아니기에, 하고싶은 말을 전달하는 과정이 수월해 보이지는 았았다. 그러나 인상적인 것은 자기가 좋아하는 것을 더 많으 사람들에게 전하려는 열정많은 정말 뜨거웠다. 그리고, 제대로 준비해서 전달할 수 있는 기회가 곧 오지 않을까 생각이 들었다.
이 사람들의 열정과 젊음이 정말 부럽다.

몇몇 주제는 낯 설었지만, 흥미로왔다. 그리고 누구나 마지막까지 자리를 지치는 사람들에게만 주어진다는 상품 추첨 시간은 긴장감이 돌았다. 겨우 책 5권 밖에 되지 않아서, 5%의 확률.., 역시나 나는 추첨 운은 없다. 기존에 책을 가지고 있는 사람들이 당첨되어서 책을 포기해 주었지만, 나에게는 기회가 돌아오지 않았다.

세미나 주제중에 JRuby와 Spring Framework의 개발시 사용에 대한 발표가 있었다. 행사장에 많은 사람들은 자바로 개발을 해본 사람들이 많았고, 나역시 관심이 있는 주제이기도 했다. 왜냐하면, Rails의 생산성은 익히 알려져 있기 때문이다. 기기에다 자바 기술의 탄탄함까지 더해진다면이라는 가능성을 항상 염두에 두고 있기 때문에 Ruby와 Rails에도 관심을 가지고 있는 것이다.
세미나는 단순했다. "이렇게 이렇게 사용하면 되지 않을까요? 고객이 원하면 이렇게 하면 되지요" 라는 정도의 이해로 세미나를 진행한다는 것은 무리라는 생각이 들었다.
RubyOnRails의 입장에서 보면, 기존이 자바 Enterprise 기술은 경쟁자일 뿐이고, 극복하지 않으면, 커 나가지 못한다는 입장을 가지고, 타 기술에 대한 정확한 이해없이 융합 또는 양 기술의 동시 사용에 대해서 논하는 것은 시기 상조가 아닐까 싶었다.
정확하게는 Ruby라는 기술이 더 좋은데, 할 수 없이 자바를 사용해야 하는 것처럼 들렸다. (아니라면 정말 죄송)
나도 이야기를 들으면서, 그런데 왜 자바의 기술들을 쓰려고 할까라는 생각이 연신 들었다.
이에 대한 명확한 해답이 없으면, 아마도 한국에서 Ruby라는 기술의 확산은 그리 쉬운 길이 아닐것 같다. 결국 고객들을 설득해 나가야 한다. 고객이 원하는 것을 해 줄수 있다면, 루비든 자바든 다 같이 하나의 툴일 뿐이다.

그동안 많은 새로운 툴들이 나와서 개발자들이 편해질 거라고 했지만, 편해진 시간 만큼 개발자는 더 많은 일과 프로젝트를 하고 있을지도 모른다. 우리들의 Boss는 결코 멍청하지 않다. 고객은 개발시에는 무지하고 멍청해 보일지도 모르지만, 산출물이 나오는 시점에는 어는 누구보다도 예리하고 날카롭다. 그리고 천재적이기까지 하다. 항상 새로운 일들을 준비해 준다.
개발자들은 그러한 천재들을 상대하기 위해서 더 많은 공부와 자기가 습득한 기술들의 단련이 필요하고, 더불의 설득력을 길러야 할 것이다. 기대치 관리를 포함해서 말이다.
(정말 두서 없이 글을 썼다.)

 
 
Posted by 행복상자

댓글을 달아 주세요

  1. 험블 2008.07.01 19:14  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 해당 주제 발표자입니다. 지적 감사드립니다. 저도 지적해주신 부분에 대한 내용이 많이 부족했다는 점을 깊이 통감하고 있습니다. 해당 부분에 대해 더 깊이 고민해보고, 시간이 나는대로 블로그에 글로 정리해보도록 하겠습니다.
    간단히 생각해보면, 1) 자바진영이 제공하는 다양한 기능과, 2) 검증된 확장성이라는 측면에서, 자바의 기술들이 쓰이고 있는 것이 아닌가하는 생각을 해봅니다. 학습비용을 차치하고서라도, 그 부분에 자바가 아직까지는 루비에 비해 우위를 차지하고 있는것도 인정해야할것 같습니다.
    제가 원래 의도하였던 것은, 1),2)와 관련해 루비도 상당한 수준까지는 진전이 있었으나, 많은 오해또한 공존하기에, 그러한 경우에 한해 자바-루비를 필요에 따라 섞어 쓰자는 논지였습니다.
    발표와 논지 모두 부족하였던 점 죄송스럽게 생각합니다. 앞으로도 많은 가르침 부탁드리겠습니다. 좋은 글 감사합니다.

    • 행복상자 2008.07.01 23:19 신고  댓글주소  수정/삭제

      주제 넘치게 쓴 글을 겸손하게 읽어주시니 제가 너무 부끄럽습니다. 최근에 다시 MS의 솔루션에도 관심을 같게 되었는데, 아마도 루비의 영향일 것 같습니다. MS의 ASP.NET 3.5버전의 Extention으로 ASP.NET에서도 MVC Framework을 지원한다고 합니다. 개발자의 생산성과 편의에 다시 눈을 돌린듯합니다. 그리고, MS에서 공식적으로 Ruby를 지원하겠다고 합니다. (C#과 Python과 마찬가지로...)
      기술의 발전은 서로의 장점을 취하는데 있는 것같습니다.
      지금의 자바와 .Net이 서로를 배우고 취하고 성장하는 것과 같이 말입니다.

      험블님의 겸손함의 저를 일깨워 주는군요. 앞으로도 좋은 발표를 통해 개발자 모두의 발전에 큰 도움이 되도록 성원하겠습니다. 감사합니다.

사실 오늘은 최근에 공개한 iPhone SDK 소개 키노츠와 데모 동영상을 보려고 PC를 열었다가  별 생각 없이 .Net MVC를 찾아들어가게 되었다. 의도한 것은 절대로 아니다.
요즘에 나온는 많은 웹 프레임워크들은 경쟁적으로 자기들이 많든 MVC Framework의 우수함을 알리는데 열을 올리고 있다. 그리고 실제로 쓰기에 충분할 만큼 안정성과 성능을 보장해 준다.

그러나 최근에 이도 종지부가 찍힌것 같다.(이는 절대적으로 내 개인적인 소견이다.) 새로 개발되거나 또는 기존 Framework가 버전업이 되면서 MVC Framework들이 유사해 지기 시작했으니 말이다. 이에 가장 큰 영향을 준 Framework는 역시 Rails이다. 개발자에게 필요한 것은(자신을 증명하는 것은), 마지막에 완성된 코드라고 누군가가 이야기 한것 같다. (아마도 최근에 한국에 찾아온 MS의 누군가 였었지요..)

개발자에게는 생산성과 안정성이 가장 큰 이슈이다. 이것은 마케팅적으로 영업적으로 대외에 홍보하는 포장되고 형식적인 것이 아니라, 프로젝트를 함에 있어서 필수적인 것이다.
웹 개발에 있어서는 배포된 Application의 성능과 안정성은 너무나 중요하다. (사실 이외에도 챙겨할 것들은 부지기수 이다.)

그런 면에서 RobyOnRails는 가히 충격적이었다. 마치 Visual Basic을 처음 접할때의 충격과도 같았다. MVC를 지원하기 위한 Simple하고도 직관적인 구조와 개발자가 부담감 없이 익힐 수 있는 기본 명령과 사용법등은 누구를 위한 Framework 인가를 바로 알수 있게 해준다.

지난 몇달전에 일민(Toby)이가 진행하는 KSUG 세미나를 통해, Spring 2.5에서 변화되는 Spring MVC 프레임워크의 변화를 접하게 되었는데, XML과 자바 Annotation 그리고 Auto Wiring를 이용하지만 그 근간은 Rails의 프레임워크라는 생각이 많이 들었다.

많은 프레임워크가 서로의 좋은 기능을 통해서 발전하는 것은 개발자로서는 행복한 선택을 할 수 있어서 즐겁다.

이야기가 길어졌는데, 오늘 내가 본 Micorsoft의 MVC 데모 동영상이다.  



너무나도 쉽고, Rails와 유사히지 않은가?
사실 회사에서는 요즘 .Net이냐 Java냐로 논란이 많다. 그래서 관심있게 본것이다.

아래의 링크들을 이용하면 다른 데모도 볼수 있다.
      - Part 1 - Displaying Data 
      - Part 2 - Editing Data and Making Forms 
      - Part 3 - Advanced Techniques 
      - Part 4 - Testing

Posted by 행복상자

댓글을 달아 주세요