나는 Rails를 어떻게 공부하고 있는가?
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)를 함께 만든다는 놀라움을 겪게 됨
- DB는 sqlite3 사용함. postgresql이 좋다고 해서 RDS에 연결할 생각이나 연습에 무슨 RDB인가 하는 상념이 들었음
- 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 설정
- Task A
4일차
- previews
- 나처럼 서버쪽 기능에 치중해야 할 경우 hasmany, belongto, throught가 제일 결정적인 것 같음
- 책이나 블로그에서 된다고 했는데 안되면 대충 포기하고 일단 목표지점 까지 갈 것, 안된다고 중간에 멈추는 일은 너무 허망함
- Task E
- Migrations, rails g migration addquantitytolineitems quantity:integer, addXXXXtoTABLENAME(XXX는 무시)
- 마이그레이션 작업이 생각보다 너무 쉽고 편함
- DB는 될 수 있으면 local에서 작업하고 실제 배포할 때 RDBMS에 연결해야 할 것 같음
- Mongo같은건 어떻게 되는걸까?
- Migrations, rails g migration addquantitytolineitems quantity:integer, addXXXXtoTABLENAME(XXX는 무시)
- 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도 배워야함
Array