요즘 데브옵스(DevOps)는 IaC(Infrastructure as Code)와 떼려야 뗄 수 없는 관계가 됐습니다. 한빛미디어에 IaC와 데브옵스를 총망라하는 번역서가 있으니 바로 Infrastructure as Code 코드로 인프라 관리하기 입니다. 초판이 2017년 나왔는데 이번에 2판이 발간됐네요. 책에서 다루지 않는 내용으로는 운영체제 라던지 Kubernetes 클러스터 설정, 네트워크 등이 있습니다. 또한 Terraform, CloudFormattion, Pulumi 같은 특정 도구로 설명은 하지 않습니다. 대신, 코드로 개념 설명이 필요할 때 stackmaker, servermaker라는 가상의 도구로 설명을 하니 참고하시면 좋습니다. 책에서는 코드로 인프라를 관리하는 여러 가지 방법론을..
Google Cloud Run online hackathon 에 참여했습니다. APAC을 순회하며 이벤트를 하고 있는 것 같은데 한국은 9월 27일이었네요. 해커톤의 기본 룰은 간단했습니다. 퀵랩을 통해 모든 환경은 제공받고 GitHub에서 기본 코드까지 내려받을 수 있었습니다. 그야말로 클릭 대여섯 번이면 게임에 참여가 가능했죠. 다만, 점수를 올리려면 소스코드에 본인만의 로직을 개발해야 했습니다. # 해커톤 방식 해커톤은 게임 형식으로 진행됐습니다. 마치 크레이지 아케이드처럼 바둑판 모양의 경기장에 사용자가 로그인합니다. 여기서 "사용자"는 해커톤 참가자가 배포한 cloud run 애플리케이션입니다. 경기장은 1초에 한 번씩 입장한(등록된) cloud run 서비스 전체를 호출합니다. 이때 경기장의 ..
데이터 문해력을 키워주는 작지만 강력한 책을 만났습니다. 데이터 분석가가 들려주는 데이터 이야기인 "데이터 분석가의 숫자유감"입니다. 기본적인 구성은 만화로 되어 있고 각 화가 끝날 때마다 3~4 페이지 분량의 텍스트로 만화 컷에서 다룬 내용을 정리해줍니다. 총 14화로 구성되어 있는데요. 책 읽는 속도가 느린 편인 저도 한 시간이 안 걸려서 뚝딱 읽을 수 있었습니다(페이지 번호가 표시된 마지막 장이 342p). 사실 책에 84% 정도가 만화로 구성되어 있기 때문에 당연한 결과지요. 84%라는 수치는 342p 중에 1화가 끝날 때마다 대충 4페이지 정도 텍스트가 있으니 총 14화이므로 56p가 텍스트라는 이야기. 그렇다면 전체 중에 텍스트는 56p/342p이므로 대충 16%가 텍스트. 목차도 텍스트고 각..
한빛미디어에서 번역서로 나온 SRE를 위한 시스템 설계와 구축은 아주 흥미로웠습니다. 여기저기 파편화돼서 흩어져있던 정보를 이 책 한 권으로 말끔하게 정리한 것 같습니다. 21개의 챕터, 600페이지가 넘는 분량으로 SRE를 위한 정보는 빠짐없이 담으려는 노력이 엿보이는데요. 특히 중간중간 등장하는 구글의 사례는 아주 흥미롭습니다. 특히 "보안과 신뢰성에 대한 책임을 지는 사람은 누구인가?"라는 질문에 "우리는 조직의 전 직원이 보안과 신뢰성에 대한 책임을 갖기를 권한다. 즉, 개발자, SRE, 보안 엔지니어, 테스트 엔지니어, 기술 리드, 관리자, 프로젝트 관리자, 기술 문서 작성자, 임원 등 모두가 책임을 공유해야 한다"라는 답변에 그동안 재직했던 회사들은 어떠했는지 돌이켜볼 수 있었습니다(웃음). ..
코로나 때문에 개발자 오프라인 콘퍼런스는 멸종했었는데 정말 오랜만에 코엑스 그랜드볼룸에서 콘퍼런스가 열렸습니다. 인프콘 2022. 약 만 명 정도가 신청을 했다는 후문인데요, 그중에 (짐작건대) 1~2천 명 정도 추첨하지 않았을까 싶습니다. 그럼 현장의 내용과 함께 세션에 대한 간략한 요약을 해보겠습니다. 우선 아래는 이번 행사의 전체 타임라인입니다 코엑스 그랜드볼룸은 갈 때마다 길이 헷갈리는데요. 이번에는 대-충 개발자처럼 복장하신 분들이 지하철을 내려서 우르르 가시는 걸 따라가 보니 쉽게 도착할 수 있었습니다(웃음). 자, 코엑스에 들어서자마자 어마어마한 인파에 놀라게 됩니다. 우리 회사도 열심히 채용하고 있는데 개발자들 어디 있나 했더니 여기 다 계셨네요!! :) 위에 사진으로는 "사람이 많은 건가..
2019년 11월 GA 된 Cloud Run은 퍼블릭 클라우드에서 서버리스 애플리케이션 분야의 게임 체인저로 단숨에 자리 잡았습니다. Cloud Functions의 경우 multiple language runtime 개수도 부족해서 타사의 FaaS(Functions-as-a-Service)를 쫓아가기 바쁜 상황처럼 느껴졌는데요. 그러던 와중에 Cloud Run이 등장하게 됩니다. Cloud Run은 Cloud Functions 대비해서 인스턴스 크기가 커졌습니다. 즉, CPU, Memory를 더 풍성하게 사용할 수 있게 된 거죠. 그뿐만이 아니라 Cloud Run은 클릭 몇 번으로 트래픽을 버전별로 분할해서 처리할 수 있고 function instance에서 처리 가능한 요청 개수(maximum requ..
클라우드 인프라를 구축하는 방법은 0) 프로바이더가 제공하는 웹 대시보드에서 생성 1) 애드 훅 스크립트(bash, shell script) 사용 2) 구성 관리 도구(Chef, Puppet, Ansible, Saltstack) 3) 서버 템플릿 도구(Docker, Packer, Vagrant) 4) 서버 프로비전 도구(Terraform, CloudFormation, Openstack Heat) 이렇게나 다양합니다. 오늘은 테라폼을 통해 GCP 인프라를 구축하기 위해 그 뼈대가 되는 모듈 구조에 관해 이야기해봅니다. 본문에서 사용하는 코드는 GitHub으로 제공되니 전체 코드가 궁금하신 분은 링크를 참고하시면 되겠습니다. 이 글은 GCP 기준으로 작성했지만, AWS, Azure 등 어떤 provider를..
한빛미디어에서 발간된 Design Patterns for Cloud Native Applications, 아주 흥미로운 책입니다. 기존에 micro service architecture를 소개하던 여럿 책들과 비슷하게 내용은 흘러가지만 제목 그대로 클라우드 네이티브 애플리케이션 디자인 패턴을 망라하고 있습니다. 아키텍처를 구축하는데 필요한 다양한 패턴을 배울 수 있는데요, 2장- 통신 패턴, 3장- 연결 및 구성 패턴, 4장- 데이터 관리 패턴, 5장- 이벤트 기반 아키텍처 패턴, 6장- 스트림 처리 패턴, 7장- API 관리 및 사용 패턴, 8장- 실례로 살펴보는 클라우드 네이티브 패턴까지 순차적으로 다룹니다. 아래처럼 언제 사용하면 좋은지, 사용해서는 안 되는 경우는 또 언제인지 비교를 통해 나열합니..
데브렐(DevRel) 관련해서 낱낱이 파헤치는 책이 한빛미디어에서 번역되어 나왔습니다. 개발 커뮤니티에 관심이 많다 보니 자연스럽게 데브렐 팀의 역할에 대해서도 궁금했던 적이 있었는데요. 이 책을 통해 한껏 이해를 높일 수 있었습니다. 물론 이 책 한 권으로 그들이 하는 업무, 그리고 역할을 모두 이해하기란 쉽지 않습니다. 막연하게 "소프트웨어 엔지니어란"을 주욱 설명해놓으면 "응? 내가 정말 이 일을 다 하고 있나?", "여기 없는 것도 하는데?"처럼 여러 가지 반응이 나올 수 있을 겁니다. 이 책도 마찬가지입니다. 이 책 한 권으로 데브렐이 무엇인지, 커뮤니티와 어떻게 연결되어 있는지를 한방에 끝낼 수는 없을 겁니다. 하지만 적어도 커뮤니티 활동을 통해 자연스럽게 체득한 정보와 책의 내용을 접목시키면..
MacOS에서 5000번 포트를 사용하려는데 이미 포트가 사용 중이라는 오류를 본 적이 있나요? OSError: [Errno 48] Address already in use netstat 을 통해 살펴보면 실제로 5000번 포트가 열려있습니다. 그런데 내가 실행한 프로그램은 아닌 거죠. jybaek:~$ netstat -nat | grep 5000 tcp6 0 0 *.5000 *.* LISTEN tcp4 0 0 *.5000 *.* LISTEN 어떤 애플리케이션에서 열고 있는 건지 lsof 로 살펴봐도 잘 모르겠습니다. jybaek:~$ sudo lsof -i :"5000" COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ControlCe 460 jybaek 22..
혼자 공부하는 파이썬이 개정판으로 돌아왔습니다. 혼자 공부하는 시리즈는 이미 여러 책을 통해 좋은 평판을 얻고 있으며 개정판이 출시됐다는 건 그만큼 많은 독자에게 사랑을 받았다는 증거가 아닐까요? 이 책은 파이썬의 다양한 문법을 시작으로 아주 기초적인 프로그래밍을 설명합니다. 프로그래밍을 몰라도 괜찮습니다. 파이썬으로 시작하려고 마음먹었다면 이 책을 한번 살펴보세요. 단원의 마무리에서 핵심 포인트를 통해 꼭 기억해야 하는 것들은 정리해 줍니다. 또한 혼자 시리즈의 특징인데 정말 혼자 공부할 수 있도록 수업 진도를 스스로 정리할 수 있습니다. 개정판은 조금이라도 어색한 부분을 수정하기 위한 노력이 있었습니다. 저도 여기에 한 숟가락 얹었습니다(웃음). 파이썬 입문서는 강력한 경쟁상대들이 있습니다. 온라인에..
일 년 넘게 재택근무를 하고 있다 보니 집에 있던 HHKB2가 손에 너무 익어버렸다. 그로 인해 이제 맥북 기본 키보드로 타이핑을 하고 있자면 괜히 화가 치미는 상태다. 나중에 재택근무가 끝나면 다른 환경(회사)에서도 집과 동일하게 해피해킹을 두고 쓰면 좋을 텐데...라는 생각이 뇌를 지배했고 결국 블랙으로 구매했다. 역시 고민은 배송을 늦춘다(웃음). 집에서 사용하는 해피해킹이 흰색이니 회사에서는 다른 즐거움을 얻기 위해 블랙(유각)으로 선택. 집에서 너저분한 선 때문에 고통받았으니 새로운 해피해킹은 하이브리드(무선) Type-S로 구매. 이건 이전 글에서 리뷰했다. 그리고 키보드만 검은색이면 트랙패드랑 색이 안 맞을 것 같아서 기왕이면 깔맞춤(...) 그렇게 블랙 트랙패드2도 구매했다. ( 트랙패드는..
굿바이 SKB SKB를 5년 가까이 사용하고 있었고 그중에 2년은 약정 없이 쓴 것 같다. 그 전에는 KT를 사용했었고. 약정을 걸지 않고 사용했던 건 언제고 떠나고 싶을 때 떠나려는 목적이 컸다. 그런데 그 기간이 2년을 넘어가다니... TMI로 말하자면 이전에 사용하던 KT에서 (현재의) SKB로 올 때 스트레스가 아주 많았다. KT 서비스에 질색도 했었고. 결과적으로 아마 나는 KT 블랙리스트로 등재되어 있지 않을까 하는 생각도. 지금 거주 중인 곳은 SKB 인터넷 회선이 100MB로 들어오는데 다른 통신사도 같을 줄 알았다. 아니 요즘 세상에 100MB 회선이라니!! 더욱이 이번에 알게 된 사실인데 여기 들어오는 SKB 회선은 비대칭형이라고 하더라. 비대칭? 무슨 말인고 하니 업로드와 다운로드 속..
향후 10년 이상 업계에 표준처럼 추천될 괴물 같은 번역서가 한빛미디어에서 나왔습니다. 주인공은 바로 "구글 엔지니어는 이렇게 일한다 (Software Engineering at Google)". 이 책의 유일한 오점은 제목이 아닐까 싶지만 (번역된 제목이 꽤나 오글거린다) 안에 내용을 읽고 나면 묘하게 설득됩니다. 이 책은 제목에서 나타나는 것처럼 구글의 다양한 소프트웨어 엔지니어링 문화를 담고 있습니다. 먼저 아래 목차를 살펴보면 책을 이해하는데 한층 도움이 될 겁니다. # PART I 전제 1. 소프트웨어 엔지니어링이란? # PART II 문화 2. 팀워크 이끌어내기 3. 지식 공유 4. 공정 사회를 위한 엔지니어링 5. 팀 이끌기 6. 성장하는 조직 이끌기 7. 엔지니어링 생산성 측정하기 # PA..
KubernetesExecutor 적용에서 이어지는 내용입니다. 환경 구성이 끝났다는 가정하에 진행합니다. 앞에서 만든 values.yaml 파일을 수정하고 적용해야 합니다. 이 파일은 계속 사용되므로 VCS(Version Control System)에서 관리하면 좋습니다. 자, 파일을 열어보면 gitSync라는 설정 부분이 있습니다. 이 부분을 수정해서 Kubernetes에서 Sidecar Pattern으로 gitSync를 사용할 수 있습니다. 이름부터 직관적이라 어떤 기능인지 이해하는데 어려움은 없습니다. 일단 values.yaml 파일에서 관련된 부분을 살펴보시죠. # Git sync dags: persistence: # Enable persistent volume for storing dags e..
EKS 위에 Airflow 구성에서 이어지는 글에서 이어지는 내용입니다. 환경 구성이 끝났다는 가정하에 진행합니다. 헬름 차트를 통해 EKS 위에 Airflow 배포가 끝났다면 이제 Executor를 변경해보도록 합시다. 단계는 아주 간단합니다. 1) 설정 파일을 다운로드하고 2) 파일 내용을 원하는 방향으로 수정합니다 3) 끝으로 수정된 파일을 배포하는 순서입니다. 먼저 설정 파일을 아래처럼 다운로드하도록 합니다. $ helm show values apache-airflow/airflow > values.yaml artifacthub에 접속해서 다운로드하여도 상관없습니다. 혹은 GitHub을 방문해도 됩니다. 이제 파일을 열고 수정해 줍니다. 아래 내용 기준으로 executor에 있는 CeleryExe..
EKS 생성은 모두 끝났다고 가정하고 진행합니다. 이 글은 Kubernetes를 설명하는 글이 아니므로 namespace, pod, kubectl, helm 등 K8S와 함께 등장하는 용어에 대한 깊이 있는 설명은 하지 않습니다. 로컬 PC에서 aws 명령어를 통해 EKS 컨텍스트를 추가합니다. 무슨 의미인지 해석하실 필요 없습니다. 쉽게 생각해서 로컬에서 kubectl 명령을 사용할 때 바라보게 되는 곳이 AWS EKS라고 생각하시면 됩니다[1]. --name 뒤에 transformer-dev는 각자의 설정에 맞게 변경해주시기 바랍니다. transformer-dev는 이 글이 작성될 때 기준으로 테스트한 EKS 클러스터 이름입니다. $ aws eks --region ap-northeast-2 updat..
고민은 배송을 늦출 뿐. 배송은 대충 2~3주 정도 걸린 것 같다. 해피해킹 프로페셔널2를 사용하고 있었는데 Type-S는 이번이 처음이다. 요즘은 책상 위를 깔끔하게 만들고 싶은 마음이 커서 선 정리도 틈 날 때마다 하고 있는데 슬슬 버겁다. 그래서 이번에 구입한 모델은 하이브리드. 즉, 선을 연결해서 사용할 수도 있지만 기본적으로 블루투스가 지원된다. 이제 책상이 좀 깔끔해지겠지. 배송은 심플하게 왔다. 박스 내부도 꽤나 심플하다. 덩그러니 키보드가 있고 영어/일본어/한자로 표시된 설명서가 동봉되어 있다. 그리고 AA 건전지 2개. 키보드 케이블은 없다. 아니 가격이 40만 원 남짓인데 그깟 선 하나를 안 줘? 하는 생각이 들어서 기분이 살짝 상한다. 아래 이미지를 보면 위쪽에 건전지를 넣는 부분이 ..
장문의 위키를 작성했는데 막판에 이런 문구가 뜨면 공포 그 자체다 Error converting ADF to storage format 컨플루언스(위키)에서 지원하지 않는 포맷으로 글을 작성했다는 의미인데, 세부적으로 파 해쳐 보면 유효하지 않은 특수문자가 글의 제목이나 본문 어딘가에 포함된 경우이다. 응? 특수문자라고? 난 입력한 적이 없는데? macOS Monterey의 입력 버그로 보인다. 왜냐면 그 이전 버전에서는 이와 같은 오류를 만나본 적이 없다. 문제의 원인은 타이핑하는 도중에 백스페이스(\b) 자체가 특수문자로 입력이 돼버린 거다. 그런데 대부분의 사람들은 이 오류를 만나지 않는다. 유독 일부 인원에게만 나타난다. 대충 감이 오지 않나? 바로 키보드 타이핑 습관이 이 오류를 만나게 해준다...
재택근무가 계속되면서 화상으로 진행되는 미팅의 개수가 아주 많아졌다. 더욱이 직책을 맡고 있는 사람이라면 여러 개의 회의가 동시에 진행되는 상황도 마주하게 된다. A 회의와 B 회의가 동 시간에 진행되어 모두 참석하는 경우다. 보통 흔한 케이스는 아니지만 중간에 짧은 의견만 내는 수준이라면 겹쳐도 큰 문제는 없다. 혹은 듣기만 해도 되는 자리라던지. 이런 케이스는 오히려 재택근무의 특수성을 잘 이용하고 있는 경우겠다. 아무튼, 그런데 여러 회의를 들어가면 일단 사방에서 흘러나오는 소리가 귀에 꽂힌다. A 회의실과 B 회의실에서 여러 발화자가 이야기를 하니 알아듣는 게 매우 어렵다. 고도의 집중력이 필요하다. 모든 회의가 끝나고 나면 체력소모가 느껴질 정도. 그런데 더 어려운 상황은 A 회의실에서 이제 내..
- Total
- Today
- Yesterday