
인스타그램 시작과 성공 - 노 필터는 오랜만에 읽은 교양서적입니다. 개인 SNS의 타임라인에서 많은 지인들이 극찬한 책이라 호기심 반으로 구입하게 됐습니다. 전공서적 읽을 시간도 부족한 요즘인데 결과는 아주 만족스럽네요. 페이지를 넘기는 즐거움이 있었습니다. :) 인스타그램은 10대부터 50대까지 전 세계적으로 모르는 사람이 없을 정도로 유명한 SNS입니다. 이미지를 공유하는 기본 컨셉의 SNS인 인스타그램, 그 창대한 시작과 끝(현재)을 아주 가까이서 엿볼 수 있습니다. 개인적으로 인스타그램은 가입만 해놓고 거의 사용하지 않고 있고, 역사도 잘 몰랐습니다. 페이스북에 인수됐던 사실만 기억하고 있었죠. 하지만 이 책을 읽는 데는 아무 문제없습니다. 책을 덮고 나니 두 가지 생각이 드는데요, 첫 번째로 창..

리더, 리더십과 같은 책은 시중에 많이 있다. 이번에 한빛미디어에서 출간된 실리콘밸리 리더십은 과연 특별함이 있을까? 많은 리더십 책중에 이 책을 읽어야 할 필요가 있겠냐는 거다. 결론부터 말하자면 나는 일독을 권한다. 다만, 지나치게 리더십에 몰입해서 접근하기보다는 소개되는 짤막한 사례를 소설 읽듯이 훌훌 읽으면 좋다. 그만큼 가볍게 읽히는 책이라는 뜻이다. 하지만 인사이트는 묵직하다. 책의 구성은 3개의 부로 나뉘어 있다. 관리자를 위한 1부와 임원을 위한 2부, 그리고 경영자를 위한 3부이다. 도입부에서는 이 책을 어떻게 읽으면 좋을지 안내해주고 있다. 굳이 첫 장부터 시작해서 읽을 필요가 없으며 목차에서 관심 있는 주제로 바로 넘어가서 읽기 시작해도 된다. 전반적인 내용은 큰 줄기로 이어지는데 관..

redis를 사용하면서 필요에 의해 CONFIG SET을 통해 설정을 변경하는 경우가 있습니다. 아마 처음 config set을 검색했을 때 목적은 notify-keyspace-events 변경을 통해 key expire에 대한 이벤트를 받기 위해서가 많을 듯합니다. notify-keyspace-events 변경은 아래 페이지에 자세히 설명되어 있습니다. https://redis.io/topics/notifications Redis Keyspace Notifications – Redis *Redis Keyspace Notifications IMPORTANT Keyspace notifications is a feature available since 2.8.0 *Feature overview Keyspac..

마이크로서비스와 관련해서 여러 가지 책과 블로그 글을 봤지만 이렇게 담백하게 팩트로 때리는 책은 처음입니다. 실제 마이크로서비스를 도입하며 겪게 되는 문제(현상)와 그걸 해결하기 위한 방법을 제시합니다. 또한 마이크로서비스가 정답이 아니라는 이야기도 덤덤하게 적혀있어요. 혹시 유행 따라 마이크로서비스 도입을 검토하고 계신가요? 이 책을 추천드립니다. - 마이크로서비스 도입 이렇게 한다 마이크로서비스와 관련된 개인적인 생각들이 책에 잘 정리되어 있어서 인용해봅니다. 시스템을 설계하는 모든 조직은... 불가피하게 조직의 커뮤니케이션 구조를 본떠 시스템 구조를 만들어 낼 것이다. - 멜빈 콘웨이 조직의 구조가 때로는 시스템(서비스)에 영향을 주게 됩니다. 특히 빠르게 발전하는 서비스의 경우 특히 더욱 그렇죠...

키보드 자판 위에 vim 단축키를 나타내는 이미지가 돌아다니지만 입문자 입장에서 보기 어렵지 않을까 싶은 생각에 입문자용 핵심 단축키 정리를 마음먹었다. 아래 이미지를 보시라. 한글 버전판도 있지만, 입문자에게 이게 다 무슨 소리인가 싶지 않겠냐는 거다. 우주선 조종 기판 같다. 나는 개발 커리어를 리눅스 커널로 시작해서 약 7년간 vim으로만 개발을 해왔으면 이후에도 IntelliJ에 vim 플러그인을 이용하는 등 광적으로 vim을 사랑하는 유저이다. 지금이야 순정이 좋지!라는 마음으로 웬만하면 IDE는 그냥 플러그인 없이 순정으로 이용하는 편이지만. 아무튼 각설하고 vim을 처음 입문하는 사람에게 실제로 도움이 될만한 단축키를 설명하도록 한다. 본문에 있는 단축키는 모두 완벽하게 손으로 익혀주는게 좋..

scrapy는 웹사이트에서 필요한 데이터를 추출하는 오픈소스 프레임워크입니다. 네, 많고 많은 crawler 중에 하나입니다. 혹시 듣보잡 아니냐고요? 네, 뭐 구글 트렌드로 다른 크롤러와 비교해보면 크게 뒤떨어지는 건 사실입니다. (지난 5년간 대한민국 기준 트렌드 자료입니다. 파란색이 selenium, 노란색이 beautifulsoup, 빨간색이 scrapy) GitHub에 Star를 인기의 척도라고 본다면 scrapy는 상당히 인기 있는 프레임워크로 볼 수 있습니다. 이 말인즉, 개발자에게는 꽤나 인기 있는 크롤러라는 겁니다. 아래를 보세요. 스타 수가 무려 41.1k 개고 아직도 활발히 개발되고 있습니다. scrapy는 가볍고, 빠르고, 확장성이 좋습니다. 개발자는 파이썬 기반으로 spider라고..

한빛미디어에서 SQL 튜닝을 정말 쉽고 친절하게 알려주는 책이 등장했습니다. 바로 "업무에 바로 쓰는 SQL 튜닝"인데요, 이전에도 한빛미디어에서 SQL 관련된 책은 여럿 출판된 이력이 있습니다. "데이터 분석을 위한 SQL 레시피"가 아마 대표적일 것 같네요. 데이터 분석을 위한 SQL 레시피는 데이터 엔지니어를 위한 책이었다면 이번 SQL 튜닝 책은 데이터베이스를 다루는 모두를 위한 책입니다. 심지어 SQL 입문 서적으로도 손색이 없어 보입니다. 튜닝의 기초부터 차근차근 알려주거든요. 첫 장부터 마지막 장까지 숨도 안 쉬고 단숨에 읽을 정도로 재밌습니다. 딱 하나 유일하게 아쉬웠던 점은 실습환경이었는데요. MySQL을 로컬 PC에 설치하는 방법을 다루고 데이터를 불러오는 방법을 설명하는 부분입니다. ..

코로나가 우리 사회를 강타하면서 많은 것들이 변했다. 배달 시장의 폭발적인 성장, 아이들의 수업방식, 어른들의 근무 환경의 변화 등. 그중에서도 단연 온라인 근무제 시행이 눈에 띈다. 산업혁명 이후 하루 24시간 삼분지계(8시간 근로, 8시간 개인 시간, 8시간 취침)를 보면 근로 시간은 삶에 큰 부분을 차지하는 것을 수치상으로 확인할 수 있다. 그렇기 때문에 하루의 1/3에 해당하는 근로시간을 어떻게 효율적으로 보낼지는 많은 이들의 관심사이다. 그게 직원이든, 고용주든 상관없이 말이다. ( *고용주는 어떤 환경에서 어떻게 효과적으로 일을 시킬지 고민해야 하는 입장 ) 온라인 근무제는 재택근무, 리모트 근무처럼 여러 가지 명칭으로 불린다. 상세하게 구분하자면 약간씩 차이는 있다. 재택(在宅: 집에서 회사..

IT 엔지니어로 살면서 성장이라는 키워드는 늘 곁에 있었다. 내게 기술적 성장이 필요했던 이유는 스스로의 부족함을 잘 알고 있기 때문에 업계에서 살아남기 위해 갈구해야 했던 부분이다. 하지만 단순히 그것만으로는 이 업계에서 오래 버티기 힘들다. 더 중요한 건 개발 자체가 재밌었기 때문이다. 재밌는걸 더 잘하려면 성장이 답이었던 거고. 그리고 시간이 흐르고 연차가 쌓일수록 성장을 바라보는 관점을 정리할 필요가 있었다. 아래는 이와 관련된 짧은 생각이다. 코로나가 빨리 끝나고 오프라인에서 다른 사람들과 편하게 의견 나눌 수 있는 날을 고대한다. "성장을 강요하지 마세요" 어느 커뮤니티에서 본 문장이다. 요즘 Z세대의 친구들에게 성장을 강요하지 말란다. 그냥 일을 주고 관련해서만 프로답게 커뮤니케이션하면 된단..

앞서 docker-compose를 통해 airflow를 심플하게 설치하는 방법에 대해서 다뤄봤습니다. 스터디, 혹은 가벼운 인프라에서 사용되는 목적이라면 기본 설치된 airflow 환경으로 충분합니다. 하지만 조금 더 묵직한 환경에서 운영이 되어야 한다면 튜닝이 필수인데요, 튜닝에 어떤 것들이 있는지 살펴보도록 하겠습니다. # concurrency, max_active_runs 아마도 튜닝의 첫 단계가 아닐까 싶습니다. airflow의 목적은 병렬로 다수의 task를 운영하는 것이기 때문에 concurrency, max_active_runs 옵션은 제일 먼저 손봐줘야 하는 부분이 될 겁니다. 각각이 나타내는 의미는 아래 그림에서 가장 잘 표현되어 있습니다. 이 이상의 설명은 존재할 수 없을 듯. 설정은 ..

이전 글에서 Airflow란 무엇인지 알아봤습니다. 이번 글에서는 플랫폼을 구축해보고 기본적인 터미널 명령어를 살펴보도록 하겠습니다. 위에 그림에 있는 것처럼 airflow를 구축하기 위해서는 webserver, scheduler, worker, database까지 함께 움직이는 서비스가 많습니다. 이것들이 조합되면 airflow라고 하는 워크플로 플랫폼이 완성되는 겁니다. 여기 있는 서비스를 하나씩 설치하면서 고생하기에는 우리의 시간이 넉넉하지 않죠? 이번 글은 airflow를 제일 빠르고 간편한 방법으로 만날 수 있는 docker-compose를 통한 설치 방법을 알아봅니다. # docker로 airflow 설치 airflow를 운영하려는 환경에 docker-compose가 설치되어 있는지, 설치되어..

Airflow는 Airbnb에서 2014년 10월 시작된 오픈소스 프로젝트입니다. 오픈소스로 2015년 6월 발표되었으며 2016년 3월에 Apache Software Foundation에 인큐베이팅되었어요. 그리고 2019년 1월 아파치 재단은 Apache Airflow를 탑티어 프로젝트로 발표했습니다. 자, 그럼 Airflow가 무엇인지 천천히 살펴보도록 하겠습니다. airflow는 workflow를 구축하고 실행할 수 있는 하나의 플랫폼입니다. 워크플로라는 단어가 모든 것을 설명해주는데요, airflow에서 워크플로는 DAG(Directed Acyclic Graph)으로 표시되며 세부사항으로는 개별 작업을 포함해서 종속성 및 데이터 흐름을 정렬하게 됩니다. 이게 다 무슨 소리인가 싶을 수 있는데요...

아직 한국에서는 엔터프라이즈 환경에서 파이썬을 다루는 곳은 흔하지 않다. 서비스가 궤도에 오르기 전이거나 MSA의 일부분으로 선택되는 경우는 종종 봤지만 말이다. 아 물론, 여기서 이야기하는 부분은 서비스의 백엔드이다. 데이터 엔지니어링이나 머신러닝을 다루는 분야에서는 단연 파이썬은 독보적인 언어니까. 아무튼, 이런 시국에 한빛미디어에서 아주 묵직한 책이 나왔다. 무려 "Architecture Patterns with Python" TDD, DDD, EDM까지 적용한단다. 1부는 비교적 가볍다. 도메인 모델링을 지원하는 아키텍처 구축이라는 제목 아래 저장소 패턴과 추상화, 작업 단위 패턴을 이야기한다. 가볍지만 익숙하지 않다면 호락호락하지 않다. 파이썬 문법이야 당연히 아주 잘 알고 있다는 전제로 내용이..

블로그에 AWS Elastic Container Service 관련해서 몇 편의 글을 연재했고, 아직 발행하지 못한 글도 있지만... 프레젠테이션 정리를 먼저 서둘렀다. 용도는 컨테이너 서비스에 관심 있는 조직 구성원의 흥미를 풀어주는 차원. 우선 목차를 크게 구분하면 ECS의 기초를 설명하고, 가볍게 K8S와 비교할 생각이다. 그리고 자원 사용 부분에서 Fargate와 EC2 비교, EC2로 운영할 때 비용이나 Stateless가 가능하다면 Spot Instances에 대한 부분 검토까지 언급할 생각이다. 로그를 다루는 부분도 쓰긴 해야 했지만 지면을 크게 할애하지 않았다. 워낙 간단한 설정이 끝이라서 딱히 쓸 내용이 없다 (웃음) 수백 개의 컨테이너를 오케스트레이션 하며 발생할 수 있는 문제들을 극복..

국내에는 GCP( Google Cloud Platform )와 관련된 책이 워낙 귀하다 보니 이번에 한빛미디어에서 발간된 "이야기로 배우는 구글 빅쿼리"는 반가울 수밖에 없다. 게다가 빅쿼리에 포커싱 된 책이라니! 빅쿼리는 위키백과에 아래와 같이 정의되어 있다. 빅쿼리는 페타바이트급 이상의 데이터에 대해 스케일링 분석을 가능케 하는 완전 관리형 서버리스 컴퓨팅 데이터 웨어하우스이다. 빅쿼리는 2010년 5월 발표되었으며 2011년 11월 일반에 공개되었다 데이터 다루는 일을 업으로 하는 사람이 아니라면 어쩌면 생소할 수 있는 기술이지만 BigQuery는 빅데이터 플랫폼으로 AWS의 Redshift와 함께 양대산맥을 이루고 있다. 더욱이 Google Cloud 하면 빅쿼리가 연상될 정도의 GCP의 대표적인..

AWS에서 EC2를 제 돈 주고 쓰면 많이 손해입니다. 비용을 절약할 수 있는 몇 가지 방법이 있는데요, SP (Savings Plans) RI (Reserved Instances) Spot 이렇게 기본적으로 세 가지를 언급할 수 있겠습니다. 이번 글에서는 Spot의 설명은 아니고, 그래서 얼마나 할인되는데? 에 대한 이야기를 해보려고 합니다. 위에 그림에서 보여지듯이 Spot Instance 가격은 c5.large 기준으로 리전 별로 차이는 보이지만 최대 64%까지 할인되는 것을 볼 수 있습니다. 한 달이면 $44 차이까지 발생하죠. 이런 인스턴스 열 대를 운영하면 $440입니다. 절대 무시할 수 있는 수준이 아닙니다. 위에 표를 볼 수 있는 경로는 EC2 -> INSTANCES -> Spot Requ..

AWS에서 선택 가능한 EC2 인스턴스 타입은 범용, 컴퓨팅 최적화, 메모리 최적화, 가속화된 컴퓨팅, 스토리지 최적화로 나눌 수 있습니다. 이번 글에서는 범용 타입에서도 버스터 가능한 인스턴스 타입을 소개합니다. 버스트(burst) 가능한 인스턴스 타입은 현재(2021-05-06) 기준으로 T2, T3, T3a, T4g 네 가지 타입이 존재하고 각각의 타입은 CPU와 메모리에 따라서 nano, micro, small, medium, large, xlarge, 2xlarge로 나누어집니다. T 타입 인스턴스에는 CPU credits이라는 개념이 존재하는데 CPU 유휴시간에 따라 credits을 획득하고, CPU가 사용되면 사용률에 따라 획득한 크레딧을 소모하게 되는 구조입니다. 이 의미를 상세히 이해하기..

ECS 클러스터 안에 서비스를 등록할 때 선택하게 되는 Service type에 대해서 살펴보겠습니다. 먼저 옆에 i 아이콘에 마우스를 올려서 팝업 도움말을 살펴보면 다음과 같은 문구를 볼 수 있습니다. Replica services place and maintain a desired number of tasks across your cluster. Daemon services place and maintain one copy of your task on each container instance. If a capacity provider strategy is used, the DAEMON service type is not supported. 위의 내용은 아래와 같이 정리하고 사용할 수 있습니다 # R..
SQLAlchemy는 애플리케이션 개발자에게 SQL의 모든 기능과 유연성을 제공하는 Python SQL 툴킷 및 객체 관계형 매퍼입니다 (공식 홈페이지 소개 문구). 모든 데이터베이스 객체를 다룰 때 신경 써야 하는 부분이 트랜잭션(Transaction)인데 SQLAlchemy도 예외는 아닙니다. 공식 홈페이지의 예제를 통해 기본적인 트랜잭션 관리를 살펴봅시다. from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker # an Engine, which the Session will use for connection # resources engine = create_engine('postgresql://scott:tiger@l..

이번에 시의적절하게 아주 재밌는 책을 리뷰하게 됐다. 바로 "배워서 바로 쓰는 14가지 AWS 구축 패턴". 현재 재직하고 있는 회사에서 AWS를 사용하고 있으며 특히 Container Service와 DW를 위해 Redshift를 들여다보고 있는 와중에 만난 책이다. 과거에도 물론 퍼블릭 클라우드를 여럿 사용해왔지만 이 책이 반가웠던 이유는 여러 가지 실제 사례를 들고 있기 때문이다. 책의 앞 부분은 클라우드가 처음인 독자를 위해 아주 섬세한 부분까지 설명을 해준다. 리전, 네트워크, VPC 등. 그리고 EC2 인스턴스 생성부터 차근차근 첫 단추를 꿰어간다. 순간 "이 책 입문서 아니야?"라는 생각이 들 정도. 하지만 방심하지 마시라, 책의 진도는 순식간에 나간다. 서비스 구축에 가장 흔하면서 일반적인..
- Total
- Today
- Yesterday