해커그라운드 해커톤에 참여하는 정신나갈것같네
팀의 Chapter.2
입니다.
아래 두 링크는 해커톤에서 앱을 개발하면서 참고할 만한 문서들입니다. 이 문서들에서 언급한 서비스 이외에도 더 많은 서비스들이 PaaS, SaaS, 서버리스 형태로 제공되니 참고하세요.
아래 제공하는 설치 방법을 통해 심사위원단이 여러분의 제품/서비스를 실제 Microsoft 애저 클라우드에 배포하고 설치할 수 있어야 합니다. 만약 아래 설치 방법대로 따라해서 배포 및 설치가 되지 않을 경우 본선에 진출할 수 없습니다.
여러분의 제품/서비스를 Microsoft 애저 클라우드에 배포하기 위해 사전에 필요한 준비 사항들을 적어주세요.
전체적으로는 InteliJ, Docker Desktop, Github 계정, Microsoft 계정 (권한이 있어야합니다.), 자바 jdk-17가 필요합니다.
InteliJ window : https://www.jetbrains.com/ko-kr/idea/download/
InteliJ Mac : https://docs.docker.com/desktop/install/mac-install/
Docker window : https://docs.docker.com/desktop/install/windows-install/
Docker Mac : https://docs.docker.com/desktop/install/mac-install/
해당 링크에 접속하여 InteliJ와 DockerDesktop을 설치해주세요.
다운로드 버튼을 클릭하여 설치 프로그램을 다운로드합니다.
맥의 경우, 드래그하여 설치 프로그램을 내 Mac으로 옮깁니다.
윈도우는 그냥 설치된 파일을 실행하면 된다.
그러면 이렇게 팝업 창이 뜰 것이다. Continue -> Don't send 순으로 클릭한다.
그 후 계속 next를 눌러줍니다.
마지막으로 설치가 완료되었다고 뜨면 finish를 눌러 종료합니다.
Docker 또한 자신의 운영체제 환경에 따라 클릭하여 다운받아주세요.
계정이 없다면 회원가입을 해야 하는데, 회원가입을 하는 방법은
도커허브 공식사이트에 들어가서 (https://www.docker.com/products/docker-hub/)
Docker window : https://docs.docker.com/desktop/install/windows-install/
Docker Mac : https://docs.docker.com/desktop/install/mac-install/
설치 리소스를 다운받다보면, 이런 페이지가 뜨게 됩니다. 이 페이지에서는 모두 체크표시해줍니다.. 설치가 완료되면 close를 눌러 설치를 완료합니다.
운영체제 버전을 바꿔 다운로드해주고, 드래그하여 앱을 이동시켜줍니다.
이후 설치 파일을 실행하여 똑같이 진행하면 설치가 완료됩니다. 1회 실행 해야 합니다
JDK 17 다운로드
https://www.oracle.com/java/technologies/downloads/#java11
위 사이트에서 jdk 17을 다운로드 할 수 있습니다.
Next -> Next..... -> Close 하여 설치합니다.
윈도우는 맥과는 다르게 환경변수를 직접 등록해주어야 합니다.
-
환경 변수 편집 탭에서 아래와 같이 설정해줍니다. 좌측 상단의 새로 만들기 버튼을 클릭한 후 %JAVA_HOME%\bin 을 입력해줍니다. 우측 중단의 위로 이동 버튼으로 가장 위로 옮겨줍니다. 우측 하단의 확인 버튼으로 저장해줍니다.
환경변수가 설정되었습니다.
맥은 다음 명령어를 터미널에 하나씩 입력하면 된다.
brew install openjdk@17
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
여러분의 제품/서비스를 Microsoft 애저 클라우드에 배포하기 위한 절차를 구체적으로 나열해 주세요.
https://github.com/hackersground-kr/hg-byebye-team.git 링크를 복사합니다.
clone 받기 전, https://git-scm.com/ 에서 Git을 다운로드하고 설치합니다.
설치 프로그램을 다운 받아 실행 -> Next를 연달아 6번 클릭 -> Git from the command line~ 클릭 -> Next를 8번 클릭 -> install 합니다.
- 아래 명령어를 터미널에 입력하여 Homebrew 설치를 시작합니다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- password 문구가 나오면 mac 비밀번호를 입력하고 설치를 완료합니다.
- 아래 명령어를 입력하여 Git 설치를 시작합니다.
brew install git
- 설치가 완료되면 아래 명령어를 터미널에 입력하여 정상적으로 설치되었는지 확인합니다.
git --version
- 정상적으로 설치 되었다면 터미널을 종료합니다.
터미널(또는 명령 프롬프트)을 열고, 프로젝트를 저장할 폴더로 이동합니다. 예를 들어, 바탕화면에 클론하고 싶다면 다음과 같이 입력합니다
cd ~/Desktop <- Mac
cd %{유저 폴더명}%\Desktop <- Windows
리포지토리를 클론합니다.
git clone https://github.com/hackersground-kr/hg-byebye-team.git
처음 시작 시, “Open” 또는 “Import Project”를 선택합니다.
클론한 프로젝트 폴더(Desktop/hg-byebye-team)를 선택하고 “OK”를 클릭합니다. 경고창이 나타날 시, Trust Project를 선택합니다.
IntelliJ가 프로젝트 설정을 자동으로 인식하고 설정을 완료합니다.
프로젝트가 실행되면 File -> Project Structure를 클릭하여 들어갑니다. (윈도우도 동일합니다)
SDK -> Add SDK -> Download JDK로 들어갑니다.
다운로드가 완료되었다면 Apply 후 OK를 클릭합니다.
인텔리제이를 재실행해 주세요. JDK가 정상적으로 설치 된 것을 확인하실 수 있습니다.
그리고 왼쪽 하단의 >_ 모양의 아이콘인 터미널을 클릭하여 실행 시킨 뒤, 콘솔에 다음 명령어를 차례대로 입력해주세요.
git checkout backend
chmod +x gradlew
Docker Desktop을 실행시킵니다.
https://github.com/ 해당 링크를 통해 깃허브에 접속한 뒤에 로그인 합니다.
Profile 오른쪽의 프로필 사진을 클릭하여 프로필 메뉴에 접근합니다. Your Repositories를 클릭하여 본인의 리포지토리 목록을 확인합니다. 오른쪽 상단의 초록색 new 버튼을 클릭하여 리포지토리를 생성합니다. 이름을 chapter-two로 설정합니다. 이후 쭉 내려가서 Create Repository를 클릭하여 리포지토리를 생성합니다. InteliJ로 돌아와 터미널에서 다음 명령어를 순서대로 입력합니다.
이후 방금 전 생성했던 리포지토리로 이동하여 commit & push가 제대로 진행 된 것을 확인합니다. 이런식으로 떠있다면 성공이다.
InteliJ의 터미널에서 해당 명령어를 입력합니다. MAC의 경우
brew install azd
window의 경우
winget install microsoft.azd
설치 후
azd login
을 입력하여 microsoft 계정을 이용해 로그인을 진행합니다. 로그인이 성공하면 로그인 페이지를 닫고 터미널로 돌아옵니다. 실패 하더라도 계속 시도하시면 됩니다.
이후, 해당 명령어를 입력합니다.
azd init -e byebye-team
이후 SUCCESS라는 문구가 보이면 넘어갑니다.
Use code in the current directory 를 키보드 위 아래 방향키로 선택한 후 엔터를 입력합니다.
마찬가지로 Confirm and continue initializing my app을 같은 방법으로 선택해줍니다.
SUCCESS: Your app is ready for the cloud! 문구를 확인하면 성공하셨습니다.
다음으로는 깃허브의 Git Actions를 이용한 CI/CD 구축을 진행하겠습니다.
inteliJ의 터미널에서
azd pipeline config
를 입력하여 파이프라인 구축을 진행합니다.
설정 마지막에 Would you like to commit and push your local changes to start the configured CI pipeline? 라는 질문이 나오면 n를 선택하고 종료합니다.
다시 깃허브로 복귀하여 리포지토리 화면에 도착합니다.
위쪽에 settings를 클릭하고, 왼쪽 아래의 Secrets & Variables를 클릭한 다음 바로 밑에 있는 actions를 클릭하세요.
오른쪽에 초록색 버튼의 New Repository Secret을 클릭한 뒤에, Name과 Secret 칸에 각각 해당 키워드를 입력해주세요.
NAME Secret
APPLICATION_YAML {YAML파일 전체}
DOCKER_PASSWORD {도커 password}
DOCKER_USERNAME {도커 이름}
아래는 APPLICATION_YAML의 예시입니다.
spring:
application:
jwt:
secretKey: 25432A462D4A614E645267556A586E3272357538782F413F4428472B4B625065
expiration: 43200000
refreshExpiration: 604800000 # 7일
name: chapter2
datasource:
url: jdbc:mysql://{DATABASE_URL}/chapter2
username: {DATABASE_USER}
password: {DATABASE_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
hibernate:
ddl-auto: update
show-sql: true
도커 비밀번호와 이름은 회원가입을 할 때 작성했던 비밀번호와 이름을 작성해주시면 됩니다. 모두 수행하면 이렇게 됩니다.
위와 같이 입력하신 후, InteliJ로 돌아와 터미널에
git add .
git commit -m "Add GitHub Actions workflow for Azure deployment"
git push origin backend
를 입력하여 커밋을 진행합니다. GitHub 리포지토리의 Actions 탭에서 Azure Dev 워크플로우가 돌아가는 것을 확인합니다.
만약 Everything up-to-date 라는 명령어가 나타났다면, 깃허브의 Repository로 복귀하여 리포지토리 이름 밑의 Actions를 클릭하여 Deploy to Azure Container App을 클릭합니다.
이후 88 workflow runs라고 적혀있는 배포 목록에서 가장 위에 있는 목록을 클릭합니다.
오른쪽 위에 있는 Rerun All job을 클릭하여 배포를 재실행합니다.
GitHub Actions 워크플로우가 성공적으로 끝나면 로그 화면에서 "여기"와 같은 링크를 볼 수 있습니다. 이를 클릭해서 정상적으로 작동하는지 확인합니다.
성공적으로 작동한다면 배포가 모두 완료되었습니다!😁