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 회의실에서 이제 내..
객체지향 언어로 소프트웨어를 개발하면서 필수로 알아야 하는 디자인 패턴을 정리해놓은 책이 이번에 개정판으로 돌아왔다. 바로 "헤드퍼스트 디자인 패턴"이 그 주인공이다. 이 책은 우리의 좌뇌와 우뇌가 골고루 일 할 수 있도록 알차게 구성되어 있다. 독자가 책을 더 깊이 있게 이해하고 흥미롭게 읽을 수 있도록 글과 그림을 적절히 섞어뒀다. 아마 오랫동안 머릿속에 기억될 듯한데 하나씩 살펴보도록 하자. 호기심을 한껏 당겨주는 도입부가 인상적이다. 헤드퍼스트에서 발간되는 모든 책에 들어가는 내용인지는 모른다. 헤드퍼스트 책은 처음이라. 많은 페이지에 적절하게 그림이 들어가 있다. 지금까지 이런 책은 처음이다. 독자가 진심으로 공부할 수 있도록 두뇌를 정복하는 방법까지 지면으로 설명하고 있다. 이 정도면 패턴 가..
pycharm, datagrip을 최신 버전으로 업데이트했을 때 메뉴가 전부 현지화(한글) 되어 버렸다. 아마 IntelliJ를 포함해서 JetBrains에서 나오는 모든 프로그램이 동일하지 않을까 하는 예상된다. 자, 그럼 메뉴를 영어로 되돌리고 싶으신 분들은 최신 버전으로 업데이트될 때 자동으로 설치된 "Korean Language Pack / 한국어 언어 팩" 플러그인을 제거해주면 되겠다. 딱히 영어가 능숙한 건 아니지만 이미 눈에 익어버려서 한글 메뉴는 매우 불편하게 느껴졌다. 왜 이런 업데이트를 감행했을까? 아무튼, 메뉴 위치는 Preferences -> Plugins에서 찾을 수 있다. 영어로 변경하고 나서 다시 마음이 편-안 해졌다. :) 그러고 보니 파이참은 한 2년 만에 업데이트한 건가...
아키텍트 지망생을 위한 기본서가 한빛미디어에서 발간되었다. 바로 Fundamentals of Software Architecture, 소프트웨어 아키텍처 101 되시겠다. 총 세 개의 파트로 구성되어 있고 대략적인 흐름은 다음과 같다. 소프트웨어 아키텍처란 무엇인지 살펴보고 역사적인 트렌드를 알아본다. 아키텍처적인 사고와 모듈성에 대해 언급하며 응집 / 커플링 / 커네이선스처럼 아키텍처를 설계할 때 고려해야 하는 것을 설명한다. 요즘 아키텍처 관련된 책이나 글을 찾아보면 한 번씩은 모두 언급되는 용어들인데 이 책에 가득 정리되어 있다고 보면 된다. 아키텍처 스타일 파트에선 다양한 아키텍처 스타일을 다룬다. 레이어드 아키텍처 스타일(2 티어, 3 티어 아키텍처를 생각하면 된다), 파이프라인 아키텍처 스타일..
코로나가 시작되고 2년 가까이 가족끼리 외식 한번 한 적이 없다. 술자리는 물론 지인들과 얼굴을 못 본 지 2년이 지났다. 매년 스승에 날에 찾아뵙던 은사님도 만나지 못했다. 아이는 그 흔한 키즈카페 한번 가지를 않았고 집에만 머물렀다. 학부모가 원하면 가정학습이 가능하던 2020년에는 유치원도 보내지 않은 날이 더 많다. 외출 후에 집으로 돌아오면 손을 씻고 알코올 솜으로 핸드폰부터 닦았다. 백신의 경우 본인은 3차까지, 아내는 2차까지 완료했다. 이렇게 2년을 보냈는데 아내가 열이 나기 시작했다. 자가검사키트(신속항원검사)로 검사해보니 음성이다. 감기일까? 혹시 모르니 마스크를 쓰고 밤을 보냈다. 다음날 아침 다시 자가검사키트로 검사했는데 희미하게 두 줄이 보인다. 아내는 그 즉시 선별 진료소로 외출..
in Action 시리즈의 하나로 그래프QL 인 액션이 한빛미디어에서 번역서로 출간되었습니다. in Action 시리즈답게 그래프QL이란 무엇인지 개념을 먼저 설명하고 기존 REST API와의 차이점을 잘 서술하고 있습니다. 또한 보안, 캐시와 최적화, 학습 곡선이라는 소제목으로 문제점도 빼지 않고 다룹니다. 총 3개의 파트, 10 챕터로 구성이 되어 있는데 목차를 살펴보면 다음과 같습니다. 아마 글을 읽으시는 분은 목차를 보고 대충 어떤 흐름으로 내용이 전개될지 가늠하실 수 있을 거예요. # PART 1. 그래프QL 경험해보기 그래프QL 소개 그래프QL API 그래프QL 작업 수정 및 구성 # PART 2. 그래프QL API 작성법 그래프QL 스키마 설계 스키마 리졸버 구현 데이터베이스 모델과 관계 사..
한빛미디어에서 발간되는 혼공 시리즈에 R이 추가됐다! 이 시리즈는 개발 언어를 잘 모르는 사람을 대상으로 하기 때문에 진입 장벽이 낮다. 혼자 공부하는 R 데이터 분석은 우연한 기회로 베타 리딩에 참여한 책이다. "혼자 공부하는"이라는 제목에서 느껴지듯이 대상 독자에 제한이 없다. R이라는 언어나 프로그래밍 지식이 없어도 상관없다. 변수, 함수, 벡터, 행렬 등 아주 기본적인 개념부터 짚어나가기 때문에 혼자 공부하는데 무리가 없다. 데이터 분석을 위한 프로그래밍 언어로는 R 외에도 파이썬도 많이 사용되지만 선택은 사용자의 몫이다. 파이썬은 대중화되어 있기 때문에 이미 파이썬을 다뤄본 사람이라면 데이터 분석도 파이썬으로 하는 게 편할지 모르겠다. 한편 R의 경우는 파이썬에 비해 강력한 시각화를 자랑한다. ..
한빛미디어에서 번역서로 발간된 개발자에서 아키텍트로. 작년 연말에 사놓고 먼지만 쌓이고 있었는데 드디어 완독 했다. 책 표지는 아주 흥미롭지만 내용은 살짝 지루하다. 주된 내용은 아키텍처를 설계할 때 고려해야 하는 것들과 관련 문서는 어떤 방법론으로 작성하게 되는지, 이해관계자와 무슨 데이터(아키텍처)를 두고 이야기 나누면 되는지 등 여러 가지를 포괄하고 있다. 완독하고 나서 보니 책의 구성은 소프트웨어 스펙의 모든 것과 같은 느낌을 준다. 개발자, 혹은 아키텍트를 준비하는 사람들에게 단비 같은 책이라고 말할 수는 없다. 이 책을 추천하느냐고 묻는다면 나는 글쎄. 이 책을 통해 무언가 대단한 깨달음을 얻기를 기대한다면 권하지 않는다. 내 경우에 "아키텍트"라는 단어가 주는 느낌은 소프트웨어 아키텍처, 혹..
과거 회고를 훑어보니 과거의 나와 대화하는 형식으로 보는 것도 재미있겠더라. 그래서 이번에는 나 스스로를 인터뷰하는 방식으로 진행해보면 어떨까 하는 생각이 들었다. 미래의 내게 재미있는 선물이 되지 않을까? 그럼 바로 시작 :) # 2020년 회고에서 생각했던 목표대로 살았나? 2020년이 끝날 때 2021년에는 엔지니어링 파워를 끌어올리는데 집중하겠다고 다짐했는데 나름 잘 지켜졌다. 여러 가지 기술을 다뤘고 많은 코드를 찍어냈다. 하지만 이 과정에서 내가 갖고 있는 에너지를 무작정 소모하는 게 아니라 조절을 잘해야겠다는 생각을 하게 됐다. 에너지는 유한한 자원이니까. 예를 들어, 가지고 있는 열정에 80%를 업무에 투자하고 나머지는 자기 계발에 힘쓴다던지, 책을 보거나 알고리즘 공부를 하는 등. 여유가..
한빛미디어에서 발간된 데이터 스토리는 구성이 굉장히 재미있다. 짤막짤막하게 데이터 관련된 이야기를 풀어내고 있고 여러 가지 상황에서 제안서나 보고, 발표에 쓰이는 다양한 기법이 잘 풀어져서 스토리를 이루고 있다. 책 제목이 내용과 제법 잘 어울린다. 각 챕터가 짧게 구성되어 있기 때문에 빠르게 읽을 수 있고 중간에 잠시 책을 덮어 두더라도 전혀 부담이 없다. 챕터 구분도 깔끔해서 언제든 필요한 부분을 되짚어볼 수 있다. 책 읽는 속도가 느린 편인 본인도 2-3시간 만에 전체를 빠르게 완독 할 수 있었다. 그리고 적절한 위치에 등장하는 차트, 다이어그램은 읽는 재미를 더 해준다. 발표를 위한 장표를 만들 때 보통은 글자를 최대한 빼고 숫자, 그림을 많이 보여 주는 게 좋은 발표라고 이야기를 한다. 장표에 ..
아이가 태어나고 바다를 한 번도 보여준 적이 없었다. 멀미가 심해서 어디 데려가려면 퍽 고생을 해야 했기 때문인데 이번에 큰 마음먹고 근교의 바다로 가기로 결정. 당연히 철썩철썩 파도를 보여주고 싶은 마음에 바다를 검색했다. 그리고 펜션 예약까지 완료. 그런데 여행 가기 전날에 우리의 목적지인 방아머리를 검색해보니 "도착했을 때는 갯벌이었어요"라는 블로그 글이 떡하니 나왔다. 순간 아차 싶었는데 우리가 도착하는 시간이 만조인지 간조인지 확인할 필요가 있었던 것. 만조(滿潮)란 가득찰 만, 조수 조. 바닷물이 가득 찼다는 뜻이다. 바로 내가 원했던 일반적인 사람들이 생각하는 바다의 모양이다. 한편 간조(干潮)는 마를 간에 조수 조. 바닷물이 말랐다는 뜻이겠다. 지구의 자전 12시간과 달의 공전 24시간이 ..
이번 글에서는 한국에서 개발하고 서비스하고 있는 OTT(over-the-top media service: 미디어 콘텐츠를 제공하는 서비스)의 아쉬운 점을 넷플릭스와 비교해서 알아보도록 한다. OTT 선택지는 2021년 현재 정말 많아졌다. 군웅할거(群雄割據)라고 하기에는 사용자가 한 개의 서비스만 이용하지는 않는다. 마치 소셜 커머스를 여러 개 이용하는 것처럼 말이다. 자, 그럼 사용자의 선택지는 넷플릭스를 필두로 마블 코믹스를 끼고 있는 디즈니 플러스, 그리고 국내에는 왓챠, 웨이브, 티빙, 쿠팡 플레이 등. 이 외에도 정말 많다. 아마 OTT를 결제해서 보는 사람은 최소 두 개 이상의 서비스를 이용하고 있을 거다. 굳이 여러 개를 결제해서 보는 이유는 서로 제공하는 콘텐츠에 차이가 있기 때문이겠다. ..
컨테이너를 생성할 때 제한은 아래와 같이 해줍니다. 메모리는 b, k, m, g로 설정할 수 있습니다. 여기서 적용되는 메모리 제한은 hard limit입니다. 해당 메모리를 초과해서 사용하려고 하면 OOM(out of memory)이 발생됩니다. $ docker run -d -it --name local-python --memory=1g python:3.8-slim /bin/bash 한편, memory를 따로 설정하지 않으면 0으로 적용됩니다. 즉, 호스트의 메모리 전체를 공유해서 사용하게 됩니다. 잘 적용되었는지는 inspect 옵션을 통해 확인할 수 있습니다. $ docker inspect local-python | grep Memory "Memory": 1073741824, "KernelMemor..
소프트웨어 스펙의 모든 것은 SRS(Software Requirements Specification)이라고 하는 문서를 아주 심도있게 다룬다. SRS란 무엇인지, 왜 작성해야 하는지, 어떻게 작성하면 되는지 등 여러 예제를 통해 보여준다. 또한 성공한 프로젝트와 실패한 프로젝트에서 소프트웨어 스펙이 어떤 영향을 주었는지는 아주 흥미롭다. 아마 기획문서, 설계문서, 아키텍처, 메뉴얼 등 여러가지 이름으로 어쩌면 개발자 주변에 항상 있었을지 모른다. 하지만 SRS는 이것들과 분명히 다르고 별개의 문서로 취급되어야 한다. 책의 서미에 용어에 대한 정리를 보여준다. MDR(Market Requirements Document), MRS(Market Requirements Specification), PRD(Pro..
한 개의 터미널에서 여러 화면을 사용해야 할 때 screen은 매우 유용합니다. 백그라운드로 돌려야 하는 작업도 " > /dev/null 2>&1 " 같은 꼬리표보다 가끔은 screen이 편할 때도 있죠. 이번 글에서는 screen을 빠르게 사용하기 위한 기본 커맨드를 알아봅니다. # screen 실행 screen -S sockname screen은 이름을 갖습니다. 이름으로 구분해서 스크린을 사용할 수 있죠. 보통 여러 개의 스크린을 운영할 일은 드물기 때문에 적당히 본인만의 이름을 사용해도 크게 무리는 없습니다. 여기서는 sockname을 이름으로 사용했습니다. # screen 빠져나오기 Ctrl + a + d 스크린을 빠져나올 때는 위의 커맨드를 순서대로 눌러주면 됩니다. 마치 영어를 AD를 입력할..
클러스터를 생성할 때 함께 만든 슈퍼계정 이름을 변경하는 방법을 기술합니다. 우선, 계정 이름을 변경하는 쿼리는 다음과 같고 슈퍼계정 권한이 있어야만 실행할 수 있습니다. ( 기존 계정 이름이 admin이고 이를 sysadmin으로 변경하겠다는 예제입니다 ) alter user admin rename to sysadmin; 하지만 위에 쿼리를 실행하면 아래와 같은 에러를 만나게 됩니다. 현재 접속한 계정의 이름을 변경할 수 없다는 내용입니다. 이 상태에서 우리가 선택할 수 있는 방법은 1) 임시 계정(tempadmin)을 추가로 2) 임시 계정에 슈퍼계정 권한을 줍니다 3) 임시 계정으로 접속해서 기존 계정(admin)의 이름을 변경해줍니다 4) 그리고 다시 변경된 이름(sysadmin)으로 접속해서 임..
- Total
- Today
- Yesterday