Skip to content

sopt-makers/sopt.org-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

README

Description

  • Sopt Official NestJS ๊ณตํ™ˆ API ์„œ๋ฒ„ ์ž…๋‹ˆ๋‹ค.
  • Package Manager๋Š” Yarn Package Manager ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

INDEX

  1. Getting Started
  2. [Project Structure](#Project Structure)
  3. Deploy_Pipeline

Getting-started

์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ

  • Node v16

์„œ๋ฒ„ ์‹คํ–‰

# Local
 npm run start:local 
# Dev
 npm run start:dev  
  • env์— ๋ช…์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

env ๊ณผ๊ฐ™์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๋‹ด๋‹น์ž์—๊ฒŒ ๊ณต์œ  ๋ฐ›์œผ์„ธ์š”.

OpenAPI

/api-docs

Project Structure

์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜•์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

Architecture

Sopt_Official_diagram drawio

  • ์ธ์Šคํ„ด์Šค๋Š” EC2 ๋‚ด๋ถ€์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • EC2 ๋‚ด๋ถ€์— Docker container๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • NestJS ์˜ ๊ฒฝ์šฐ, 3000:3000์œผ๋กœ ํฌ์›Œ๋”ฉ ๋ฐ / route ์— ๋งคํ•‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Spring Boot ์˜ ๊ฒฝ์šฐ, 8080:8080์œผ๋กœ ํฌ์›Œ๋”ฉ ๋ฐ /v2 route ์— ๋งคํ•‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • Docker image๋Š” AWS Public ECR ์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๊ณ , ์ธ์ˆ˜์ธ๊ณ„ ์‹œ AWS ๊ณ„์ •์— PublicECR ๊ด€๋ จ IAM Role ์„ ๋ถ€์—ฌ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Dev, Prod ๋ชจ๋‘ ๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ํ˜•์„ฑํ•˜๊ณ  ์žˆ๊ณ , ๋ฆฌ์†Œ์Šค ์ฐจ์ด๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.

Deploy-Pipeline

  • deploy pipeline์€ github action์„ ์ด์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.
  • github action์€ ./github/workflows ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • workflow ํŒŒ์ผ์€ ์ด 3๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ , ๊ฐ๊ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
    1. ci.deploy.yml : develop ๋ธŒ๋žœ์น˜์— PR์ด ์ƒ์„ฑ๋ ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    2. cd.develop.yml : develop ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œ(๋˜๋Š” ๋จธ์ง€)๊ฐ€ ๋˜์—ˆ์„๋•Œ๋งˆ๋‹ค ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. develop ์„œ๋ฒ„์— ๋ฐฐํฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
    3. cd.prod.yml : main ๋ธŒ๋žœ์น˜์— ํ‘ธ์‹œ(๋˜๋Š” ๋จธ์ง€)๊ฐ€ ๋˜์—ˆ์„๋•Œ๋งˆ๋‹ค ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. production ์„œ๋ฒ„์— ๋ฐฐํฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  • cd.***.yml workflow๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ํ•ฉ๋‹ˆ๋‹ค.
    1. docker image๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
    2. docker image๋ฅผ ECR ์— pushํ•ฉ๋‹ˆ๋‹ค.
    3. EC2์— ssh๋กœ ์ ‘์†ํ•˜์—ฌ ECR ์—์„œ ์ด๋ฏธ์ง€๋ฅผ pullํ•ฉ๋‹ˆ๋‹ค.
    4. EC2์—์„œ ์‹คํ–‰์ค‘์ธ container๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
    5. docker container ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

GitAction ๊ด€๋ จ Secret์€, GitHub ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜์—ฌ Owner๊ถŒํ•œ์„ ํš๋“ ํ›„, Repository secret์—์„œ ์„ค์ •ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์„ค๋ช…์€ ๋ณ„๋„๋กœ ๊ณต์œ ๋“œ๋ฆฐ ๋ฌธ์„œ์—์„œ ํ™•์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published