PyCharm(IntelliJ라도 상관없음)에서 YAML(yet another markup language or YAML ain't markup language) 파일을 열어보면 다음과 같이 syntax highlighting이 잘 적용되어 있습니다. 아마도 대부분의 사람들은 "IDE에서 syntax highlighting은 당연한 기능 아냐?"라고 하실 수도 있는데요. 맞습니다. 확장자에 따라서 기본 설정이 적용되어 있기 때문입니다. 최근에 테라폼(Terraform)으로 코드를 개발하면서 YAML 파일을 템플릿 형식으로 작성할 일이 꽤 많았는데요. 확장자는 tftpl 였습니다. 테라폼에서 templatefile 함수를 통해 읽는 파일의 확장자는 tftpl로 권장됩니다. *.tftpl is the rec..
벌써 회고 시즌이라니... 23년은 유독 더 빠르게 지나간 것 같다. 큰 이벤트가 있었던 것도 아닌데 말이다. 아, (믿지는 않지만) 내년까지 삼재다. 작년에는 무릎 연골을 다쳤고 올해는 회전근개가 손상됐다. 건강이 최고지만 그와 관련된 이야기는 지면을 아끼고 다른 내용으로 채워보도록 한다. 23년에 무슨 일이 있었는지 여러 플랫폼에 기록해 둔 것들을 꺼내서 정리해 봤다. 링크드인에 보면 짧고 굵게 그리고 덤덤하게 본인의 이야기를 날카롭게 작성하신 분들이 몇몇 보이는데(존경합니다) 나는 올해도 그러지는 못할 듯. 짧고 덤덤하지 않더라도 솔직하게는 적어보도록 하자. # 회사 업무 561시간 회의를 했다고 구글 캘린더가 알려준다. 23년은 주말까지 포함해서 휴일을 빼면 근로자가 쉬는 날은 117일이라고 하는..
아.. 드디어 나왔습니다. Priyanka Vergadia님의 Visualizing Google Cloud가 Jpub을 통해 번역서로 출간된 것이지요. 한국 버전 이름은 그림으로 배우는 구글 클라우드 101 입니다. 원서에는 없지만 뒤에 101을 붙인 건 기초 서적인걸 나타냄과 동시에 "101가지 GCP 솔루션" 쪽과 라임을 맞추기 위한 것인지(웃음). 참고로 요즘은 GCP라는 표현보다 Google Cloud로 브랜딩 하고 있는 추세로 보입니다. 구글 클라우드에 글을 기고해 보니 Technical Writer가 그렇게 교정해 주더라고요. 아무튼, 리뷰를 해봅시다. 이 책은 구글 클라우드 바이블이라고 불러도 손색이 없을 정도로 훌륭한 책입니다. 프리양카 님은 요즘도 계속 일러스터를 만들어 내고 계신대요, ..
제목이 다소 오만해 보이지만 내용만은 아주 알찬 번역서가 한빛미디어에서 출간되었습니다. 바로 Release의 모든 것 입니다. 책이 세상에 나오기 전에 제목을 추천받기도 했던 것 같은데요. 책을 덮고 나서도 이것 이상의 제목은 떠오르지 않네요. 그리고 번역서지만 번역서 느낌이 별로 들지 않습니다. 외국 사례들이 나올 때서야 "아, 이 책이 번역서였지"하는 느낌을 받았으니까요. 전반적으로 매끄럽게 잘 읽힙니다. 책에는 아주 많은 내용이 담겨있습니다. 4장 안정성 안티 패턴과 5장 안정성 패턴은 특히 여러 책에 걸쳐 소개되고 있는 내용들이 많습니다. 소프트웨어 아키텍처 101과 같은 책을 본 적이 있다면 아마도 한 번쯤은 접해본 적이 있을 내용일 겁니다. 여기서 다시 정리하는 느낌으로 읽으니 좋았습니다. 기..
안녕하세요. AdTech(Advertising technology) 스타트업 매드업에서 데이터 엔지니어 겸 사이트 신뢰성 엔지니어(SRE, Site Reliability Engineer)로 근무하고 있는 백재연입니다. 이번 글에서는 올해 라스베가스에서 열린 AWS re:Invent를 다녀온 후기를 다루려고 합니다. 키노트나 세션 등 기술과 관련된 콘텐츠는 유튜브와 AWS 공식 블로그에 잘 정리가 되어 있으니 생략하고, 처음 이 행사에 참석했던 입장에서 전반적인 행사 흐름과 체험을 위주로 정리해 봤습니다. 스크롤 압박은 있겠지만 대부분 사진이니 부담 없이 봐주세요! 자, 그럼 시작합니다. # Las Vegas! 현재 매드업과 계약된 MSP를 통해 아시아나항공 전세기로 라스베가스 공항까지 직항으로 갈 수 있..
한빛미디어에서 알고리즘 풀이 책이 나왔습니다. 파트 1에서 파이썬 기본 문법에 대해 설명하고 파트 2에서는 기본 자료구조와 알고리즘, 파트 3, 4는 알고리즘 문제풀이를 다루고 있습니다. 또한 부록으로 알고리즘 시간 복잡도, 빅 오 표기법에 대한 설명을 해주고 있습니다. 책 내용은 그림과 코드를 적절히 섞어서 어려운 문제를 잘 설명해주고 있습니다. 하지만 그게 모든 사람들에게 잘 이해될지는 잘 모르겠습니다. 워낙에 알고리즘이 그냥 하루아침에 뚝딱 되는 게 아니니까요. 아무튼, 이 책은 코딩 테스트에 빈번하게 나오는 문제들을 다루고 있기 때문에 머릿속에 잘 저장해 두면 좋을 겁니다. 알고리즘을 책으로 공부한다고 치면, 아마도 한 권으로 뚝딱 끝내기는 어려울 겁니다. 그런 쪽으로 접근했을 때 이 책도 마찬가..
에.. 이 자격증은 정말 생각이 없었는데 갑자기 필요해서 응시하게 됐습니다. 좀 얼토당토 한 이유기는 하지만 다음 주에 라스베가스에서 열리는 AWS Re:Invent 행사에 참가하게 됐는데요, 어렴풋한 기억에 작년에는 HashiCorp 부스에서 자격증이 있는 사람들한테 스페셜한 굿즈를 나눠줬다는 게 생각이 나서요. 잘못된 기억일 수도 있습니다. 리인벤트 행사가 아니라 다른 행사였을 수도 있고요. 아무튼, 회사 업무 때문에 Terraform을 한참 사용하고 있고 제가 클라우드 발표를 할 때도 여러 차례 테라폼 코드를 언급해주고 있는데 자격증 하나 있으면 나쁘지 않겠다는 생각이 들었습니다. 참고로 저는 하시코드 엠베서더이기도 합니다. 이 글조차 엠베서더 활동일지도(...) 🙃 # 시험 준비 각설하고 이번에 ..
테라폼 코드를 로컬에서 개발&운영하다가 테라폼 클라우드(Terraform Cloud)를 처음 이용하려고 할 때 발생하는 문제입니다. 이건... 블로그에 기록하기도 민망할 정도로 짧은 해답을 내릴 수 있는데요. 테라폼 클라우드와 연결된 GitHub이나 Bitbucket과 같은 VCS(Version Control System)에 tfstate 파일이 존재하는 경우입니다. 이때는 VCS에서 state 파일을 삭제해 주고 다시 plan을 실행해 보세요. 오류가 해결되는 걸 확인하실 수 있을 겁니다. 소소하지만 테라폼 클라우드를 처음 이용하려는 누군가에게는 도움이 되셨기를 바랍니다. :) 인터넷에 많은 트러블슈팅 글이 그러하듯이 이 에러의 원인이 하나만은 아닐 수도 있습니다. 만약 state 파일이 존재하지 않는..
Lambda(람다) 배포 방식에는 네 가지가 존재합니다. (1) 소스코드를 에디터에서 직접 개발 (2) ZIP 압축 파일을 업로드해서 배포 (3) S3 경로에 압축파일을 두고 배포 (4) 컨테이너 이미지를 통해 배포가 있습니다. 이번 글에서는 컨테이너 이미지를 통해 배포하는 방법을 알아볼 텐데요. 특이한 조건이 하나 붙일 겁니다. 테라폼 코드를 통해 Lambda와 ECR을 최초 배포할 때 컨테이너 이미지를 어떻게 처리해야 하는가입니다. 정확하게는 AWS 인프라를 테라폼으로 초기 구축하는 상황인 겁니다. 이런 상황에서 무엇이 문제가 되는지 살펴보려면 생성해야 하는 리소스를 알아야 합니다. 먼저 ECR(Elastic Container Registry)를 생성해줘야 합니다. 소스코드는 대충 아래와 같은 모양입..
테라폼으로 EKS를 생성할 때 만나는 에러입니다. 문제 상황은 aws_eks_cluster 를 통해 클러스터를 생성하고 나서 kubernetes_config_map 으로 aws-auth를 ConfigMap에 등록하려고 할 때 발생합니다. terraform apply 를 통해 두 개의 리소스가 함께 배포되는 상황입니다. 대략 아래와 같은 코드를 실행하는 상황이라고 볼 수 있습니다. 불필요한 부분은 말줄임표로 생략했습니다. resource "aws_eks_cluster" "this" { name = var.cluster_name ... } resource "kubernetes_config_map" "this" { metadata { name = "aws-auth" namespace = "kube-syste..
한빛미디어(주)의 임프린트 브랜드 디코딩에서 플러터 앱 개발을 위한 책이 발간됐습니다. "초보자도 프로처럼 만드는 플러터 앱 개발"은 플러터(Flutter)를 활용한 모바일 앱 개발을 처음 시작하는 초보자들을 위한 꽤나 훌륭한 안내서입니다. 이 책은 3개의 파트와 5개의 장으로 구성되어 있으며, 플러터로 앱을 개발하기 위한 모든 단계를 아우르고 있기 때문에 천천히 읽고 실습하다 보면 어느 순간 앱을 완성해 볼 수 있습니다. 파트 제목이 재밌습니다. 플러터 여정으로 표현하고 있는데요, PART 1에서는 플러터 여정의 시작을 다룹니다. 우선 플러터 소개를 시작으로 플러터로 가능한 것들을 설명합니다. 개발을 시작하기 전에 필요한 모든 설정 및 프로젝트 생성에 대한 내용이 포함되어 있습니다. 이 부분은 초보자..
얼마 전에 자격증 취득 관련 글을 올렸는데 이어지는 글입니다. 이전 글은 AWS 자격증 취득 후기 (SAA, SAP) 에서 확인해 주세요. # intro. 이렇게 된 거 한 개 더 취득해 보자 10월 20일(금) 저녁에 SAP 합격 메일을 받고 기분 좋게 한 잔 했습니다. 주말 동안은 개인적인 일로 좀 바빴습니다. 월요일이 되고 곰곰이 생각해 보니까 뭔가 보유한 자격증에 균형이 맞지 않는 것 같은 생각이 맴돌았습니다. AWS 전체 자격증 중에 아래 두 개를 취득한 상태였는데요. 그래도 위쪽에 있는 다른 초록색도 갖고 있는 게 좋지 않을까? 하는 생각이 들었습니다.. 하.. 이래서 자격증은 차라리 한 개도 없을 때가 속이 편합니다. 어쨌든 머릿속에 맴도는 욕심을 채우고자 DevOps Engineer - P..
이미 인터넷에 많고 많은 후기가 있지만 저만의 의식흐름으로 자격증 취득 후기를 정리합니다. 누군가에게는 도움이 되겠죠? :) 자격증 시험을 준비하는 모든 분들, 좋은 결과 있으시길 바랍니다! # 시험 종류 생전 자격증에 관심이 없었는데 어떤 이유로 자격증이 필요했습니다. 일단 하나만 있으면 될 것 같아서 AWS Certified Solutions Architect - Associate 시험(SAA-C03)을 봤네요. 참고로 AWS 자격증은 Foundational, Associate, Professional, Specialty로 구분됩니다. 보기 좋게 아래 이미지로 정리했습니다. 참고해주세요. # 시험 장소 시험은 온라인, 오프라인을 선택할 수 있는데 저는 오프라인은 가본 적이 없습니다. 시간대가 마땅한 ..
이전 글을 작성한 이후로 소스코드가 많이 변경 됐습니다. 특히 아래 구문(이전 글에서 작성했던 내용)에 대해 수정이 있었는데요. 그리고 number_of_messages_to_keep는 꼭 0으로 넣어주세요. 이 환경변수는 대화내역을 N개 저장하고 있겠다는 설정인데요. 대화내역을 저장하는 경우 ChatGPT와 대화할 때 상호작용이 되는 것처럼 보일 겁니다. 이전 대화내용을 기억하고 있으니까요. 아주 훌륭한 옵션이죠. 다만, 이 설정을 위해서는 Redis가 필요합니다. Google Cloud에서 Memorystore(Redis)를 올려서 사용하는 것도 좋지만 비용 문제로 다루지 않겠습니다. 만약 이미 Redis가 있다면 앞에 Hello-ChatGPT에 환경변수로 REDIS_HOST를 넣어서 사용해 주시면 ..
진화론을 믿는 사람의 비율이 어떻게 될지 모르겠습니다. 하지만 분명한 것은 우리가 구축하는 아키텍처는 진화해야 한다는 겁니다. 어떻게 진화시키면 될까요? 한빛미디어에서 진화적 아키텍처 라는 주제로 흥미로운 책을 내놨습니다. 아키텍처를 갱신하는 방법으로는 크게 점진적인 방식과 빅뱅 방식이 있습니다. 빅뱅 방식은 전체적으로 새로 구축하는 것을 설명합니다. 시간이 충분하다면 빅뱅 방식도 괜찮을 겁니다. 하지만 일반적인 경우라면 점진적인 방식으로 비즈니스에 속도를 내야 합니다. 책에서 소개하는 트위터의 사례를 봐도 그렇습니다. 처음부터 아름다운 백엔드 시스템을 구축하려고 마음먹었더라면 제때 서비스를 론칭하지 못했을 것이고 다른 경쟁자에게 명성을 빼앗겼을지도 모르지요. 마이크로서비스는 코드 재사용을 자제하며 커플..
한빛미디어에서 번역서로 발간된 "견고한 데이터 엔지니어링"은 흥미로운 내용을 잔뜩 담고 있습니다. 책의 표지만 봤을 때는 데이터 엔지니어 커리어를 쌓으려는 사람들을 위한 것처럼 보이는데요. 물론 이 책의 내용 중심에는 데이터 엔지니어링이 있지만 데브옵스(데이터옵스와 비교되는)와 모놀리스와 마이크로서비스 인프라 아키텍처 내용도 품고 있습니다. 데이터 파이프라인을 구축할 때 자주 사용되는 메시지 큐와 데이터 스트리밍 플랫폼(카프카 같은)에 대한 설명도 잘 되어 있습니다. 그리고 OLTP(Online Transactional Processing), OLAP(Online Analytical Processing) 데이터베이스 이야기, 데이터웨어하우스, 데이터 레이크, 레이크 하우스 등 다양한 용어의 설명과 트렌드..
쿠버네티스는 컨테이너 오케스트레이션 도구입니다. 컨테이너는 쿠버네티스에서 파드(pod)라는 개념으로 감싸집니다. 하나의 파드는 한 개 이상의 컨테이너를 가질 수 있습니다. 즉, 애플리케이션 컨테이너 한 개와 그 옆에 사이드카 패턴으로 다른 컨테이너를 붙여서 하나의 파드로 운영하는 것이 가능합니다. 각설하고, 이번 글에서는 파드를 수평 확장(Scale-out)하는 방법인 HPA(Horizontal Pod Autoscaling)와 노드를 수평 확장하는 카펜터(Karpenter)를 엮어서 개념을 이야기해 보도록 하겠습니다. 언제나와 마찬가지로 글에 잘못된 부분이 있거나 토론이 필요한 부분이 있다면 댓글로 의견 부탁드립니다 :-) # HPA(Horizontal Pod Autoscaling) Deployment로..
평생직장은 없다는 생각으로 창업을 꿈꾸는 한 사람으로써 좋은 기회에 드디어 린 스타트업을 읽게 되었습니다. 공교롭게도 이 책에도 같은 뉘앙스의 문장이 있었네요. 평생직장은 옛말. 평생 고용과 연금의 안정성이 사라지면서 자신의 운명을 직접 통제하고자 하는 사람이 늘고 있다. 부업을 통한 창업이 늘고 있다 린 스타트업은 이번에 10주년 기념판으로 전명 개정돼서 출판됐습니다. 무려 10주년입니다. 여기까지만 들어도 이 책이 주는 무게감을 느낄 수 있지요. 창업을 하고자 하는 사람들에게 몇 가지 바이블 도서가 있는데 그중에 한 권이 바로 "린 스타트업"일겁니다. IPO까지 성공한 창업가 몇 분을 만나서 자문을 구한적이 있는데 하나같이 추천해주신 책이기도 하고요. 이미 대단한 책이라 워낙 많은 리뷰가 있겠지만 ..
Google I/O 는 구글의 연례행사 중에 가장 큰 행사로 꼽힙니다. 올해 I/O 는 아주 소수 인원(소문으로는 디렉터급 이상)만 오프라인으로 참석할 수 있었다고 합니다. 일반 대중들에게는 사실상 온라인 콘퍼런스였던 거죠. 오프라인 행사가 아닌 걸 아쉬워하던 찰나에 I/O Connect 행사에 초대됐습니다. I/O Connect 는 올해 처음 생긴 행사인데요. Google I/O 와 I/O Extended 사이에 존재하게 됩니다. Connect 는 올해 Miami, Amsterdam, Bengaluru, Shanghai 네 개 지역에서 진행됐습니다. 그중에 제가 참석한 곳은 마이애미였네요! 행사는 오전부터 시작됐습니다. 마이애미의 후끈한 날씨에 리프트(Lyft)를 타고 행사장으로 빠르게 이동했습니다. ..
개발자의 engineering ladder(혹은 career path)를 이렇게 잘 풀어낸 책이 있을까요? 한빛미디어에서 스태프 엔지니어(Staff Engineer)의 역할과 갖추어야 하는 역량을 설명하는 번역서가 발간되었습니다(디코딩 출판사는 한빛미디어의 임프린트 브랜드입니다). 바로 개발자를 넘어 기술 리더로 가는길 입니다. 책에서 예시로 소개하는 경력 사다리의 예시를 살펴보세요. 매니저 테크와 엔지니어 테크를 아래와 같이 나누고 있습니다. 이 책을 읽으면서 나의 롤(role)은 무엇이며 어느 위치에 있는지 다시 한번 생각해 보게 됐습니다. 역할과 롤이 맞게 돌아가고 있는지, 혹은 그 이상, 이하로 처리하는 것은 없는지 등을 말이죠. 당연히 회사와 조직마다 직급에 따라 주어지는 업무 역할에 차이는 있..
- Total
- Today
- Yesterday