Skip to content

Latest commit

ย 

History

History
166 lines (125 loc) ยท 4.18 KB

README.md

File metadata and controls

166 lines (125 loc) ยท 4.18 KB

wishlist_funding_backend

File naming convention

  • ์—ฌ๋Ÿฌ ๋‹จ์–ด์ผ ๊ฒฝ์šฐ, -๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์‚ฌ๊ฐ€ ์„ž์ธ ํŒŒ์ผ (ex. create-user.dto.ts)์ผ ๊ฒฝ์šฐ, ๋™์‚ฌ๊ฐ€ ๋จผ์ € ์˜ต๋‹ˆ๋‹ค.

How to run this server (test environment)

  1. node.js ์„ค์น˜
  2. ์˜์กด์„ฑ ์„ค์น˜ with npm i
  3. redis server ๋กœ์ปฌ ์„ค์น˜ ํ•˜๋‹จ ์ฐธ์กฐ
  4. .env ์„ค์ •
  5. global-bundle.pemํ‚ค ์„ค์ • -> S3๋ฅผ ์œ„ํ•ด ๋ฐ›์•„๋†“์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  6. ์‹คํ–‰ (watch ๋ชจ๋“œ) with npm run start:dev (debug ๋ชจ๋“œ) with npm run start:debug

How to run this server (test environment with docker ๐Ÿณ)

  1. Docker ์„ค์น˜ ์œˆ๋„์šฐ์˜ ๊ฒฝ์šฐ, WSL2 ์‚ฌ์šฉ
  2. .env ์„ค์ •
  3. docker/redis.conf ์„ค์ •
  4. global-bundle.pemํ‚ค ์„ค์ • -> S3๋ฅผ ์œ„ํ•ด ๋ฐ›์•„๋†“์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  5. ์‹คํ–‰ (debug ๋ชจ๋“œ) with docker-compose -f docker-compose.development.yml up

์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ:

  • inspect: ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์†Œ์Šค์ฝ”๋“œ ์ €์žฅ์‹œ ์ž๋™์œผ๋กœ Nest ์„œ๋ฒ„ ์žฌ๋ถ€ํŒ…
  • debug: ๋„์ปค ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ VSCode "Attach Node in Docker"

.env ์„ค์ •

# DEBUG MODE (true/false)
DEBUG=

# NODE
TZ=

# NestJS
PORT=

# AWS
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_S3_BUCKET_NAME=
AWS_S3_REGION=
AWS_S3_HOST=
AWS_REGION=
REGISTRY=

# Postgres
DB_HOST=
DB_PORT=
# =============[ DEVELOP ]=============
DB_DEV_DATABASE=
DB_DEV_USERNAME=
DB_DEV_PASSWORD=
# =============[ PRODUCT ]=============
DB_PROD_1_DATABASE=
DB_PROD_1_USERNAME=
DB_PROD_1_PASSWORD=
# =============[ TEST ]=============
DB_TEST_DATABASE=
DB_TEST_USERNAME=
DB_TEST_PASSWORD=

# Auth
# =============[ KAKAO ]=============
KAKAO_CLIENT_ID=
KAKAO_CLIENT_SECRET=
KAKAO_CALLBACK_URI=

# =============[ JWT ]=============
JWT_SECRET=
JWT_REFRESH_SECRET=

# =============[ NAVER ]=============
NAVER_CLIENT_ID=
NAVER_CLIENT_SECRET=
NAVER_CALLBACK_URI=

# =============[ GOOGLE ]=============
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URI=

# Redis
REDIS_HOST=
REDIS_PORT=
REDIS_PASSWORD=

# =============[ Redirect Url ]=============
LOGIN_URL=
SIGNUP_URL=
COOKIE_DOMAIN=
CORS_ORIGIN=

# =============[ SSL ]=============
SSL_CERTIFICATE_LOCATION=
SSL_KEY_LOCATION=

# =============[ Docker ]=============
IMAGE_NAME=
CONTAINER_NAME=

docker/redis.conf ์„ค์ •

๋„์ปค redis ์„ค์ •ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

# ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ๋„คํŠธ์œ„ํฌ(0.0.0.0 = Anywhere)
bind 0.0.0.0

# ์—ฐ๊ฒฐ ํฌํŠธ
port 6379

# Master ๋…ธ๋“œ์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ
requirepass <YOUR-PASSWORD>

# ์ตœ๋Œ€ ์‚ฌ์šฉ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰(Default : ์‹œ์Šคํ…œ ์ „์ฒด ์šฉ๋Ÿ‰)
maxmemory 2gb

# ์„ค์ •๋œ ์ตœ๋Œ€ ์‚ฌ์šฉ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ–ˆ์„๋•Œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹
maxmemory-policy volatile-ttl

# RDB ์„ค์ • (์ฃผ๊ธฐ์  ๋ฐฑ์—…)
# 15๋ถ„ ์•ˆ์— ์ตœ์†Œ 1๊ฐœ ์ด์ƒ์˜ key๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ
save 900 1
# 5๋ถ„ ์•ˆ์— ์ตœ์†Œ 10๊ฐœ ์ด์ƒ์˜ key๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ
save 300 10
# 60์ดˆ ์•ˆ์— ์ตœ์†Œ 10000๊ฐœ ์ด์ƒ์˜ key๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ
save 60 10000

global-bundle.pem ํ‚ค ์„ค์ •

amazon rds์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ certificate bundle์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ global-bundle.pem ํ‚ค๋ฅผ ๋‹ค์šด๋ฐ›์•„ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธํด๋”์— ์˜ฎ๊ฒจ๋†“์•„์ฃผ์‹ญ์‹œ์˜ค.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesDownload

Install Redis Server Locally

  • ๋กœ์ปฌ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ด์š”!

    # ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ • (๊ฐœ๋ฐœ์ž ์„ ํƒ์‚ฌํ•ญ)
    auth #{PASSWORD}
    >> OK
    
    # key ์กฐํšŒ
    keys *
    get #{KEY}
  • CLIENT_ID , CLIENT_SECRET : SNS ์„œ๋ฒ„์—์„œ ๋ฐœ๊ธ‰

  • JWT_SECRET, JWT_REFRESH_SECRET : ์ž„์˜๋กœ ์„ค์ •ํ•œ ํ‚ค