본문 바로가기
반응형

전체글427

2. Docker Compose로 Nodejs 개발/배포환경 구성하기 - Docker Compose로 개선하기 앞서 진행된 과정 을 통해 Docker를 통한 독립적인 환경의 장점은 알게 되었지만, 반면에 직접 하나하나 CLI를 입력하여 Docker를 수행하는것의 불편함도 알게 되었습니다. 이런 불편함을 겪은건 비단 저희만 그런것은 아니겠죠? 이미 이런 불편함을 해결 하기 위해 도커 컴포즈가 출시 되었습니다. 도커 컴포즈는 여러 Docker 애플리케이션을 정의하고 실행하기 위한 도구입니다. 이를 활용하면 그동안 저희가 수행했던 CLI 명령어 옵션이나 컨테이너 간 실행 순서등을 파일로서 관리할 수 있게 됩니다. 이 파일로 관리한다는 점이 가지는 또 하나의 장점은, 바로 버전 관리가 된다는 것인데요. 도커 컴포즈를 구성하는 docker-compose.yml 파일에 작성된 내용은 프로젝트 Git으로 관리되고 있어, 언제.. 2021. 7. 22.
CloudWatch 이상 지표를 슬랙 알람으로 받기 (feat. SNS, Lambda) AWS 서비스를 이용하면 CloudWatch를 통해 서비스의 이상 지표를 손쉽게 확인할 수 있습니다. 이를테면 다음과 같은 경우인데요. 평소보다 로드밸런서로 들어오는 요청양이 2배이상 높다거나 RDS의 CPU가 60%이상이 된다거나 RDS에 사용중인 Connection이 갑자기 줄어든다거나 등등의 경우입니다. 이때 별도의 알람을 붙여놓지 않는다면 서비스가 죽고 나서야 알게 됩니다. 그래서 위와 같이 이상지표가 발생하면 즉시 Slack 등 메신저를 통해 알람을 받아야만 하는데요. AWS에서는 SNS와 Lambda를 통해 CloudWatch의 이상 지표를 손쉽게 알람을 받을 수 있습니다. 이번 시간에는 CloudWatch와 SNS, Lambda를 활용해 이상 지표 알람 서비스를 만들어보겠습니다. 1. SNS.. 2021. 7. 17.
Lerna와 yarn-workspace를 활용한 Mono Repo (Typescript & Jest) 환경 구성하기 보통 하나의 도메인 시스템을 운영할때 프로젝트 하나만으로는 해결이 안될 때가 많습니다. 이를테면 다음과 같은 경우인데요. 어떤 분은 이걸 보고 MSA 라고 하시기도 하는데요. API / Admin / Batch 가 분리된걸로 절대로 MSA 라고 하진 않습니다. 하나의 주문시스템을 위해 3개의 하위 프로젝트가 있는 상태입니다. 주문 어드민 주문 API 주문 배치 이 3개는 주문시스템을 이루는 프로젝트들입니다. 배포되는 서버도 다르고 다른 코드 베이스를 가지고 있는데요. 하지만 이들이 공통적으로 필요로 하는 Order Entity는 어떻게 관리해야할까요? npm 저장소에 올려서 사용하기에는 실시간성이 떨어집니다 모든 하위 프로젝트들이 동일한 파일을 복사해서 관리하는건 유지보수가 굉장히 힘듭니다. 그래서 이런.. 2021. 7. 13.
1. Docker Compose로 Nodejs 개발/배포환경 구성하기 - Dockerfile로 구성하기 NodeJS와 같은 스크립트 언어에서는 개발환경을 구성하고, 이를 팀으로 확대하는데 많은 어려움이 있는데요. 일반적으로는 다음과 같은 문제점들이 있습니다. 로컬 PC의 Node버전을 매번 프로젝트 환경에 맞춰 변경해야한다. 때때로 패키지 설치가 막힌다. 로컬 컴퓨터에 이미 존재하는 환경과 꼬였다. 막상 배포를 했더니 개발 환경과 서버 환경이 같지 않아서 문제가 발생했다. 프로젝트에 새로운 사람이 합류하면 그 사람의 개발 환경에 따른 문제점이 발생한다. 그래서 이런 문제점들을 Docker Compose를 통해 개선하고 실제 배포까지 한번 진행해보겠습니다. 이 컨텐츠는 인프런 강의인 도커 쓸 땐 필수! 도커 컴포즈 에서 많은 영감을 얻었습니다. 강의 제작자이신 너굴 님의 허가하에 작성하였음을 먼저 말씀드립니.. 2021. 7. 3.
URL Encoding 된 CSV 파일 한줄로 decode 하기 (feat. Python3) 간혹 DB에 URL을 저장하다보면 다음과 같이 Encoding된 내용으로 저장할 경우가 있습니다. (DB 데이터를 CSV로 뽑아낸 경우) 저장 자체에는 문제가 없지만, 이 데이터를 운영 이슈로 뽑아서 제출하거나 비개발팀에 제출해야할 경우 디코딩을 해야하는데요. 굳이 여러 과정을 거치기 보다는 Python3의 urllib 을 이용해서 한번에 csv 파일을 전환합니다. 1. 스크립트 파이썬에서 URL 을 디코딩하는 간단한 코드는 다음과 같이 작성할 수 있습니다. from urllib.parse import unquote s = 'id%253D184ff84d27c3613d%26quality%3Dmedium' unquote(unquote(s)) 이렇게 할 경우 다음과 같이 디코딩된 결과를 볼 수 있습니다. 'i.. 2021. 6. 27.
프론트엔드 모니터링에서 Script error. 만 나올때 프론트엔드 모니터링을 보다보면 다음과 같이 Script error. 만 나올때가 있습니다. 나머지 에러들은 정확하게 에러가 노출되지만, 특정 케이스에 한해서 Script error. 만 나오게 되는 것인데요. 왜 모니터링에서는 Script error. 만 나오며, 이를 해결하기 위해선 어떻게 해야하는지 알아보겠습니다. 1. 배경 소개 예를 들어 다음과 같은 sdk.js 파일을 사용하는 웹 페이지가 있다고 가정해봅니다. sdk.js function foo() { console.log($('#a').text()); } index.html test 코드는 간단합니다. sdk.js 와 jquery를 호출하고, 이를 index.html이 sdk.js의 foo funciton을 호출 sdk.js는 jquery를 의.. 2021. 6. 20.

728x90