본문 바로가기

소프트웨어-이야기

Django VS Ruby On Rails Django가 루비온레일즈를 보고 만들었다고 하는데, 어떤 점이 같고 다른지 정리해보고자 한다. 공통점1. 마이그레이트 파일로 테이블을 관리한다. 레일즈가 schema_migrations 테이블에 마이그레이트 코드를 관리한다면, 장고는 애플리케이션이름과 마이그레이트 파일명 단위로 마이그레이트 코드를 관리한다. 2. 기타 등등* 마이그레이트로 테이블을 만들면, 자동으로 id 필드를 추가해준다. * 모델의 CRUD 페이지를 자동으로 만들어주는 어드민 기능이 루비온레일즈의 스캐폴드 기능이랑 유사하다. * 루비온레일즈에서 레코드가 추가/수정된 시각을 created_at, updated_at에 저장하는 것 처럼, 장고도 비슷한 개념이 있다. 다른점1. 루비온레일즈는 MVC 모델을 기반으로 작성된다. 그런데 Dja..
레일즈에 Service/Decorator Layer 적용하기 (8) - 끝~ 이 포스팅은
레일즈에 Service/Decorator Layer 적용하기 (7) - Helper 대신에 Decorator 사용하기 이 포스팅은
레일즈에 Service/Decorator Layer 적용하기 (6) - Service Object으로 콜백 옮기기 이 포스팅은
레일즈에 Service/Decorator Layer 적용하기 (5) - Form Object에서 유효성 체크하기 이 위키는 Build Sleek Rails Components With Plain Old Ruby Objects을 정리한 글입니다 :) 저자는 모델 객체에서는 association과 constant만 관리되는게 더 로직을 깔끔하게 만든다고 이야기했었습니다. 그래서 유효성 체크와 callback 로직은 model에서 다루지 않아야한다고 했죠. 그래서 이번 챕터에서는 model 객체에 있던 유효성 로직을 지우고, 대신에 form object를 사용하도록 하는 방법을 설명하고자 합니다. Form Object란?Form Object는 Plain Old Ruby Object입니다. 그리고 이건 데이터베이스를 호출해야할 때, controller와 service Object에서 사용되는 객체입니다. Form Obje..
레일즈에 Service/Decorator Layer 적용하기 (4) - Service Object 이 포스팅은
레일즈에 Service/Decorator Layer 적용하기 (3) - Service Object 이 포스팅은 이 길어져서, 두번째 글을 정리해보고자 합니다.Service Object는 비즈니스 로직의 일부를 옮긴 클래스입니다. Skiny Controller Fat Model 스타일에서는, 한 객체에 여러 비즈니스 로직이 포함되게 됩니다. 반면, Service Object를 사용하면 여러 클래스가 생성되고, 각 클래스는 하나의 목적을 위해 존재하게 됩니다. 왜 Service Object를 사용해야할까요? 1. 디커플링서비스 객체를 사용하면 객체 간에 독립성을 유지하는 데에 도움이 됩니다. 2. 가독성이름이 잘 지어진 서비스 객체를 사용하면 어플리케이션이 무슨 일을 하는 건지 찾기 쉽습니다. 서비스 디렉토리만 보면, 이 애플리케이션이 어떤 역할을 하는지 쉽게 알아차릴 수 있습니다. 3. 모델과 컨트롤러..
스포티파이 모델을 따라하지 말고, 스포티파이의 사고방식을 따라해라! 이 글은 Dont't Copy the spotify model. Do Copy the spotify Attitude 글을 정리한 포스팅입니다. :) 스포티파이 뿐만 아니라, 넷플릭스, Buffer, Semco, Valve, Zappo 같이 우리가 멋지게 생각하는 조직들에도 적용할 수 있는 이야기를 하려고 합니다. 왜 스포티파이가 좋은 조직 문화를 가진 회사인걸까요?스타트업이나 애자일조직에 있다보면, 스포티파이의 엔지니어링 문화에 대해서 들어본적이 있을거에요. 우리는 왜 스포티파이의 이야기를 듣고, 영상들을 찾아보고, 사람들에게 그들이 일하는 방식에 대해서 이야기를 하는 걸까요? 스포티파이의 일하는 방식이 조직을 잘 운영할 수 있고, 사람들한테 여러 영감을 줄 수 있는 방법이여서 그런거 같아요.그리고 스포..