본문 바로가기

2018/03

레일즈에 Service/Decorator Layer 적용하기 (2) - Value Object 이 포스팅은 이 길어져서, 두번째 글을 정리해보고자 합니다. Service Layer를 사용하는 개발 가이드라인이 글을 쓴 저자는 Service / Decorator Layer를 사용해서 개발을 할 때, 아래의 가이드라인을 따른다고 합니다. 1. ActiveRecord 모델은 association과 constant만 갖고 있어야합니다. 그 외에는 아무것도 하지 않아야합니다.model에서는 서비스 객체를 사용하지 않아야하고, 유효성 체크는 ActiveModel Form object를 사용해서 해결해야합니다. 2. 컨트롤러는 Service Object만 호출해야합니다. 컨트롤러의 코드는 짧게 구성되어야합니다. 서비스 객체 호출 외에, 컨트롤러에서 해야하는 기능들은 아래와 같습니다. -> HTTP 라우팅, 파..
제럴드 와인버그 <프로그래밍 심리학> 8장-10장 요약 8장 개인의 성격 p. 277 비자아적 프로그래밍에서는 항상 자신의 성격에 최고로 잘 맞는 업무에만 투입될 가능성이 없다. 안정성을 위해 잠재적인 능률을 희생하는 셈이다. 그러나 잠재된 능률을 모두 잃는 것은 아니다. 처음부터 아무렇게나 배치하지는 않기 때문이다. 그리고 다른 사람의 신발을 신어 보는 것은 참을성을 기르는 좋은 방법이다. 프로그래밍 업무는 매우 다양하기 때문에, 잦은 변화에 잘 적응하지 못하는 성격은 직업 프로그래머에 적합하지 않다. ​프로그래머는 하던 일이 중단되거나 외부 요인으로 인해 기존의 작업이 쓰레기가 되는 정신적 충격이 없는 평화로운 나날을 채 한 달도 보내기 어렵다. ​ 프로그래밍에 꼭 필요항 성격에는 겸손함도 있다. 프로그래머가 몇 가지 간단한 기술을 익히고 스스로 전문가라..
레일즈에 Service/Decorator Layer 적용하기(1) - MVC 패턴 이 포스팅은 Build Sleek Rails Components With Plain Old Ruby Objects을 정리한 글입니다 :) 시작루비온레일즈는 사용자를 필요로하는 서비스를 빠르게 앱을 만들고, 검증할 수 있다는 장점이 있습니다.그러나 시스템 규모가 커지면 코드는 점점 거대해지고, 복잡해지게 됩니다. 그러다보면 모델이 너무 뚱뚱해져서, MVC에서 말하는 "fat model, skinny controller" 패턴을 버리고 싶어지기도 합니다.그러나 루비온레일즈를 계속 사용해야하는 경우 어떻게 해야할까요? 이 문제에 대한 답으로 OOP 개념을 사용해서, 코드의 커플링을 줄여주고, 가독성있게 변경하는 방법에 대해서 설명하고자 합니다. 어떤 경우에 Service / Decorator Layer를 사용..
(카오스 엔지니어링)카오스 몽키 카오스 몽키가 생긴 배경 => 넷플릭스에서 IDC에서 AWS으로 이관하면서 탄생했음. 2016년도에 릴리즈되었음카오스 몽키는 golang으로 만들어져있다. go가 설치되어있으면, go get으로 카오스몽키를 다운받을 수 있다. 카오스 몽키를 설치하려면 Spinnaker가 기본으로 설치되어있어야한다. 이게 있어야 몽키가 죽일 클러스터를 만들 수 있다. Spinnaker는 로드 밸런서, 서버 그룹 등등을 테스트 서버에 만들어준다. 카오스 몽키를 띄우려면 데이터베이스도 설치해야한다. 카오스 몽키를 사용하려면 설정 파일이 필요하다. 여기에는 카오스 몽키, 데이터베이스, 스피네이커 설정 정보가 들어간다. Kubernetes Helm은 쿠버네티스 차트를 관리하는 역할을 한다.
(도커) docker component 쓰기 Docker component란?여러개의 애플리케이션 컨테이너를 정의하고, 관리해주는 도구이다. Docker Component 실행하기 docker-compose start 이 명령문을 실행하면, 세트로 묶여있는 컨테이너가 동시에 시작된다. Docker Component 끄기docker-compose stop 이 명령문을 실행하면, 세트로 묶여있는 컨테이너가 동시에 꺼진다. 컨테이너를 하나하나 끄고 싶을 때는 container stop을 하면 된다.
[git] REFLOG - REBASE 취소하기 REBASE를 취소하는 방법잘못 리베이스된 git이 remote까지 반영된 경우, 이걸 취소해야하는 경우가 있다. 이때는 reflog와 reset을 사용하면 된다. 1. git reflog 브랜치명이 명령문은 잘못 리베이스한 로컬 컴퓨터에서 실행해야한다. 그래야 리베이스 로그를 볼 수 있다. 그리고 이 명령문은 그냥 로그를 보는 거여서, 막 쳐봐도 된다. 무서워할 필요 없다. 2. git reset -- hard 128e6d4reflog를 보고, 돌아가고 싶은 커밋명을 찾는다. 그다음 그 커밋명을 위에 명령문처럼 쓰고, 이전 커밋 이력을 모두 reset한다. 3. git push -f origin 브랜치명이렇게 리셋한 커밋이력을 리모트로 강제 푸시를 해야한다. 그러니 -f 옵션을 추가한 후, git pu..
횡설수설하지 않고 정확하게 설명하는 법 요약텐프렌의 법칙 - 어떤 이야기든 알기 쉽게 전달하는 황금 법칙1. Theme : 주제 ( 지금부터 무슨 이야기를 할 것인가? )2. Number : 수 ( 하고 싶은 이야기가 얼마나 되나? 3. Point : 요점, 결론 ( 전달하고 싶은 내용을 한마디로 하면? )4. Reason : 이유 ( 어째서 그렇게 말할수 있는가? )5. Example : 구체적인 예 ( 어떤 사례가 있는가? )6. Point : 요점, 결론 ( 재확인 ) 가장 짧은 시간에 최소한의 설명으로 상대방을 움직여라 목적을 알기 힘든 지적은 사람을 움직일 수 없다. 자신의 시간과 상대방의 시간을 아낄 수 있도록 재빨리 명확하게 의도를 전달해야 한다. 그러니까 이것은 XXX 같은 것입니다어려운 용어도 상대방이 아는 말로 치환해서 "X..
마지막 패리시부인 - 리브 콘스탄틴 ★★☆☆☆중반부까지는 기대되고, 재밌었으나, 스포가 전부인 소설이었다. 마지막 장에서는 작가가 소설쓰기 귀찮아진것처럼 느껴졌다.그래도 그냥저냥 읽을만한 소설이었다. 줄거리는 책 끝을 접다 - 마지막 패리시부인 블로그에서 볼 수 있다 :)