Bucket Place 62

[Ruby on Rails] 데이터베이스 수정 및 데이터 이관

시작하며... 예전에 migration을 이용하여 데이터베이스를 수정하는 방법에 대해서 알아봤습니다. 이번에는 테이블 내용을 변경하면서 이 변경된 형태로 데이터를 이관하는 방법에 대해서 알아봅시다. 테이블 수정하기 테이블을 수정하기 위해서는 테이블 수정에 참여시킬 migration 파일을 하나 생성해야 합니다. migration은 지금까지 새로운 scaffold, controller를 추가했듯이 generate를 사용하여 생성합니다. 여기서 주의해야할 점이 있는데 Rails에서 받아들이는 migration 형식은 add_[NAME]_to_[TABLE] 과 remove_[NAME]_to_[TABLE_NAME] 밖에 없다는 것입니다. 즉, add와 remove만이 가능하다는 것이죠. (현재 제가 사용하듯이 ..

[Ruby on Rails] 데이터베이스 관계설정 및 장바구니 만들기

들어가면서... 데이터베이스를 생성해서 다루는 것까지 알게되었다. 이제는 데이터베이스간의 연결이 필요한 시점이다. 예를들어, 앞서서 만들던 예제에서 장바구니 기능을 추가할 때의 경우이다. 이 경우에는 간단하게 다음과 같은 관계가 성립되게 될 것이다. Has 관계로 묶어서 표현하였지만, 말로 표현하면 다음과 같다. - 한 권의 책은 여러개의 카트에 포함된다. - 한 개의 카트는 여러권의 책을 가질 수 있다. Rails에서 이와 같이 관계표현을 묶어줄때 어떤 방식으로 하는지 알아보자. Cart 데이터베이스 생성 모든 일에 앞서 Cart 정보를 저장할 데이터베이스를 생성해줘야 한다. 앞에서 다루었던 scaffold 를 이용하면 되는데, Cart의 경우 요구사항에 따라 달라지겠지만, 현재에는 이름조차 없는 하나..

[Rbuy on Rails] Application Layout / Main Page 변경

들어가면서... 레일즈에서는 페이지에서 사용하는 공통된 레이아웃을 제공해준다. 이를 이용하여 네비게이션, Header, Footer를 손쉽게 적용시켜 줄 수 있다. 또한, 이제까지는 특정한 메인 페이지없이 진행되었는데 메인 페이지를 설정하여 편하게 웹으로 접근이 가능한 형태로 변경하는 법을 보겠다. 이번 페이지에서의 목표는 일단, 메인페이지 위치를 설정한 후 간단한 네비게이션을 다는게 목표이다. 또한, 페이지 이동 구성을 만들어 볼 것이다. 메인페이지 변경 지금까지는 메인페이지를 키면 Rails에 대한 간략한 정보를 얻는 페이지가 있었을 것이다. 이제는 메인페이지를 켰을때 원하는 페이지가 나오도록 설정하도록 하겠다. 일단, 페이지 연결정보에 대한 모든 파일은 /config/routes.rb 에 저장되있다..

[Ruby on Rails] Review...

들어가면서... 현재까지 해본 것을 복습하고, Scaffold로 생성하지 않은 곳에서 데이터베이스를 참조하는 법을 본다. 현재까지 서점에 대해서 만들고 있는데, 지금 가능한 기능은 책의 리스트를 작성하고 수정하고 삭제하는 행동이다. 이것은 관리자 또는 판매자가 해야할 일이라고도 볼 수 있다. 현재까지 사용해본 기능을 통해서 사용자가 책리스트를 보면서 장바구니를 사용할 수 있는 인터페이스를 만들어보자. 장바구니는 이 다음에 다룰 것이고, 지금은 단지 장바구니 버튼만 있는 페이지가 될 것이다. 대략적으로 목표하는 화면은 다음과 같다. 컨트롤러 생성 사용자가 쇼핑을 할 수 있는 공간을 위한 컨트롤러를 생성한다. 이를 위해서 컨트롤러 market 을 생성하자. > rails generate controller ..

[Ruby on Rails] CSS 적용하기

들어가면서... 이전 페이지에 존재하는 book_list 프로젝트에 CSS를 적용해보도록 한다. CSS를 적용하는 방법에 알아보도록 한다. 그 전에 알아야 할 사실이 몇가지 있다. - 생성된 각 컨트롤러 마다 하나의 [controller_name].CSS.SCSS 파일이 생성된다. > SCSS 확장자는 새롭게 적용된 SCSS문법을 기존의 CSS에 대응시키도록 자동으로 변경시킨다. > SCSS는 추가적으로 계층적 접근법으로 CSS를 정의할 수 있게 해준다. - 모든 페이지는 하나의 Layout 이 겉을 감싸고 있다. > Layout의 위치: app/views/layouts/application.html.erb - 각 페이지마다 다른 Layout을 적용해야 하기 때문에 Layout에서 컨트롤러에 대해서 다르..

[Ruby on Rails] Database 다루기: Scaffold / Migration

들어가면서... 데이터베이스의 테이블을 생성하고 데이터를 생성, 삭제 그리고 수정하는 방법에 대해서 알아보도록 합시다. 이 모든 기능의 시작점은 Scaffold 에 있다고 볼 수 있습니다. Scaffold를 생성하여 이로 인해 자동으로 수행되는 일에 대해서 알아보도록 합시다. 오늘의 목표는 책의 리스트를 보여주는 것에 있고, 자동으로 생성되는 컨트롤러와 뷰를 다루는데 있다. 만들 테이블의 모습은 다음과 같다. 또한 앞서 밝혔듯이 사용한 데이터베이스는 SQLite 3이다. 앞으로 나아가기전에 새로운 책리스트(book_list) 프로젝트를 생성하도록 하자. > rails new book_list Scaffold Scaffold 가 무엇인지에 대해서 한번 간단히 짚고 넘어가보자. 여러번의 실험을 통해서 내가 ..

[Ruby on Rails] Rails ORM Library & Action Pack

들어가면서... Rails는 MVC 패턴에 의거하여 움직인다. MVC에 대한 개념은 이 블러그에서 MVC를 검색할 경우 짧지만 설명이 잘 되있는 부분을 발견할 수 있다. 하지만, Rails에 맞는 MVC 아키텍쳐 그림이 아니기 때문에 여기서 그림만 다시 보여주도록 하겠다. Rails에서는 MVC모델을 지원하기 위해서 다양한 요소를 제공해주는데 ORM Library와 Action Pack이 바로 그것이다. ORM Library 관계형 데이터베이스에 있는 것을 클래스로 맵핑하는 라이브러리이다. 이는 다른 플랫폼(Android)에서도 많이 사용해 보았을 것이다. 다른 플랫폼들과 다르게 레일즈는 테이블을 보고 자동으로 클래스를 생성해준다. 또한, 이 클래스들은 데이터를 다루기 위한 다양한 함수를 제공해준다. 예..

[Ruby on Rails] 시작하기

시작하며 안녕하세요. 어찌어찌 하다 보니 Android를 하면서 Ruby on Rails[web]쪽도 같이 하게 되었습니다. 저도 이제 막 공부를 시작하는 시점이기 때문에 전문적 지식은 없고, 예제를 실행해보고 이에 대한 생각들을 적는 곳으로 당분간 활용 될 것 같습니다. 안드로이드에 대해서 조금씩 정리를 할 것이지만, 한 1주 정도는 Rails에 주력할 것 같습니다. 오늘은 Rails를 열심이 설치하여 Rails는 어떻게 사용하지? 라는 생각으로 간단한 어플리케이션을 만들어 보는 시간을 갖도록 하겠습니다. Ruby 설치에 대해서는 언급하지 않겠습니다. 단지, 제가 Rails 공부를 하면서 사용한 레일즈 버전은4.0.4입니다. 또한, OSX를 기준으로 설명을 하겠습니다. 어플리케이션 생성하기 무엇이든 시..

[Android] SQLite 데이터베이스 사용하기

들어가면서... 안녕하세요. 오늘은 안드로이드에 내장으로 들어있는 SQLite 사용법에 대해서 알아보도록 하겠습니다. SQLite는 MySQL, Oracle 10g, 11g 등과 같은 RDBMS입니다. 문법 또한 거의 95%이상 동일하다고 보시면 됩니다. 제가 SQLite를 안드로이드에서 처음 사용해본 것은 한 3년 전 이었던것 같습니다. 그때는 아무것도 모르고 SQL문을 모두 적어서 사용했었는데, 내장되있는 훌륭한 함수가 많은 것을 알게되었죠 ' ' / SQLite를 사용하는 방법은 단순합니다. 데이터베이스를 컨트롤 해줄 SQLiteOpenHelper 클래스를 생성해주고, 데이터를 저장할 클래스를 만들어 줍니다. 목표 오늘의 목표는 간단한 SQLiteOpenHelper 클래스를 정의하고 이를 사용하여 ..

[Android] ActionBar

들어가면서 안녕하세요. Bucket Place 모바일 개발자 Cloud Travel입니다. 오늘은 ActionBar사용에 대해서 세세하게 알아보려고 합니다. Honycom(API 11) 사용이 가능하게 되고, 현재는 안드로이드 개발에서 일반적으로 모든 어플리케이션이 포함하고 있는 부분이 ActionBar입니다. ActionBar는 기존에 있던 메뉴의 기능을 확장하여 화면 상단에 붙여서 사용할 수 있게 해줍니다. 또한, ActionBar의 하위 호완성을 위해서 sherlock에서 제공해주는 라이버러리를 사용했었지만, 사용이 일반화가 된 현시점에서 하위 호완성을 위해 구글 자체적으로 android-support-v7-appcompat 라이브러리를 제공하기 시작했습니다. 목표 오늘의 목표는 다음의 화면중 1번..