반응형
그냥 앉아 있다가.. 8.04 버전으로 설치되어 있는 Ubuntu 를 8.10 으로 업그레이드 해봤다.
방법은 여러가지?가 있더라..
http://help.ubuntu.com/community/IntrepidUpgrades (영문설명)

요약해보면,
1. 웹을 사용하여 다운로드 후 설치
2. CD/DVD 를 사용하여 업데이트
3. Torrent 에서 다운받아 업데이트 하기..

내가 해본건.. 1번.. 웹을 사용하여 다운로드 후 설치 이다.
아주 쉽지만, 설치 파일을 받는데 시간이 오래 걸린다.. (난 업그레이드 관련 파일을 kaist 서버가 아닌 디폴트 서버에서 받는다.)
뭐 여하튼 30여분의 다운로드가 끝난 후 업그레이드를 설치하고, 8.10 버전에서 필요치 않은 패키지들을 지우는 작업을 한다.
그리고 시스템을 재시작 하면 끝..


반응형
반응형

vbscript 에서 msgbox 를 자주 띄우는데, 박스 안에서 줄바꿈 할경우..
아래와 같이 사용하면 되더라는..
MsgBox "첫째줄" & Chr(13) & "다음줄"

단 3줄로 끝내기 아쉬워서.. 한줄 더씀.. ㅋㅋ
반응형
반응형

일단 네이트 온을 내려받는다..
내 우분투 버전은 8.04 라서 http://kldp.net/frs/?group_id=1143 여기에 있는것 중 아래 버전을 받았다.

 nateon-1.0-20080513(우분투 8.04)    2008-05-15 17:02
    nateon-1.0-0513_i386.deb

음.. 그리고 나서 이것저것 해보려고 하다가 잘 이해도 안되고 해서.. 아래 링크에 올려주신 내용을 따라 해봤다.

http://towanouta.tistory.com/77

글을 보면, 
 1 번을 치면 대부분 된다고 되어 있는데, 혹시라도 의존성 문제로 설치가 안된다면 2번의 명령어를 먼저 실행 한뒤
1번을 다시 실행하면 된다고 씌여있길래 그대로 해보니 설치가 되었다.

1) $sudo dpkg -i nateon-1.0-0513_i386.deb
2) $sudo apt-get -f install

난 아직 Ubuntu 관련해서 아는게 거의 없다.. 터미널을 띄우고 혹시나..

$nateon

을 치니 뿅~ 하고 네이트가 실행된다. ㅋㅋㅋ 잼나네 이거..




반응형
반응형
Ubuntu 시작 한 뒤에 업데이트 관리자가 새로운 업데이트가 있다고 알려주면,
최신 업데이트를 위해 실행 뒤 다운로드를 받을때, 간혹 패키지 파일을 다운로드 받을때 서버 연결 접속 실패라고 뜬다.
서버 주소를 알려주면서 나오는 이 메세지를 보면서.. 이 서버 말고 또 없낭? 하는 의문이 생겨 인터넷을 뒤져보다
아래에 있는 영문 싸이트를 찾게 되었다.

http://ubuntuforums.org/archive/index.php/t-3305.html

기본적으로  /etc/apt/sources.list  파일을 열어 안의 내용을 바꿔주면 된다고 한다.

file is what apt-get/synaptics uses to find available software for you to install.Any lines with the # will be ignored
이 파일이 apt-get/synaptics 에서 사용되고, 안에 있는 설정으로 소프트웨어 찾아 설치하게 된다고 한다.

내 경우는 compiz 설치를 위해 명령어 및 여러 인터넷에서 알려주는걸 해봤는뎀.. 다운로드가 안되어 고민을 했었는데 저 파일에 있는 설정을 바꾼뒤 다운로드가 아주 잘 되었다.

서버를 한국-> 주서버 로 바꿨을 뿐.. 아 참고로 최신 ubuntu 버전을 사용중이다.
반응형
반응형

자.. 디자인 관련된 이야기가 전 Iteration 마지막 부분에 나왔다.
이번 Iternation 에서는 Page Layout 을 만들어 보겠다. view 폴더의 Layout 폴더 아래 store.html.erb 파일이라는 Layout 파일을 만들어 보자.

depot/app/views/layouts/store.html.erb (만들어야 하는 파일)

간단하게 하나를 만들었다. 이렇게 만들어진 Layout 파일은 Controller 이름인 store 랑 같기 때문에 컴파일 할때 Rails 는 위의 Controller 와 같은 이름의Layout 을 적용 시킨다.

<%= stylesheet_link_tag "depot" , :media => "all" %> : depot.css 의 link 태크 부분을 적용시킨다.
<%= @page_title || "Pragmatic Bookshelf" %> : @page_title 인스턴스 변수에  페이지 헤딩 값을 넣는다. 그런뒤
main div 태그에 <%= yield :layout %> 를 넣어 주었다. (질문)

depot/public/stylesheets/depot.css

그닥 멋진 layout 은 아니지만 일단 밋밋한 하얀색 바탕의 페이지보다는 멋지게 변한듯 하다. ㅡ,.ㅡa (그런가?)
반응형
반응형
관리자가 물품 등록을 하고, 물품관련 상세 내용을 올릴 수 있는 Depot 에플리케이션을 만들어봤다.
이제 고객이 들어와 물품을 보고 고르고, 구입할 수 있는 에플리케이션을 만들어보자

1) Catalog Listing (카탈로그 리스트)

depot> ruby script/generate controller store index

Store 라는 이름의 Controller를  generate 유틸리티로 만든다. 위에 index 가 붙었는데 이건 Method 이름이다.
전에는 Product 라는 Controller 만 만들었지만, 이번엔 Store 라는 Controller 를 만들며 그 안에 index 라는 Method 를 함께 만드는 것이다. 

웹페이지가 뜨는지 확인한다. http://localhost:3000/store

잘 만들어 졌다면, 첫번째로, 데이터 베이스에 있는 품목 리스트를 보여주는것으로 시작을 해보자.
strore_contoller.rb 안에 있는 index Method 를 바꿔줘야 한다.

depot/app/controllers/store_controller.rb

위의 코드는  Model 에서 품목 리스트를 들고 와야 한다는 내용의 코드이다.

자 다음은 Controller 에서 호출을 받은 Model 이 판매되고 있는 품목 리스트(producst_for_sale)를 Method 를 통해 찾는다.

depot/app/models/product.rb

find 는 Rails Method 이다. find Method 는 Product Object 를 들고 있는 Array 를 반환하는데 Array 안에는 데이터 베이스에서 받는 각각의 Row 별 값들이 들어있다.  :all 파라미터는 주어진 조건의 모든 Row 값들을 들고 온다는 뜻이며 :order 를 주어 "title" 컬럼으로 Sorting 되어 들고 오라는 뜻이다.
들고 온 뒤에는 find_products_for_sale Method 는 자신을 호출한 Controller 로 받아온 값들을 돌려준다.

자 Controller 는 값들을 받았으니, View 를 통해 결과값들을 보여줘야 한다.

depot/app/views/store/index.html.erb

아직 CSS 파일이 없어 보기 좀 그렇지만.. 일단 기능적으로 원하는 부분이 완료 되었다.
반응형
반응형
 
1) 리스트 이쁘게 만들기....

리스트가 너무 밋밋하다. 좀 꾸며보자..

데이터만의 Migration 을 해보자.. Method 가 3개다.. Up, adds, Down..
up: products 테이블을 지우고, adds 는 products 테이블에 3개의 데이터를 넣게 되며 down Method 는 테이블을 비운다.

depot> ruby script/generate migration add_test_data

위의 명령어 줄을 넣어주면 /db/migrate/20080601000003_add_test_data.rb 파일이 생성된다.
이 파일안에 코드를 넣게 되는데, Create Method 를 사용하여 넣어준다.


그런뒤 depot.css 와 image 파일들을 다음 경로에서 다운받아 각각 public/stylesheets 와 public/images 폴더에 넣어 두면 된다. add_test_data.rb 도 테스트 파일이기 때문에 직접 치지 않고 아래 링크에서 다운받아 사용해도 된다.


depot> rake db:migrate

자 rake 명령어 까지 모두 쳤다면, 파일 수정을 하여 css 파일을 사용하게 하며, 테이블로 리스트를 보여줌으로써 기존에 scaffold 가 만들어준 view 를 덮어 써보자

depot/app/views/layouts/products.html.erb

depot_c/app/views/products/index.html.erb

코드를 보면 대충 알겠지만, 
  a) list-line-odd, 와 list-line-even 을 돌려 홀수라인과 짝수라인 색을 다르게 하여 보여준다는것을 알 수 있다.
  b) 그리고 link_to 'Destroy' 를 보면 :confirm=> "Are You Sure" 가 씌여 있는데 'Destroy (없애다)' 링크를 누르면 확인 버튼
     이 팝업으로 떠 지우기전 확인을 하게 하는걸 알 수 있다.
  c) h Method 를 사용하여 product  title 과 description 에 남아있는 Html 코드를 뛰어 넘게 했다.

이렇게 함으로써 리스트까지 완료하였다.

이제껏 우리가 한 일을 정리해 보면
1) development 데이터베이스를 만들어 Rails 에플리케이션과 연결하였다.
2) Migrations 을 사용하여 Development 데이터 베이서의 스키마를 만들고 수정하였으며 테스트 데이터를 가동시켰다.
3) products 테이블을 만들었으며 scaffold generator 로 사용가능한 에플리케이션을 만들었다.
4) 코드도 작성했는데, 그중 하나는 유효여부를 확인하는 코드이며
5) view 코드를 작성하여 좀더 이쁜 리스트가 나오게 만들었다.


자.. iteration 4 는 여기서 끝이다.
여기까지 작업하면서 몇가지 궁금한 점이 생겼다. 작동이 어찌 되는거지? 그냥 따라 하기만 하면 되는건가?

솔직히 Rails 는 처음 경험해 보는 언어이며, MVC 구조도 처음이다. 그래서 이해 하지 못한 부분들이 있기 때문에 읽으면서 건너 뛴 부분들도 많다. 물론 모든 부분들을 이해하면 좋겠지만, 내가 웹 언어를 공부하는 방법중 하나는 따라하기다.
물론 처음 언어를 공부하게 된다면 심도있는 길을 선택해야 겠지만, 내 목표는 일단 Ruby on Rails 를 통한 MVC 구조 이해 및 agile web development 를 배우는 것이다. 
pdf 를 읽어보며 하나의 작은 쇼핑몰을 만들어 가는 이 책은 내 목표에 딱 맞는 듯 싶다.

좀더 공부해 보면 심도있게 재 정리 할 수도 있을 테고.. 그날이 오기만을 기다리며 읽어 내려갈 뿐.. ㅋㅋㅋ
자.. 이제 할일은..
depot> 폴더를 지우고, 다시 첨부터 해보는 거다. iteration 이 분단위로 일어나기 때문에 총 15분 이내로 다시 한번 만들어 볼 수 있을 듯.. ㅋㅋㅋ
반응형
반응형


1) Validation

Iteration 3  에서는 textbox 들에서 들어오는 변수들의 유효성 확인을 한다.

app/models/product.rb 파일을 열어 Class 안에 다음 줄을 추가한다.

자 위에 추가된 부분들로
   a) title, description 그리고 image_url 필드가 비어있는 지
   b) Price 필드에 $0.01 이상의 가격이 들어가 있는지
   c) title 의 중복이 있는지
   d) image url 이 유효한지
의 유효성을 확인한다.


반응형
반응형


1) 없는 컬럼 추가하기
Iteration 1 에서 Product 테이블을 만들었고, 페이지에서 데이터를 추가하고 빼고 하는 페이지들을 만들어 봤다.
Iteration 2 시작에서는 필요한 컬럼중 초기에 만들지 않은 컬럼을 테이블에 추가해 보기로 하겠다.
가격(Price) 컬럼을 만들어 보겠다.

depot> ruby script/generate migration add_price_toProduct price:decimal

위의 명령어를 치게 되면 아래와 같은 .rb 즉 루비 파일이 생성된다.
db/migrate/20080601000002_add_price_to_product.rb

Coordinated Univeral Time, UTC 를 토대로 파일이 만들어지며, 파일 이름은 YYYYMMDDhhmmss 형태로 시간으로 형성된다. 위의 파일을 열면 아래 링크와 같은 코드를 볼 수 있을 것이다.
http://media.pragprog.com/titles/rails3/code/depot_a/db/migrate/20080601000002_add_price_to_product.rb
관련된 설명은 생략하겠다. 지금은 그냥 보기만 해도 프로그램을 해본 지식이 있는 분들이라면 알아볼 수 있을것이다.
이해가 안되더라도 지금은 크게 문제가 되지 않는다.

depot> rake db:migrate

명령어를 치면 Rails 는 위에 만들어진 루비 파일을 적용시킨다.
(주의 할점: 가격 변수 형태를 Decimal 로 잡았다. Float 으로 잡지 않은 이유는 반올림시 Float 형태는 오류가 있기 때문이다. )

다음은 Views 쪽 파일들을 열어 필요한 부분을 수정해야 한다.

depot/app/views/products/index.html.erb

depot/app/views/products/new.html.erb

depot/app/views/products/edit.html.erb

여기까지 수정이 완료 되어 페이지들을 확인해 보면 Price 컬럼이 추가되어 있는걸 볼 수 있다.
서버를 돌리고 있었다 하더라고 다시 실행할 필요가 없는 이유는 페이지에서 Model 에 요청이 들어가면 최근 업데이트된 db 스키마로 자동 업데이트 되기 때문이다.

Download depot_a/app/views/products/show.html.erb

Markup 이 함께 보여지고 싶다면 h 를 제거 하면 된다.
depot/app/views/products/show.html.erb
반응형
반응형


1) Depot application 을 만든다.

rails Depot : 만들게 되면 Depot 디렉토리 안에 필요한 폴더와 파일들이 만들어진다.
rails --database=mysql Depot: MySql 을 사용하여 db 를 만들게 된다.

2) DataBase 만들기
Depot> rake db:create RAILS_ENV='development'
Depot> mysqladmin -u root create depot_development (mySQL 사용시)

Depot\Config\> 의 database.yml 파이을 열면 다음과 같이 보여진다.
development:

adapter: mysql
encoding: utf8
Ë database: depot_development
Ì username: root
password:
host: localhost

이 외에도 리스트에 넣을 수 있는 게 있다.
Socket :  MySQL 데이터베이스 아답터에게 서버와의 소켓을 설정할 수 있으며 또한 아래의 명령어로 올바른 소켓을 찾을 수 있다.
mysql_config --socket
pool : 어플리케이션에 연결될 수 있는 사용자 수

3) 디비 연결 테스트 하기
명령라인 2개로 전체적인 application 의 틀과 db 연결을 만들어봤다.
mySql 서버 시작 명령어 : sudo /etc/init.d/mywql start
잘 되는 지 테스트를 해보려면 아래의 명령어를 치면 된다.
depot> rake db:migrate
이 명령어가 무엇을 하는지는 지금 알필요가 있을까? 있더라도 패스..
다음의 명령어를 실행해 보자, 에러가 났다면 위의 yml 파일을 열어 확인하자.
depot> mysql -u root depot_development
mysql> create table dummy(i int);
mysql> drop table dummy;
mysql> exit 혹은 quit

4) 품목 모델과 시스템 관리 어플리케이션을 만들어보자
depot> ruby script/generate scaffold product  title:string description:text image_url:string
명령어를 치고 나면 여러가지 일들이 일어난다. MVC 모델 중 Model 관련된 부분들이 만들어진다.
위의 명령어를 치면 각 model, view, controllers 폴더 아래 필요한 파일들과 폴더들이 만들어진다.

depot> rake db:migrate
위의 명령어는 만들어진 development 데이터베이스에, product 테이블에, title 컬럼은 string이며 description 컬럼은 text, 그리고 image_url 컬럼은 string 으로 세팅이 된다. 정말 만들어졌는지 궁금하다면, mysql 에서 depot_development db 에 연결하여 select * from product 라고 쳐보자. 아마 아무런 데이터가 있지 않겠지만은, 테이블이 생성된걸 확인 할 수 있을 것이다.

위의 명령어들로 일단 db 에 테이블 도 만들어졌고, application 에서 db 연결될 수 있도록 준비가 다 되었다.

자 그럼 WEBrick-based web serer 를 실행시켜 보자
depot> ruby script/server

서버가 실행되고 있다면, 익스플로러 혹은 다른 웹 브라우저 상단/하단 URL 창에
http://localhost:3000/products
라고 치면, 페이지들이 볼 수 있을 것이다.

이로써 iteration 1 이 끝났다.

출처 : Agile Web Development with Rails (Third Edition by Sam Ruby, Dave Thomas, David Heinemeier Hansoon with etc) 위의 내용은 직접 웹에서 구입한 agile Web development with Rails 의 pdf 파일(영문) 에서 읽고 이해한 내용 중, 개인적으로 필요한 부분을 추스려 올린 것으로, 만약 문제시 삭제될 수 있다.
반응형

+ Recent posts