2. 레일스는 어떻게 동작하는가?

참조 : 레일스를 위한 루비

-애플리케이션 개발 과정
1. 모델 구현
2. 컨트롤러 구현
3. 뷰 구현

-레일즈의 MVC
모델: ActiveRecord – actionpack에 속함
뷰: ActionVIew – actionpack에 속함
컨트롤러: ActionController – activerecord에 속함

gems 폴더 아래에 위치 합니다.
사용자 삽입 이미지
– Rails 샘플 애플리케이션 개발하기
1. 모델 구현
    – 테이블의 이름은 복수형
    – id라는 필드가 있어야 함
    – y가 x에 속하면 y테이블에 x_id가 있어야 함
    – SQL로 테이블을 만들어도 되고
    – 레일즈의 마이그레이션을 사용해도 된다.
    – 모델사이의 연관 설정하기
       – 속한다. belong_to
       – 가지고 있다. has_many
2. 컨트롤러 구현
    – 액션 구현
    – 전체 컨트롤러를 나타내는 ApplicationController
3. 뷰 구현
    – layout “레이아웃 파일 이름” :: 레이아웃 설정
    – 레이아웃의 컨텐츠가 들어갈 위치에 <%= @content_for_layout %> 삽입
    – <% @composer.each do |composer| %> :: JSTL의 <c:forEach /> 와 비슷한 것
4. 접속하기
    – 첫 페이지 변경하기 :: conflg/routes.rb 파일에서 설정
    – 예) map.connect ”, :controller => “main”, :action => “welcome”

– 래일즈 애플리케이션 생명주기
1. 클라이언트가 서버로 요청을 보냄
2. 디스패처가 요청 받아서 담당할 컨트롤러 찾음
3. 요청을 처리하고 해당 액션과 연결되어 있는 뷰로 결과를 랜더링
4. ERb가 루비 코드를 변환해서 HTML 완성후 응답을 돌려줌
5. 클라이언트에서 HTML 확인

1. 루비는 어떻게 동작하나?

참조 : 레일스를 위한 루비

– print 와 puts의 차이
puts는 출력을 한 다음에 항상 개행 문자 붙여준다.
puts는 개행 문자가 맨뒤에 붙어있을 경우 무시한다.(일부 OS(winXXX)에서는 말을 안듣는다.)

– 메소드 호출의 특이함
“100”.to_i
100.to_s
직관적이고 편리하며 보다 더 객체지향적임

– 문법 오류 검사하기
ruby -cw 루비파일(c2f.rb)
c :: 문법검사
w :: 경고 메시지 보여주기

– 입출력
모니터로 출력은 살펴봤고
키보드로 입력은 gets
파일에서 입력은 File.read(“파일명”) 리턴값은 문자열
파일로 출력은 1. 파일 만들고(file = File.new(“파일명”) 2. 파일에 쓰고 file.puts “쓸것” 3. 닫기 file.close

– require 와 load
둘 다 다른 파일에 이는 코드를 현재 파일로 불러 온다.
차이점 : load는 호출할 때마다 해당 코드를 삽입 하지만 require는 한번만 삽입한다.
require 사용하여 라이브러리 로딩
예) require ‘cgi’ require ‘REXML/Document’

– Command Line switch
-c 랑 -w는 살펴봤고
-e :: 뒤에 오는 문자열 실행
-v :: 버전 표시 + 상세 설명 모드에서 실행
-l :: 뒤에 오는 문자열 뒤에 무조건 개행
-rname :: name에 지정한 확장을 로드함(require)
–version :: 버전 표시

– Ruby 설치 폴더 찾기
1. irb -rrbconfig 실행
2. Config::CONFIG[“찾을 폴더 식별자”]
찾을 폴더 식별자 :: bindir, rubylibdir, archdir, sitelibdir, sitearchdir

– 프로파일링
ruby -r profile 루비파일(c2f.rb)
프로그램을 수행하는데 드는 시간을 라인별로 확인할 수 있다. good

– ri 와 RDoc
RDoc은 JavaDoc와 같은 녀석
ri는 Java에 없는 것으로 RDoc의 정보를 찾아서 보여줌. 예)ri require

– ERb
매우 중요한 프로그램
HTML안에 루비코드를 포함시켜둔 다음 그 파일을 erb를 사용하여 읽으면 ERb가 루비 코드를 해석하여 HTML 파일을 재구성한다.
<% %>는 루비코드 실행 => JSP의 스크립틀릿
<%= %>는 루비코드로 출력 => JSP의 표현식