본문 바로가기

관심사

<마틴 클러스만> 데이터 중심 애플리케이션 설계 01장. 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션 트위터의 데이터 파이프라인 사례 System design for Twitter The Architecture Twitter Uses To Deal With 150M Active Users, 300K QPS, A 22 MB/S Firehose, And Send Tweets In Under 5 Seconds 꼬리 지연 시간 상위 백분위 응답 시간은 서비스의 사용자 경험에 직접 영향을 주기 때문에 중요하다. 예를 들어 아마존은 내부 서비스의 응답 시간 요구사항을 99.9분위로 기술한다. 99.9분위는 요청 1000개 중 1개만 영향이 있음에도 말이다. 보통 응답 시간이 가장 느린 요청을 경험한 고객들은 많은 구매를 해서 고객 중에서 계정에 ..
도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문 03. 컨테이너 실전 구축 및 배포 애플리케이션과 시스템 내 단일 컨테이너의 적정 비중 도커는 애플리케이션과 인프라를 도커 컨테이너라는 단위로 분리한 것이라 볼 수 있다. 이런 관점에서 웹 애플리케이션과 워커형 상주 애플리케이션 프로세스 하나를 하나의 컨테이너로 만드는 방식 (컨테이너 1개 = 프로세스 1개)이 괜찮게 생각될 수 있다. 실제로 도커 초기에는 "컨테이너 1개 = 프로세스 1개"를 반드시 지켜야 한다고 생각하는 사용자가 있어 자주 토론거리가 됐다. 그러나 "컨테이너 1개=프로세스 1개" 원칙을 고수하는 것은 무리이다. 예를 들어, 크론 프로세스에서, 다른 job을 실행하는 경우가 있다. 사실 도커 공식문서에는 "컨테이너는 하나의 관심사에만 집중해야 한다"라고 적혀있다. 즉, 컨테이너 하나가 ..
(Google) 개발자를 위한 구글 스프레드 시트 팁 최근에 구글 스프레드 시트를 활용하면서 배운 팁들을 정리해보고자 합니다. 이 글에서 사용한 샘플 데이터 시트는 다음과 같습니다. 1. 여러개의 시트를 하나로 합치기 ={'제주도-카페'!A2:C2; '서울-카페'!A2:C2} 합칠 시트와 범위를 {} 괄호 안에 입력합니다. 수직으로 합치고 싶은 경우에는 Sheet를 세미콜론(;)으로 구분하고, 수평으로 합치고 싶은 경우에는 콤마(,)으로 구분합니다. 2. 시트 데이터에 쿼리 적용하기 =QUERY('카페 총합'!A2:D, "select A,B,C,D where A is not null AND B = '디저트'") 스프레드 시트에 쿼리를 적용하여 데이터를 가져올 수 있습니다. 3. 여러개의 시트에서 필요한 데이터만 가져와서, 하나의 시트에 합치기 ={FILTE..
티스토리 에디터처럼 코드 하이라이트 변경하기 1. HTML에 아래의 코드를 추가한다. atom css 파일은 hilight.js에서 다운받은 후, 티스토리에 업로드해서 사용하면 된다. 2. 티스토리 CSS 변경하기 /* 문단 간격 */ .entry-content p { margin-bottom:30px; display: block; margin-block-start: 1em; margin-block-end: 1em; margin-inline-start: 0px; margin-inline-end: 0px; } /* code highlight */ .entry-content pre { background-color: #fafafa; padding:20px; font-size: 14px; padding: 15px; border-radius: 3px; f..
최범균 <DDD START! > 4-5장 요약 4장. 리포지터리와 모델 구현 별도 테이블에 저장하는 밸류 매핑 애그리거트에 속한 객체가 밸류인지 엔티티인지 구분하는 방법은 고유 식별자를 갖는지 여부를 확인하는 것이다. 하지만 식별자를 찾을 때 매핑되는 테이블의 식별자를 애그리거트 구성요소의 식별자와 동일한 것으로 착각하면 안된다. 별도 테이블로 저장되고 테이블에 PK가 있다고 해서 테이블과 매핑되는 애그리거트 구성요소가 고유 식별자를 갖는 것은 아니다. 보통 주문 애그리거트는 실주문을 의미하는 Order 테이블과 주문 품목을 의미하는 Order Lines 테이블로 구성되어 있다. 여기서 주문 품목(Order Lines)은 밸류이다. Order Lines 테이블도 고유 PK를 갖고 있지만, 주문 애그리거트를 식별하는 고유 식별자는 주문번호이다. (위 ..
(디버깅) Google Chrome 개발자콘솔로 프론트 통신상태 조절하기 Slow 3G으로 설정해주면, 통신상태가 불안한 상태에서 프론트가 처리되는 상태를 디버깅할 수 있다 👍
위르헌 아펄로 -Management 3.0 9. 제약 조건을 정렬하는 방법 여러분의 목표와 팀의 목표를 절충하자 팀과 목표가 부딪히면 그걸 해결해야 할 것이다. 팀의 결정을 무시하면 매우 갚기 어려운 동기 부채가 생길 것이고, 그건 상황을 더욱 어렵게 만들 뿐이다. 권한 경계 목록을 만들자 권한 경계 목록을 만들면 사람들이 전기 철조망에 뛰어들지 않아도 되기 때문에 사람들에게 동기를 부여하고 생산성을 유지할 수 있다. 10. 규칙을 만드는 기술 애자일의 맹점 애자일 선언의 애자일은 팀이 훌륭할 때만 훌륭하다. 애자일 선언이 역량 문제를 해결해주지는 않는다. 프로젝트의 치사율을 낮추고 싶은 애자일 관리자라면 아래의 기본 원칙을 응용할 수 있다. 문화 : 사회 시스템의 역량을 높이기 위해 어떤 방법을 적용하든, 결국 모든 것은 사람이 진심으로 관심이..
(온라인스터디) TELECONSOLE + teletype Atom 온라인 오픈소스 스터디할 때, 행아웃으로 화면공유를 하니까 잘 안보였다.그래서 터미널을 공유할 수 있는 프로그램인 TELECONSOLE과, ATOM 화면을 공유할 수 있는 teletype Atom을 써봤었는데, 신세계였다. 😻온라인으로 협업할 일이 있으면, 요 두개를 가져다 쓰면 완전 좋다. TELECONSOLE teletype Atom 텔레타입 아톰은 Host Atom에 게스트 Atom이 접속하는 개념인데, 읽기 권한만 있는 구글 드라이브 문서를 보듯.. 아톰 화면을 볼 수 있다.