본문 바로가기
반응형

전체글586

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.
스케일링 가능한 Ngrinder 환경 구축하기 (feat. AWS Beanstalk) 네이버의 Ngrinder는 대표적인 성능 부하 테스트 도구입니다. 개인적으로는 다른 테스트 도구들에 비해서 설치 과정이 조금 번거롭다는 단점에 비해 사용성과 UI/UX가 너무 직관적이라는 장점으로 인해서 오랫동안 애정하고 있는 제품인데요. 서버 퍼포먼스 테스트 툴 사용후기 설치형을 지원하다보니 동적으로 Agent 수를 늘리고싶을때마다 설치된 이미지로 서버를 재생성하는 방식으로 늘리는게 참 불편했습니다. 이럴 경우 AWS를 통해서는 보통 2가지 방법으로 해결할 수 있는데, 오토스케일링 그룹 Beanstalk 등 동적으로 동일한 서버 환경을 편하게 증설할 수 있습니다. 이번 시간에는 AWS Beanstalk을 이용하여 스케일링 가능한 Ngrinder 환경 구축하기를 진행해보겠습니다. 1. EC2에 Contr.. 2021. 6. 18.
iterm2 에 한글 자소 분리 문제 처음 iterm2를 세팅하게 되면 다음과 같이 한글의 자소가 분리되는 현상을 볼 수 있습니다. iterm2의 유니코드 세팅이 none으로 되어있기 때문인데요. 이를 설정해보겠습니다. iterm2 의 Preferences (단축키: command+,) 으로 이동합니다. 그리고 차례로 Profiles -> Text -> Unicode normalization form 으로 이동합니다. (정리하면 Preferences -> Profiles -> Text -> Unicode normalization form 순) 여기서 NFC나 HFS+ 중 하나를 선택하시면 됩니다. (둘 중 한글 자소가 제대로 합쳐지는 것이면 됩니다.) 그럼 아래와 같이 한글 자소가 분리되지 않고 잘 합쳐진 형태로 보이게 됩니다. 참고 KLDP 2021. 6. 13.
[Typescript] 1. TypeORM에서 페이징 API 만들기 - 기본페이징 기능 웹 서비스를 구현하는 과정에서 페이징 API는 가장 기본적인 기능인데요. Java 기반의 페이징 구현 코드는 많은데, Typescript 와 TypeORM 의 구현 코드가 많지 않아 작성하게 되었습니다. 현재 Typescript 와 TypeORM 스펙으로 웹 서비스를 구현하신다면 한번쯤 참고해보셔도 좋을것 같습니다. 전체 코드는 Github에 있습니다. 여기서는 기본적인 페이징에 대해서만 소개 드리는데요. 고성능의 페이징 API가 필요하다면 이전의 포스팅들을 참고해주세요. 1. NoOffset 사용하기 2. 커버링 인덱스 사용하기 3-1. 페이지 건수 고정하기 3-2. 첫 페이지 조회 결과 cache 하기 1. 프로젝트 구조 사용된 대표적인 패키지는 다음과 같습니다. Typescript TypeDI DI.. 2021. 6. 10.

728x90
반응형