'Ruby on Rails'에 해당되는 글 6건

  1. 2008.05.15 Ruby on Rails 시작하기(6).. 뷰 생성하기 (6)
  2. 2008.05.14 Ruby on Rails 시작하기(5).. 간단한 컨트롤러 작성 (1)
  3. 2008.05.14 Ruby on Rails 시작하기(4).. 웹 서버 (1)
  4. 2008.05.14 Ruby on Rails 시작하기(3).. Rails Project 생성 (1)
  5. 2008.05.14 Ruby on Rails 시작하기(2).. Rails 의 구조
  6. 2008.05.14 Ruby on Rails 시작하기(1).. Rails 시작하기
2008.05.15 14:30

Ruby on Rails 시작하기(6).. 뷰 생성하기

Ruby on Rails 뷰 생성하기

 지난번에는 간단하게 컨트롤러에서 직접 텍스트를 출력해 보았습니다. 하지만 레일즈의 MVC 규약을 따르고자 한다면 당연히 텍스트는 뷰에서 출력해야 맞겠죠?

그럼 어떻게 컨트롤러에 있는 녀석을 뷰에다 넣는지 간단하게 알아보도록 하겠습니다.

레일즈는 다른 웹 프레임워크 처럼 템플릿을 지원합니다.

우선 뷰를 생성해 보겠습니다. 아래와 같이 /views/greeting/index.rhtml 파일을 생성하겠습니다.
사용자 삽입 이미지

생성한 html 파일에 다음과 같이 보여줄 문구를 작성합니다.
<h1>Greeting#index</h1>
<p>Find me in app/views/greeting/index.rhtml</p>

그리고 이전에 만들었던 컨트롤러 안의 내용은 삭제 하도록 하겠습니다.
 class GreetingController < ApplicationController
  def index
    render :text => "<h1>Welcome to your first Rails application</h1>" -> 삭제
  end
end
위와 같이 작성하고 익스플로러에서 "새로고침"을 하면 ?  아래와 같은 페이지가 뜨는 것을 볼 수 있습니다.
URL 에는 index 라는 액션이 지정되어 있지 않은데 이것은 기본적으로 index를 찾게 설정이 되어 있나 봅니다.

사용자 삽입 이미지

컨트롤러와 뷰 연동하기

MVC 에서는 일반적으로 컨트롤러가 제공하는 모델데이터를 출력(렌더링) 합니다. 그럼 컨트롤러에 선언되어 있는 값을 어떻게 뷰에서 출력하는지 알아보도록 하겠습니다.

우선 컨트롤러에 아래와 같이 작성해 보도록 하겠습니다.
 class GreetingController < ApplicationController
  def index
    @welcome_message="Welcome to your first Rails application"
  end
end
@ 는 변수를 선언할때 쓰는 것인가 봅니다 ^^

그리고 뷰에도 역시 화면에 렌더링할 녀석을 작성해 줍니다.
<h1><%= @welcome_message %></h1>
<%= 와 %> 태그 사이에 루비 표현식을 추가함으로써 뷰에 새로운 메세지를 출력해보도록 하겠습니다.
이제 다시 "새로고침"을 해보겠습니다.

사용자 삽입 이미지

짠~ 컨트롤러의 인스턴스 변수에 셋팅한 메세지가 화면에 렌더링된 결과를 볼 수 있습니다.
이거 정말 간단하네요. 이렇다할 설정없이 이미 지정된 네이밍 컨벤션을 이용하여 정말 간단하게
컨트롤러와 뷰를 작성해서 화면에 뿌려줬네요 ^ㅡ^

저 같이 환경 셋팅하고 서버 설정하고 컨텍스트 설정하고.. 이런거에 귀차니즘을 느낀 사람이라면
편리하고 빠르고 쉽게 개발을 할 수 있겠다란 생각을 갖게 되네요 ㅋㅋ 자~ 앞으로도 할일이 많으니
계속 진행해 보도록 하겠습니다.

ps. 오늘은 일단 시간이 없어서 여기까지 하고 다음에 연재 하도록 하겠습니다. ^^
Trackback 0 Comment 6
  1. Favicon of http://blog.naver.com/neoplog BlogIcon 네피 2008.05.15 17:53 address edit & del reply

    좋은 정보들이 가득하네요! 잘 보고 갑니다^^

    • Favicon of https://chery.tistory.com BlogIcon chery 2008.05.16 01:26 신고 address edit & del

      들려 주셔서 감사합니다~ ^^

  2. Favicon of http://shibatakan.com/wordpress BlogIcon SHIBATA KAN 2008.06.13 14:26 address edit & del reply

    지나가다가 살포시 한마디만 적어보도록 하겠습니다.
    @로 시작하는 건 변수이긴 한데 변수중에서도 인스턴스 변수를 뜻합니다. 일반적인 로컬변수는 아무것도 붙히지 않고 사용하죠. 그리고 글로벌 변수 같은 경우에는 $를 붙혀서 사용한답니다.

    혹시나해서요 ^^

  3. chery 2008.06.16 14:46 address edit & del reply

    아~ 좋은 지적 감사합니다~

  4. 부평인 2012.12.17 14:39 address edit & del reply

    루비 입문하기 시작한 초보입니다~
    정말 알기 쉽게 잘 설명되어 눈에 확 들어왔네요!
    다음 연재가 없는거 같아 정말 아쉽습니다..

  5. Favicon of http://263.morningcallcoffeesstand.com/ChicagoBlackhawks-us.php BlogIcon Chicago Blackhawks Jersey 2013.07.18 23:54 address edit & del reply

    다른 남자 부르면서 울거면 나한테 이쁘지나 말던지

2008.05.14 18:21

Ruby on Rails 시작하기(5).. 간단한 컨트롤러 작성

이번에는 간단한 컨트롤러를 만들어서 실행해 보도록 하겠습니다. 드디어 몇줄 코딩에 들어가는군요

Ruby on Rails 초간단 Controller

앞서 만든 프로젝트의 /app/controllers/ 에 greeting_controller.rb 를 생성합니다.

사용자 삽입 이미지


if __FILE__ == $0
  # TODO Generated stub
end

class GreetingController < ApplicationController
  def index
    render :text => "<h1>Welcome to your first Rails application</h1>"
  end
end

그리고 해당 컨트롤러에 위와 같이 코드를 작성합니다.

간단히 설명하자면 GreetingController 라는 클래스를 작성합니다. < 표시는 상속을 의미합니다.
루비의 클래스 상속은 자바처럼 단일 상속만 지원 한다고 합니다. 일단 예제에 나와있는 것처럼 ApplicationController 를 상속받고

index 라는 메소드를 작성합니다.

render :text=> "어쩌구 저쩌구" 이 부분은 뭔진 몰라도 딱 보기에 해당 텍스트를 뿌리라는 의미 같습니다.
뭔진 모르지만 대충 예상은 갑니다. ㅋㅋ

자 이제 소스 코드를 저장하고 서버를 실행시켜서 아래 url로 접속을 해보도록 하겠습니다.
http://127.0.0.1:3000/greeting
사용자 삽입 이미지

이런 젠장... 뭔가 페이지가 나올줄 알았는데 에러가 나는군요... 딱 봐도 DB 접근 권한 에러입니다.
근데 이녀석 내가 DB 접근 관련해서 셋팅도 안했는데 지가 알아서 접근할려다가 오류를 내뱉는군요 -_-

그럼 오류 원인을 찾아서 해결해 봅시다. 해당 권한은 접근 권한 오류이기 때문에 권한을 풀어줘야 겠죠
아래의 쿼리를 실행시켜 줍니다. 원래는 root 계정으로 접근을 하려고 했지만 root 계정을 사용하진 않겠습니다.
그냥 대퉁 test 계정을 하나 생성해서 사용해 보도록 하죠.

grant all privileges on *.* to test@'localhost' identified by 'test' with grant option;

flush privileges;

그럼 실제로 DB 설정을 어디서 하는지 살펴보도록 하겠습니다.
프로젝트의 config/database.yml 이라는 녀석을 열어보면 아~ 요녀석이로구나! 를 알 수 있습니다.

사용자 삽입 이미지

이 설정 파일에 보면 adaptor, encoding, database, user, password, host 에 대해서 각 환경별로 셋팅을 한것을 알 수 있습니다.

우리는 test 계정에 패스워드가 test 인 계정을 사용할 것이고, 로컬에 있는 녀석을 사용할 것입니다.
그리고 한가지, "RubyStudy1_development" 어디 듣보잡이 여기 굴러들어왔는지... 일단 기본적으로 프로젝트 생성하면서 기본 네이밍에 의해서 생성된 녀석인가 봅니다.

그럼 우리도 DB를 만들어줘야 겠죠?

사용자 삽입 이미지

같은 이름으로 DB를 생성하였습니다.

자 그럼 이제 서버를 리스타트 해주고 http://127.0.0.1:3000/greeting/index 로 접속해봅시다~

사용자 삽입 이미지

자~ 드디어 뭔가를 하는 컨트롤러를 작성하고 서버에 올리고 페이지를 띄워보는 것까지 해보았습니다.

여기서 한가지 눈여겨 볼것이 있습니다. 바로 URL 이죠 딱히 context 를 지정해 주지 않았는데도 어떻게 URL만으로 해당 controller를 찾고 해당 action을 취할 수 있을까요...

http://127.0.0.1:3000/greeting/index

여기서 greeting 은 컨트롤러를 가르키게 되고, index 는 해당 액션을 가르키게 됩니다.

웹 서버는 들어오는 요청을 디스패쳐(dispatcher)라고 부르는 레일즈 프레임워크 내부의 루비 스크립트로 연결시키게 됩니다. 레일즈는 각 웹 서버 마다 하나의 디스패쳐가 존재하고, 이 디스패쳐는 URL을 분석하여 적절한 컨트롤러의 액션을 호출하게 됩니다. 그다음 컨트롤러의 액션은 모델을 호출하고 마지막으로 뷰를 호출하게 됩니다.

이제 슬슬 뭔가 보이기 시작하십니까? 아직도 가야할 길이 멀군요 ㅋ...
그럼 앞으로도 계속 하나씩 하나씩 파헤쳐 보도록 하겠습니다~
Trackback 0 Comment 1
  1. Favicon of http://4434.quiltersfedway.net/ghdes.php BlogIcon planchas ghd 2013.07.29 01:16 address edit & del reply

    눈을 감아봐 입가에 미소가 떠오르면 네가 사랑하는 그 사람이 널 사랑하고 있는거야.

2008.05.14 16:21

Ruby on Rails 시작하기(4).. 웹 서버

Rails 웹 서버

이번에는 웹 서버에 대해서 간단하게 정리해 보도록 합시다.

Rails는 기본적으로 몇개의(?)의 웹서버를 제공합니다.

WEBrick

WEBrick은 100% 루비로 작성된, 레일즈의 기본 웹 서버 입니다. 통신을 위한 HTTP, 웹 페이지를 위한 HTML, 동적 페이지를 위한 RHTML 등의 표준을 지원합니다. WEBrick 의 장점을 살펴보면

  • 루비에 내장되어 있고 무료, 루비만 설치되어 있으면 어디서든 사용가능하다.
  • 레일즈와 잘 융합시켜놓아 특별한 설정없이 사용가능하다.
  • 루비로 작성되어 있기 때문에 레일즈 애플리케이션을 직접 호출할 수 있다.


Apache

아파치는 전세계적으로 가장 많이 사용하는 웹 서버이며, 수많은 플러그인과 다양한 종류의 언어를 지원한다. 뛰어난 캐싱, 플러그인, 로드발란싱의 지원으로 확장성이 좋고 가장 안전한 서비스를 할 수 있다는 장점이 있다.
하지만 본인은 아파치 설정이 쉽기도 하면서도 어렵기도 하다는...

lighttpd

lighttpd는 속도에 중점을 둔 웹서버 이다. 정적인 HTML이나 이미지를 빠르게 처리하고 애플리케이션은 FastCGI를 통해 실행하다. 단 확장성에서 떨어진다는 단점이 있다는거...

Mongrel

Mongrel은 루비로 작성된 WEBrick 과 속도에 중점을 둔 lighttpd의 장점을 융합한 웹 서버이다. 이런 조합은 개발과 서비스 양쪽에 잘 부합되는 서버라고 합니다.

그래서 저도 Mongrel 로 사용해보도록 하겠습니다. 왠지 글을 봐서는 이게 좋아 보이네요... -ㅇ-;;


Eclipse 에서 실제로 Rails의 Mongrel 서버를 띄워 보도록 하겠습니다. 아~ 주 간단합디다.. ㅋㅋ


이클립스의 server 텝을 보면 현재 사용하는 서버 리스트가 있습니다.
현재 프로젝트의 서버도 보이는군요... 상태는 정지된 상태이구요 이녀석을 더블클릭해 줍니다.

사용자 삽입 이미지

그럼 서버 프로퍼티 창이 뜹니다. 서버 타입에는 우리가 사용할 Mongrel 을 지정해주고
사용할 포트도 역시 현재 사용안하는 포트로 지정을 해 주면 되겠습니다.
일반적으로 3000 번이나 3001번을 사용하는거 같군요
Environment 는 개발환경인지 테스트 환경인지 서비스 환경인지를 선택할 수 있습니다.
바로 Rails의 장점이기도 하죠, 서버의 설정에 따라서 환경을 지정할 수 있는 것이죠

사용자 삽입 이미지

그리곤 마우스 오른쪽 클릭을 하면 드롭다운 메뉴에서 Start Server를 시작합니다.

사용자 삽입 이미지


console텝에 뭐라고 주저리 주저리 글이 올라갑니다.

Mongrel 1.1.2 available at 127.0.0.1:3000

이제 사용할 수 있답니다. ㅋ 정상적으로 뜬거 같군요... 그럼 제대로 떴는지 테스트 해보겠습니다.

http://127.0.0.1:3000 으로 접속을 해봅시다~

사용자 삽입 이미지

환영 한다네요.. 그럼 이제 서버가 제대로 뜬거 맞죠? 맞을 껍니다. 아마도.. ^^; 그럼 다음 번엔 뭔가 만들어 볼 수 있으면 좋겠습니다~

Trackback 0 Comment 1
  1. Favicon of http://4895.jasonjordans.com/ghdau.html BlogIcon ghd 2013.07.19 03:42 address edit & del reply

    지금은 반짝반짝 빛이 나겠지,, 하지만 시간이 흐르면 그빛은 사라저버릴거야,지금 우리처럼

2008.05.14 15:15

Ruby on Rails 시작하기(3).. Rails Project 생성

Ruby on Rails 프로젝트 생성하기

우선 Eclipse 기반의 Rails를 하도록 하겠습니다.

Ruby Explorer 에서 마우스 오른쪽 클릭하고 새프로젝트를 생성해 봅시다.

사용자 삽입 이미지

DB 는 Mysql 사용했었으니까 MySql로 설정하고 피니쉬~

사용자 삽입 이미지

그럼 해당 프로젝트가 생성됩니다 ~

사용자 삽입 이미지
네이밍 컨벤션에 맞게 해당 폴더들이 잘 생성된걸 볼 수 있군요 ^^
그럼 이제 뭘해야 하는거지? -_-;;... 책좀 더 보고 포스팅 하도록 하겠습니다 ㅋ
Trackback 0 Comment 1
  1. Favicon of http://7157.4secat.net/uggboots.php BlogIcon ugg boots 2013.07.19 22:47 address edit & del reply

    귀를 기울여봐 가슴이 뛰는 소리가 들리면 네가 사랑하는 그 사람 널 사랑하고 있는거야.

2008.05.14 14:00

Ruby on Rails 시작하기(2).. Rails 의 구조

Rails 의 디렉토리 구조

이번에는 Rails의 디렉토리 구조에 대해서 알아보도록 하겠습니다.
Rails 가 설치된 곳의 rails_apps 디렉토리의 cookbook 샘플을 살펴보도록 하겠습니다.

사용자 삽입 이미지
  • app : 이 디렉토리는 애플리케이션 컴포넌트를 담고 있는 곳입니다. 모델, 뷰, 컨트롤러가 이에 해당됩니다.

  • components : 이 디렉토리는 현재 나와있진 않지만 모델, 뷰, 컨트롤를 담당하고있는 작은 어플리케이션이 컴포넌트화 되어 저장되는 곳입니다.

  • config : 이 곳은 레일즈 애플리케이션에 대한 설정코드들이 있는곳입니다. DB설정(database.yml), 레일즈 환경설정(environment.rb) , 웹 라우팅설정(routers.rb) 등이 있습니다. 또한 environments 디렉토리에 설정된 파일들을 이용하여 개발, 테스트, 서비스에 따른 환경설정을 각각 할 수 있습니다.

  • db : 통상적인 레일즈 애플리케이션에서는 관계형 데이터베이스를 액세스하는 모델 객체를 사용합니다. 여기서는 관계형 데이터베이스를 관리할 수 있는 스크립트들을 만들고 저장하는 곳입니다.

  • doc : 루비에는 RubyDoc이라는 프레임워크가 있는데, RubyDoc으로 만든 레일즈에 관련된 문서를 저장하는 곳이기도 합니다.

  • lib : 외부 라이브러리를 제외한 모든 라이브러리들은 이 디렉토리에 저장합니다.

  • log : 에러로그의 생성장소입니다. 서버와 환경설정에 로그들도 나누어 저장됩니다.

  • public : 웹 서버의 public 디렉토리 처럼, 변하지 않는 정적 웹 파일들을 넣어두는 곳입니다. 자바스크립트(pubilc/javascript), 이미지(public/images), CSS(public/stylesheets), HTML(public)

  • script : 레일즈 어플리케이션에 쓰이는 다양한 툴과 관련된 스크립트를 넣어두는 곳입니다. (코드 생성 및 웹서버 시작등등 관련된 스크립트)

  • test : 테스트에 관련된 코드를 넣는곳 입니다. (가짜객체, 유닛테스트, 픽스쳐, 기능테스트등의 서브디렉토리)

  • tmp : rails가 중간 처리과정에서 사용하는 임시파일을 저장하는 곳입니다.

  • vender : 보안 라이브러리나 데이터베이스 유틸리티 처럼 서드파티 벤더들이 제공하는 외부라이브러리들을 저장하는 곳입니다.

 모든 레일즈 프로젝트는 같은 작명 규약 (naming convention)을 사용함으로써 일관성을 유지합니다. 그래서 하나의 레일즈 프로젝트를 알게되면 다시 다른 프로젝트의 구조를 파악할 일이 없다는 장점을 제공합니다.

[출처 : 'Ruby on Rails: 초고속 웹 개발의 시작']

Trackback 0 Comment 0
2008.05.14 13:27

Ruby on Rails 시작하기(1).. Rails 시작하기

Ruby on Rails 시작하기 ^^

이제부터 Ruby on Rails 에 대해서 공부해 보기로 하겠습니다. 그냥 책에 나와있는 내용을 대충 끄적끄적
거리고 샘플 코드도 작성해보면서 해보도록 하겠습니다. 저도 처음 하는거라서요 ^^;; 같이 공부해 보도록 하죵
참고할 서적은 "Ruby on Rails:초고속 웹 개발의 시작" 이란 책입니다.

레일즈의 장점, 레일즈가 어떤건지 주절주절... 이걸 써야 하나 말아야 하나.. 고민되는데 그냥 안쓰도록
하겠습니다. ^^;; 웹 검색하면 잘 나와있으니까요.. 그럼 바로 레일즈 시작하기로 들어가 보도록 할께요

일반적으로 아직까진 윈도우 환경에서 개발하시는 분들이 많기 때문에...윈도우 환경 위주로 가도록 할께요

* 윈도우 환경에서 레일즈 시작하기

 일반적으로 윈도우 환경에서는 2가지의 개발 환경이 있습니다. 인스턴트 레일즈(Instant Rails) 와 레드 레일즈(Red Rails) 각각 사용하는 방법과 통합환경(IDE)을 같이 사용하는 방법 입니다.

* 윈도우에서 쉽게 사용할 수 있는 방법(Instant Rails)

 단순히 설치 프로그램도 없고 그냥 압축풀고 실행하시면 됩니다. 게다가 시스템 환경변수 셋팅도 필요가 없습니다.

http://instantrails.rubyforge.org/wiki/wiki.pl
1. 위 사이트에서 최신 버젼의 rails를 다운받는다.
2. 경로에 공백문자가 없는지 확인하고 InstantRails.exe 를 실행한다.
3. 처음실행시 설정파일의 경로를 현재 디렉토리로 갱신할 것인지를 확인한다.
4. 주 메뉴를 연다.
인스턴트 레일즈는 아파치 웹서버도 내장하고 있지만 실제 서비스와 동일한 환경에서 실행할 것이 아니면
루비에 내장된 웹서버인 WEBric을 사용하거나 Mongrel 서버를 사용하는 것이 편리하다고 합니다.

샘플 어플리케이션 실행하기

레일즈 메뉴에서 Rails Application -> Manage Rails Applications 를 선택하면 팝업창이 뜹니다.
사용자 삽입 이미지

cookbook 을 선택하고 Start with Mongrel 버튼을 클릭해줍니다.

사용자 삽입 이미지

위와 같은 몽그렐 서버가 스타트 되는것을 볼수 있습니다. 그럼 샘플 어플리케이션이 어떻게 생겨먹었는지
확인해 보도록 하겠습니다.

인터넷 익스플로러를 실행시키고 아래 URL로 접속을 해봅니다.
http://127.0.0.1:3001/
사용자 삽입 이미지
위와 같은 샘플 어플리케이션이 페이지에 나타나게 됩니다.


* 레드 레일즈(RadRails)

좀더 확실한 편집기를 원한다면 레드 레일즈 통합 개발 환경(IDE)을 사용합니다. 앞으로 포스팅 될 내용도 레드 레일즈를 통해서 작업하도록 하겠습니다. 레드레일즈는 이클립스 플러그인이며  아래 사이트에서 자세한 정보를 얻을 수 있습니다.
http://www.radrails.org

Eclipse Plug-in 설치

위 사이트에 가면 자세한 정보를 확인 할 수 있다. 자신의 e-mail로 라이센스 키도 받아두도록 하자.
이클립스의 Help 의 update를 선택하고, 새로운 원격 사이트를 생성하자

 설치할 플러그인을 선택하고~ (RedRails -> 이거 오타네요.. 원래는 RadRails가 맞음);;
사용자 삽입 이미지

따라서 다음을 클릭~ 클릭~ 클릭~ 하면 Aptana 플러그인이 설치됩니다.
이클립스를 재실행 하고나서

사용자 삽입 이미지

Aptana의 Plugins Manager를 실행합니다.
그리고 Aptana RadRails 플러그인을 인스톨하면 레일즈를 시작할 준비가 대충 된거 같습니다..


DataBase 설치

아래 사이트에서 Mysql 5.0 버젼을 다운받아 설치합니다.
http://file.daum.net/pc/view.html?fnum=64055&cat=4&scat=62
설치는 간단합니다. 그냥 파일을 받고 압축을 풀고 setup을 실행시키고 Next 광클릭!
그리고 mysql 툴도 설치하면 편리하겠죠? 저는 SQLyog를 사용합니다.

자 이제 DB 까지 환경설정이 끝났습니다.

그럼 이제 개발환경은 대충 마련된 셈인가요? 대충 되었겠죠? 그럼 이제부터 하나하나 알아가 보도록 하겠습니다.
Trackback 0 Comment 0