본문 바로가기

[MariaDB]RDB 속에서 NOSQL 사용하기 배경티셔츠의 속성을 저장하는 테이블이 있다고 생각해보자티셔츠의 팔 길이, 색상 등은 항상 저장되어야하는 속성이니 이러한 데이터는 고정 스키마를 사용하면 된다. 그런데 이 중 몇개의 티셔츠는 한정판 티셔츠이거나, 누군가 기증한 티셔츠여서 일반 티셔츠에서는 없는 속성을 갖고 있는 경우가 있다. 이러한 정보들을 RDB에 저장해야한다면, 어떻게 하는게 좋을까? 누가 기증한 티셔츠인지 저장해야하는 경우, 기증자를 의미하는 새로운 필드를 저장하는게 맞을까?전체 데이터 로우 중 5%만 이 필드가 필요한 경우, 새로운 필드를 사용하는게 맞을까? 이러한 경우 필요한 속성만 동적으로 저장할 수 있어야한다. 그러려면 고정된 스키마에 동적 스키마를 적용할 수 있어야한다. 즉 RDB 개념에 NOSQL 개념을 접목시킬 수 있어야..
배리오쉬리 <당신이 회사에서 보지 못하는 90%의 진실> 요약 서문인간은 조직을 떠나 살 수 없는 시스템적인 동물이다. 우리 의식은 각자가 속한 구조와 프로세스를 통해 형성된다. 그런데 우리는 자신을 자기 배의 선장으로 생각하려는 성향이 있다. 이러한 성향이 시스템적 사고와 엇박자를 이루곤 한다. 즉 우리는 현재의 생각과 믿음이 각자가 시스템 내에 처한 입장에서 비롯되었다기보다는, 우리가 본래 그런 사람이기 때문이라고 생각하기를 좋아한다. 이런 사고방식은 전체 시스템을 보지 못하는 데서 비롯되며, 머지않아 비싼 대가를 치르게 한다. 불필요한 스트레스와 갈등을 야기하고, 관계를 무너뜨리며, 기회를 날려버리고, 시스템의 기능을 떨어뜨리는 주범이 바로 이런 사고방식이기 때문이다. 2부. 대인관계 양식을 보라고위자/하급자 관계에서 시스템의 책임과 관련해 건전한 파트너십을 ..
권문수 <실무로 배우는 시스템 성능 최적화> - 강추! 성능 최적화, 인프라 안정화에 관심있는 분들에게 강추하는 책이다 ★★★★★ 성능 문제가 발생할 수 있는 사례와 문제 해결 방법이 구체적으로 적혀있다.그리고 성능 문제에 어떻게 접근해야하는지, 어떤 부분에서 실수할 수 있는지 또한 적혀있다. 이전에 트래픽이 늘어나게 되면서 성능 최적화를 했던 경험이 있는데, 이 때 삽질을 하면서 성능 최적화 문제에 접근하는 방법, 해결 방법 등을 체험적으로 익혔다. 그런데 나도 모르게 알고 있는 이러한 지식들이 책에 디테일하게 정리되어있어서, 놀랐다. 문제 상황을 겪기 전에 미리 이 책을 알아뒀으면 좋았겠단 생각도 들었지만, 삽질을 한번 해보고 나서 이 책을 읽으니 더 잘 읽힌다. 아무튼! 이 책은 슈퍼 그레잇이다. 주변 사람들에게 추천해주고 싶은 책이다. YES24 리뷰..
제럴드 와인버그 <테크니컬리더> 12장 요약 12장. 다른 사람들을 돕는 문제 문제 해결형 리더십 스타일은 일을 진행하는 방법 (프로세스)를 잘 만들어내는 것과 관련있다. 보통, 일 자체는 어렵게 여기지만 일의 프로세스는 저절로 생겨나거나, 당연한거라고 생각한다. 이러한 근거 없는 믿음이 생기는 이유는 별로 노력을 하지 않았는데도 프로세스에 대한 능력을 얻은 것처럼 보이는 사람이 있기 때문이다. 다른 사람을 잘 도와주는 방법을 아는 것도 처음부터, 저절로 알게된 것처럼 보이는 사람도 간혹있다. 그러나 다른 사람을 도와주는 능력이 타고난 능력이여야만 가능하다는 것 또한 헛된 믿음이다. 의식적으로 노력하면, 다른 사람을 도와주는 능력을 배울 수 있다. 테크니컬 책에는 다른 사람을 도와줄 때 의식해야하는 것들이 정리되어있다. 1. 사람을 돕고 싶다는 마..
(넷플릭스) 넷플릭스의 카오스 엔지니어링 백그라운드페이스북을 하다가, AWS 사용자 모임에서 카오스 엔지니어링 관련 밋업을 한다는 글을 발견했다.마이크로서비스 아키텍처, 카오스라는 단어 때문에 카오스 엔지니어링이라는 것에 관심을 갖게 되었다.카오스 엔지니어링이란 어떤 개념인지 찾아보고, 정리해보고자 한다. 카오스 엔지니어링 탄생 배경규모있는 시스템을 빠르게 나눠서 개발하고, 관리를 편하게 하기 위하여 마이크로서비스 아키텍처 같은 분산 시스템 아키텍처가 등장했다.그러나 서비스별 로직을 개별 서버로 분리해냈어도, 각 시스템들은 서로 상호작용하고 있다.그래서 한 군데에서 장애가 발생하면, 이 장애가 여기저기 퍼지게 된다. 게다가 문제들이 여러 시스템에서 얽히고 설켜서, 디버깅하기도 어려운 상황이 발생되기도 한다. 이러한 영향은 아래와 같은 문제들을 ..
제럴드와인버그 <테크니컬리더> 5-7장 요약 5장. 하지만 나는.. 잘 설계된 엔진에는 가장 약한 연결 고리가 존재하지 않는다. 만약 점화 플러그가 정말로 가장 약한 연결 고리라면 우수한 엔진 설계를 통해 점화 플러그를 완전히 제거한 디젤엔진을 선보일 수 있다. 점화 플러그를 완전히 제거할 수 있는 방법을 생각해낼 수 없다면, 적어도 쉽게 교체할 수 있도록 만들 수는 있을 것이다. 마찬가지로 가장 잘 설계된 조직에서는 임명된 리더만이 리더십을 발휘하는 것이 아니라, 모든 구성원이 리더십을 발휘한다. 6장. 혁신을 방해하는 세 가지 큰 장애물 1. 자신에 대한 무지 자신을 객관적으로 보지 못하기 때문에, 변화의 필요성을 인지하지 못하게한다. 2. '문제없어요' 증후군 문제를 정확하게 이해하기도 전에, 쉽게 생각하고 해결책을 결정해버리는 병을 의미한다..
[CURL]같은 파라미터 키로 여러개의 파일을 전송하는 방법 같은 파라미터키로 여러개의 파일을 CURL으로 보낼 때, 보내는 방법은 아래와 같다$ curl -F 'files[]=@/path/to/fileX' -F 'files[]=@/path/to/fileY' ... http://localhost/upload 파라미터명에 []를 붙여주는거다. 샘플$ curl -X POST 'http://localhost:80/movie/create?moview%5Bname%5D=movie_name'; -H 'cache-control: no-cache' -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' -F 'files[]=@/Users/hong/Downloads/movie.mp..
(Phusion Passenger) 웹서버 - 패신저를 구성하는 방식 ( Mode ) 패신저에서 지원하는 3가지 패신저 & 웹서버 조합패신저에서 지원하는 패신저 & 웹서버 조합은 위처럼 세가지가 있다. StrandardAlone 모드 패신저안에 Nginx 엔진이 내장되어 있는 구조이다.그래서 따로 이것저것 Nginx나 Apache를 설치하지 않아도 된다.그래서 패신저 문서에서는 개발 환경 때 StrandAlone을 쓰는게 편하니, 이걸 사용하라고 권장한다.그리고 만약 한 서버에서 하나의 애플리케이션만 띄우는 방식으로 서버를 운영한다면, 프로덕션 모드에서도 StandardAlone 모드를 사용해도 괜찮다. Apache / Nginx Integration 모드 Apache나 Nginx 모듈을 사용해서, 패신저를 운영하는 방식을 의미한다. 이 모드는 개발 환경에서는 사용되지 않고, 프로덕션 환..