SPring Boot 프로젝트 구성 및 Git 레파지토리 구성은 아래의 링크를 참조할 것
Git Tag 추가
지난번 포스팅에서 온라인 https://start.spring.io/ 를 이용해 SpringInitializr 라는 Spring Boot Web 어플리케이션을 gradle 기반으로 생성해 이를 로컬 PC에 다운로드 받았었다. 여기에 git init 명령어를 통해 로컬 PC의 SpringInitializr 디렉토리에 Git 레파지토리(Repository)를 생성시켰다. 이렇게 생성된 로컬 Git 레파지토리는 다시 원격의 Git Hub에 자신의 Git 레파지토리(Repository)와 동기화 시켰다.
이번 포스팅과 이전 포스팅의 구분을 위해 이전 포스팅까지 작업한 내용에 대해 'Tag'를 추가 하도록 하겠다.
커맨드 콘솔을 열어 Workspace의 SpringInitializr 디렉토리로 이동 후 아래와 같이 Tag 명령어를 입력해 이번 포스팅과 이전 포스팅에 대한 구분을 하도록 한다.
git tag -a v1.0.0 -m"The Origin Spring Boot Application"
이렇게 git tag를 입력하면 현재의 commit 상태에 tag가 추가 된다. 추가된 tag의 상태를 git log 명령어를 통해 확인할 수 있다.
git log
My second file upload에 tag: v1.0.0이 추가 된 것을 볼 수 있다.
보다 자세한 tag 메시지를 보려면 git show [tag annotation] 을 입력하면 됩니다. 우리는 tag annotation으로 v1.0.0을 입력 했으므로
git show [tag annotation]
git show v1.0.0을 입력한다. 우리가 메시지로 입력한 "The Origin Spring Boot Application"메시지를 볼 수 있다.
콘솔의 커서가 : 상태에서 깜박거릴텐데 CTRL 키와 X를 동시에 클릭해 콘솔로 빠져나온다.
Tag의 의미와 사용법은 아래에 다루도록 하겠다.
IntelliJ 설치
우리가 테스트하고 있는 SpringInitializr 어플리케이션은 JetBrains사의 IntelliJ를 이용해 개발하도록 하겠다. IntelliJ가 설치되어있지 않은 분은 아래의 링크를 클릭해 'Community' 에디션의 IntelliJ를 설치하도록 한다.
Download IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains
IntelliJ에서 프로젝트 편집
커맨드 콘솔을 오픈해 SpringInitializr 프로젝트의 Root 디렉토리로 이동한다.
> cd C:\java-msa\workspace\SpringInitializr
다음 IntelliJ를 실행 시키도록 한다.(IntelliJ 실행화일 위치가 윈도우 Path에 잡혀 있어야 한다.)
C:\java-msa\workspace\SpringInitializr>idea64 .
idea64는 64비트 Intellij를 실행시키겠다는 의미이며 . 는 현재의 디렉토리에서 실행하겠다는 의미이다.
IntelliJ가 실행되면 실행된 디렉토리의 구조를 분석해 build.gradle 파일이 있으면 자동으로 dependency를 추가하며 기타 필요한 조치들을 자동으로 한다.
IntelliJ에서 자동으로 구성된 프로젝트 : gradle을 분석해 자동으로 dependency를 추가했다.
SampleController 작성
SpringInitializr로 작성된 프로그램은 Main프로그램과 Dependency가 추가되어 실제 실행 가능한 Spring Boot 어플리케이션 입니다. 하지만 실제 Controller 클래스가 없어 웹 브라우저로는 호출 불가능하다. 웹 브라우저에서 호출을 하기 위해 SampleController를 작성해 보도록 하겠다.
/src/main/java/ 아래 com.example.SpringInitializr 패키지 아래 SampleController 파일을 작성해 보도록 하겠다.
프로젝트창에서 파일을 생성하고 싶은 위치를 클릭 한 후 'New' > 'Java Class' 를 선택한다.
클래스 명으로 SampleController를 선택합니다.
그리고 Class 파일의 내용은 다음과 같이 입력한다.
SampleController.java | ||
package com.example.SpringInitializr; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class SampleController { @RequestMapping("/") public String index() { return "Greetings from Spring Boot!"; } } |
IntelliJ에서 Spring Boot 실행
IntelliJ는 Terminal 기반으로 응용프로그램 실행을 지원합니다. 우리는 Gradle을 이용해 SpringInitializr 응용 프로그램을 작성했으므로 이를 gradle에서 실행해 보도록 하겠습니다. IntelliJ의 Terminal 창을 클릭합니다.
IntelliJ 터미널 열기
gradle의 bootRun task를 실행시킨다.
C:\java-msa\workspace\SpringInitializr>gradlew bootRun |
gradlew bootRun 실행 화면
Spring Boot가 정상적으로 기동되었다면 웹 브라우저를 열어 http://localhost:8080/ 을 호출해 보도록 하자.
웹 브라우저를 통해 localhost:8080을 호출
현재까지 따라한 작업에 에러가 없었다면 "Greetings from Spring Boot!" 라는 메시지를 볼 수 있다.
이제 커맨드 프롬프트(Command Prompt)에서 git status 명령어를 통해 현재의 git 상태를 체크한다.
> git status
WorkTree에 있는 SampleController.java 파일이 Git 레파지토리(Repository)에 그 정보가 입력되어 있지 않다고 표시되고 있다.
git add 명령어와 git commit 을 통해 WorkTree 파일 상태와 Git 레파지토리(Repository)를 동기화하자.
> git add .
> git commit -m "커밋 메시지"
현재까지 상태에 tag 를 달도록 하자. commit에 tag를 달면 각 버전 별로 옮겨다니기 편해진다.
git tag -a [tag annotation: 보통 버전정보 표시] -m"[메시지]"
모든 작업이 완료 되었으면 git log와 git show [tag annotation] 을 통해 로컬 PC의 Git 레파지토리(Repository) 상태를 확인 해 보자.
최초 커밋, tag v1.0.0 그리고 tag v1.0.1이 잘 표시됨
git show v1.0.1 을 통해 tag된 레파지토리(Repository) 정보 확인
여기까지 완료되었으면 로컬 PC의 모든 작업은 완료되었다.
이제 로컬 PC의 레파지토리(Repository)와 원격 레파지토리(Repository)를 동기화 시키도록 하자.
원격 Github에 만든 자신의 레파지토리(Repository)를 이리저리 탐색해 보자.
SampleController.java 등은 아직 상태가 업데이트되어 있지 않은 것을 알 수 있다.
e.g: https://github.com/sharplee7/Spring-Initializr-Demo
git push origin master
git push는 원격 레파지토리에 로컬 레파지토리 정보를 업로드 한다는 의미이고 origin은 내가 만든 원격 Git 레파지토리 명이다. master는 로컬 레파지토리의 브랜치(Branch)명 이다.
이제 원격 Git 레파지토리를 확인해 보도록 하자.
SampleController.java가 소스 디렉토리에 등록되어 있는 것을 확인 할 수 있다.
이번 포스팅은 여기까지
끝~
'Application Modernization > DevOps' 카테고리의 다른 글
Github대신 AWS의 CodeCommit을 사용해 보자 - SSH 인증 방식 (0) | 2022.04.12 |
---|---|
GitHub, Code Build 그리고 CodePipeline를 이용한 간단한 배포 실습 (0) | 2022.03.21 |
Git, gradle, Spring Boot 개발 환경 구성 ... 1/2 (0) | 2021.09.17 |
Gradle proxy 설정 (0) | 2021.06.28 |
Gradle init type 알아보기 (0) | 2021.06.28 |