CodeCommit 과 SourceTree 연동

Summary AWS CodeCommit은 AWS 완전 관리형 private git repository로 인데, 콘솔화면이 조금 부실해서 콘솔화면에서 repository 관리가 좋아보이진 않았다. SourceTree라는 Atlassian의 Git GUI tool로 AWS CodeCommit을 연동해보자. AWS CodeCommit에서 Git repository 생성하기 AWS CodeCommit화면으로 들어가서 Create repository를 하면 아래와 같은 화면이 나오는데 각 항목에 내용을 입력하자. Repository name: test Description: CodeCommit with SourceTree Local에 Git repository 설정하기 Repository를 생성하면 다음과 같은 화면이 나타난다. 주목해야 할 부분은 빨간 박스로 표시해놓았다. ...

October 20, 2017 2 min

Git pull all sub repository of certain directory.

Summary 여러 프로젝트를 동시에 진행하다보니 여러 repository를 한번에 갱신할 필요성이 생겼다. 일일이 하나씩 들어가서 git pull을 하려니 은근 귀찮았다. 그렇기 때문에 특정 디렉터리에 있는 all repositories(sub directories)에 대해서 git을 갱신해주는 코드를 개발하였다. 코드는 github에 공개되어 있으며 사용 방법은 아래와 같다. $ npm install -g git-puller Usage Usage: git-puller [options] Options: -V, --version output the version number -d, --directory [value] Target directory -r, --remote [value] Git Remote (default: origin) -b, --branch [value] Git branch (default: master) -h, --help output usage information examples: git-puller -d ./ # Current directory git-puller -d ../../_my_project # Other directory git-puller -d ./ -r origin -b master # Specify remote and branch gplr -d ./ # Current directory gplr -d ../../_my_project # Other directory gplr -d ./ -r origin -b master # Specify remote and branch References https://github.com/novemberde/git-puller

September 26, 2017 1 min

프로그래밍을 막 시작했을 때 만든 Dragon ball 게임

Summary When I first started programming, I went on a game project to familiarize myself with Javascript. I thought there would be a problem with the image license. If there’s a problem, please comment below. But, I decided to release this code on Github and hope to be helpful for juniors. Please enjoy this game. Thanks. References https://github.com/novemberde/js-game/tree/master/dragon_ball

September 26, 2017 1 min

AWS ALB로 ElasticBeanstalk 배포하기

Summary ElasticBeanstalk를 Docker로 배포하기 위해 살펴보았는데 문제점이 있었다. 기존의 사용하던 ALB와 연동하여 사용하고 싶었지만 설정화면에서는 Classic Load Balancer만 지원되었기 때문이다. eb-cli를 사용하여 AutoScaling Group을 생성하여 ALB의 Target Group에 설정하여 앱을 배포해보자. EB cli 설치하기 Install eb cli를 참고하여 로컬에 eb-cli를 설치하자. 사전에 python이 2.7 또는 3.4이상의 버전이 설치되어 있어야 한다. $ pip install awsebcli --upgrade --user 설치 후에 환경변수에 아래와 같은 path를 추가하자. Linux – ~/.local/bin macOS – ~/Library/Python/3.4/bin Windows – %USERPROFILE%\AppData\Roaming\Python\Scripts Python 3.5 on Windows – %USERPROFILE%\AppData\Roaming\Python\Python3.5\Scripts Python 3.6 on Windows – %USERPROFILE%\AppData\Local\Programs\Python\Python36\Scripts 올바르게 입력했다면 eb의 version을 확인할 수 있을 것이다. ...

September 25, 2017 4 min

Athena, QuickSight를 활용한 공공데이터 분석

빅데이터를 직접 모으는 방법이 있지만, 공공데이터 포털과 네이버 데이터랩처럼 정해진 API를 통해 접근하거나 데이터를 JSON, XML, CSV와 같은 형식으로 지원해주는 사이트들을 적극 활용해볼 수 있습니다. AWSKRUG 류한진 님과 함께 준비한 Athena, QuickSight Hands-on lab입니다. 아래 링크는 발표자료 및 Hands-on 문서입니다. 발표자료 Hands-on 아래는 류한진 님과 함께 작성한 <공공데이터 + Athena + QuickSight> 튜토리얼입니다. 공공데이터를 이용한 데이터 만들기부터 분석까지 개요 빅데이터를 직접 모으는 방법이 있지만, 공공데이터 포털과 네이버 데이터랩처럼 정해진 API를 통해 접근하거나 데이터를 JSON, XML, CSV와 같은 형식으로 지원해주는 사이트들을 적극 활용해볼 수 있다. ...

September 14, 2017 4 min

Electron으로 Cloud 9 (c9.io) desktop app 만들기

Summary c9.io를 살펴보니 상당히 괜찮은 IDE로 느껴졌다. Docker container를 할당해서 독립적인 작업 공간을 부여하는 점과 리눅스환경이기 때문에 window를 사용하는 사람에게 여러 환경설정의 늪에서 벗어나게 해줄 수 있을 것 같았다. 하지만 불편한 점도 있다. 브라우저 안에 갇혀 있기 때문에 답답한 느낌이 드는게 가장 큰 부분이었다. 거기에다가 installer도 지원해주지 않기 때문에 별도로 app형식으로 사용하지 못했다. 이럴 때 Electron이 떠올랐는데, Chromium 기반으로 Google chrome에서 돌아가는 웹페이지는 모두 어플리케이션으로 만들 수 있기 때문이다. 혼자 Toy project의 개념으로 Electron을 활용해서 c9.io의 installer를 만들고 로컬에서 c9.io를 어플리케이션으로 사용해보자. ...

August 18, 2017 2 min

Serverless을 이용한 AWS Lambda의 배포 자동화

Summary AWS Lambda와 api gateway를 사용하여 작업하면 배포하는 부분에서 상당부분 시간을 사용한다. 또한 API Gateway와 lambda를 엮는 것은 별도의 설정 과정이 필요하며, Resource & Stage 개념이 있어서 변경사항이 생길 경우에 API배포를 매번 해주어야 한다. Serverless framework는 이 모든 것을 자동화해주며, 내부적으로 CloudFormation을 사용하기 때문에 API gateway에서 api변동사항을 더욱 쉽게 반영해줄 수 있다. Serverless framework 란? The open-source, application framework to easily build serverless architectures on AWS Lambda & more. Startups and Fortune 500 companies are using it to build incredibly efficient applications. ...

August 14, 2017 3 min

VS code에서 git bash 사용하기

Windows에서 Power shell이나 CMD로 작업하면 linux 명령어를 사용하기 불편하다. 그렇기 때문에 종종 git bash를 사용했는데 매번 git bash를 켜서 작업하는 것도 귀찮았다. Visual Studio Code에서 git bash를 기본 터미널로 설정하면 편하게 작업할 수 있을 것이다. 방법은 설정에서 사용자 정의 부분을 아래와 같이 덮어씌우면 된다. { "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe" } 이제 linux 명령어를 편하게 사용하면서 작업하자. Reference https://code.visualstudio.com/docs/editor/integrated-terminal

August 13, 2017 1 min

/bin/bash^M: bad interpreter: No such file or directory

Windows에서 shell script를 작성하여 배포하였을 경우에 다음과 같은 에러를 만날 수 있다. $ bash SomeScript.sh /bin/bash^M: bad interpreter: No such file or directory 이것은 CRLF를 Windows에서 기본으로 사용하였기 때문에 나타난다. 리눅스 기반은 LF를 기반으로 하기 때문에 newline문자가 달라지기 때문이다. VS code를 사용한다면 오른쪽 맨 밑에 CRLF를 LF를 수정하면 해결된다. 만일 다른 에디터를 사용한다면 설정메뉴에서 바꾸면 될 것이다. CRLF와 LF란 CR과 LF의 뜻을 알아보자. CR: Carriage Return LF: Line Feed CR은 커서의 위치를 가장 앞으로 옮기는 동작이며, LF는 커서의 위치를 한칸 내리는 것을 의미한다. ...

August 12, 2017 1 min

AWS CloudFormation을 활용한 Architecture

Summary AWS CloudFormation의 Master Class를 보고 Reference document를 통해 내용을 살펴보자. 특징 Infra structure as a code를 실현하기에 간편한 도구 리소스를 Provisioning하고 update를 해줌 Code로 관리하기 때문에 버전관리에 용이 AWS cli 또는 AWS console을 통해 배포 및 업데이트가 가능 리소스에 대해서만 과금되기 때문에 별도의 비용지출이 없음 Parameter를 통해 Project별로 Customizing이 용이 코드만 올리면 인프라가 형성되기 때문에 인프라 도입에 대한 리소스 투입이 적음 Cloudformation template의 특징 JSON, YAML 로 개발자 친화적인 포맷 코드로 관리하기 때문에 재사용에 용이 Stack 생성시 message를 통해 feedback 제공 Sample template 제공 아래는 yaml형식의 ec2를 생성하는 sample template이다. CloudFormation으로 ec2를 생성할 때 파라미터를 받는다. instanceType, KeyName, SSHLocation을 설정할 수 있도록 되어 있다. 선택할 수 있는 인스턴스의 종류를 제한했기 때문에 t2계열의 인스턴스만 선택할 수 있다. 그리고 AMI는 Amazon linux를 사용하였다. ...

August 3, 2017 3 min