golang docker 이미지 다이어트하기.

golang(이하 go)으로 작성된 애플리케이션을 Docker로 만들다가 문득 "go로 작성된 애플리케이션은 단독으로 실행할 수 있는 파일이 만들어지니까, 만약 빌드된 파일만 배포하여도 실행이 될까?"라는 궁금증이 생겼습니다. 그래서 몇 가지를 해봤습니다. * 사용했던 코드는 Docker image를 만들었던 코드는 주제와 관계 없는 내용이 담겨있어 오히려 내용을 이해하는 데, 방해되기 때문에 간단히 Hello World를 출력하는 코드로 대신합니다. package main import "fmt" func main() { fmt.Printf("hello, world\n") } 간단히 빌드를 하고나면 2.1 메가 짜리 실행 가능한 파일이 생깁니다. $ go build main.go $ ls -alh tot..

데이터를 통한 매수/매도 신호 판단하기.

요즘 핫한 kakao의 데이터를 가지고 매수/매도 적기를 찾아봤습니다. 지난 데이터지만, 데이터 대로라면 올 3월에 사서 계속 보유했어야 했네요. (저는 3월쯤 팔았.... ㅠㅠ ) 데이터는 야후 금융 데이터를 이용했고 pandas datareader를 이용해 불러왔습니다. 저처럼 처음 사용하시면 설치가 필요할 수 있습니다. $ pip install pandas_datareader $ pip install yfinance kakao의 종목코드는 035720(kospi)입니다. 그리고 2017년도 데이터부터 불러왔습니다. from pandas_datareader import data import yfinance as yf # pandas data reader를 재정의(override)합니다 yf.pdr_o..

4살먹은 NAS 메모리 업그레이드 하기.

최근에 노트북을 교체하면서 추가로 장착했던 8Gb 메모리를 분리해서 보관하고 있었습니다. 원래는 새 노트북에 장착할 생각이었는데, 그 사이 DDR3에서 DDR4로 규격이 변경되어서 책상 한켠에 보관하고 있었습니다. 그렇게 보관만 하던 중에, 아는 사람과 주가를 스크랩하는 배치 잡을 어떻게 돌릴 것인가에 대해 토론을 하다가 NAS에서 Docker를 띄우고 거기에 스크랩하는 애플리케이션을 돌리면 어떻겠냐는 아이디어가 나왔는데, 문득 NAS의 구입 시기가, 이전에 사용하던 노트북의 구매 시기가 비슷했다는 게 떠올랐습니다. 혹시 남는 메모리를 NAS에 장착하는 게 가능하지 않을까? 하는 생각이 들어 시도해봤습니다. 제가 사용하는 NAS는 시놀로지 DS716+ 이고 메모리는 2GB를 달고 있습니다. 가족들과 파일..

환경 변수를 애플리케이션 설정으로 사용하기

잘 만들어진 애플리케이션을 가지고 서비스를 잘 하려면, 서버에 배포를 정확히 하는 것이 중요합니다. 배포해야 할 서버는 하나일 수도, 또는 개발서버, 검증서버, 운영서버 등으로 분리하기도 합니다. 그래서 환경설정 파일을 분리하여, 애플리케이션을 실행할 때, 동작하는 서버에 맞춰서 설정을 적용하는 것이 필요합니다. 실행환경 별로 설정 파일의 분리 먼저 생각해 볼 수 있는 것은 운영서버 적용되는 설정을 분리하여 저장하는 방법입니다. 서버에 적용되는 설정을 파일로 분리하는 것입니다. 실행 될 환경 별로 파일을 분리하여, 로컬 개발환경의 설정이 운영서버에 적용되는 실수를 막고, 적용시에 설정파일을 변경해야 하는 것을 막는 것입니다. 예를 들어, spring boot나 rails 애플리케이션에서는 각각 appli..

오늘 만든 Bash Script.

요즈음 도커 이미지를 수도 없이 찍어내고 있습니다. 업무 시간 중 대부분을 이미지가 빌드되기를 기다리며, 멍하니 모니터를 바라보는 데 사용하고 있으니까요. 도커 파일이 여러개로 나뉘고 순서대로 빌드해야 하고, 어떤 때는 일부만 빌드하고 어떤 때는 전체를 빌드하거나 할 필요가 생겼습니다. 그리고 빌드된 이미지를 푸시하려면 또 이미지를 하나하나 골라서 푸시하는 과정을 반복하다보니 실수도 잦고 시간도 오래 걸려서 쉘 스크립트를 하나 만들었습니다. 수준 높은 쉘 스크립트는 아니지만, 잘 동작하고 나중에 혹시 필요할 일이 있을까 기록으로 남겨 둡니다. 기능 요구사항은 다음과 같습니다. 간단하죠. 도커 이미지를 빌드 할 수 있습니다. 도커 이미지는 푸시 할 수 있습니다. 빌드 될 대상은 선택할 수 있습니다. 3번 ..