Latest update : 2016.01.14

“너희들에게 전할 말은 이렇다. 모든 것은 변한다. 게으름없이 항상 정진(精進)하라.” – Siddhartha(悉達多) a.k.a Buddha(佛陀) Feat. Parmenides

흥미롭게도 우리가 그 작업에 오랜 시간을 쏟지 않은 이유가 바로 그 때문이다. 만드는데 투자한 시간이 적을수록 버리기 쉬운 법이니까. – “레일스와 함께하는 애자일 웹 개발”

0일차

  • 보스가 말씀하셨다. ‘레일즈로 간다’
  • 그래서 나의 사랑스러운 파이썬은 ‘백엔드 인프라’에 남겨두고, Rails 가기로 했음

1일차

  • 우리의 ‘완벽한’ 친구 구글(님)에게 ‘ROR(LOL 아님) 설치’를 물어봄
  • 검색어는 brew install rails, 잘 안 나오는 것 같아서 내가 설치문서를 또 작성함(바퀴를 또 만드는 기쁨이란!!)
    • brew -> rbenv -> ruby -> gem -> ROR
    • 당연히 모든 버전은 최신(!)을 지향함(나중에 후회한다고 했지만, 후회했지만, 그래도 최신으로…)

2일차

  • 레일스와 함께하는 애자일 웹 개발로 공부시작
    • 언제나 잘 될 것 같지만, 되는게 거의 없음
    • 되든 안되든 있어 보이게 소스코드에 git부터 설정함
  • 책을 읽는데 무슨 말인지 도통 몰라서, 책을 포기하고 초보자를 위한 레일스 가이드북 v1.0.6을 따라하기 시작함
    • rails g {controller, model, scaffold} 명령어를 대충 이해함
    • rake db:{migrate, seed} 명령어에 대해서 확실하게 이해함
    • 무슨 짓을 한건지 모르겠지만 일단 뭔가 완성됨

3일차

  • ‘RubyMine’이란게 있다는 소문을 들음
    • 난 개뿔도 모르기 때문에 현질을 통한 강화템 장착
  • ‘레일스와 함께하는 애자일 웹 개발’ 중 ‘상점 만들기 – Task A ~ Task D’까지 진행함
    • DB는 sqlite3 사용함. postgresql이 좋다고 해서 RDS에 연결할 생각이나 연습에 무슨 RDB인가 하는 상념이 들었음
      • 로컬 머신에 왜 설치 안 하냐고 물어보신다면 ‘귀찮기 때문’이라고…
    • rails scaffold로 설정하게 되면 Model(DB)과 View(html.erb)를 함께 만든다는 놀라움을 겪게 됨
  • Task A ~ C까지 진행 중 정리하 내용들
    • Task A
      • 레일스 프로젝트 생성, rails new "PROJECT NAME"
      • 판매 상품 스케폴딩 생성, rails g scaffold Product title:string [...]
      • DB 마이그레이션 반영 및 생성, rake db:migrate
      • 서버 실행, rails server
      • 입력 템플릿 수정, app/views/product/form.html.erb
      • 입력 테스트, rake test
      • DB에 기초 데이터 입력, rake db:seed
      • 출력 데이터 편집, app/views/product/index.html.erb
      • CSS 적용
    • Task B
      • Model에 validates 적용
      • Unit Test용 데이터 입력, test/fixtures/products.yml
      • Unit Test 검증, test/models/producttest.rb
    • Task C
      • Controller만 생성, rails g controller store index
      • Routes 설정, config/routes.rb
      • CSS 적용, app/views/layouts/application.css.scss
        • 화면처럼 잘 안됨
        • 차후 Bootstrap 적용 할 것
        • scss가 뭔지 몰라서 일단 패스, 모르는건 나중에 하거나 안 하는걸로 결정했음
      • Helper 사용, numbertocurrency(product.price)
    • Task D
      • Cart 생성, rails generate scaffold cart
      • Controller에 함수 생성 후 연결
      • hasmany, belongto 설정

4일차

  • previews
    • 나처럼 서버쪽 기능에 치중해야 할 경우 hasmany, belongto, throught가 제일 결정적인 것 같음
    • 책이나 블로그에서 된다고 했는데 안되면 대충 포기하고 일단 목표지점 까지 갈 것, 안된다고 중간에 멈추는 일은 너무 허망함
  • Task E
    • Migrations, rails g migration addquantitytolineitems quantity:integer, addXXXXtoTABLENAME(XXX는 무시)
      • 마이그레이션 작업이 생각보다 너무 쉽고 편함
      • DB는 될 수 있으면 local에서 작업하고 실제 배포할 때 RDBMS에 연결해야 할 것 같음
      • Mongo같은건 어떻게 되는걸까?
  • Task F
    • 파셜 템플릿 사용법, HTML도 함수처럼 사용하는 방법(!)
    • jQuery, 심지어 jQuery도 레일즈에 통합되어 사용 가능(!)
    • 헬퍼가 조금 신경쓰임
  • Task G
    • 폼, 모델, 뷰를 연결하는 부분을 신경써서 익혔음
    • 외래키 연결 부분

5일차

  • Task H
    • 메일 설정 부분(SMTP)
  • Task I
    • devise없이 사용자 로그인 가능하지만, devise를 꼭 배워서 쓸꺼임
  • Task J
    • locale 설정
  • Task K
    • 퓨전 패신져, 카피스트라노
  • 토/일은 쉼

6일차

  • 개인 프로젝트 10개를 만들기로 결심했음
  • 그 처음은 ‘My Gunpla’
    • bootstrap 적용법을 배웠고
    • devise의 기본 기능을 쉽게 사용할 수 있도록 익혔음
    • 단일 DB를 기준으로 한 CRUD는 완벽하게 할 수 있음(아아아… 난 드디어! 초보인가!!! 야홋!!)
  • 내친김에 두 번째인 ‘RSVP’를 만들기로 함
    • bootstrap을 또 연습했음
    • devise는 또 연습했음
    • admin/user/owner 객체를 만들어야 하기 때문에 DB관련 공부를 심도깊게 해야함
      • ‘N:M’ 연결 관련 기술 습득
    • Controller에서 View로 respose하는 중 다음과 같은 문제 상황
      • redirect가 잘 안됨, 그래서 일단 url규칙을 배워야 함
      • respose_to도 배워야함