npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ckstack/ck-ms-board

v3.3.14

Published

ms-board microservice module

Downloads

494

Readme

이력

2023년 6월 29일 부터 ck-gw-core 2.48.0 버전 부터 더 이상 사용 하지 않는다. ck-gw-core 에서 직접 board DB 에 붙어서 DB 작업을 처리 한다.

버전 제한

  • NodeJS : 14.16.0
  • npm : 7.6.1

package-lock.json 은 npm 버전에 따라서 바뀔 수 있기 때문에, npm 버전을 맞추어야 한다.

NodeJS 특정 버전 설치하기 위해서는 NodeJS 홈페이지에서 버전 다운로드 받아 설치하면 된다. NPM 은 다음 명령어로 특정 버전을 설치 하면 된다.

$ npm i -g [email protected]

Install

proto 파일에서 javascript 소스 및 typescript 소스를 자동 생성해서, 개발을 진행 한다.

protoc 설치

참고: https://grpc.io/docs/protoc-installation/

설치하면 커맨드 창에서 protoc 명령을 실행 시킬 수 있다.

NOTE:

protoc 버전 3.12.4, 3.13.0 하에서 개발 진행 되었음.

grpc 에서 특이 사항

  • int64, fixed64, uint64 : string, number 모두 허용한다.

    원문 ( JSON value will be a decimal string. Either numbers or strings are accepted. )

    출처 ( https://developers.google.com/protocol-buffers/docs/proto3 )

typescript 정의 추출

참고: https://github.com/improbable-eng/ts-protoc-gen

proto 파일에서 typescript 정의 및 javascript 파일을 만드는 스크립트를 생성 해 두었다. (개발 환경이 MS 윈도우라면 윈도우 파워쉘 버전으로 build-proto.sh 파일을 만들어야 한다.)

build-protos.sh 스크립트를 실행 하면 src/proto 디렉토리에 javascript 및 typescript 파일이 생성 된다.

build-protos.sh 스크립트는 다음 두 가지 argument 를 지원 한다.

  • build : src 디렉토리에 javascript 와 typescript d.ts 파일을 생성 한다.(개발시 사용)
  • dist : dist 디렉토리에 javascript 파일을 생성 한다.(실행 및 배포시 사용)

예)

$ ./build-protos.sh build
$ ./build-protos.sh dist

sequelize typescript

다음 npm library 는 sequelize typescript 를 위해서 설치 한 것이기 때문에 삭제 하면 안 된다.

  • @types/bluebird
  • @types/validator
  • bluebird
  • reflect-metadata
  • sequelize : 5.22.3
  • sequelize-typescript

NOTE:

sequelize 버전을 5.22.3 으로 고정 해야 한다. 버전 업그레이드 시키면 정상 동작 하지 않는다. (6.x.x 버전으로 테스트 했을때 정상 동작 하지 않음. sequelize typescript 버전이 업그레이드 되기 전까지는 버전 유지 하도록 한다.)

GRPC Client

BloomRPC 라는 클라이언트가 있으므로 이것을 사용 한다.(https://awesomeopensource.com/project/uw-labs/bloomrpc)

osx 에서는 다음과 같이 설치 한다.

$ brew install --cask bloomrpc

Docker

설명

ras5 기본 비지니스 로직을 처리하는 docker 이미지 이다. 다음과 같이 버전 관리 하도록 한다.

  • 개발 : x.<0 또는 odd>.x
  • 상용 : x..x

즉, 개발은 중간 버전을 홀수(1.0.0, 또는 1.1.0) 으로 상용은 짝수(1.2.0) 으로 한다. 즉, 1.0.0 과 1.2.0 은 같은 버전이고, 1.1.0 과 1.4.0 도 같은 버전이다.(환경-개발, 상용만 다름)

이미지 생성

$ docker image build --build-arg BUILDER_TYPE=development -t ras5/ms_board:1.0.0 .
$ docker image build --build-arg BUILDER_TYPE=production -t ras5/ms_board:1.0.0 .

이미지 삭제

$ docker image rm ras5/ms_board:1.0.0

dangle 이미지

  • 조회
$ docker image ls -f dangling=true
  • 삭제
$ docker image rm -f $(docker images -f "dangling=true" -q)

이미지 추출

$ docker image save -o ras5_ms_board_1_0_0.tar ras5/ms_board:1.0.0

이미지 로드

$ docker image load -i ras5_ms_board_1_0_0.tar

컨테이너

테스트용 실행

$ docker container run -dit --name ras5_ms_board \
          -p 10000:10000 \
          -v /Users/dhkim/Documents/Develop/project.ckstack/ras5/ms-core/log:/data/log/ms-board \
          ras5/ms_board:1.0.0 \
          /bin/sh

접근

$ docker container attach ras5_ms_board

중단

$ docker container stop ras5_ms_board ; docker container rm ras5_ms_board

환경 변수

  • PG_TIME_ZONE : 기본 타임존
  • PG_LANG : 기본 언어
  • PG_LOG_LEVEL : 로그 레벨
  • PG_FILE_ERR_MILLI_SEC : 파일 처리 제한 시간. 파일 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_PROC_ERR_MILLI_SEC : 로직 처리 제한 시간. 로직 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_SQL_ERR_MILLI_SEC : SQL 처리 제한 시간. SQL 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_REDIS_ERR_MILLI_SEC : Redis 처리 제한 시간. Redis 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_INFLUX_ERR_MILLI_SEC : Influx 처리 제한 시간. Influx 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_MQTT_PUB_ERR_MILLI_SEC : Mqtt publish 처리 제한 시간. Mqtt publish 처리시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_GRPC_ERR_MILLI_SEC : GRPC 서버 연동 제한 시간. GRPC 연동시 설정 시간 보다 더 걸리면 에러 로그 출력. milli-sec 단위
  • PG_DB_COUNT : RDBMS 연결 개수. 스키마별로 연결시 여러개의 연결을 할 수 있다.
  • PG_DB1_DIALECT : RDBMS 종류. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임. 현재는 mysql 만 지원
  • PG_DB1_HOST : RDBMS host. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_PORT : RDBMS port. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_POOL_MAX_COUNT : Maximum number of connection in pool. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_POOL_IDLE : The maximum time, in milliseconds, that a connection can be idle before being released. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_POOL_ACQUIRE : The maximum time, in milliseconds, that pool will try to get connection before throwing error. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_SCHEMA : RDBMS database(schema) name. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_USER : RDBMS 연결 유저 아이디. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_PASSWORD : RDMS 연결 유저 비밀번호. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_DB1_MODEL_ABS_PATH : Sequelize Table model 이 들어 있는 경로. building 이후의 경로로 설정 되어야 함.(소스 경로 아님)
  • PG_TUNNEL_DB_COUNT : ssh tunnel 을 통한 RDBMS 연결 개수. 스키마별로 연결시 여러개의 연결을 할 수 있다.
  • PG_TUNNEL_DB1_PROXY_HOST : RDBMS 연결을 위한 tunnel server host. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_PROXY_PORT : RDBMS 연결을 위한 tunnel server port. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_PROXY_USER_ID : RDBMS 연결을 위한 tunnel 서버의 로그인 유저 아이디. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_PROXY_USER_PASSWORD : RDBMS 연결을 위한 tunnel 서버의 로그인 유저 비밀번호. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_PROXY_USER_PASSWORD_PEM_PATH : RDBMS 연결을 위한 tunnel 서버의 로그인 인증서. 비밀번호 대신 인증서로 로그인 할 수 있음. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_DATABASE_SERVER_HOST : tunnel 서버에서 접근할 RDBMS 서버 주소. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_DATABASE_SERVER_PORT : tunnel 서버에서 접근할 RDBMS 서버 포트. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_DIALECT : tunnel 서버를 통해 연결될 RDBMS 종류. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_PORT : tunnel 을 연결하는 local 에서 tunnel 연결을 위해 사용하는 포트. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_POOL_MAX_COUNT : Maximum number of connection in pool. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_POOL_IDLE : The maximum time, in milliseconds, that a connection can be idle before being released. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_POOL_ACQUIRE : The maximum time, in milliseconds, that pool will try to get connection before throwing error. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_SCHEMA : tunnel 을 통해서 연결되는 RDBMS database(schema) name. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_USER : tunnel 을 통해서 연결되는 RDBMS 연결 유저 아이디. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_PASSWORD : tunnel 을 통해서 연결되는 RDMS 연결 유저 비밀번호. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_TUNNEL_DB1_MODEL_ABS_PATH : Sequelize Table model 이 들어 있는 경로. building 이후의 경로로 설정 되어야 함.(소스 경로 아님)
  • PG_REDIS_COUNT : redis 연결 개수
  • PG_REDIS1_HOST : redis host. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_REDIS1_PORT : redis port. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_REDIS1_PASSWORD : redis 연결 비밀번호. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_REDIS1_DB : redis db number. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_MQTT_BROKER_COUNT : Mqtt broker 설정 개수
  • PG_MQTT_BROKER1_PROTOCOL : mqtt 프로토콜. mqtt, mqtts 둘 중 하나
  • PG_MQTT_BROKER1_HOST : mqtt host
  • PG_MQTT_BROKER1_PORT : mqtt port
  • PG_MQTT_BROKER1_CLIENT_ID : mqtt client id prefix
  • PG_MQTT_BROKER1_USER_ID : mqtt broker 에 접근하기 위한 user id. anonymous 라면 값을 주지 않는다.
  • PG_MQTT_BROKER1_USER_PASSWORD : mqtt broker 에 접근하기 위한 user password. anonymous 라면 값을 주지 않는다.
  • PG_MQTT_BROKER1_KEEP_ALIVE : keepalive는 초 단위이고, 0 이면 disable 된다. 특정 설정이 없으면 60으로 값을 준다.
  • PG_MQTT_BROKER1_RECONNECT_PERIOD : reconnect period 는 milli-sec 단위이고, 0 이면 자동 reconnect 를 하지 않는다. 특정 설정이 없다면 1000으로 값을 준다.
  • PG_MQTT_BROKER1_CONNECT_TIMEOUT : CONNACK 을 받을때 까지 대기 시간이며, milli-sec 단위이다. 특정 설정이 없다면 10000으로 값을 준다.
  • PG_MQTT_BROKER1_TLS_SELF_SIGNED : tls 를 사용하여 연결 할때, 인증서가 self-sign 인지 여부이다. true 이면 self-signed 인증임. tls 사용하지 않으면 값을 주지 않는다.
  • PG_MQTT_BROKER1_TLS_KEY_PATH : 인증서 key 파일의 파일 패스. nginx에서 사용하는 key 파일을 사용하면 됨. tls 사용하지 않으면 값을 주지 않는다.
  • PG_MQTT_BROKER1_TLS_CERT_PATH : 인증서 cert 파일의 파일 패스. nginx에서 사용하는 cert 파일을 사용하면 됨. tls 사용하지 않으면 값을 주지 않는다.
  • PG_MQTT_BROKER1_WILL_TOPIC : 비정상적인 연결 종료일때, 발생되는 메시지의 토픽. will 을 사용하지 않으면 값을 주지 않는다.
  • PG_AWS_S3_COUNT : AWS S3 버킷 설정 개수
  • PG_AWS1_S3_SIGNATURE_VERSION : S3 버전. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_AWS1_S3_REGION : S3 리전. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_AWS1_S3_BUCKET : S3 버킷. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_AWS1_S3_ACCESS_KEY_ID : S3 연결 access key. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_AWS1_S3_SECRET_ACCESS_KEY : S3 연결 secret. 여러개 연결시 1, 2, 3 형태로 사용한다. 1 부터 시작임.
  • PG_AWS1_S3_ACL : S3 acl
  • PG_MSBOARD_DB_INDEX : ms-board 로직의 DB index. RDBMS index 번호임. 0 부터 시작.
  • PG_MSBOARD_LIMIT_UPDATE_BOARD : 한 번에 변경 할 수 있는 board 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 변경되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_DELETE_BOARD : 한 번에 삭제 할 수 있는 board 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 삭제되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_UPDATE_CATEGORY : 한 번에 변경 할 수 있는 category 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 변경되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_DELETE_CATEGORY : 한 번에 삭제 할 수 있는 category 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 삭제되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_UPDATE_COMMENT : 한 번에 변경 할 수 있는 comment 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 변경되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_DELETE_COMMENT : 한 번에 삭제 할 수 있는 comment 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 삭제되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_UPDATE_DOCUMENT : 한 번에 변경 할 수 있는 document 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 변경되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_DELETE_DOCUMENT : 한 번에 삭제 할 수 있는 document 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 삭제되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_UPDATE_DOCUMENT_LINK : 한 번에 변경 할 수 있는 document link 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 변경되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_DELETE_DOCUMENT_LINK : 한 번에 삭제 할 수 있는 document link 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 삭제되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_UPDATE_DOCUMENT_PIN : 한 번에 변경 할 수 있는 document pin 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 변경되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_DELETE_DOCUMENT_PIN : 한 번에 삭제 할 수 있는 document pin 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 삭제되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_UPDATE_TAG : 한 번에 변경 할 수 있는 tag 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 변경되면 에러 처리 됨.
  • PG_MSBOARD_LIMIT_DELETE_TAG : 한 번에 삭제 할 수 있는 tag 의 row 개수 제한. 0 이면 제한 없음. 설정 개수 보다 더 많이 삭제되면 에러 처리 됨.

디렉토리 및 파일

  • /data/log/ms : 로그 디렉토리