가치 기반 가격 (Value-based pricing)
제조업인 경우엔 원가에 저절한 마진을 더해서 판매가가 결정된다. Software는 제조업의 가격결정구조가 잘 맞지 않는데, 우선 원가 책정이 어려운데, 어느정도 개발을 하고 나면 한계비용이 0에 수렵하기 때문이다. 또 기존에 없는 제품을 만드는 경우가 많기에, 벤치마크할 경쟁제품이 없는 경우가 많다. 제품의 가격을 설정하는 것은 매우 중요한 결정이다. Startup은 고객의 관심을 끌거나 초기 사용에 대한 허들을 낮추기 위해 가격을 낮추는 경우가 많다 대부분은 한 번 결정하고 다시는 바꾸지 않는다. (BAD) 또는 충분한 구매의사가 있는 고객에게 해당 기능을 무료로...
Rails(레일즈) bootstrap 세팅.
bootstrap-sass gem 초기 세팅 과정이다. Stylesheets application.css를 application.scss로 바꾼다. application.scss에 추가. @import "bootstrap-sprockets"; @import "bootstrap"; application.css에 있었던 require문 제거 *= require_self *= require_tree . Javascripts application.js에 추가. //= require jquery //= require bootstrap-sprockets
Rails(레일즈) scope
scope은 자주 사용하는 query를 method형태로 사용 할 수 있게 해준다. scope은 def self. class method와 같다. argument를 넘겨 줄 수도 있다. scope :created_before, ->(time) { where("created_at < ?", time) } AND 컨디션으로 여러 개의 scope을 합칠 수도 있다. class User < ApplicationRecord   scope :active, -> { where state: 'active' }   scope :inactive, -> { where state: 'inactive' } end   User.active.inactive # SELECT "users".* FROM "users" WHERE "users"."state" = 'active' AND "users"."state" = 'inactive' OR...
테스트 자동화 - guard
Guard Gemfile group :test do gem 'guard-rspec' end bundle exec guard init rspec Guardfile # Note: The cmd option is now required due to the increasing number of ways # rspec may be run, below are examples of the most common uses. # * bundler: 'bundle exec rspec' # * bundler binstubs: 'bin/rspec' # * spring: 'bin/rspec' (This will use spring if running and you have # installed the spring binstubs per the docs) #...
nil?, empty?, blank? 그리고 present?
item.comment가 존재하는지를 .empty?를 통해 확인했다. item.comment가 nil인 경우에 exception이 발생한다. nil?, empty?는 ruby에서 제공한다. blank?, present?는 rails에서 제공한다. 자세한 내용은 stackoverflow를 참고.