AMI( amazon machine image )를 CLI에서 아래와 같이 export 하려고 할 때 발생되는 에러입니다. 커맨드에 대한 공식문서는 여기에서 확인 할 수 있습니다. $ aws ec2 export-image --image-id ami-07512400xxxxx --disk-image-format VMDK \ --s3-export-location S3Bucket=my-export-bucket,S3Prefix=exports/ 에러내용 An error occurred (InvalidParameter) when calling the ExportImage operation: \ The service role vmimport provided does not exist or does not have su..
이전 편에서 데이터를 Google Cloud의 BigQuery에 담는 것 까지 진행을 했다. 사실 빅쿼리가 오버스펙이기는 하지만 쿼리 감각이 5년 전에서 멈춰있었기 때문에 이쯤에 개인 프로젝트로 쿼리 감을 되찾자는 것도 있었고, 빅쿼리를 통해 연동되는 GCP( Google Cloud Platform )의 여러 가지 부가적인 기능을 공부하자는 목적도 있었다. 아무튼, 지난시간까지 데이터를 적재하는 부분은 어느 정도 끝났기 때문에 데이터 모양새는 꽤 나쁘지 않게 쌓이고 있다. 현재는 대략 한 달치 이상의 데이터가 쌓이기를 기다리고 있는 시기인데 데이터가 충분히 쌓였을 때 다음 계획에 대해서 이것저것 생각해보고 있다. 사실 프로젝트의 목적은 "용인-> 강남 버스 출근 앉아가기"지만 이미 적은 데이터로도 앉을 ..
인터넷에 많고 많은 IntelliJ 단축키 글이 있지만 역시 하나씩 직접 사용하면서 정리해야 내것이 되는 듯 합니다. IntelliJ 를 사용하면서 익혀가고 있는 단축키를 아래와 같이 정리합니다. MacOS에서 Keymap은 Default for macOS를 기준으로 합니다. 아래에서 설명하는 기호는 다음과 같은 의미를 갖습니다. ⌘ : command ⌥ : option ⇧ : shift ⌃ : control 볼드체로 작성되어 있는 단축키는 인텔리제이로 개발하려고 할 때 제일 먼저 알아야 하는, 혹은 최소한으로 숙지하면 좋은 단축키 입니다. # Navigate # Edit - 계속 업데이트 진행 - 혹시 공유해주고 싶은 꿀 단축키는 답글 주시면 감사하겠습니다. :-)
최근에 if(kakao)dev2019 콘퍼런스를 다녀왔는데, 주로 컨테이너 쪽 세션을 들었다. 그래 어디 카카오는 컨테이너를 어떻게 사용하는지 한번 보자는 가벼운 마음으로 아래 세션들을 들었다. 결과적으로는 아주 탈탈 털리고 왔는데 이유인즉 요즘 이런 컨퍼런스에서 컨테이너를 이야기할 때 k8s를 빼놓고 이야기하지 않는다는 사실을 놓쳤다. 더욱이 딥 다이브 하기 힘들다는 k8s를 조금 더 쉽게 사용하자는 취지로 쏟아지는 오픈소스와 개념들을 모르는 채로 세션에 들어갔으니.. 도통 무슨 소리 하는지 알아듣지 못할 수밖에... 참 부끄럽게도 Helm쪽에서 charts를 이야기할 때 그래프를 떠올린 상태로 발표를 경청했다. 전체적인 그림이 머릿속에 이상하게 그려질 수밖에 없었는데 아래 Helm 공식 홈페이지를 한..
엔터프라이즈 자바에 마이크로서비스를 얹은 재미있는 책이 한빛미디어를 통해 번역되었다. 책은 자바를 기반으로 하는 마이크로서비스를 소개하고 있는데 자바 언어 자체를 모른다면 책을 읽는데 어려움이 있을 수 있다. 책을 소개할 때 대상 독자를 아래와 같이 정의한다. "이 책은 최소 4년 이상 엔터프라이즈 자바 개발 경험이 있는 개발자를 대상으로 한다. 그런 개발자 중에는 마이크로서비스에 대해 기본적인 지식을 갖췄거나, 엔터프라이즈 자바 기술이 아닌 기술을 기반으로 하는 환경(Node.js 등)에서 마이크로서비스를 시도해본 개발자도 있을 것이다. 하지만 엔터프라이즈 자바 마이크로서비스를 개발한 경험이 없는 개발자가 이 책의 대상이다." 책은 모노리스부터 마이크로서비스의 개략적인 소개로 시작된다. 결국 최종 목표..
이전 편에서 놓치고 있던 세 가지 부분에 대해서 이야기를 했었는데 데이터 중간점검을 하는 도중 이상한 점이 발견되었다. 특정 버스의 데이터가 제대로 수집되고 있지 않다던지, 아침 시간대에 대충 알고 있는 버스 빈 자리 숫자와 수집된 데이터에 확연한 오차가 발생하고 있었던 것이다. 다시 유심히 경기버스의 데이터를 살펴보니 수집되는 데이터에 index가 고정이 아니라는 사실을 알 수 있었다. 예를 들어 보면 수집되는 데이터를 나타내는 busArrivalInfo 배열에는 32개의 버스 데이터 정보가 있는데 이 배열 안에 내게 필요한 버스 정보들이 있는 위치가 가변이라는 것이다. 예를 들어 A라는 버스가 이른 아침에는 6번 index에 있었지만 어느 시간이 되면 7번 index로 바뀌어 있는 것이다. 데이터 안..
구글독스 기준으로 36장 정도 되는 분량의 후기를 적었는데 증발해버렸다... 글 중간에 사진 첨부하는 과정에서 넘어가지 않고 한없이 멈춰있길래 페이지 갱신했다가 글이 증발해버렸다. 그래도 임시 저장이 있으니 다행이지 하고 불러왔는데 이번에도 사진을 첨부하는 과정에서 멈춰버렸다. 그리고 나도 미춰버렸다. 이번에는 임시저장된 글도 함께 삭제되버렸으니까. 내 잘못이지. 티스토리를 믿다니... 역시 워드 문서처럼 중간중간 저장을 해줬어야 했는데.........
서비스에 도커를 도입하는 배경을 보면 MSA( Micro Service Architecture )로 부터 시작하기 때문에 사실 Container의 크기가 큰 것은 정상적인 경우가 아닙니다. 컨테이너에는 모듈이나 기능 단위를 동작하게 하는 최소한의 패키지만 포함되는 게 일반적인데 깡통 우분투를 만들어서 그 안에 온갖 서비스를 다 말아 넣는 경우는 어떤 경우가 있을까요? 쉽게 생각하면 MSA 이전의 모놀리식 아키텍처( Monolithic Architecture )를 이야기할 수 있겠습니다. 도커는 개발환경과 프러덕트 환경의 간극을 줄이는데 크게 일조하고 있는데 이게 MSA로 정교하게 나뉘어져 있는 서비스에만 국한된 이야기가 아닙니다. 모놀리식 서비스라고 하더라도 개발과 프러덕트 환경에 간극을 없게 할 수 있..
이번에는 프로젝트를 진행하면서 놓친 부분을 언급하고 끝내려고 한다. 프로젝트를 시작한 지 이제 일주일 정도 되었고 데이터는 쌓이고 있지만 매우 중요한 부분이기 때문에 누군가 나와 비슷한 계획으로 움직이려고 한다면 미리 생각해야 할 부분일 것이다. 첫 번째로 이야기하는 건 타깃 정류소의 위치다. 이 프로젝트의 핵심은 내가 타고자 하는 정류소의 데이터를 수집하고 수집된 데이터 안에서 버스의 빈자리를 확인하는 데 있다. 예를 들어 특정 시간대에 빈자리가 항상 5자리 있다고 생각해보면 나는 그 시간대에 버스를 타기 위해 움직이면 된다는 이야기다. 여기서 매우 중요한 부분이 간과되고 있는데 바로 그 정류소에서 대기하고 있는 사람의 수이다. 이미 여섯명이 기다리고 있다면 나는 그 정류소에 제때 도착해봐야 앉을 수 ..
요즘은 사이드 프로젝트 하나를 하더라도 기획자와 개발자 몇 명이 모여서 팀을 이루는 경우를 많이 보는데요, 프론트, 백엔드, 거기에 데이터 분석까지 하려고 하면 역시 클라우드를 사용하는 것만큼 유리한 게 없겠죠? 이번에는 GCP( Google Cloud Platform )에 사이드 프로젝트 팀원들을 초대하고 함께 개발할 수 있는 환경을 꾸리는 방법에 대해서 알아봅니다. 혹시 GCP에 가입되어 있지 않다면 여기 링크를 참고하셔서 가입하시면 되겠습니다. 우선 GCP에 접속해서 팀원들과 함께 진행할 프로젝트를 생성해야 하는데 아래 그림처럼 화면 상단에 프로젝트를 선택합니다. 버튼을 클릭하면 아래와 같이 프로젝트를 변경하거나 새 프로젝트를 생성 할 수 있는 팝업이 출력됩니다. GCP는 폴더라는 개념 하위에 프로..
(용인) 집 근처에서 아침에 강남가는 버스를 타면 시간대에 따라서 앉을 수 있는 확률이 많이 갈린다. 경험으로 이야기하자면, - 06시 30분 전후 : 대략 10번에 9번은 앉을 수 있음 (2층버스) - 08시 30분 전후 : 대략 10번에 8~9번 앉을 수 있음 (2층버스) - 09-10시 사이 : 앉을 수 있는 확률 극악 (1층버스) 쉽게 납득하기 어렵다. 아무래도 학생들이나 출근하는 사람수는 08시 30분쯤이 더 많을 것 같은데 오히려 09시-10시 사이가 버스에 앉기 훨-씬 어렵다. 그런데 특이한 점은 09시-10시 사이에는 2층 버스가 덜 운행되는 느낌. 버스회사에 문의해보니 08시 20분까지만 모든 배차가 2층버스로 이뤄지고 그 이후로는 2층버스의 비율이 점차 줄어든단다. 다시말해 타는 사람도..
Cloud SDK는 구글 클라우드 콘솔(웹 브라우저 화면)에서 행하는 거의 모든것들을 터미널에서 가능하게 해줍니다. 어쩌면 110% 이상 가능할지도 모르겠네요. 아직 콘솔에 붙지 않은 일부 알파 버전은 터미널에만 존재하는 경우도 있으니까요. 더욱이 GUI 버그도 무시할 수 없고, 스크립트로 파이프라인을 구성하는 등의 무언가를 하기 위해서는 SDK는 분명 필수 입니다. 특히 인스턴스에 SSH 접속 할 때는 굉장히 편합니다. 물론 아래처럼 콘솔에서 브라우저를 통해 접속도 가능하지만 다른건 둘째치고 반응속도가 너무 느려서 타이핑하는데 다소 불편함을 감수해야 합니다. 이런 불편함은 SDK를 통해 해결 가능한데요, SDK를 설치하고 인증과정부터 SSH접속까지 알아보도록 하겠습니다. SDK설치 과정은 여기 링크를 ..
Google I/O에서 소개된 TensorFlow의 새로운 내용이 잘 정리된 글을 발견하고 번역해봤습니다. 아래 글의 원본은 TensorFlow @ Google I/O'19 Recap 에서 확인 하실 수 있습니다. 혹시 번역에 문제가 있거나 기타 문의가 있다면 말씀해주세요. :-) Google I/O'19가 끝났습니다! 5월 7-9일에 I/O에서 AI와 머신러닝 세션이 13개 다뤄졌는데요, TensorFlow는 2.0, AI for Mobile과 IoT 디바이스, TensorFlow용 Swift, TensorFlow Extended(TFX), TensorFlow.js, TensorFlow Graphics 등의 세션에서 만나 보실 수 있습니다. 이번 글에는 모든 세션 리스트와 링크가 담겨있습니다. 녹화된 ..
서비스를 운영하면서 적당한 시점이 되면 인스턴스를 AMI( amazon machine image )를 생성하고 그때부터는 해당 이미지를 흔히 이야기하는 오토스케일링, 즉 인스턴스 확장으로 사용하게 됩니다. AWS의 경우에는 대부분의 기능들이 리전 단위로 묶여있는데 AMI도 예외는 아닙니다. 글로벌 서비스를 준비하면서 생성한 AMI를 다른 리전에서 사용할 수 없다면 큰 낭패겠죠? 해당 이미지가 왜 리전에 종속되는지 알 수는 없지만 글로벌 배포를 위해서는 AMI를 각 리전에 복사해서 사용해야 합니다. 리전에 종속된다는 사실을 알고 다른 리전으로 넘기기 위해서 AMI를 Export 하고 Import 해야 하는지까지 생각해봤었는데요, 다행히 복사 기능이 제공되어 간단하게 글로벌로 사용이 가능합니다. 우선 아래와..
MySQL을 터미널에서 접속했을 때 현재 동작중인 쿼리를 보려면 아래와 같은 명령어를 사용합니다. MariaDB [(none)]> show processlist; +-------+----------------+-----------+------+---------+------+-------+------------------+----------+ | Id | User | Host | db | Command | Time | State | Info | Progress | +-------+----------------+-----------+------+---------+------+-------+------------------+----------+ | 14929 | newstyleseller | localhost..
letsencrypt를 통해 인증서를 아래와 같이 발급합니다. letsencrypt certonly --manual --preferred-challenges=dns \ -d example.com -d *.example.com 터미널에서 위 명령어를 입력하면 아래와 같은 메시지를 확인할 수 있습니다. Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None Obtaining a new certificate Performing the following challenges: dns-01 challenge for example.com dns-01 challenge for..
딥러닝 기반의 자연어 처리를 기초부터 심화까지 두루 다루는 책이 한빛미디어에서 출간되었습니다. 바로 자연어 처리 딥러닝 캠프인데요, 이 책의 모든 예제는 PyTorch 1.0을 기반으로 다루고 있으며 딥러닝의 기초 서적이 아니기 때문에 목적/손실 함수, 선형/로지스틱 회귀, 그래디언트 디센트 정도는 이미 숙지하고 있다는 가정하에 내용을 진행합니다. 책의 표지에서부터 PyTorch의 기운이 느껴집니다. 책의 모든 페이지가 컬러로 되어 있어서 꽤 세련된 느낌을 주고 패스트캠퍼스에서 진행한 강의가 바탕이 되어서인지 내용 구성이 좋아서 훌훌 잘 읽힙니다. 매 단원이 끝날때마다 딥러닝의 대가들(제프리 힌튼, 클로드 셰넌, 얀 르쿤 등)이 스케치 이미지로 등장하는데 누가 등장할지 궁금해서 더 빨리 읽게 되는것 같기..
요즘 태블릿 구입을 고민하고 있는데 역시 큰 범주 안에서는 애플 제품이고 상세로 들어가면 프로 혹은 미니로 나눌 수 있겠습니다. 아이폰 X 이후로 홈버튼이 사라진 걸 보면 이제서 홈버튼이 있는 건 디자인적으로 별로 좋아 보이지 않고... 그런 이유로 프로에 마음이 많이 가는 것은 사실이지만 현실적으로 가격이 너무 버겁네요. 과연 그만한 값어치를 할 수 있는 장난감인지 장담도 못하겠고요. 왜냐면 일단 태블릿을 사용해본 경험이 없기 때문입니다. 미니는 프로의 절반정도 가격으로 구매할 수 있는데 또 세부적으로 들어가면 wifi 모델을 살지 Cellular를 사야 할 지 고민이네요. 주변에 보면 대부분 wifi 모델을 구매하면 후회한다고 하는데... 이것도 가격이 그리 호락호락한 편은 아니네요. 과연 잘 갖고 ..
매직마우스를 사용하다보면 마우스 가속이 생각보다 편한데 가끔은 이 설정이 필요 없을때가 있습니다. 아니, 오히려 없어야 하는 상황이 말이 맞겠네요. 보통은 게임을 할 때 그렇겠죠? 이 설정을 끄려고 마우스 설정을 살펴보면 관련된 내용이 없다는 것을 확인 할 수 있습니다. 하지만 터미널에서는 defaults 명령어를 마우스 가속도를 설정할 수 있습니다. 일단 현재 설정되어 있는 값을 읽어옵니다. 제 경우에는 1.5로 설정이 되어 있네요. defaults read .GlobalPreferences com.apple.mouse.scaling 이 설정을 끄려면 -1로 write 해주면 됩니다. 아래처럼 말이죠. defaults write .GlobalPreferences com.apple.mouse.scalin..
- Total
- Today
- Yesterday