본문 바로가기

소프트웨어 이야기/장고와 루비온레일즈

레일즈에 Service/Decorator Layer 적용하기 (4) - Service Object 이 포스팅은 
레일즈에 Service/Decorator Layer 적용하기 (3) - Service Object 이 포스팅은 이 길어져서, 두번째 글을 정리해보고자 합니다.Service Object는 비즈니스 로직의 일부를 옮긴 클래스입니다.Skiny Controller Fat Model 스타일에서는, 한 객체에 여러 비즈니스 로직이 포함되게 됩니다. 반면, Service Object를 사용하면 여러 클래스가 생성되고, 각 클래스는 하나의 목적을 위해 존재하게 됩니다. 왜 Service Object를 사용해야할까요?1. 디커..
레일즈에 Service/Decorator Layer 적용하기 (2) - Value Object 이 포스팅은 이 길어져서, 두번째 글을 정리해보고자 합니다. Service Layer를 사용하는 개발 가이드라인이 글을 쓴 저자는 Service / Decorator Layer를 사용해서 개발을 할 때, 아래의 가이드라인을 따른다고 합니다. 1. ActiveRecord 모델은 association과 constant만 갖고 있어야합니다. 그 외에는 아무것도 하지 않아야합니다.model에서는 서비스 객체를 사용하지 ..
레일즈에 Service/Decorator Layer 적용하기(1) - MVC 패턴 이 포스팅은 Build Sleek Rails Components With Plain Old Ruby Objects을 정리한 글입니다 :)시작루비온레일즈는 사용자를 필요로하는 서비스를 빠르게 앱을 만들고, 검증할 수 있다는 장점이 있습니다.그러나 시스템 규모가 커지면 코드는 점점 거대해지고, 복잡해지게 됩니다. 그러다보면 모델이 너무 뚱뚱해져서, MVC에서 말하는 "fat model, skinny controller" 패턴을 버리고 싶어지기도 합니다...
(번역)Command 아키텍처 기반으로 루비온 레일즈의 Controller Action 리팩토링하기 REFACTORING CONTROLLER ACTION IN RUBY ON RAILS 레일즈 컨트롤러가 뚱뚱해지는 현상을 꽤 많이 봤었다. Medium 눈팅하다가, 레일즈 컨트롤러를 리팩토링했다는 글을 발견했다.  뭔 내용인지 궁금해서 ㅋㅋ 읽어본 내용을 정리해보고자 한다.  컨트롤러는 얄쌍하고, 모델은 뚱뚱하게 로직을 짜는게 루비온레일즈의 MVC 기본 원칙이다.  그러나 시간이 흐르다 보면, 프로젝트는 점점더 커지고 메..
(읽을거리)루비온레일즈 개발자를 위한 DDD 읽을 거리medium 포스팅Ruby on rails DDD => 읽어보니 루비에서는 어떤 느낌으로 DDD를 쓰는지 감이 온다 공식적인 느낌이 드는 ddd-ruby 사이트ddd-ruby.github.io레일즈 앱에서 비즈니스 도메인을 어떻게 관리할 건지 토론하는 페이지 Struggling with complex Rails app and business domain?2012년도에 작성된 sitepoint..
[루비]RUBY KATA - 알고리즘 문제 풀어보는 사이트 CODE WARS 사이트에 가면, 루비 알고리즘을 풀어볼 수 있다.루비 말고 다른 언어들도 지원한다.아래의 주소로 가면, 루비 카타들을 연습해볼 수 있다.https://www.codewars.com/kata/search/ruby?q=
[RAILS] association_basics counter_cache 레일즈 가이드에 counter_cache라는 개념이 있길래, 뭔지 궁금해서 찾아봤다.class Comment < ApplicationRecord  belongs_to :post, counter_cache: trueendclass Post < ApplicationRecord  has_many :commentsend예를 들어, 게시물의 리스트를 조회하는 페이지를 만든다고 생각해보자. 이 때, 게시물..
루비온레일즈에서 Class 메서드와 Instance 메서드 이해하기 루비온레일즈에서의 클래스 메서드와 인스턴스 메서드를 어떨 때 사용하는지 찾아봤다.그런데 뭐... 루비라고 특별히 다른건 아닌거같고, 다 비슷하긴 해보인다.참고한 포스팅http://culttt.com/2015/06/10/understanding-class-methods-verses-instance-methods-in-ruby/클래스 메서드란?클래스 메서드는 클래스에 정의된 메서드를 말한다. 이어서 예제 코드를 보고 설명하고자 한다 ㅎㅎ cla..
레일즈4 + Mass Assignment + Strong Parameter MassAssignmentMassAssignment가 발생할 수 있는 상황  class UserController < ApplicationController def create User.create(params) end end 레일즈에서는 넘겨받은 파라미터로, 바로 모델을 생성할 수 있다. 위의 예제를 보면, 받아온 파라미터를 다른 가공없이 User 객체의 속성값으로 사용하여,..