티스토리 툴바


블로그 이미지
대한민국 출신! 지금은(2010년 10월) 일본에 6년째 살고 있는 SE입니다. 여러 오브젝트 언어에 관심이 많으며 자기계발에 대해서 얘기해볼려고 합니다.
시너북

Notice

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
  • 6,516total
  • 0today
  • 1yesterday
2009/06/11 14:24 분류없음
오늘

톱페이지의 스타일 시트가 깨진건지...
오른쪽 메뉴가 전부 밑으로 가있다...


다시보니 지금은 고쳐져 있네..
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 시너북
2009/06/10 16:34 잡생각
나는 지금 음악(어떤)을 듣고(행동) (하고)있다.
그 음악(어떤 행동)에 대해서 별 감흥을 느끼지 못해서...

1. 내가 전에 들었던(했던) 좋아하는 음악(어떤 행동)을 들으려(하려고) 한다.
2. 만족하지 못하지만 어떤 음악(행동)인지 계속 들으려(하려고) 한다.

나는 2번을 선택했다.
이유는 어떤 음악인지 궁금했서
결과로는 마음에 들지 않았기때문에 다시 들을일이 없을듯.

위처럼 음악뿐만아니라 우리는 매일 행동을 하고 그에 대한 결과를 가져온다.
그 결과는 사소한것부터, 중대한것, 무책임한것, 책임적인것이 있겠다.

대충 4분류해보았는데 아래와 같다.
내가 하고싶지 않은 혹은 하고싶은 행동을 했을때, 결과에 상관없이 행동의 과정이 처벌을 받을수 있는것이, 법으로된 규제된 행동.

내가 하고싶지 않은 혹은 하고싶은 행동을 했을때, 과정과 결과에 따라서 타인의 인식을 바꾸는것이 도덕적 행동

내가 하고싶지 않은 혹은 하고싶은 행동을 했을때,  결과에 따라서 타인의 인식을 바꾸는것이 사회적 행동

내가 하고싶지 않은 혹은 하고싶은 행동을 했을때, 과정과 결과에 따라서 자신의 인식을 바꾸는것이 개인적 행동

행동의 과정을 중요하게 여기는것은  개인적, 도덕적, 법으로 규제된 행동이고
과정보다 결과를 중요하게 여기는것은 사회적 행동이 되겠다.

위 4가지 행동..이외 어떤 행동이 있을까...

생각이 엉뚱한데로 흘렀네..;
결론은 법으로 규제된 행동을 제외하고
나는 나다운 내가 한 행동을 하고 과정을 거치고 결과를 만들어 내어야 한다는것


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

'잡생각' 카테고리의 다른 글

내가 하고 싶은것 하고 싶지않은것  (0) 2009/06/10
TUMI 가방 질러버렸다..  (0) 2009/06/10
데이터가...!  (0) 2009/06/05
posted by 시너북
2009/06/10 12:21 Ruby on Rails

ActiveRecord는 Rails에서 제공하는 Object-relational mapping (ORM) 계층이다.
Table은 클래스들(Classes:Models)이 되고,
Row는 하나의 오브젝트(Object;Model)가 되며,
각 Column들은 객체 속성을 나타낸다.

Rails에서의 ActiveRecord는 개발자가 코딩하는 양을 최소한으로 줄여주도록 만들어져 있다.
각 Model은 Model이름 + s 테이블에 대해서 자동적으로 매핑하도록 되어 있기때문에
자바처럼 개발자가 일일히 각 속성을 쓸필요가 없다.

예를 들자면 아래와 같다
 Products라는 테이블에 대해서  자바와 Rails로 각각 모델을 구현해보자
(Procucts는 name:String, value:String, number:Integer라는 속성을 가지고 있다.)
 Java Rails 
public class Product {
      private String name;
      private String value;
      private int number;
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return the value
     */
    public String getValue() {
        return value;
    }
    /**
     * @param value the value to set
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * @return the number
     */
    public int getNumber() {
        return number;
    }
    /**
     * @param number the number to set
     */
    public void setNumber(int number) {
        this.number = number;
    }
}
class Product < ActiveRecord::Base
end

Java에서는 해당 Table의 컬럼에 대한 속성을 일일히 선언하지 않으면 안되지만
Rails에서는 Object명을 선언해주고 하면 개발자가 할게 없다.
나머지 속성매핑은 ActiveRecord쪽에서 다 해주기 때문이다.

Java는 클래스이름을 어떤걸 하고 속성이름을 어떤걸 하더라도
대입해주면 로직을 쓰면 상관없다.(단 비지니스 계층에는 그만큼의 로직을 써야하겠지만..)
Rails는 속성을 정의 하지 않아도 자동적으로 대입되는 편리함이 있는 만큼 내부적인 규칙이 있다.

1. 테이블 이름
모델이름은 어떤것이라도 상관없지만
그 모델에 대한 테이블 이름은 '모델 + s'가 된다.
즉 Rails에서 ActiveRecord를 상속하고 있는 Model에 대한 테이블을 찾을때에는
모델의 이름 + s 의 테이블을 찾게 된다.

예를 들어 Product라는 Model을 생성했을경우 해당테이블은 자동적으로 Products가 된다.
이것이 Rails에서 모델과 table의 기본적인 매칭 규칙이다.

2. Primary Key
Rails에서 모델을 생성하면 Table을 작성하는 구문이 만들어지는데 어떤 모델이라도 id라는 column을 자동적으로 생성해 Primary Key로 만들게 되어 있다.
그리고 기본적으로 Rails에서 DML작업을 할때 기준이 되는것은 id 다.
 Rails에서 생성된 DB migrate  Migrate한 후에 생성된 table

 class CreateProducts < ActiveRecord::Migration
  def self.up
    create_table :products do |t|
      t.string :title
      t.text :description
      t.string :image_url

      t.timestamps
    end
  end

  def self.down
    drop_table :products
  end
end

 CREATE TABLE  `depot_development`.`products` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(255) default NULL,
  `description` text,
  `image_url` varchar(255) default NULL,
  `created_at` datetime default NULL,
  `updated_at` datetime default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


ActiveRecord는 자동적으로 Table이름을 매핑하고 자동적으로 생성된 id column을 Primary Key로 이용하게 되어 있지만, 테이블이름과 Primary key를 지정할수 있는 방법도 있다.

그건 다음에 소개 하도록 하자
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

'Ruby on Rails' 카테고리의 다른 글

Rails에서 ActiveRecord  (0) 2009/06/10
Ruby on Rails + MySQL + Apache2 on Linux(CentOS)  (0) 2009/06/05
posted by 시너북