src/main/java 디렉터리는 자바 파일을 저장하는 공간이다.
com.mysite.sbb 패키지
이 패키지는 SBB의 자바 파일을 저장하는 공간이다. HelloController.java와 같은 스프링 부트의 컨트롤러, 폼과 DTO, 데이터베이스 처리를 위한 엔티티, 서비스 등의 자바 파일이 이 곳에 위치한다.
컨트롤러는 URL 요청을 처리하고 폼은 사용자의 입력을 검증한다. DTO, 엔티티, 서비스 파일은 데이터베이스를 처리하기 위해 필요한 파일이다. 이와 관련된 자세한 내용은 모두 2장에서 다룰 예정이니 여기서는 이 정도만 알고 넘어가자.
SbbApplication.java 파일
모든 프로그램에는 프로그램의 시작을 담당하는 파일이 있다. 스프링 부트로 만든 프로그램(스프링 부트 애플리케이션)에도 시작을 담당하는 파일이 있는데 그 파일이 바로 프로젝트명 + Application.java 파일이다. 스프링 부트 프로젝트를 생성할 때 프로젝트명으로 'sbb'라는 이름을 입력하면 다음과 같이 SbbApplication.java 파일이 자동으로 생성된다.
package com.mysite.sbb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SbbApplication {
public static void main(String[] args) {
SpringApplication.run(SbbApplication.class, args);
}
}
SbbApplication 클래스에는 반드시 @SpringBootApplication 애너테이션이 적용되어 있어야 한다.
@SpringBootApplication 애너테이션을 통해 스프링 부트 애플리케이션을 시작할 수 있다
src/main/resources 디렉터리는 자바 파일을 제외한 HTML, CSS, 자바스크립트, 환경 파일 등을 저장하는 공간이다.
환경 파일이란 프로젝트의 설정 정보를 저장하는 파일이다.
점프 투 스프링부트HTML, CSS, 자바스크립트란?
웹 개발이 처음이라도 웹 개발의 필수 언어인 HTML, CSS, 자바스크립트라는 용어는 익숙할 것이다. 이를 간단히 소개하면 HTML은 웹 페이지의 기본 구조를 만들 수 있는 마크업 언어다. CSS는 웹 페이지에 옷을 입히는 스타일 시트 언어다. 그리고 자바스크립트는 웹 페이지의 상호 작용과 동작 등을 할 수 있게 만드는 프로그래밍 언어다.
templates 디렉터리
src/main/resources 디렉터리의 하위 디렉터리인 templates에는 템플릿 파일을 저장한다. 템플릿 파일은 자바 코드를 삽입할 수 있는 HTML 형식의 파일로, 스프링 부트에서 생성한 자바 객체를 HTML 형태로 출력할 수 있다. templates에는 SBB 게시판 서비스에 필요한 '질문 목록', '질문 상세' 등의 웹 페이지를 구성하는 HTML 파일을 저장한다.
SBB의 '질문 목록'을 만드는 내용은 2-07절에서 자세히 다룬다. 또한 '질문 상세'를 만드는 내용은 2-10절에서 자세히 다룬다.
static 디렉터리
static 디렉터리에는 sbb 프로젝트의 스타일시트(css 파일), 자바스크립트(js 파일) 그리고 이미지 파일(jpg 파일, png 파일 등) 등을 저장한다.
static 디렉터리는 2-13절의 '스태틱 디렉터리와 스타일시트 이해하기'에서 더 자세히 다룬다.
application.properties 파일
application.properties 파일은 sbb 프로젝트의 환경을 설정한다. sbb 프로젝트의 환경 변수, 데이터베이스 등의 설정을 이 파일에 저장한다.
src/test/java 디렉터리 살펴보기
src/test/java 디렉터리는 sbb 프로젝트에서 작성한 파일을 테스트하는 코드를 저장하는 공간이다. JUnit과 스프링 부트의 테스트 도구를 사용하여 서버를 실행하지 않은 상태에서 src/main/java 디렉터리에 작성한 코드를 테스트할 수 있다.
JUnit은 테스트 코드를 작성하고, 작성한 테스트 코드를 실행할 때 사용하는 자바의 테스트 프레임워크이다.
build.gradle 파일 살펴보기
build.gradle은 그레이들(Gradle)이 사용하는 환경 파일이다. 그레이들은 그루비(Groovy)를 기반으로 한 빌드 도구로 Ant, Maven과 같은 이전 세대의 단점을 보완하고 장점을 취합하여 만들었다. build.gradle 파일에는 프로젝트에 필요한 플러그인과 라이브러리를 설치하기 위한 내용을 작성한다.
- 그루비는 그레이들 빌드 스크립트를 작성하는 데 사용하는 스크립트 언어로, 문법이 간결하고 가독성이 높다.
- 빌드 도구는 소스 코드를 컴파일하고 필요한 라이브러리를 내려받을 때 사용한다. SBB 프로젝트를 완성하면 단 한 개의 jar 파일로 패키징하여 서버에 배포할 수 있는데 이때에도 역시 빌드 도구를 사용한다.
지금까지 설명한 것 외에 나머지 디렉터리와 파일은 프로젝트가 생성되면서 동시에 자동으로 생성되거나 크게 중요하지 않아 여기서는 설명을 생략한다.