ํด์ปค๊ทธ๋ผ์ด๋ ํด์ปคํค์ ์ฐธ์ฌํ๋ CDC(์จ๋ค์จ)ํ์ ๋ ธ๋๋ก๋น ๐ป์ ๋๋ค.
์๋ ๋ ๋งํฌ๋ ํด์ปคํค์์ ์ฑ์ ๊ฐ๋ฐํ๋ฉด์ ์ฐธ๊ณ ํ ๋งํ ๋ฌธ์๋ค์ ๋๋ค. ์ด ๋ฌธ์๋ค์์ ์ธ๊ธํ ์๋น์ค ์ด์ธ์๋ ๋ ๋ง์ ์๋น์ค๋ค์ด PaaS, SaaS, ์๋ฒ๋ฆฌ์ค ํํ๋ก ์ ๊ณต๋๋ ์ฐธ๊ณ ํ์ธ์.
์ ํ/์๋น์ค ์๊ฐ ๋ณด๊ธฐ
์คํ์์ค ๋ผ์ด์ผ์ค ๋ณด๊ธฐ
- GitHub Account
- Visual Studio Code
- GitHub CLI
- Azure CLI
- Azure Developer CLI
- Azure Account
- Azure Resource Group
- Node js
- npm
- pnpm
- yarn
Note. Github Actions์ Bicep์ ์ฌ์ฉํ์์ต๋๋ค
- ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํฌํฌํ๊ณ ๋ค์ ๋ช ๋ น์ด๋ก ํด๋ก ํฉ๋๋ค.
$GITHUB_USERNAME = "{{์์ ์ GitHub ID}}"
git clone https://github.com/$GITHUB_USERNAME/hg-CDC-team.git
cd hg-CDC-team
- ๋ค์๊ณผ ๊ฐ์ด ์์ ๋ฅผ ํ๋ก๋น์ ๋ ํฉ๋๋ค. (์๋์ฐ ๊ธฐ์ค)
$AZURE_ENV_NAME="CDC-team"
$AZURE_LOCATION="koreacentral"
$AZURE_RESOURCE_GROUP="rg-CDC-team"
az login
azd auth login
azd init -e $AZURE_ENV_NAME
azd env set AZURE_ENV_NAME $AZURE_ENV_NAME
azd env set AZURE_LOCATION $AZURE_LOCATION
azd env set AZURE_RESOURCE_GROUP $AZURE_RESOURCE_GROUP
azd config set alpha.resourceGroupDeployments on
# azd up์ ํ๊ธฐ์ ์์ฑ๋ azure.yamlํ์ผ์ ์๋์ ๊ฐ์ด ์์ ํด์ฃผ์ธ์.
name: hg-CDC-team
infra:
provider: "bicep"
path: "infra"
module: "main"
pipeline:
provider: "github"
# Deploy
azd up
- ๋ค์๊ณผ ๊ฐ์ด github workflow ์ํฌ๋ฆฟ์ ์ค์ ํฉ๋๋ค. (์๋์ฐ ๊ธฐ์ค)
# AI Deploy
az webapp deployment list-publishing-profiles --name "$AZURE_ENV_NAME-ai" --resource-group $AZURE_RESOURCE_GROUP --xml > ai_publish_profile.xml
gh auth login
gh secret set AZURE_AI_APP_NAME --repo hackersground-kr/hg-CDC-team --body "${AZURE_ENV_NAME}-ai"
cat ai_publish_profile.xml | gh secret set AZURE_AI_WEBAPP_PUBLISH_PROFILE --repo hackersground-kr/hg-CDC-team
- ํฌํฌํ ๋ฆฌํฌ์งํ ๋ฆฌ์ Github Push๋ฅผ ํด Actions๋ฅผ ํ์ฑํ ํด์ค๋๋ค.
git add .
git commit -m "initial commit"
git push origin main
-
๊นํ๋ธ์ ์ ์ํด github actions workflow๋ฅผ ์คํ์ ํ์ธํฉ๋๋ค.
-
๋ฐฐํฌ๊ฐ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. (10๋ถ ๊ฐ๋ ์์๋ฉ๋๋ค.)
-
๋ค์๊ณผ ๊ฐ์ด ๋ฐฑ์๋ ๋ฐฐํฌ๋ฅผ ํ์ธํฉ๋๋ค.
iwr https://$AZURE_ENV_NAME-ai.azurewebsites.net/location
- ๋ฐฑ์๋ ํด๋๋ก ์ด๋ํด์ค๋๋ค.
cd backend # ๊ฒฝ๋ก์ ์ ์ ํด์ฃผ์ธ์. (์์ ์ ํ์ฌ ๊ฒฝ๋ก์ ๋ง๊ฒ)
- pnpm install ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋๋ค.
pnpm install
- .envํ์ผ ์ค์ ํ๊ธฐ (๊ฐ์ ์ ๋ ฅํด์ฃผ์ธ์.)
DB_HOST=
DB_PORT=
DB_USERNAME=
DB_PASSWORD=
DB_DATABASE=
JWT_SECRET=
JWT_ACCESS_TOKEN_EXPIRATION=
JWT_REFRESH_TOKEN_EXPIRATION=
CONNECTION_STRING=
- ๋ฐฑ์๋๋ฅผ ๋ก์ปฌ์์ ์คํํด์ค๋๋ค.
pnpm start:dev
- ๊นํ๋ธ ์ก์ ์์ ์ฌ์ฉํ ์ํฌ๋ฆฟ์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ค์ ํด์ค๋๋ค.
-
๊นํ๋ธ ์ก์ ํ์ผ์ด ์์ฑ๋์ด์์ผ๋
git push
๋ฅผ ํตํด ์ก์ ์ ๋๋ฆฝ๋๋ค.๋ค์๊ณผ ๊ฐ์ด ์ฑ๊ณต๋ ๋ชจ์ต์ ๋ณผ ์ ์์ต๋๋ค.
- ํ๋ก ํธ์๋ ํด๋๋ก ์ด๋ํด์ค๋๋ค.
cd frontend # ๊ฒฝ๋ก์ ์ ์ ํด์ฃผ์ธ์. (์์ ์ ํ์ฌ ๊ฒฝ๋ก์ ๋ง๊ฒ)
- ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํด์ค๋๋ค.
REACT_APP_KAKAO_KEY=746c698dca1feb40e6d1748fc65304af # ๋งต ํค
- yarn ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋๋ค.
yarn
- yarn ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ํ๋ก ํธ์๋๋ฅผ ์์ํด์ค๋๋ค.
yarn start # ๋ก์ปฌ์์ ์ ์คํ๋๋์ง ํ์ธ ํด์ฃผ์ธ์.
- ๋ก์ปฌ์์ ์ ์คํ๋๋ค๋ฉด ๋ฐฐํฌ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค
Azure Portal์ ์ ์ํด App Service๋ฅผ ํด๋ฆญํฉ๋๋ค.
App Service์์ ๋ง๋ค๊ธฐ > "์น ์ฑ" ์ ์ ํํด์ค๋๋ค.
๋ง๋ค๊ธฐ ๋ฉ๋ด์์ ์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ฆฌ์์ค ๊ทธ๋ฃน, ์ธ์คํด์ค ์ ๋ณด ๊ฒ์ ๋ฑ ๋ณํ๊ฐ ์๋ ํ์์์๋ฅผ ์
๋ ฅํด์ค๋๋ค.
๋ค์์ผ๋ก ํ๊ทธ ๋ฅผ ์
๋ ฅํด์ค๋๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฒํ ํ ๋ง๋ค๊ธฐ๋ฅผ ๋๋ฆ
๋๋ค.
์์ฑ์ด ๋ ๋ ๊น์ง ์ ์ ๊ธฐ๋ค๋ฆฐ ํ Go to resource๋ฅผ ๋๋ฌ์ค๋๋ค. (๋ฆฌ์์ค ๋ณด๋ฌ ๊ฐ๊ธฐ)
๋ค์์ผ๋ก VSCode๋ฅผ ์ด์ด์ฃผ๊ณ ์์ 3๊ฐ์ง ์ต์คํ
์
์ ์ค์น ํด์ค๋๋ค.
์ค์น ํ Azure Icon์ ๋๋ฌ์ Sign in to Azure๋ฅผ ๋๋ฌ์ค๋๋ค.
Azure์ ๋ก๊ทธ์ธ ํ AppService Icon์ ๋๋ฌ ์ฃผ๊ณ ๋ฐฐํฌํ AppService๋ฅผ ์ค๋ฅธ์ชฝ ํด๋ฆญํด Deploy to WEB App์ ํด๋ฆญํด ์ค๋๋ค.
๋ค์์ผ๋ก Browser๋ก ํด๋ฆญํด์ฃผ๊ณ "๋น๋ํ" ๋ฆฌ์กํธ ํ๋ก์ ํธ์ "build ํด๋" ๋ฅผ ํด๋ฆญํด์ค๋๋ค.
๊ทธ ํ Deploy์ Browse Website๋ฅผ ๋๋ฌ ๋ฐฐํฌ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ฐฐํฌ๊ฐ ์ ๋ ๋ชจ์ต์ ๋ณผ ์ ์์ต๋๋ค.