SlideShare a Scribd company logo
루비 온 레일즈
친숙해지기 세션
루비온레일즈(Ruby on rails)와 친숙해지기
1. 루비 온 레일즈의 흐름
요청2) ~웹사이트주소~/index
요청1) ~웹사이트주소~
주문하신
탕수육입니다!
home컨트롤러
index액션
Ruby on Rails가 웹을 만드는 방식
M V C
V view
M model
C controller
V view
M model
C controller
데이터(리소스)를 다루는 놈
고갱님께 보여줄 결과물
고갱님의 요청을 처리하는 놈
Ruby on Rails가 웹을 만드는 방식
역할을 분리
도삭짬뽕
만렙 요리사 김풍
최강 식재료
냉장고
고갱님
도삭짬뽕
탕수육 주세요
만렙 요리사 김풍
최강 식재료
냉장고
고갱님
도삭짬뽕
탕수육 주세요
만렙 요리사 김풍
할 일:
1) 주문 받기
2) 재료 준비하기
3) 요리 하기
4) 탕수육 서빙 하기
최강 식재료
냉장고
고갱님
도삭짬뽕
탕수육 주세요
만렙 요리사 김풍
할 일:
1) 주문 받기
2) 재료 준비하기
3) 요리 하기
4) 이쁘게 서빙 하기
최강 식재료
냉장고
Ruby on Rails가 웹을 만드는 방식
역할을 분리
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
“주문 받기/서빙은 내가 한다”
“난 요리에 집중한다”
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
탕수육 주세요
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
탕수육 주세요
할 일:
1) 재료 준비하기
2) 요리 하기
할 일:
1) 주문 받기
2) 주문 전달하기
3) 탕수육 서빙 하기
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
탕수육 주세요
할 일:
1) 재료 준비하기
2) 요리 하기
할 일:
1) 주문 받기
2) 주문 전달하기
3) 탕수육 서빙 하기
본연의 업무에만 충실
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
탕수육 주세요
할 일:
1) 재료 준비하기
2) 요리 하기
할 일:
1) 주문 받기
2) 주문 전달하기
3) 탕수육 서빙 하기
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
물티슈 주세요
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
물티슈 주세요
할 일:
없음
할 일:
1) 주문 받기
2) 물티슈 서빙하기
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
물티슈 주세요
할 일:
없음
할 일:
1) 주문 받기
2) 물티슈 서빙하기
물티슈
도삭짬뽕
만렙 요리사
김풍
최강 식재료
냉장고
만렙 웨이터
양세바리
고갱님
탕수육 주세요
할 일:
1) 재료 준비하기
2) 요리 하기
할 일:
1) 주문 받기
2) 주문 전달하기
3) 탕수육 서빙 하기
M
C
V
DB
V view
M model
C controller
데이터(리소스)를 다루는 놈
고갱님께 보여줄 결과물
고갱님의 요청을 처리하는 놈
만렙 요리사
모델
최강 식재료
DB(데이터베이스)
만렙 웨이터
컨트롤러
고갱님
URL
sglikelion.com
만렙 요리사
모델
만렙 웨이터
컨트롤러
고갱님
URL
할 일:
1) 데이터 준비하기
2) 데이터 처리하기
할 일:
1) 요청 받기
2) 요청 전달하기
3) 결과물 보여주기
sglikelion.com
최강 식재료
DB(데이터베이스)
만렙 요리사
모델
만렙 웨이터
컨트롤러
고갱님
URL
할 일:
1) 데이터 준비하기
2) 데이터 처리하기
할 일:
1) 요청 받기
2) 요청 전달하기
3) 결과물 보여주기
sglikelion.com
최강 식재료
DB(데이터베이스)
맛난 결과물
뷰
만렙 요리사
모델
만렙 웨이터
컨트롤러
고갱님
URL
할 일:
없음
할 일:
1) 요청 받기
2) 결과물 보여주기
Water-tissue.com
최강 식재료
DB(데이터베이스)
결과물
뷰
만렙 요리사
모델
만렙 웨이터
컨트롤러
고갱님
URL
할 일:
1) 데이터 준비하기
2) 데이터 처리하기
할 일:
1) 요청 받기
2) 요청 전달하기
3) 결과물 보여주기
sglikelion.com
최강 식재료
DB(데이터베이스)
맛난 결과물
뷰
본연의 업무에만 충실
V view
M model
C controller
데이터(리소스)를 다루는 놈
고갱님께 보여줄 결과물
고갱님의 요청을 처리하는 놈
V valuable
M most
Ccontroller 고갱님의 요청을 처리하는 놈
rails generate controller home
레일즈 개발의 시작은 컨트롤러부터!
*컨트롤러 이름 자유롭게
*보통 다루려는 데이터(리소스) 이름으로
C컨트롤러는 액션들의 집합
실질적으로 요청을 처리하는 놈은 액션이다!
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
액션
액션
액션
액션
액션
액션
액션
액션
액션
액션
요청 한 번에
처리 한 번!
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
고갱님
URL
요청
고갱님
URL
요청
특정 컨트롤러의
특정 액션으로 도달해야
처리 가능
라우트
config/routes.rb
url 요청을
특정 컨트롤러의 특정 액션으로
보내준다.
루비온레일즈(Ruby on rails)와 친숙해지기
url 요청방식 고갱님이 요청하는 url 요청url을 처리할 컨트롤러#액션
sglikelion.com/superman
sglikelion.com/batman
Sglikelion.com/home/likelion
sglikelion.com/
naver.com/
google.com/
요청url을 처리할 컨트롤러#액션
가장 중요한 컨트롤러 만들기
레일즈 개발 순서
실질적 처리를 할 액션 만들기
요청을 액션으로 연결할 라우트 작성하기
도삭짬뽕
만렙 웨이터
양세바리
고갱님
물티슈 주세요
물티슈
(요청)
Controller
action
라우트
도삭짬뽕
만렙 웨이터
양세바리
고갱님
물티슈 주세요
물티슈
(요청)
Controller
action
라우트
뷰!!!!!
도삭짬뽕
만렙 웨이터
양세바리
고갱님
물티슈 주세요
물티슈
(요청)
Controller
action
라우트
.html
레일즈의 요구사항 (규칙)
요청의 결과물인 뷰를 만들고 싶으면
요청을 처리할 액션이랑
이름을 똑같이 만들어줘!!!!!
고갱님
1번의 요청
(1개의 URL)
1번의 처리
(1개의 액션)
1번의 응답
(1개의 뷰html)
고갱님
1번의 요청
(1개의 URL)
1번의 처리
(1개의 액션)
1개의 액션은
1개의 뷰HTML과 대응된다.
1번의 응답
(1개의 뷰html)
레일즈의 요구사항 (규칙)
요청의 결과물인 뷰를 만들고 싶으면
요청을 처리할 액션이랑
이름을 똑같이 만들어줘!!!!!
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
루비온레일즈(Ruby on rails)와 친숙해지기
레일즈의 요구사항 (규칙)
규칙을 지켰다면…!
레일즈의 요구사항 (규칙)
규칙을 지켰다면…!
고갱님
요청
(URL)
new액션이
처리
레일즈의 요구사항 (규칙)
규칙을 지켰다면…!
고갱님
요청
(URL)
new액션이
처리
new.html이
결과물
레일즈의 요구사항 (규칙)
규칙을 지켰다면…!
고갱님
요청
(URL)
create액션이
처리
create.html이
결과물
컨트롤러 만들기
레일즈 개발 순서
액션 만들기
라우트 작성하기
액션 이름으로 .html 만들기
페이지를 여러 개 만들고 싶을 땐?
컨트롤러 만들기
레일즈 개발 순서
액션 만들기
라우트 작성하기
액션 이름으로 .html.erb 만들기
5분 미션!!
요청2) ~웹사이트주소~/index
요청1) ~웹사이트주소~
맛난 탕수육
메뉴들
home컨트롤러
index액션
요청2)
요청1)
5분 미션!!
요청4) ~웹사이트주소~/home/show
요청3) ~웹사이트주소~/new
탕수육
주문할래요?
요청3)new액션
요청4)show액션
주문하신
탕수육입니다!
요청3) 요청4)
2. Dive Deep into
Controller
아무 기능 없는 웹은 지겨워…
사용자가 입력한 정보를 처리하고 싶다!
로그인, 검색, 댓글, 게시글 등등
고갱님
아이유 신곡
요청
고갱님
아이유 신곡
요청
URL
get 방식
url 요청방식 고갱님이 요청하는 url 요청url을 처리할 컨트롤러#액션
sglikelion.com/superman
sglikelion.com/batman
Sglikelion.com/home/likelion
고갱님
ID 비밀번호
요청
URL
naver.com/sign_in naver.com
정보를 숨겨서!
요청
post 방식
게시판
? 방식
요청
게시판
post 방식
요청
졸라 기니까..
get / post의 진짜 차이는
차후 보조 강의로..!! 꼭 듣길..
일단
Url에 노출시켜 입력 정보를 보내는건 get
Url에 숨겨서 입력 정보를 보내는건 post
고갱님
게시글 제목/내용
요청
URL
컨트롤러의
액션이 처리
고갱님
요청
URL
컨트롤러의
액션이 처리
사용자 입력 받기
=> 뷰에서(html에서)
게시글 제목/내용
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
<input type=“text” name=“title”>
<input type=“text” name=“content”>
<input type=“submit>
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
1)사용자 입력을 받을 모든 input 태그들을 감싸고
2)Input 태그에 적힌 정보를
무슨 방법으로 어디로 요청할까를 결정하는 태그
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
1)사용자 입력을 받을 모든 input 태그들을 감싸고
2)Input 태그에 적힌 정보를
무슨 방법으로 어디로 요청할까를 결정하는 태그
urlget/post
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
1)사용자 입력을 받을 모든 input 태그들을 감싸고
2)Input 태그에 적힌 정보를
무슨 방법으로 어디로 요청할까를 결정하는 태그
urlget/post
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
<input type=“text” name=“title”>
<input type=“text” name=“content”>
<input type=“submit>
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
<input type=“text” name=“myid”>
<input type=“password” name=“get”>
<input type=“submit”>
1) 실질적으로 사용자의 정보 입력을 받고
2) 그 입력된 정보에 ‘이름’을 부여하는 놈
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
<input type=“text” name=“title”>
<input type=“text” name=“content”>
<input type=“submit”>
Input 태그의 종류!! 사용자에게 받은 정보의 이름!
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
<input type=“text” name=“title”>
<input type=“text” name=“content”>
<input type=“submit”>
입력을 했으면 제출을 해야하니까
마지막에 무조건 있어야 하는 “완료버튼!”
5분 미션!!
사용자가 2개의 정보를 get방식으로
home컨트롤러의 show액션으로
“name” / “food” 이름으로
보낼 수 있는
new.html.erb 작성하기
view/home/new.html.erb
결과물
루비온레일즈(Ruby on rails)와 친숙해지기
정보이름 = 정보값
name = 박정현
고갱님
요청
URL
컨트롤러의
액션이 처리
사용자 입력 받기
=> 뷰에서(html에서)
이름 / 메뉴
고갱님
요청
URL
컨트롤러의
액션이 처리
사용자가 보낸 정보 받기
=> 컨트롤러에서(액션에서)
이름 / 메뉴
사용자가 보낸 정보 받기
<form action=“/home/show” method=“get”>
</form>
<input type=“text” name=“title”>
<input type=“text” name=“content”>
<input type=“submit>
url url방식
사용자가 보낸 정보 받기
<form action=“/home/show” method=“get”>
</form>
<input type=“text” name=“title”>
<input type=“text” name=“content”>
<input type=“submit>
url url방식
사용자가 보낸 정보 받기
사용자가 보낸 정보 받기
params[:정보의 이름]
parameters 임
사용자 입력 받기
<form action=“/show” method=“get”>
</form>
<input type=“text” name=“title”>
<input type=“text” name=“content”>
<input type=“submit>
사용자가 보낸 정보 받기
params[:title]
params[:content]
사용자가 보낸 정보 받기
params[:title]
params[:content]
title 이름의 정보를 받는다.
content 이름의 정보를 받는다.
사용자가 보낸 정보 받기
@a = params[:title]
@b = params[:content]
title 이름의 정보를 @a에 저장
content 이름의 정보를 @b에 저장
사용자가 보낸 정보 받기
@first = params[:title]
@second = params[:content]
사용자가 보낸 정보 받기
@title = params[:title]
@content = params[:content]
사용자가 보낸 정보 받기
show.html.erb
5분 미션!!
사용자가 new.html.erb에서 보낸
2개의 정보를
show액션에서 받아
show.html.erb에 출력하기!view/home/show.html.erb
결과물
쉬는 시간 10분
고갱님
요청
URL
컨트롤러의
액션이 처리
제목 / 내용
내이름은 박정현!
탕탕탕탕수육!
고갱님
요청
URL
컨트롤러의
액션이 처리
제목 / 내용
내이름은 박정현!
탕탕탕탕수육!
게시글을
저장 하고 싶으면..?
3. 루비 온 레일즈의 모델(Model)
변수란?
정보를 일시적으로 담는 곳
DB(데이터 베이스)란?
정보를 영구적으로
저장할 수 있는 곳!
회원정보, 게시글, 주문 정보 등등…
많은 양의 정보를
효율적으로 관리하는 법은..!?
엑셀(테이블)
DB(데이터 베이스)는 테이블이다!
멋사5기
멋사5기
테이블 만드는 법
1) 테이블(표)의 이름을 정한다.
멋사5기
2) 테이블에 들어갈 속성값을 정한다.
테이블 만드는 법
멋사5기
데이터 추가하는 법
1명당 1줄씩 각각 속성값에 맞게 정보를 입력해주면 완료!!
멋사5기
데이터 추가하는 법
멋사5기
데이터 추가하는 법
엑셀 만드는 법
1) 테이블(표)의 이름을 정한다.
2) 테이블에 들어갈 속성값을 정한다.
V
M model
C
데이터(리소스)를 다루는 놈
데이터베이스도 다루는 놈
만렙 요리사
모델
최강 식재료
DB(데이터베이스)
만렙 웨이터
컨트롤러
고갱님
URL
sglikelion.com
만렙 요리사
모델
최강 식재료
DB(데이터베이스)
데이터(리소스)를
다루는 놈
만렙 요리사
모델
최강 식재료
DB(데이터베이스)
- 테이블 조작하기
* 테이블에 데이터를
추가/삭제 등을 함
데이터를 저장하려면
테이블을 다루는
모델을 먼저 만들어야 한다!
rails generate model post
모델 만드는법
*반드시! 만들려는 테이블 이름의 단수형으로 지어야 함
*(규칙) 단수형 이름의 모델이 복수형 이름의 테이블을 조작한다
이제 테이블을 만들어야해
모델을 만들때 알아서 만들어준 파일
루비온레일즈(Ruby on rails)와 친숙해지기
2) 테이블에 들어갈 속성값을 정한다.
t.string :name
t.string :food
t.string :name
t.string :food
저장할 정보의
데이터 형식
문자냐 숫자냐 참거짓이냐 날짜냐 등등…
t.string :name
t.string :food
테이블 속성 값의 이름 (영어로 소문자로)
t.string :name
t.string :food
2) 테이블에 들어갈 속성값을 정한다.
엑셀 만드는 법
1) 테이블(표)의 이름을 정한다.
2) 테이블에 들어갈 속성값을 정한다.
=> 테이블 만들 준비 끝!
rake db:migrate
테이블 만드는 명령어
*모델에서 준비할건 다 준비했으니까
진짜 데이터베이스에서 테이블을 만들자!
db로 migrate(이주)하자..?ㅋㅋㅋㅋ
*rails 아님!!
foods
name food
*테이블이름은 자동으로 복수형
name food
1정보당 1줄씩 각각 속성값에 맞게 정보를 입력해주면 완료!!
foods
*테이블이름은 자동으로 복수형
사용자에게
정보를 받은 걸
누가 처리하더라..?
컨트롤러!!!
(사실 액션)
루비온레일즈(Ruby on rails)와 친숙해지기
name food
foods
name food
foods
데이터를 넣기 위해
테이블 한 행을 추가 하겠다!
(아직 뭐 안 넣음)
name food
방금 만든 테이블 한 행을
myfood 변수에
저장하겠다.(배정하겠다.)
myfood
foods
name food
myfood
myname 이름으로 받은 정보를
myfood행의 name속성에 넣겠다!
foods
name food
myfood params[:myname]
*실제론 사용자가 보낸 값이 들어가겠죠?
foods
name food
myfood params[:myname] params[:food]
food 이름으로 받은 정보를
myfood행의 food속성에 넣겠다!
foods
값을 다 넣었으니 저장!!!!!!!
사용자가 보낸 정보 저장하는 법
1) 모델을 만든다.
2) db/migrate
=> 테이블 만들 준비 끝!
10분 미션!!
사용자가 new.html.erb에서 보낸
2개의 정보를
show액션에서 받아
posts 테이블에 저장하기!
*title / content 속성값이 있음
title content
posts
이 테이블을 조작 할
모델이름은 post겠죠?

More Related Content

PDF
위키백과 문서 작성 및 편집 가이드 (Wikipedia article writing/editing guideline)
PDF
201803 파이썬 세미나
PDF
처음배우는 자바스크립트, 제이쿼리 #2
PDF
루비온레일즈로 카카오톡 봇 만들기
PDF
루비온레일즈(Ruby on rails) 뷰헬퍼(view helper) Top4 사용법
PDF
루비온레일즈 API 서버 - 4) api 서버 인증 구현 (쿠키/세션/토큰)
PDF
Web_06_Ruby On Rails (임시)
PPT
Ruby on Rails와 함께 하는 애자일 웹 개발
위키백과 문서 작성 및 편집 가이드 (Wikipedia article writing/editing guideline)
201803 파이썬 세미나
처음배우는 자바스크립트, 제이쿼리 #2
루비온레일즈로 카카오톡 봇 만들기
루비온레일즈(Ruby on rails) 뷰헬퍼(view helper) Top4 사용법
루비온레일즈 API 서버 - 4) api 서버 인증 구현 (쿠키/세션/토큰)
Web_06_Ruby On Rails (임시)
Ruby on Rails와 함께 하는 애자일 웹 개발

Similar to 루비온레일즈(Ruby on rails)와 친숙해지기 (20)

PPT
레일스를 이용한 애자일 웹 개발 가이드
PDF
2017 제주코딩해커톤 Ruby On Rails 첫째주
PPTX
Team project(for fullstack)
PPTX
Team project(for fullstack)
PDF
Rails style-guide-2
PDF
웹개발/솔루션개발
PPTX
0503.1 vs n
PDF
Django, 저는 이렇게 씁니다.
PPTX
0515. view helper
PDF
Rails routing from the outside in
PPTX
Django - CRUD 기능 구현
PDF
[아꿈사/110903] 도메인주도설계 4장
PPTX
Html5
PDF
Layout and rendering
PDF
자바스크립트의 또다른 발전, Backbone.js
PDF
Web_07_Rails Advanced
PPTX
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
PPTX
처음 시작하는 라라벨
PPTX
Spring mvc
PDF
Light Tutorial Django
레일스를 이용한 애자일 웹 개발 가이드
2017 제주코딩해커톤 Ruby On Rails 첫째주
Team project(for fullstack)
Team project(for fullstack)
Rails style-guide-2
웹개발/솔루션개발
0503.1 vs n
Django, 저는 이렇게 씁니다.
0515. view helper
Rails routing from the outside in
Django - CRUD 기능 구현
[아꿈사/110903] 도메인주도설계 4장
Html5
Layout and rendering
자바스크립트의 또다른 발전, Backbone.js
Web_07_Rails Advanced
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
처음 시작하는 라라벨
Spring mvc
Light Tutorial Django
Ad

루비온레일즈(Ruby on rails)와 친숙해지기