Application Modernization/DevOps

Git, gradle, Spring Boot 개발 환경 구성 ... 2/2

Cloud Applicaiton Architect 2021. 9. 23. 09:58
반응형

SPring Boot 프로젝트 구성 및 Git 레파지토리 구성은 아래의 링크를 참조할 것

 

Git, gradle, Spring Boot 개발 환경 구성 ... 1/2

이 글은 2019년 네이버 블로그에 포스팅 했던 내용을 리 포스팅 했습니다. 개요 최근 IT Infra 환경이 Cloud 환경으로 점차 변화되면서 응용 프로그램 역시 Cloud에 최적화된 아키텍처를 요구하고 있다

sharplee7.tistory.com

 

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

www.jetbrains.com  

 

JetBrains: Essential tools for software developers and teams

JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.

www.jetbrains.com

 

 

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가 소스 디렉토리에 등록되어 있는 것을 확인 할 수 있다.

 

이번 포스팅은 여기까지

 

끝~

 

 

반응형