본문 바로가기

컴퓨터/Spring Boot

STS (Spring Boot) 게시판 CRUD_1. 프로젝트 생성과 소스 트리 연동

인턴생활을 하며 실무에서 사용되는 프로그램인 Spring Boot의 사용법과 MVC 패턴의 로직을 익혔다.

이번에는 직접 STS 프로젝트를 생성하여 소스트리를 이용해 형상 관리 하는 과정을 정리해보려고 한다.

 

*이 방법은 github에 먼저 repository를 생성하였을 때 소스트리와 연동하는 방법이다. 즉, clone을 사용하였는데 보통 이미 만들어진 프로젝트 개발에 참여할 경우 git clone을 사용하기 때문에 직접 프로젝트 생성 시에는 git init을 사용하는 것이 편리하다. (밑에 추가하였다.)

 

우선, github 계정에서 repository를 생성한다.

github 레퍼지토리 생성 예시

 

이때, 파일을(README.md) 꼭 생성해주어야 한다. repository에 아무것도 들어가있지 않으면

이후 소스트리에 프로젝트를 연동할 때 소스트리가 자동으로 종료되던가 오류가 뜨기 때문.

 

repository를 생성하였으면  프로젝트를 git과 연동할 폴더를 생성한다. 

나는 로컬 디스크에 github라는 폴더를 만들고 그 안에 myProject 폴더를 하나 더 생성하였다. 

 

폴더 생성 예시

 

이제 소스트리를 이용하여, github의 원격 저장소와 내 로컬 저장소를 연결해줄건데,

우선, New tab -> Remote -> 계정 추가 를  누른 후 호스팅 서비스를 GitHub으로 바꿔준다.

그리고 검색란에서 github에서 생성한 repository명을 입력한 후 clone 버튼을 누른다.

 

그럼 다음과 같이 이동하는데 저장할 경로를 설정한 뒤에 [클론] 버튼을 누르면 성공이다.

소스트리 Clone 화면 예시

이제 Spring Boot를 이용하여 프로젝트를 생성해줄 차례다.

순서는 다음과 같다.

 

1) [File] -> [New] -> [Project] 에서 spring Starter Project 클릭 후 [Next]

 

2) 저장 경로 선택

 - workspace를 미리 설정해 놓았을 경우 그곳으로 경로를 지정해준다. 

 - 다른 workspace에 저장할 경우 [Use default location] 버튼을 누른 후 경로를 지정한다. (초기 설정 해제)

 - Type에서는  빌드 도구를 선택하는 부분인데 여기서는 Maven을 사용했다.

 - 패키징 도구와 언어 설정 그리고 각 이름 설정을 마친 후 [Next]를 누른다.

 

* Ant와 Gradle과 Maven의 차이
Maven과 Gradle은 빌드 도구로 '빌드'란 소스코드 파일들을 컴퓨터에서 실행할 수 있도록 소프트웨어로 변환하는 과정을 말하며, 컴파일, 테스팅 배포를 포함한다. 빌드도구는 이러한 과정을 자동으로 수행해주는 도구를 뜻한다.
- Ant : 자바 계열 프로젝트에서 사용하는 도구로 간단하지만 복잡한 처리의 경우 관리하기가 어렵다. 
- Maven : Ant의 문제를 해결하기 위해 등장한 도구, 빌드 생명주기와 POM(프로젝트 객체 모델)이라는 새로운 개념을 도입하였다. POM을 이용하여 라이브러리의 의존 관계를 자동으로 관리하는 것이 가능하다. 
- Gradle : Groovy를 기반 언어로 하며, 유연성이 높다. 안드로이드 앱을 만들 때 필요한 도구로 Maven보다 속도               가 빠르다.
* War과 Jar의 차이
  모두 jar을 이용하여 생성된 압축파일로 어플리케이션의 쉬운 배포와 동작을 위해 관련 파일들을 패키징 하는 역할을 한다.
  - War (Web Application Archive) : 웹 어플리케이션 압축 파일 포맷으로, Servlet Context와 관련된 파일들로 패키징되어있다. 웹 관련 자원을 포함하며, 웹 어플리케이션의 배포와 테스트를 쉽게 해준다. Jar과 달리 정의된 구조를 사용해야하며, War파일의 실행을 위해 Tomcat 등의 WEB 또는 WAS가 필요하다.
  - Jar (Java Archive) : 자바 프로젝트를 압축한 파일로 원하는 구조로 구성이 가능하며, JRE만으로도 실행이 가능하다.

 

 

프로젝트 초기 설정 예시

 

3) Dependencies 설정

 - 스프링부트의 의존성을 설정하는 부분으로 차후 특정 기능을 사용하는데 필요한 라이브러리의 묶음이라고 생각하면 된다.

 - 나는 Spring Boot DevTools, MyBatis Framework, MySQL Driver, Sping Web 이렇게 4개의 의존성을 세팅하였다.

 - [Finish] 버튼을 누르면 완료!  

 

의존성 설정 예시

 

프로젝트 생성이 완료되면, 프로젝트가 저장된 곳으로 가서 모든 소스를 복사한 뒤,

위에서 만들어 놓은 myProject 폴더에 붙여넣기 해준다. (소스트리와의 연동을 위해)

 

※ 이때, 순서가 꼬여서 깃헙 경로로 설정한 폴더에 파일이 생기거나 스프링부트에서 프로젝트 생성 시 사용하는 경로에 git파일이 생긴다면 전자의 경우 소스트리 clone이 후자의 경우 선택한 경로에 프로젝트 생성이 불가하니 반드시 순서를 지켜야 한다. (바로 위에서 다른 방법을 추천한다고 했던 이유이다..ㅠ)

파일 붙여넣기 예시

 

그리고 다시 Spring Boot에서 초기 생성했던 프로젝트를 삭제한 뒤,

프로젝트 소스를 복사했던 경로로 가서 그곳의 프로젝트를 다시 import 해준다.

 

이렇게 하면 이제 프로젝트를 진행하면서 소스트리와 git을 통해 버전 관리가 가능하다.

 

소스트리 연동 예시

 


위 방법은 앞서 설명했듯이 github에 repository를 먼저 설정하였을 경우, 프로젝트와 소스트리를 연동하는 방법이다.

이렇게하면 불필요한 과정이 많고 복잡하기 때문에

프로젝트를 먼저 생성한 뒤, 이를 git과 연동한 후 소스트리에 연결하는 방법을 권한다.

 

방법은 다음과 같다. (사진 생략^^)

우선 위에서와 같이 Spring Boot에서 프로젝트를 하나 생성한다. (workspace를 지정한 뒤 폴더를 만들어 그곳에 저장한다.)

그런다음 Git Bash를 열어 git init을 입력하면 저장소를 초기화(생성)하게 된다.

저장소를 초기화한 후 소스트리에서 [New tab] -> [Add] 로 이동하여 저장소 경로를 입력하고 프로젝트 이름을 만든 뒤 [Add]를 눌러 추가하면 소스트리를 이용하여 프로젝트를 Git으로 관리할 수 있게 된다.

 

 

 

 

 

 

 

 

 

728x90