스프링 부트 백엔드 개발 강좌, 깃과 깃허브

안녕하세요! 이번 강좌에서는 스프링 부트 개발을 시작하면서 깃(Git)과 깃허브(GitHub)를 어떻게 활용할 수 있는지에 대해 살펴보겠습니다. 소스 코드 관리와 버전 관리의 중요성을 이해하고, 실제로 프로젝트에 적용하는 방법을 배워봅시다.

1. 스프링 부트란?

스프링 부트(Spring Boot)는 자바 기반의 웹 애플리케이션 개발 프레임워크인 스프링(Sprig)의 하위 프로젝트로, 웹 애플리케이션을 더 빠르고 쉽게 개발할 수 있도록 도와줍니다. 주요 특징으로는 다음과 같은 것들이 있습니다.

  • 자동 설정: 스프링 부트는 개발자가 설정 파일을 정의하지 않아도 필요한 설정을 자동으로 해줍니다.
  • 스프링 생태계 통합: 스프링 부트는 스프링의 다양한 프로젝트(스프링 MVC, 스프링 데이터 등)와 쉽게 통합되어 사용할 수 있습니다.
  • 독립 실행형: 서버에 배포할 때 별도의 웹 서버 없이 독립 실행 가능한 JAR 파일 형식으로 배포할 수 있습니다.

2. 깃(Git)과 깃허브(GitHub)란?

2.1 깃(Git)

깃(Git)은 분산 버전 관리 시스템으로, 코드의 변경 이력을 기록하고 여러 개발자가 동시에 작업할 수 있도록 도와줍니다. 깃은 특히 다음과 같은 장점이 있습니다:

  • 빠른 성능: 로컬에서 모든 연산을 수행하기 때문에 소프트웨어의 성능이 매끄럽습니다.
  • 작은 크기: 저장소의 크기가 작아져 여러 버전의 코드를 효과적으로 관리할 수 있습니다.
  • 분산: 각 개발자의 로컬 저장소가 독립적으로 관리되므로 중앙 서버에 의존하지 않습니다.

2.2 깃허브(GitHub)

깃허브(GitHub)는 깃을 사용하여 소스 코드를 관리하고 공개하거나 협업할 수 있게 도와주는 플랫폼입니다. 주요 기능으로는:

  • 코드 호스팅: 프로젝트 코드를 클라우드에 저장하고 관리할 수 있습니다.
  • 이슈 추적: 버그나 개선 사항을 추적하고 관리하는 데 유용한 도구를 제공합니다.
  • 협업: 여러 개발자가 동시에 같은 프로젝트에서 작업할 수 있는 기능을 제공합니다.

3. 환경 설정

3.1 자바 설치

스프링 부트를 사용하려면 자바 개발 키트(JDK)를 설치해야 합니다. Oracle의 공식 웹사이트나 OpenJDK를 통해 설치할 수 있습니다.

sudo apt update
sudo apt install openjdk-11-jdk
java -version

3.2 스프링 부트 CLI 설치

스프링 부트 CLI(Command Line Interface)를 사용하면 손쉽게 스프링 부트 애플리케이션을 생성할 수 있습니다. 설치 방법은 다음과 같습니다.

brew tap spring-io/tap
brew install springboot

3.3 깃 설치

깃이 아직 설치되어 있지 않다면 다음 명령어로 설치할 수 있습니다.

sudo apt install git

3.4 깃허브 계정 만들기

깃허브에 가입하여 계정을 생성하세요. GitHub 공식 웹사이트로 이동하여 가입하면 됩니다.

4. 간단한 스프링 부트 애플리케이션 만들기

이제 스프링 부트 애플리케이션을 만들어보겠습니다. 다음 명령어를 사용하여 새로운 프로젝트를 생성합니다.

spring init --dependencies=web my-spring-boot-app

프로젝트가 생성된 후에 해당 디렉토리로 이동합니다.

cd my-spring-boot-app

4.1 간단한 REST API 만들기

스프링 부트 애플리케이션에서 REST API를 사용하여 데이터를 제공하는 간단한 예제를 작성해봅시다. `src/main/java/com/example/myapp/MyController.java` 파일을 생성하고 다음과 같은 코드를 작성합니다.

package com.example.myapp;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

이제 애플리케이션을 실행해 보겠습니다. 다음 명령어로 애플리케이션을 실행할 수 있습니다.

./mvnw spring-boot:run

실행한 후 웹 브라우저에서 http://localhost:8080/hello에 접속하여 결과를 확인하면 “Hello, Spring Boot!”라는 메시지를 볼 수 있습니다.

5. 깃과 깃허브를 활용한 버전 관리

5.1 깃 초기화

이제 프로젝트에 깃을 초기화해보겠습니다. 프로젝트 폴더로 이동한 후 다음 명령어를 입력합니다.

git init

이 명령어를 실행하면 해당 디렉토리에 .git 디렉토리가 생성되어 깃 리포지토리가 초기화됩니다.

5.2 파일 추가 및 커밋

파일을 추가하고 커밋해봅시다. 모든 파일을 스테이징 영역에 추가하려면 다음 명령어를 사용합니다.

git add .

그 다음 커밋을 진행합니다.

git commit -m "초기 커밋: 스프링 부트 애플리케이션 생성"

5.3 깃허브에 리포지토리 생성

깃허브로 가서 새로운 리포지토리를 생성합니다. 새 리포지토리를 생성한 후, 리모트 리포지토리를 추가합니다.

git remote add origin https://github.com/username/my-spring-boot-app.git

5.4 리모트 리포지토리에 푸시

이제 프로젝트를 깃허브에 푸시해보겠습니다. 다음 명령어로 푸시합니다.

git push -u origin master

이제 깃허브에서 프로젝트 코드를 확인할 수 있습니다.

6. 팀 협업을 위한 깃 허브 활용

프로젝트가 커지면 여러 팀원과 협업을 하게 되는데, 이때 깃허브의 다양한 협업 기능을 활용할 수 있습니다. 머지 요청(Pull Request), 코드 리뷰, 이슈 관리 등 다양한 기능이 있습니다.

6.1 이슈 관리

버그나 요청 사항을 관리하기 위해 이슈를 생성합니다. 이슈를 통해 팀원 간에 의견을 공유하고 작업을 할당할 수 있습니다.

6.2 코드 리뷰

코드를 푸시한 후, 팀원에게 리뷰를 요청할 수 있습니다. 리뷰를 통해 코드 품질을 높이고, 다양한 피드백을 받을 수 있습니다.

6.3 머지 요청(Pull Request)

새로운 기능을 개발한 후, 해당 기능을 메인 브랜치에 통합하기 위해 풀 리퀘스트를 사용합니다. 이 옵션은 다른 팀원들이 변경 사항을 검토하고 승인할 수 있도록 합니다.

7. 마무리

이번 강좌에서는 스프링 부트를 사용하여 간단한 백엔드 애플리케이션을 만들고, 깃과 깃허브를 활용하여 소스 코드 관리 및 협업 방법을 살펴보았습니다. 이 과정을 통해 여러분은 스프링 부트와 깃에 대한 기본 이해를 가질 수 있기를 바랍니다.

더 발전하기 위해 추가적인 자료를 찾아보고 다양한 프로젝트에 적용해보세요. 다음 강좌에서는 스프링 부트의 JSON 처리, 설정 관리 등을 더욱 심화해서 다루도록 하겠습니다.

참고 자료