Node js 라이브러리 및 유용한 자료

Summary Node JS의 라이브러리가 워낙 많다보니 자주쓰는 라이브러리를 정리해야될 필요성을 느꼈다. 그리고 재밌는 라이브러리를 리스트로 관리하지 않다보니 잊게 되었다. 발견할 때마다 정리하고 라이브러리의 용도에 맞게 분류하여 나중에 필요할 경우 바로 사용할 수 있도록 한다. 자주 쓰는 패키지 JavaScript utility library underscore lodash Year, month, date, time moment.js MarkDown highlight.js prismjs Ajax request request-promise superagent axios got Test mocha supertest chai should enzyme Logger morgan Task Runner & Bundler gulp grunt webpack webpack-dashboard Database ...

November 5, 2017 2 min

TypeScript로 Node.js Express 서버 개발하기

Summary 최근에 직방의 AWS Lambda 코드를 세미나에서 스쳐지나가는 것을 보았다. TypeScript로 짜여져 있었고 나중에 지속적인 프로젝트 관리적인 이점이 있을 것으로 생각이 되기 때문에 TypeScript로 프로젝트를 구성해보는 것을 정리해보기로 결심했다. node.js 프로젝트 생성하기 먼저 프로젝트를 생성한다. 기존에 npm과 nodejs가 설치되어 있다는 전제하에 시작한다. 만약 설치되어 있지 않다면 다음의 링크를 참고한다. https://nodejs.org/ko/download/package-manager/ $ mkdir node_typescript $ npm init -y 그리고 편의를 위해 사전에 설치되어 있어야 하는 패키지들이 있다. npx: global로 패키지를 설치하지 않더라도 프로젝트 내에서 사용할 수 있게 해준다. nodemon: 파일이 변화될 때마다 재실행해준다. typescript: typescript로 구성한 코드를 javascript로 트랜스파일링 해준다. npm-run-all: 여러 npm 실행 명령을 병렬로 실행할 수 있게 해준다. webpack: 요즘 각광받는 모듈 번들러 webpack-cli: webpack 명령을 사용하기 위한 CLI도구 source-map-support: typescript로 개발시 source-map을 지원해준다. @types/express: express 모듈에 대한 type을 지원해준다. $ npm install -g npx $ npm install --save-dev typescript ts-loader npm-run-all webpack @types/express nodemon webpack-cli $ npm install --save express source-map-support 기본 설정하기 다음과 같이 typescript에 대한 기본 설정을 한다. ...

October 22, 2017 4 min

유용한 OS 명령어 모음

Summary 개발을 하다가 명령어를 모두 기억하고 싶어도 잠깐 다른 업무를 하다가 다시하면 잊게되는 명령어들이 있다. 특히 OS 관련 명령어는 서버에 문제가 생겼을 때 사용하기 때문에 더욱 그렇다. 이번에는 자주 사용하지 않았으면 하는 명령어들을 정리해본다. OS 명령어 sar 리소스 사용 내역을 볼 수 있다. CPU 사용율 Idle 상태 상태 확인 I/O 의 사용율 메모리 사용율 $ sudo apt-get install sysstat $ sudo vi /etc/default/sysstat ENABLED="true" $ sar -u 1 5 Linux 4.4.0-1013-aws (ip-172-31-55-55) 10/22/2017 _x86_64_ (1 CPU) 05:52:57 AM CPU %user %nice %system %iowait %steal %idle 05:52:58 AM all 0.00 0.00 0.00 0.00 0.00 100.00 05:52:59 AM all 0.00 0.00 0.00 0.00 0.00 100.00 05:53:00 AM all 0.00 0.00 0.00 0.00 0.00 100.00 05:53:01 AM all 0.00 0.00 0.00 0.00 0.00 100.00 05:53:02 AM all 0.00 0.00 1.98 0.00 0.00 98.02 Average: all 0.00 0.00 0.40 0.00 0.00 99.60 top ...

October 22, 2017 7 min

Jenkins의 Blue ocean을 활용하여 배포 관리하기

Summary Jenkins는 CD/CI로 가장 알려진 도구이다. 이번에는 Jenkins 설정부터 시작하여 Pipeline으로 배포관리하는 과정을 정리해본다. Jenkins로 기본 설정하기 Jenkins를 Install Jenkins를 참고하여 설치한다. 설치하여 맨처음 접속하면 아래와 같은 화면이 나타난다. 다음의 명령어로 나온 텍스트를 입력한다. $ cat /var/jenkins_home/secrets/initialAdminPassword Customize Jenkins화면에서 여기서는 크게 설정할 필요없이 Install suggested plugins을 선택한다. 이후에 해당 플러그인을 설치하고 관리자 계정을 설정할 수 있다. 테스트를 위해 계정 정보는 다음과 같이 설정한다. 계정명: admin 암호: 1234 이름: admin 이메일 주소: 본인 이메일 주소 ...

October 21, 2017 2 min

EC2에서 Docker와 Docker-compose 사용하기

2017.06.08에 AWSKRUG에서 EC2에서 Docker와 Docker-compose 사용하기라는 주제로 발표했던 자료입니다.

October 20, 2017 1 min

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