본문 바로가기

관심사

<브라이언 커니핸> 유닉스의 탄생 이 책은 유닉스의 출시 과정 뿐만 아니라 초기 컴퓨터 과학 성장에 영향을 준 기술들에 대한 이야기가 담겨있다. C 언어, 구문/어휘 분석기, Shell, grep, 파이프, 수학표기법, 이미지 그래픽 표현 방법, 형상 관리 도구, 개발 관리 도구, 함수 라이브러리 등의 시초 등에 대한 내용이 포함되어 있다. 미국의 전화전신회사인 AT&T는 20세기 초에 미국의 전화사업을 독점하고 있었다. 이 회사는 전화기 발명가인 벨이 만든 회사이다. 그리고 이 회사에서는 "통신 기술의 발전을 이끈다"는 비전을 가진 연구소인 "벨 연구소"를 운영하고 있었다. 안정적인 자금 지원을 바탕으로 벨 연구소는 원하는 연구를 자유롭게 할 수 있었다. 이로서 AT&T는 장기적인 안목을 취할 수 있었다. 연구원들이 단기간에 결과를 내..
Kafka Streams In action: State store Event 이벤트에 문맥이 있어야 의미있는 정보를 제공해주는 경우가 있다. 예를 들어, 주식 거래 이벤트를 상상해보자. 주식의 가격과 매매 정보가 기록된 이벤트는 큰 의미없는 지표로 보일 수 있다. 그러나 이벤트가 특정 기간동안의 주식 거래량, 가격변동 등의 문맥을 지닌다면, 이는 주식을 거래할 때 좋은 인사이트를 제공할 수 있다. State 스트림 처리에서 이 문맥을 State (상태)라고 부른다. 언뜻보면 스트림은 관계 없는 개별 이벤트의 지속적인 흐름으로 볼 수 있다. 상태는 데이터베이스의 테이블 같은 정적 리소스처럼 볼 수 있다. State store kafka stream은 state store를 제공한다. kafka stream의 count(), aggregate() 같은 함수를 사용할 때 사..
15단계로 배우는 도커와 쿠버네티스 ✏️ 줄치며 책 읽기 챕터 01. 쿠버네티스란? 쿠버네티스란 컨테이너화된 애플리케이션을 유연하게 운영할 수있는 기능을 제공하는 플랫폼이다. 마스터 kubectl 같은 API 클라이언트로 요청을 받아 애플리케이션 배포, 스케일 업/다운, 컨테이너 버전 업 등의 요구를 처리한다. 노드 실제 프로그램이 실행되는 서비이다. 요청이 늘어나면 기본적으로 컨테이너의 수를 늘리면 되는데, 이때 노드 수를 늘려야할 때도 있다. 쿠버네티스의 연결 가능한 노드 수는 1.11 기준으로 5000대이다. 노드를 추가하고 제거하는 작업은 애플리케이션이 돌아가는 도중에도 가능하다. 챕터 02. 컨테이너의 이해 (1) docker daemon 도커 데몬은 클라이언트인 도커 커맨드의 명령을 받아 도커 오브젝트인 이미지, 컨테이너, 볼륨..
Product catalog란? 제품 카탈로그는 쇼핑몰 전시 영역에 노출되는 상품 대표 속성을 말한다. 아마존 도서 상품 상세 페이지를 예시로 살펴보자. 상품 상세 진입 시 보여지는 상품 이미지, 책 재목, 소개, ISBN, 출판일, 출판사 등은 책을 대표하는 공통적인 속성이다. 판매자가 달라도 동일한 제품이면 전시 영역에 노출되어야하는 제품 속성은 동일하다. 이를 카탈로그라 부른다. 상품은 실제로 판매되는 재화 단위를 말한다. 판매자 별로 판매처, 가격, 제품 상태, 판매 정책 등은 다를 수 있다. 다시 아마존을 예시로 살펴보자. 아마존 도서 페이지의 종이책 항목을 보면, 새제품 / 중고탭을 살펴보자. 여기에는 도서 카탈로그에 속한 상품 목록들이 조회된다. 각 상품은 동일한 제품이지만, 상품 상태, 가격 등은 판매자 별로 다르다. 이..
<칼 뉴포트> Deep Work 📝 밑줄 그으며 책 읽기 2. 몰입과 집중을 방해하는 세상 산만한 회사는 어떻게 만들어지는가 직장에서 수용되는 산만한 행동의 경우 지금은 도처에 존재하는 상시 접속 문화(culture of connectivity)가 지배적인 지위를 차지한다. 이 문화에 따라 사람들은 이메일을 빨리 읽고 답해야 한다. ... 상시 접속 문화가 지속되는 이유는 더 쉽기 때문이다. 이 말이 옳은 두가지 이유가 있다. 첫번째는 필요에 대한 응답성과 관련된다. 필요할 때 질문에 대한 답이나 특정한 정보를 즉시 얻을 수 있다면 적어도 그 순간에는 일이 수월해진다. 이 처럼 빠른 응답을 얻지 못하면 사전에 업무를 계획해야 하고, 더욱 조직적이어야 하며, 필요한 대상을 기다리는 동안 잠시 일을 제쳐두고 다른 곳에 주의를 돌릴 준비를 ..
(개발자를 위한) 광고 도메인 용어 살펴보기 본 글에서는 광고 시스템 도메인에 대해서 살펴보고자 한다. 해당 글은 아래의 글을 참고하여, 애드네트워크 개발 경험을 떠올리며 작성했다. https://medium.com/interviewnoodle/facebook-advertising-system-design-architecture-7eed10e68333 Facebook Advertising System Design & Architecture It’s an age-old adage: “Half the money I spend on advertising is wasted; the trouble is I don’t know which half.” The quote, by department… medium.com 광고는 크게 3가지로 레이어로 나뉜다. 캠페..
<마르티네즈> 카오스 멍키 - 혼돈의 시대, 어떻게 기회를 낚아챌 것인가 '카오스 몽키'라는 제목에 속아 읽기 시작한 책이다. 이 책을 읽기 전에는 '카오스 엔지니어링'과 관련된 내용을 기대했다. 실은 저자가 실리콘밸리에서 겪은 IT 업계의 비하인드를 담은 회고록이었다. 저자는 솔직하고 대담한 필력으로 스타트업 창업과 인수합병, 그리고 실리콘밸리의 IT 대기업에 대한 이야기를 다룬다. 글을 읽다보면 저자인 마르티네즈는 똑똑하지만 거칠고, 잔꾀가 많은 사람으로 보인다. 책 내용과 관계없는 '카오스 몽키'를 제목으로 삼은 것은 실리콘밸리 사람들의 이목을 끌기 위한 전략이지 않았을까 의심스럽다. '카오스 엔지니어링'이란, 시스템이 예상치 못한 상황을 견딜 수 있도록 실험하는 것을 말한다. 운영 시스템에 무차별적인 부하를 일으켜 분산 시스템의 장애 지점을 찾아내고, 회복하는 과정을 ..
<나루세 마사노부> 도메인 주도 설계 철저입문 밑줄 그으며 책 읽기 📝 애플리케이션 서비스는 유스케이스를 구현하는 객체이다. 도메인 객체는 도메인을 코드로 옮긴 것이다. 도메인을 코드로 나타냈다고 해도 그것만으로는 이용자가 당면한 문제나 필요가 해결되지 않는다. 이용자의 필요를 만족시키거나 문제를 해결하려면 도메인 객체의 힘을 하나로 엮어 올바른 방향으로 이끌어야 한다. ... 유효성 검증 로직에서 에러를 반환하게 하는 경우, 결과 객체를 반환한다. 결과 객체는 개발자에게 강제력을 미치지 못한다. 즉, 처리 실패 핸들링의 역할을 클라이언트에 전적으로 위임하게 되는데, 이는 자칫 의도치 않게 실패를 그냥 지나쳐버리는 결과를 낳는다. 반대로 예외를 발새하는 쪽을 택하면 반환 값을 반환하지 않는다. 예외를 발생시키고 아무것도 하지 않으면 프로그램이 종료되..