gem을 통해 terraforming을 설치하다가 아래와 같은 오류가 발생했습니다. $ gem install terraforming Fetching jmespath-1.4.0.gem Fetching aws-partitions-1.427.0.gem Fetching aws-eventstream-1.1.0.gem Fetching aws-sdk-core-3.112.0.gem Fetching aws-sdk-autoscaling-1.54.0.gem Fetching aws-sigv4-1.2.2.gem Fetching aws-sdk-cloudwatch-1.49.0.gem Fetching aws-sdk-dynamodb-1.59.0.gem Fetching aws-sdk-ec2-1.224.0.gem Fetching aws-..
프로그래밍을 하다 보면 필연적으로 메모리 사용량을 디버깅해야 하는 일이 생깁니다. 메모리 누수가 발생해서 디버깅을 해야 하는 경우도 있고 메모리 사용량이 비정상인 경우도 디버깅이 필요해요. 일부 언어는 힙 메모리 공간을 통째로 덤프 떠서 확인하는 일도 비일비재하죠. 이번 글에서는 파이썬 프로그램을 개발하면서 메모리 사용량을 추적하는 방법을 알아봅니다. 거창하게 시작했지만 파이썬에서 메모리 추적은 psutil 이 대표적입니다. 일단 사용 방법부터 바로 알아보고 조금 더 상세한 이야기를 해봅니다. 사용법은 심플합니다. 다음 공식 예제를 살펴보시죠. >>> import psutil >>> p = psutil.Process() >>> p.memory_info() pmem(rss=15491072, vms=8402..
Poetry는 "Python dependency management and packaging made easy."라는 모토로 움직이는 파이썬 의존성 관리 프로그램이다. conda, pyenv 등이 설치되어 있다고 가정했을 때 poetry의 위치는 아래 그림과 같다. 글의 전반에 걸쳐 이야기하겠지만 poetry는 가상환경을 만들 때 현재 시스템에 적용되어 있는 환경을 가져다 사용한다. 즉, conda 3.7 환경에서 poetry를 돌리면 파이썬 3.7 버전으로 가상환경이 만들어질 것이고, pyenv 3.9가 적용되어 있는 터미널에서 poetry로 install 하면 파이썬 3.9 버전으로 가상환경이 만들어진다. - see more # 주요 특징 - pip를 감추고 패키지와 디펜던시를 관리 함 ( 내부적으로..
파이썬은 인공지능, 빅데이터 분석/처리 트렌드와 함께 엄청난 인기를 얻었다. 전부터 마니아층이 두꺼웠지만, 본격적인 인기는 두 개의 트렌드와 함께했다. 파이썬이 없었다면 이 모든게 가능했을까 싶은 정도니까. 하지만 백엔드 개발 분야는 Spring Framework의 아성에 도전할 수 없을 정도로 레퍼런스가 밀리는 게 현실이고 Node.js, Go는 뛰어난 성능을 무기로 파이썬을 위협한다. "파이썬? 인공지능이나 데이터 분석할 때 적합하지! 백엔드? 글쎄....?" 그렇게 파이썬의 백엔드 겨울이 계속되던 중에 FastAPI가 등장했다. FastAPI는 파이썬으로 API를 빌드하기 위한 web framework이다. 공식 블로그에 안내된 fastapi의 장점 중에 현실로 와닿는 부분은 아래와 같다. - No..
서비스의 개발만큼 중요한게 API 단위 테스트이다. 테스트 tool은 네이버의 nGrinder, Apache JMeter등 다양하게 존재하지만 여기서는 명장, Apache Jmeter를 살펴본다. 필자는 얼마전까지 모든 API 테스트는 셸 스크립트로 충분하다고 생각해왔다. 아래처럼 말이다. # curl.sh curl -X GET localhost:8000/products 위와 같은 파일을 터미널에서 아래와 같이 병렬로 처리하는 등 기교부리는 것을 좋아했다. $ seq 400 | xargs -P 200 -I{} ./curl.sh 여기서는 꽤 간단하게 묘사되지만 sleep과 while, 다양한 조건까지 들어가면 꽤 그럴듯한 traffic generator tool 이 완성된다. 조금 더 헤비한 테스트가 필요..
AWS Hero와 함께하는 re:Invent reCap 온라인 세미나가 진행됐다. re:Invent도 아직 진행중인데 벌써 reCap이라니 그 속도가 대단하다. 신상 제품을 이렇게 빠르게 모국어로 접할 수 있는 것은 대단한 축복이다. Hero분들께 심심한 감사를 전한다. re:Invent 답게 세미나 내용은 신규 기능에 초점을 맞추고 있지만 대부분 경험에서 우러나는 소중한 내용을 곁들여서 공유해주셔서 한 순간도 놓치지 않기 위해서 귀를 쫑긋하고 들었다 [라고 쓰고 업무 때문에 곁눈질로 봄..] 라이선스 문제가 우려되고 더욱이 발표자를 블로그에 박제하고 싶지 않아서 캡쳐는 하지 않았다. 고로 후기는 칙칙한 텍스트로만 작성했으며 같은 이유로 발표자 실명이나 존칭은 적지 않았으니 참고. 혁신가를 위한 AWS ..
리눅스 시스템은 시리얼 포트를 통해 모니터 출력을 제공한다. 직렬 포트로 직역해서 사용하기도 하는데 대충 아래 그림과 같이 생겼다. 아마도 예전 CRT 모니터쯤에서 흔히 봤음직한 포트인데, 이 단자를 통해 리눅스 시스템의 터미널로 접근이 가능하다. putty나 SecureCRT 같이 SSH, Telnet을 지원하는 터미널 에뮬레이터에는 serial port옵션도 제공을 하니 많이들 사용하는 방법이다. 시리얼 포트는 기기에 일반적인 통신이 불가능한 상태에서 사용하게 된다. 보통 공장초기화 상태의 기기나, sshd, telnetd 같은 데몬이 정상적으로 서비스되고 있지 않아서 기기에 접속이 불가능한 경우에 사용하면 용이하겠다. 클라우드로 세상이 바뀌어가면서 시리얼 포트는 점점 잊혀갔지만 여전히 필요한 순간들..
2019년 11월 GA 된 Cloud Run에 대한 이야기를 해볼까 합니다. GCP에는 이미 서버리스에 한축을 담당하는 Cloud Functions가 GA 되었음에도 여전히 부족한 게 사실입니다. 자체적으로는 꽤 쓸만할지 모르겠으나 타사의 서버리스를 사용해본 유저라면 여러 가지로 불편한 게 사실이죠. 더욱이 앞질러가고 있는 서비스(이를테면 AWS)를 흉내 내는 듯한 모양새는 어쩔 수 없는 후발주자의 모습이었습니다. - 관련 글 : Cloud Functions, 이래서 베타다 그러던중 Cloud Next 2019에서 Cloud Run이 소개되었고 서버리스의 새로운 장을 여는 느낌이었습니다. 컨테이너 기반으로 동작하기 때문에 이식성이 좋고 기존에 도커와 같은 툴에 익숙하다면 진입장벽이 한없이 낮습니다. Cl..
! 앱피움 소개, 설치 방법을 가이드하는 글이 아닌, 조직에 도입하면서 겪은 경험을 일기처럼 써 내려간 글입니다. 글 중간중간 가볍게 적은 내용에서 인사이트를 얻으실 수 있기를 바랍니다. 앱 테스트 자동화를 알아보다 보면 엷은 물줄기가 호수로 모이듯이 결국 앱피움(appium)이라는 오픈소스 테스트 자동화 프레임워크로 귀결된다. 이번에 QA 조직에서 테스트 자동화를 도입할 수 있도록 가까운 곳에서 지원하며 익힌 내용을 두서없이 기록해본다. 이미 인터넷에는 앱피움의 소개 글이나 설치 방법들을 어렵지 않게 찾아볼 수 있는데 정작 이것으로 무엇이 가능하고, 어떻게 활용되는지에 대한 글은 부족해 보인다. 아니, 어쩌면 이미 얕게 충분히 살펴본 사람들의 글이라서 지식의 저주[1]에 빠져 내용 전달이 부실하게 느껴..
패키지를 다운로드 받아서 npm install 시켰는데 아래와 같은 오류가 발생했다. $ npm install > fsevents@1.2.11 install /Users/jybaek/work/foo/client/node_modules/fsevents > node-gyp rebuild xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer direct..
Paypal 결제를 연동할 때 복수의 상품(장바구니)을 구매하는 경우에는 다음과 같이 item_list를 사용하면 된다. 아래 소스코드는 페이팔에서 제공하는 샘플 예제이다. curl -v -X POST https://api.sandbox.paypal.com/v1/payments/payment \ -H "Content-Type: application/json" \ -H "Authorization: Bearer Access-Token" \ -d '{ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [ { "amount": { "total": "30.11", "currency": "USD", "details": { "subt..
개인적으로 공부한 내용을 정리하고 있는 글입니다. 글에 잘못된 부분이 있다면 인상을 쓰기보다는 제가 상처받지 않도록 부드럽고 자유롭게 의견 부탁드립니다. :-) # 마스터, 노드, 파드(pod) 개념 잡기 쿠버네티스의 가장 큰 핵심 기능은 컨테이너 오케스트레이션이다. 여러 개의 컨테이너의 상태를 확인하고 관리한다는 의미인데 트래픽의 증가 처럼 리소스가 더 필요한 상황이 되면 컨테이너를 증설(일종의 스케일-아웃 / 수평 확장)하기도 하고, 비정상 상태에 빠진 컨테이너를 종료하거나 새로운 컨테이너를 생성하는 등의 역할을 수행한다는 개념이다. 오케스트라에서 지휘자가 단원들을 지휘 하듯이 말이다. 이렇게 컨테이너를 오케스트레이션 가능하게 만드는 첫 번째 개념이 컴포넌트 집합이라고 할 수 있겠는데 바로 "마스터 ..
데이터베이스 연결 도구로 그동안 Sequel Pro를 사용해오고 있었는데 프로그램이 죽어도 너~무 잘 죽습니다. 프로그램이 툭하면 멈추고 종료되는 현상 때문에 업무 때문에 마음 조급할 때는 한없이 스트레스를 받고는 했는데요, 아무튼 Mac 스럽게 깔끔한 GUI가 마음에 들어서 버텨보려고 했으나 이제 그 한계가 찾아온 듯해서 대안으로 DBeaver라는 툴을 사용하기로 했습니다. Sequel Pro의 경우에는 MySQL 서버만 연결할 수 있고 PostgreSQL 연결을 위해서는 다른 도구를 사용해야 했습니다. 예를 들면 PSequel 같은 도구를 말이죠. Sequel Pro와 상당히 유사한 UI 때문에 적응하는데 어려움은 없지만 MySQL과 PostgreSQL 두 종류의 데이터베이스를 사용하려면 클라이언트 ..
알리바바 클라우드 포럼 2019 "광군제 기적, 클라우드의 힘" 행사에 다녀왔습니다. 최근 알리바바 클라우드에 관심이 생기면서 콘퍼런스 개최 소식을 듣고 반가운 마음에 다녀올 수 있었는데 이번 행사는 11월 11일 광군제가 끝난 직후라 관련된 이야기를 들을 수 있어서 특히 알찬 시간이었습니다. 사실 클라우드 인프라에 대해 다뤄지는 내용은 다른 퍼블릭 클라우드(Public Cloud)의 일반적인 내용과 다를 게 없지만 대규모 트래픽을 감당해낸 실제 사례가 다뤄지니 이건 재미없을 수가 없는 내용이죠. 조금 늦게 도착한 행사장에는 여느 콘퍼런스처럼 부스가 마련되어 있었고 포토존도 있었는데 조금 늦게 도착해서 서둘러 행사장으로 들어가기 바빴습니다. 이미 행사의 열기가 후끈했는데요, 안내를 받고 편한 자리에 착석..
Maven은 아파치 오픈소스 프로젝트로, 중앙에서 프로젝트의 빌드, 리포팅, 문서 등의 정보를 관리할 수 있게 도와준다. 자바나 스프링 등으로 프로젝트를 개발하게 되면 빼놓고 이야기할 수 없는 도구가 메이븐인데 MacOS에 설치하는 과정에 대해서 다뤄보도록 한다. Maven의 설치 시작은 공식 홈페이지에서 시작된다. 여기 링크를 접속하면 다운로드 받을 수 있는 파일 목록이 확인되는데 대략 아래와 같다. Maven 설치를 소개하는 많은 글에서 Other mirrors를 선택해서 속도가 빨리 나오는 사이트를 선택하라고 하지만 굳이 그럴 필요 없다. 용량 자체가 10MB 남짓이라 미러 사이트 찾아보는 시간에 클릭했다면 진작 다운로드가 완료된다. 아무튼, 아래 빨간 박스로 표시한 곳에 있는 파일을 적당히 다운로..
Rancher는 오픈소스 Kubernetes 멀티 클러스터 오케스트레이션 플랫폼입니다. 단 두 가지 과정만으로 사용 가능한데요, 첫 번째로 서버를 준비하고 Docker를 설치해둡니다. 서버는 우분투 16.04, 18.04를 권장합니다. 혹시 다른 OS를 사용 중이라면 여기를 참고하도록 합니다. 그리고 두 번째 과정은 아래와 같이 docker 명령어를 사용해서 rancher를 실행시킵니다. docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher 실행하면 이미지를 다운로드 받고 rancher가 실행됩니다. 이제 localhost로 접속해보면 다음과 유사한 로그인 화면을 볼 수 있습니다. 최초 접근 시에는 계정을 생성하는 과정부터 ..
GCP를 사용하면서 가장 유용한 것 중에 하나가 GCP의 모든 기능을 터미널에서 사용할 수 있게 해주는 gcloud SDK인데요, 알리바바 클라우드에도 이러한 SDK가 존재합니다. aliyun이 바로 그겁니다. 이번 글에서는 aliyun을 빠르고 쉽게 설치하는 과정을 알아보도록 하겠습니다. 일단 MacOS 기준으로 아래와 같이 brew 명령어를 통해 설치가 가능합니다. AWS, GCP보다 이 부분은 굉장히 잘 되어 있네요. brew install aliyun-cli brew를 사용하는 게 아니라면 파일을 GitHub에서 직접 다운로드해서 사용할 수도 있습니다. 여기 링크에 접속해서 보면 Linux, MacOS, Windows 버전의 실행파일을 제공해줍니다. 파일을 다운로드 받으면 Linux, MacOS ..
알리바바 클라우드에 등록되어 있는 payment method( 카드 등 )는 삭제가 안됩니다. 보통 다른 클라우드처럼 결제계좌만 삭제할 수 있는 방법은 없고 account 삭제만 존재합니다. 이는 미결제 금액이 존재할 수 있기 때문인데요. 사실 계정을 삭제하려고 해도 이미 사용 중인 리소스가 있다면 그런 부분들을 해결해야 정상적으로 계정 삭제가 완료되니 참고하시면 되겠습니다. 계정 삭제는 보류하고 일단 결제계좌만 잠시 멈춰놓고 싶었는데 그럴수 없어서 극단적으로 탈퇴를 해야만 했네요. 참고 : https://www.alibabacloud.com/forum/read-1357
국내에서 유명한 메이저급 퍼블릭 클라우드에는 amazon에서 서비스하는 AWS, microsoft의 azure, 그리고 Google의 GCP 정도가 있겠는데요, 그래서 클라우드를 고민하고 이전하는 대부분 기업들의 선택지는 위 세 곳 중에 하나가 될 겁니다. 하지만 중국에 서비스하려면 중국의 네트워크 특수성 때문에 결국 알리바바 클라우드를 고려하지 않을 수가 없겠습니다. 우리는 언제 어떤 상황에서 알리바바 클라우드를 사용하게 될지 알 수 없는데요, 이번 글에서는 알리바바 클라우드를 가입하는 과정에 대해서 간단하게 알아보도록 합니다. 요약하면 회원가입 - 개인정보 입력 - 계좌 연동 세 단계로 이루어집니다. 그럼 시작해봅시다. 우선 알리바바 클라우드 페이지로 접속을 합니다. 아래와 같은 화면이 보일텐데 우측..
Google Cloud를 사용하다 보면 배포나 컴퓨팅 제어 등 여러 가지 이유로 터미널에서 gcloud SDK를 사용하게 됩니다. gcloud에 모든 명령어는 프로젝트 단위로 연결이 되기 때문에 개발/스테이징/상용과 같이 여러 개의 프로젝트를 동시에 사용하는 경우에는 터미널에서 프로젝트를 전환하며 명령어를 사용해야 하는데요, 이번 글에서는 새로운 프로젝트를 시작할 때 그 환경을 gcloud에 연결하는 방법과 전환에 대해서 알아보겠습니다. 일단 제 GCP 계정 안에는 다음과 같이 두 개의 프로젝트가 이미 등록되어 있는데 신규 프로젝트를 생성하는 부분부터 살펴보겠습니다. 우측 상단에 NEW PROJECT 버튼을 누르고 프로젝트 이름을 blog-project로 입력한 이후에 CREATE 버튼을 통해 신규 프로..
- Total
- Today
- Yesterday