당니의 개발자 스토리

프로젝트 생성 본문

스프링/스프링 입문

프로젝트 생성

clainy 2024. 4. 3. 12:34

프로젝트 생성

요즘에는 스프링 부트를 가지고 스프링 프로젝트를 만든다.

start.spring.io 라는 사이트는 스프링 부트를 기반으로, 어떤 스프링과 관련된 프로젝트를 만들어주는, 스프링에서 운영하고 있는 사이트다.

Project에서 Maven이랑 Gradle 라는 게 뭐냐면, 필요한 라이브러리를 땡겨서 오고 그 다음에 얘가 빌드하는 라이프 사이클까지 다 관리해주는 툴이다.

즉, Gradle, Maven 는 필요한 라이브러리를 다운로드 받고, 빌드 시켜주는 빌드 자동화 툴이다.

과거에는 Maven을 많이 썼다. 그런데 요즘엔 Gradle을 거의 다 쓴다.

아직 레거시 프로젝트나 과거 프로젝트는 Maven으로 남아있는게 많은데, 요즘 추세는 Gradle로 넘어오는 추세다.


레거시 프로젝트

오래된 기술이나 아키텍처를 사용하여 개발되었거나, 현재의 개발 표준이나 기술적 요구사항을 충족시키지 못하는 소프트웨어 프로젝트를 의미한다.


Group에다가는 기업 도메인 명을 적어주는데, 일단 hello라고 하겠다.

Artifact는 build에 나올 때 어떤 결과물이라고 보면 된다. hello-spring으로 하자. 즉, Artifact프로젝트명같은 거다.

Description, Package name은 그대로 유지하겠다.

 


이제 Dependencies가 중요한데, 내가 지금 스프링 부트를 기반으로 프로젝트를 시작할 건데, 어떤 라이브러리를 땡겨서 쓸거냐 는 거다.

우린 우선 웹 프로젝트를 만들거다. 그래서 Spring web을 추가하고,

그 다음, html을 만들어주는 템플릿 엔진이라는 게 필요하다.

우린 thymeleaf 라는 걸 쓰겠다.

build.gradle을 인텔리제이에서 프로젝트로 열어보면,

이렇게 뜨는데, .idea인텔리제이가 사용하는 설정파일이고, gradle의 wrapper는 gradle과 관련돼서 gradle을 쓰는 폴더라고 보면 된다.

기본적으로 main, test 폴더가 나눠져있다.

test 밑에는 테스트 코드들과 관련된 소스들이 여기 들어간다.

요즘 개발 트렌드에서는 테스트 코드가 정말 중요하다는 얘기다.

resources는 java 코드 파일을 제외한 어떤 xml이나 properties 같은 설정 파일, html 이런 것들이 들어가 있다.

그냥 java 파일을 제외한 나머지는 다 resources 라고 보면 된다.


build.gradle 이게 중요하다.

옛날에는 직접 쳤어야 했는데, 이젠 스프링 부트가 이런 설정파일까지 제공을 해준다.

지금은 '아 gradle이 버전을 설정하고 필요한 라이브러리까지 땡겨오는 구나' 정도만 이해하면 된다.

이것처럼 테스트 라이브러리가 자동으로 들어가있는데, JUnit5 라는 라이브러리가 기본적으로 들어간다.

그럼 이 dependencies에 나와있는 라이브러리들을 어디선가 다운로드 받아야 하는데,

그게 Maven Central 이라는 공개된 사이트가 있다. 그래서 이 사이트에서 다운로드 받아라. 라고 설정을 간편하게 해놓은거다. 필요하면 특정 사이트의 URL을 넣을 수도 있다.

 

그 다음에 .gitignore를 보면,

소스 코드 관리해주는 건데, Git에는 정말 필요한 소스코드 파일만 올라가고 나머지 빌드된 결과물이라던가, 이런 게 올라가면 안된다.

그래서 이런걸 기본적으로 Start.SpringIO에서 이걸 다 해준다.

이게 뭔지는 뒤에 Gradle로 빌드하는 거에서 보여주겠다. gradle은 라이브러리들을 다운로드 받고 버전을 설정해주는 빌드 자동화 툴이라고 했다.

그 다음 settings.gradle은 나중에 gradle을 배우면 알게 되는데, 지금은 크게 중요하지 않아서 넘어가겠다.

 

이제 바로 돌려보겠다. main 들어가서, main 메서드로부터 모든 프로젝트가 실행하므로, 메인 메서드 옆에 화살표를 눌러서 RUN 하면

뭔진 모르겠지만, Tomcat, http라는 걸로 8080 포트가 뭔가 뜬 거다.

이제 웹 브라우저를 열어서

들어가면,

이 에러페이지가 뜨면 성공한 거다.

이제 Terminate(빨간 네모) 버튼을 누르고 다시 새로 고침하면 사이트에 연결할 수 없다고 뜬다.

여기까지 하면 프로젝트 환경 설정에 성공한 거다.


SpringApplication.run 해서 클래스를 넣어주면,

@SpringBootApplication 이라는 어노테이션을 보고, 스프링 부트의 애플리케이션이 띄워지면서 밑에 톰캣이라는 웹 서버를 내장하고 있다. 그래서 그 톰캣이라는 웹 서버를 자체적으로 띄우면서, 스프링 부트가 같이 올라온다.

 

번외이긴 하지만, 인텔리제이를 쓰면 build가 java를 직접 실행하는 게 아니라 Gradle을 통해서 실행하게 되는데, 이건 Preferences에 들어가서,

이렇게 둘다 인텔리제이로 설정하면 된다. 이렇게 해야 덜 느리다.

 

그 다음 시간에는 어떤 라이브러리들이 사용되는지 알아보겠다.

'스프링 > 스프링 입문' 카테고리의 다른 글

빌드하고 실행하기  (0) 2024.04.09
View 환경설정  (0) 2024.04.04
라이브러리 살펴보기  (0) 2024.04.04
스프링 공부  (0) 2024.04.02