everydayminder
AWS EC2를 쓰다보면, 돈을 챙기는 사람들은 어디에서 더 절약할 수 있지 않을까 들여다 보게 된다. 그러나, 회사에서 비용을 든든하게 대 준다면 별로 살펴볼 일이 없는 것도 사실이다. AWS에서는 주기적으로 인스턴스들을 업그레이드 한다. generation이 업데이트 되는데, 이 때 스펙 및 단위 비용을 살펴보면 비용을 절감할 여지가 있다. 일부 유형과 스펙, 비용 등을 예로 들어본다. (아시아태평양/서울 리전 기준) M 타입 유형vCPUECU메모리스토리지사용 비용(시간당)m4.large26.58GiBEBS0.123 USDm4.xlarge41316GiBEBS0.246 USDm4.2xlarge82632GiBEBS0.492 USDm4.4xlarge1653.564GiBEBS0.984 USDm5.large2..
맥용 압축 프로그램 - Keka 윈도우즈에서 많이 쓰는 GUI 기반 압축 관리 프로그램과 유사한 것이 맥에는 무엇이 있을까요? 반디집 많은 사람들이 추천하는데는 그만한 이유가 있습니다. 윈도우즈 사용자와 많이 교류한다면, 알집 고유 파일도 있을텐데 반디집은 이 파일을 지원합니다. 성능, 편의성 등에서 많은 사람들이 추천합니다. 그러나, 유료죠. 그럴만한 가치가 있긴 합니다만, 여전히 무료를 쓰고 싶은 분들에게 대안이 될 수 있는 프로그램이 필요하겠죠. 물론, 커맨드 라인에서 명령어로 tar, gzip을 써도 되긴 합니다만, GUI가 편한 건 사실이니까요. Keka - 소개하는 압축 프로그램 앱스토어와 공식홈페이지 두 곳에서 모두 다운로드 받을 수 있긴 합니다. 앱스토어에서 다운로드 받으면 유료입니다. 그..
윈도우즈에서 작성된 파일을 linux/ OSX로 옮겨오다 보니, 가끔 원치 않는 개행 문자가 그대로 살아있는 경우가 있다. VI에서 해당 파일을 열어보면, ^M과 같이 표시되는데, 이를 치환/ 삭제 하려면 다음과 같이 입력한다. :%s/^M//g 그런데, 단순히 shift + 6 M을 입력하면 치환대상이 되지 않고, ^M을 입력할 때, ctrl + v, ctrl + M을 눌러서 입력하면 된다.
파이썬 개발환경 구축하기 - 아나콘다 주피터랩/주피터노트북 설치방법 파이썬 개발 환경을 구축하고자 아나콘다(Anaconda)를 설치하는 방법에 대해 기록한다. 사실 제목에는 아나콘다를 먼저 썼지만, 보다 맞는 제목은 아나콘다로 주피터 노트북/주피터 랩 설치하기가 맞을 것 같다. 덤으로, 커맨드 라인으로 주피터 노트북/ 주피터 랩을 설치하는 방법까지 함께 다룬다. 그리고, 좀 더 스코프를 줄이자면 주피터 랩 설치하기라고 할 수 있을 것이다. 아나콘다 설치 https://www.anaconda.com/products/individual 64 Bit Graphical User Installer를 선택하여 설치한다. 특별히 다르게 설정할 내용은 없고 클릭만 누르면 기본적인 설치는 완료된다. 설치를 완료하면, A..
docker-compose 환경변수 사용 및 치환 방법 docker-compose를 실행할 때, 반복되는 값 혹은 변경 가능한 값을 변수화 해놓으면 재사용성을 높일 수 있다. docker-compose 사용시 어떻게 변수화를 할 수 있는지 정리한다. 샘플 yml 파일 version: '3' services: api: image: myservice:1.0 volumes: - /home_dir/commitlog:/var/lib/cassandra/commitlog:rw 만약, 원하는 결과물 yml 파일이 위와 같다고 하자. 버전이 달라질 수 있고, 디렉토리가 변할 수 있다고 할 수 있다. 이 값들을 변수화 해보고자 한다. 변수 적용한 yml 파일 변수를 표기할 때는, ${변수명}과 같이 표기하면 된다. ver..
Docker로 sonarqube 설치 docker pull sonarqubesonarqube 이미지를 다운로드하고 실행시킨다. docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube:latest이제 로컬 sonar를 확인할 수 있다. http://localhost:9000 Spring Boot Gradle Sample Project 생성 spring init --build gradle --package-name=mytest --name=mytest -g=mytest -a=mytest -x Gradle Property 선언 buildscript { ... dependencies { ... classpath "org.sonarsource.sca..
Docker에 Spark Cluster 설치하기 Baremetal 서버나 cloud, VM 등에 설치하기에 앞서, docker기반으로 spark cluster 환경을 빨리 쉽게 구축하고 사용할 수 있다. 어떻게 동작하는지 살펴보거나, 간단한 프로젝트를 하고자 한다면 나쁘지 않은 선택이 될 것이다. Spark Cluster Project 받기 인터넷에서 다음의 프로젝트를 받아서 설치한다. git clone https://github.com/big-data-europe/docker-hadoop-spark-workbench.git Spark Cluster 시작하기 위 프로젝트를 clone한 디렉토리에서, 다음과 같이 실행하면 프로젝트내 기술된 docker-compose.yml을 바탕으로 spark cluste..
Airflow Local 설치 (OSX) 예전에는 실행하고자 하는 job들을 crontab으로만 구성하였으나, 이제는 rundeck, oozie, airflow 등 많은 툴들이 사용되고 있다. 이와 같은 툴들은 각 job들의 실행 순서를 정의하고, 언제 실행될지, 실행시간이 얼마나 걸리는지 등에 대한 정보도 제공하기 때문에 유지보수나 관리, 성능개선 트래킹 관점에서도 crontab과는 비교할 수 없을만큼 유용하다. AirFlow의 공식 사이트는 https://airflow.apache.org/ 이다. 다른 어떤 문서보다 공식사이트내 설치, 설정 활용 등에 대한 가이드를 먼저 참고하는 것이 좋다. pip로 airflow를 설치할 것이므로, 다음과 같이 pip를 설치한다. 예전 설치 방식 sudo easy_..
여러 버전 java 사실 개발하면서 Java의 버전을 계속 바꿀 일은 별로 없는 것 같다. 프로젝트마다 바꿀 일도 없고, 회사 정책이 바뀌지 않는한 기존의 버전을 사용할 가능성이 높다. 또한, 기존에 java 8을 사용한 프로젝트라면 특별한 이유가 없는 한 Java8을 유지보수할 가능성이 높다. Java의 버전 릴리즈 주기가 6개월로 짧아지면서, 여러 버전을 설치하고 사용하고자 할 때 jenv를 사용하면 좋을 것이다. (Python처럼) 3년 주기의 Java LTS 버전을 감안하면, production에서는 현재로서는 Java11이 유용한 선택지가 될 것이다. https://en.wikipedia.org/wiki/Java_version_history jenv: Java용 Pyenv Python 개발 환경..
자가 진단 리스트 크롬 또는 파이어폭스 또는 사파리를 쓰는 사람들을 대상으로 아래와 같이 자가진단 리스트를 만들어 보았다. 내 웹 브라우저에서 10개 이상의 탭이 열려있다. 열어본 탭은 즉시 닫지 않는다. 조금 전에 방문한 탭은 왠지 곧 다시 방문할 것이라고 생각이 든다. 그러나, 곧 다시 방문하지는 않는다. 오늘은 아니지만 조만간 방문할 것이다. 나중에 보니, 방문은 분명히 했다. 그런데, 예전에 열고 닫지 않은 탭이 발견된다. 정리해야 되는 것은 알고 있지만, 지금은 아니라고 생각한다. 컴퓨터 또는 웹브라우저가 비정상 종료가 되면, 지금까지 열려있던 창들이 왠지 아깝다. 이 탭들을 누군가에게 공유하고 싶다. 이 목록만 따로 저장해 놓을 수는 없나? 0개: 믿을 수 없는 분 또는 컴퓨터 부팅 중 (아직..
태그/워드 클라우드 생성기 태그/워드 클라우드란, 말 그대로 태그 또는 단어들을 구름처럼 모아 놓은 형태를 말한다. 위키백과에서는 아래와 같이 정의하고 있다. (출처: 태그 클라우드 - 위키백과) 태그 클라우드(영어: tag cloud) 또는 워드 클라우드(word cloud)는 메타 데이터에서 얻어진 태그들을 분석하여 중요도나 인기도 등을 고려하여 시각적으로 늘어 놓아 웹 사이트에 표시하는 것이다. 보통은 2차원의 표와 같은 형태로 태그들이 배치되며 이때 순서는 알파벳/가나다 순으로 배치 된다. 시각적인 중요도를 강조를 위해 각 태그들은 그 중요도(혹은 인기도)에 따라 글자의 색상이나 굵기등 형태가 변한다. 사용자는 이렇게 표시된 태그 중 마음에 드는 키워드를 발견하고 그것을 선택하여 그 메타 데이터에..
쿼리로 테이블 이름 조회하려면? 테이블 이름을 조사할 일이 있을 때, DB Client에서 조회하는 것이 불편할 때가 있다. 쿼리로 테이블 이름을 추출하려면 어떻게 할까? 주요 DB별로 테이블 정보를 조회하는 쿼리는 다음과 같다. MySQL SELECT table_name FROM information_schema.tables; PostgreSQL SELECT RELNAME AS TABLE_NAME FROM PG_STAT_USER_TABLES; Oracle SELECT * FROM all_all_tables; SELECT * FROM tabs; MS-SQL SELECT * FROM INFORMATION_SCHEMA.TABLES; 간편하게 온라인으로 SQL Query 실행해 보기 베경 DB가 설치되어 있고..
brew가 실행가능하도록 설정되어 있다는 전제하에 brew install apache-zeppelin 위와 같이 간편하게 zeppelin을 설치한다. alias 설정 실행 편의를 위해, 다음과 같이 alias를 선언한다. which zeppelin.sh 로 zeppelin 설치 위치를 확인하고, alias zeppelin-start="/usr/local/bin/zeppelin.sh start" alias zeppelin-stop="/usr/local/bin/zeppelin.sh stop" 과 같이 본인이 사용하는 shell에 등록한다. Zeppelin 실행 zeppelin을 실행하려면, java runtime이 설치되어 있어야 한다. zeppelin-start Zeppelin 종료 zeppelin-sto..
DB 설치하지 않고 온라인으로 쿼리 실행해 보려면? DB가 설치되어 있고 적절한 DB client가 설치되어 있다면, 직접 접속해서 실행해 보면 제일 정확할 것이다. 그러나, 다음과 같은 상황이라면 어떨까? 기본적인 동작 구조만 확인하고 싶다. 다른 종류의 DB에서는 어떻게 동작하는지 확인하고 싶다. 다른 종류의 DB에서는 어떤 구문/ 문법으로 쓰이는지 확인하고 싶다. 실제 데이터는 아니지만, 소규모 데이터로도 동작시킬 수 있다. 대략, 이와 같은 조건이 만족된다면 굳이 해당 종류의 DB를 직접 설치할 필요는 없을 것이다. 물론, 실제 개발까지 지속적으로 한다면 설치를 하는 것이 맞는 선택일 것이다. 그러나, 요새는 docker를 적극 활용하면 예전처럼 모든 것을 처음부터 직접 설치하고 설정하는 번거로움..
블루투스 디바이스가 잘 스위치가 안된다? 내가 쓰는 로지텍 MX Anywhere2와 2S에서 공통적으로 겪은 문제이다. 회사 맥북과 집 맥북 그리고, 모바일 디바이스간 페어링을 이리저리 바꿔가면서 쓰기에 멀티 페어링이 지원되는 키보드와 마우스는 정말 좋은 선택이다. 그러나, 블루투스 마우스가 인식이 잘 안되는 경우가 종종 발생하였다. 페어링 번호를 1, 2, 3을 바꿔도, 마우스를 껐다 켜도 정상적으로 동작하지 않았다. 새로 블루투스 페어링을 매번 다시 해야하나? 이럴 때는, 기존 블루투스 연결 프로파일을 삭제하고, 페어링을 다시 하면 잘 동작한다. 그런데, 매번 이렇게 하면 너무 번거롭다. 애초에 발생하지 않는다면 모를까, 해결하기 위한 다른 근사한 방법이 없을까? 블루투스 서비스를 재시작 해보자 su..