본문 바로가기

대니얼 네틀 <성격의 탄생> 본문 중에서 인류사를 통틀어 언제나 가장 좋은 성격이란 존재하지 않다. 모든 성격에는 장점과 단점이 있다. 그리고 인생이란 자신의 성격에 맞는 "틈새"를 찾아가는 과정이다. 3. 울고 있는, 혹은 웃고 있는 당신: 외향성과 내향성사회성을 외향성과 동일시 하는 데는 각별한 주의가 필요하다. 우선 사회성의 반대인 수줍음은 외향성 수치가 낮은 것이 아니라 신경성 수치가 높은 것이 원인이다. 외향성 수치가 낮다고 해서 반드시 수줍음을 타는 것은 아니다. 외향성 수치가 낮은 사람은 그저 다른 사람들과 많이 어울리지 않는 것 뿐이며, 수줍음 없이 다른 사람들과 어울리는 경우도 많이 있다. 이 때문에 외향성 수치가 낮은 사람은 혼자 동떨어진 것처럼 보이는 경우가 많다. 높은 외향성을 좋은 인간관계와 혼동해선 안 된다..
레일즈에 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 같이 우리가 멋지게 생각하는 조직들에도 적용할 수 있는 이야기를 하려고 합니다. 왜 스포티파이가 좋은 조직 문화를 가진 회사인걸까요?스타트업이나 애자일조직에 있다보면, 스포티파이의 엔지니어링 문화에 대해서 들어본적이 있을거에요. 우리는 왜 스포티파이의 이야기를 듣고, 영상들을 찾아보고, 사람들에게 그들이 일하는 방식에 대해서 이야기를 하는 걸까요? 스포티파이의 일하는 방식이 조직을 잘 운영할 수 있고, 사람들한테 여러 영감을 줄 수 있는 방법이여서 그런거 같아요.그리고 스포..
레일즈에 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을 하면 된다.