해커그라운드 해커톤에 참여하는 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
- 깃허브 액션에서 사용할 시크릿을 사진과 같이 설정해줍니다.
![스크린샷 2024-08-27 오전 7 36 12](https://private-user-images.githubusercontent.com/127307160/361595629-d5ecd69f-57d3-4dd5-bfc8-15a5d774649c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTk1NjI5LWQ1ZWNkNjlmLTU3ZDMtNGRkNS1iZmM4LTE1YTVkNzc0NjQ5Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yNzVkZTE2ZjJmNmNkMjczZTdmNmFiN2NjNmI1MWM2ZWE4ZDkxODEyMjZmYzQ2MDhhMmE5MzUwYjZmMzJkMDRkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6uGtmhmQJCjgOkTqJqmsSc2vfUlc58TPrdc4FLYJv0w)
- 프론트엔드 폴더로 이동해줍니다.
cd frontend # 경로의 유의 해주세요. (자신의 현재 경로에 맞게)
- 환경변수를 설정해줍니다.
REACT_APP_KAKAO_KEY=746c698dca1feb40e6d1748fc65304af # 맵 키
- yarn 명령어를 입력해줍니다.
yarn
- yarn 명령어를 이용해 프론트엔드를 시작해줍니다.
yarn start # 로컬에서 잘 실행되는지 확인 해주세요.
- 로컬에서 잘 실행된다면 배포단계로 넘어갑니다
![스크린샷 2024-08-27 오전 12 37 42](https://private-user-images.githubusercontent.com/127307160/361588660-affb9106-16b1-443b-af18-fd6e10b96c9b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTg4NjYwLWFmZmI5MTA2LTE2YjEtNDQzYi1hZjE4LWZkNmUxMGI5NmM5Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04YjcyOTVmYzlhOTkyMWM5OTgxNDYxOWZhYzg1ZmY4NzkyYTZhZTk2MTQ0YjRhZTM2OWI2MDg5NzUzYjNiNTljJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.74Z52U2pGUwt1iRLV7u0hMlw7mz-W2Bh93REbBkRajo)
Azure Portal에 접속해 App Service를 클릭합니다.
![스크린샷 2024-08-27 오전 12 39 05](https://private-user-images.githubusercontent.com/127307160/361588679-b6ec7fb3-2331-43a2-8612-f8e36db7da83.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTg4Njc5LWI2ZWM3ZmIzLTIzMzEtNDNhMi04NjEyLWY4ZTM2ZGI3ZGE4My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00NTk3MWYwOGIzZWFkMzY1NTAyOTU4ODkwY2I1NDQ1N2I1MGJmN2Q3OWYxNDlmNjZjYjMwN2VhZGUwZmQzODhlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ZCpwyMOz_hdvNdDtTmck_Kj95Mt2BYdw9lBpkVfzAPw)
App Service에서 만들기 > "웹 앱" 을 선택해줍니다.
만들기 메뉴에서 위 사진과 같이 리소스 그룹, 인스턴스 정보 게시 등 별표가 있는 필수요소를 입력해줍니다.
다음으로 태그 를 입력해줍니다.
생성이 될때 까지 잠시 기다린 후 Go to resource를 눌러줍니다. (리소스 보러 가기)
![스크린샷 2024-08-27 오전 12 41 41](https://private-user-images.githubusercontent.com/127307160/361588745-5d695642-f69f-43a8-a2d7-60d913b17179.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTg4NzQ1LTVkNjk1NjQyLWY2OWYtNDNhOC1hMmQ3LTYwZDkxM2IxNzE3OS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02NDczMzQ5NGE5MWE0MDhhMzA2YjhlNjM2ZjU1OTdjYzgxMTVlYWFiOTcwYTg3ZjVhMTdkYmFjNTM1NTZiODcwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.4W3A_ZfzS0s44xXjAbj0FWukhr7mf_NkXtOilsBS-Qc)
다음으로 VSCode를 열어주고 위의 3가지 익스텐션을 설치 해줍니다.
![스크린샷 2024-08-27 오전 12 41 49](https://private-user-images.githubusercontent.com/127307160/361588760-42be9130-0c8c-4868-9094-594fe27afb6f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTg4NzYwLTQyYmU5MTMwLTBjOGMtNDg2OC05MDk0LTU5NGZlMjdhZmI2Zi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iYTg1MWQ3MTE5YWJmZjI2OWI2ZTRmMGEwNjZkMTdlYTQ4ZmYyZjFlZjE5ZjIwOGQyYTNmOTg4YzA1Y2Y1NjRhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.lf4o0iPLhUme_sne_GzmGGNDDAy5fiOmaE37PVQm86M)
설치 후 Azure Icon을 눌러서 Sign in to Azure를 눌러줍니다.
![스크린샷 2024-08-27 오전 12 42 09](https://private-user-images.githubusercontent.com/127307160/361588766-a4633d80-c26a-48e1-b875-bbccc2257562.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTg4NzY2LWE0NjMzZDgwLWMyNmEtNDhlMS1iODc1LWJiY2NjMjI1NzU2Mi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mZDY2YWExYmMxYzc2NjQyNWNmMzU1NDg4OGUyNjVhNWE3YmNmYzcxMzlmMWI2NDQzZTk5NDBhZjM5MDI3MWM3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ZqwmGjmdxSwyc6gnfYa6bnAcGhBUcnVsEaL8SK3wYG0)
Azure에 로그인 후 AppService Icon을 눌러 주고 배포할 AppService를 오른쪽 클릭해 Deploy to WEB App을 클릭해 줍니다.
다음으로 Browser로 클릭해주고 "빌드한" 리액트 프로젝트의 "build 폴더" 를 클릭해줍니다.
![스크린샷 2024-08-27 오전 12 42 56](https://private-user-images.githubusercontent.com/127307160/361588776-fd52d258-7520-40be-b09e-06b6c8c5e40b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTg4Nzc2LWZkNTJkMjU4LTc1MjAtNDBiZS1iMDllLTA2YjZjOGM1ZTQwYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MThkNTQ3ZDEzZDkxODI4MDMyODMwNDZlYWI1MzA0YjI5ZTgzMDQ0NjRiOTdiMDBmMTJkZjJhNzkxZWNkNjEzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ARl6nweHqgccrWuuAYD8ZuU7yOidS8vXzU4T70R4W9A)
그 후 Deploy와 Browse Website를 눌러 배포 상태를 확인합니다.
![스크린샷 2024-08-27 오전 7 13 26](https://private-user-images.githubusercontent.com/127307160/361591664-84a133f0-a834-4a5f-9589-9f523beec95a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDE3MjcsIm5iZiI6MTczODk0MTQyNywicGF0aCI6Ii8xMjczMDcxNjAvMzYxNTkxNjY0LTg0YTEzM2YwLWE4MzQtNGE1Zi05NTg5LTlmNTIzYmVlYzk1YS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxNTE3MDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xNTE1N2ZjYzcxYjk0MjAyNDM4OWFlYzRiNThlNjQyMmQzMGFlMWU3NmZkNTcyZDFiYzEwMjNiYWQ2NTEzMDE4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.gK0IHNZdWYpL4gSzsxc_nObJB-0EOBxZt9c0W-UtCGw)
다음과 같이 배포가 잘 된 모습을 볼 수 있습니다.