이번 내용은 생성된 프로젝트에 웹 프로젝트를 실행하기 위해 필요한 dependency를 추가하고, 필요한 코딩을 작성하는 과정을 다룬다.
0. 프로젝트 구조
이전 시간에 구현한 프로젝트이며, 아래 이미지처럼 구성되어 있다.
여기서 각 파일이 어떤 역할을 하며 어떤 내용을 입력하는지 알아두는 것이 좋다.
- DemoApplication.java
추후 이름을 바꿀 예정이지만, 서버 실행 시 가장 먼저 실행되는 클래스이다. - application.properties
웹에 필요한 환경 설정 정보를 입력하는 파일이다.key=value
형식으로 작성하며, 포트 번호, 접두어(prefix), DB 설정 등 다양한 서버 정보를 포함할 수 있다. - build.gradle
필요한 라이브러리 의존성(dependency)을 입력하는 곳이다. 꼭 dependency만 입력하지 않아도 되고, gradle 관련 설정도 가능하다. - .gitignore
Git(버전 관리 프로그램)을 사용할 경우, 여기에 등록된 확장자는 Git에 포함되지 않고 제외된다. - java.com.spring.basic.first
Java 관련 코드 (Controller, Configuration, VO 등)를 작성하는 패키지이다. - test.java.com.spring.basic.first
테스트 코드를 작성하는 공간으로, 이후 테스트 관련 내용을 다룰 예정이다. - 보통 java, resources, webapp 디렉터리는 같은 레벨에 구성되며,
webapp
은 View를 작성하는 디렉터리이다.
1. 기본 Dependency 설정
웹 서버를 실행하기 위한 Dependency를 build.gradle
에 추가한다.
compile("org.springframework.boot:spring-boot-starter-web:2.3.1.RELEASE")
위의 dependency를 추가하면 Spring의 내장 Tomcat 서버 및 @SpringBootApplication 어노테이션이 활성화된다.
@SpringBootApplication
은 다음 세 가지를 묶은 것이다:
@Configuration
@EnableAutoConfiguration
@ComponentScan
2. 서버 포트 설정
application.properties
에 포트 번호를 입력한다.
server.port=8080
입력 시 서버는 포트 번호 8080을 기준으로 실행된다.
3. 서버 실행 테스트
VS Code의 터미널을 열어 다음 명령어를 실행한다:
./gradlew bootRun
만약 gradlew 명령어를 인식하지 못하면 Gradle이 설치되어 있어야 한다.
정상적으로 실행되면 서버가 구동되고, 브라우저에서 localhost:8080
으로 접속할 수 있다.
하지만 다음과 같이 에러 페이지가 표시될 수 있다:
에러가 뜨는 이유는 localhost:8080
경로에 매핑된 동작(Controller)이 없기 때문이다.
즉, 아무것도 없는 주소에 접근하니 아무것도 없는 빈 화면이 나온 것이다.
이 경우에도 서버 자체는 정상적으로 동작하고 있으므로 안심해도 된다.
4. 기본 주소 Controller 생성
다음과 같이 com.spring.basic.first.controller.MainController.java
클래스를 생성한다.
(JSP 파일도 함께 생성해두면 좋다: webapp/WEB-INF/main.jsp
)
@Controller
public class MainController {
@RequestMapping("/")
public String home() {
return "main"; // WEB-INF/main.jsp 를 의미
}
}
그리고 JSP 파일도 작성한다:
webapp/WEB-INF/main.jsp
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Main</title>
</head>
<body>
<h1>Spring Boot JSP View</h1>
</body>
</html>
5. JSP View 인식을 위한 Dependency 추가
전부 다 작성을 했으니 이제 다시 실행을 시키면 처음과 같이 분명 에러 페이지가 뜰 것이다.
그 이유는 다음과 같다:
- 현재 Spring Boot 서버는 실행되었고,
- application.properties 및 컨트롤러, JSP 파일 등도 모두 작성된 상태지만,
- JSP View 접근에 관한 설정이 누락되어 있어 JSP 파일을 찾지 못한다.
따라서 아래 dependency를 추가해줘야 한다:
compile("org.apache.tomcat.embed:tomcat-embed-jasper:9.0.36")
이 dependency는 View 단에서 JSP 파일(main.jsp 등)을 인식하고 렌더링할 수 있도록 도와준다.
다시 서버를 실행한 후 localhost:8080
에 접속하면 JSP가 정상 출력되는 것을 확인할 수 있다.
마무리
오늘은 서버를 실행시키고 JSP View를 출력하는 법까지 구성해보았다.
다음 시간에는 DB에 연결하는 방법을 알아볼 예정이다.
✍️ 개인적인 생각
개발을 하면서 다른 사람들의 프로젝트 구현 방식이나 구조를 많이 보아왔다.
하지만 정작 dependency가 무슨 역할을 하는지, 왜 실행이 되는지 제대로 이해하지 못한 채 넘어가는 경우가 많았다.
개발을 할 때 "실행이 되는 것"도 중요하지만,
시간이 있거나 여유가 있다면 왜 실행이 되는지를 이해하고 넘어가는 것이 더 중요하다고 생각한다.
'BackEnd > Spring Boot' 카테고리의 다른 글
HikariCP란? (0) | 2023.04.15 |
---|---|
JDBC란? (0) | 2023.04.15 |
Spring Boot 서버 구축[1] (0) | 2023.04.15 |
Spring Boot란? (0) | 2023.04.15 |
Override VS Overload (0) | 2023.04.15 |