I T H

[Spring Boot] 1. 계획 수립 / Spring Boot 시작하기 (Week 1) 본문

Spring Basic

[Spring Boot] 1. 계획 수립 / Spring Boot 시작하기 (Week 1)

thdev 2024. 1. 24. 09:57

신규 프로젝트로 스터디용 홈페이지를 만들 계획으로

Spring Boot를 이용하여 구현할 예정이다. 

 

[ 요약 ] 

- 이클립스 IDE (STS) 사용 

- Gradle 프로젝트를 통한 라이브러리 버전 관리 

- Spring Boot

- JSP / JQuery / Javascript / Ajax 사용

- 오라클 데이터베이스 사용 

 

[ 프로젝트 주제 선정 및 계획 사항 ]

- 첨부파일을 포함한 게시판용 웹 사이트 제작 

- 1개의 게시글 입력 시 다수개의 첨부 파일을 업로드 가능 

- 무료 JS 기반 Editor 라이브러리를 가져와서 사용

- 커뮤니티 게시판 

 

[ 구성 예정사항 ]

- 관리자용 로그인 

- 메인페이지 : 업데이트 소식 등을 노출 

- 관리자페이지 : 공지사항 등의 게시글을 등록 및 관리 / 로그인사용자 관리  

- 커뮤니티 게시판 : 동호회, 가입신청 등

 

[ Spring Boot ] 

자바의 웹 프레임워크로 기존 스프링(Spring) 프레임워크에 톰캣 서버를 내장하고 여러 편의 기능들을 추가된 프레임워크 

단독 실행이 가능한 어플리케이션을 생성
최소한의 초기 스프링 구성으로 가능한 한 빨리 시작하고 실행할 수 있도록 설계됨
웹 컨테이너를 내장하고 있어서 별도의 웹 컨테이너 설정이 필요 없음
XML 설정의 간소화

 

[ 생성하기 ]

https://start.spring.io/

Spring Initializr 를 통한 초기 프로젝트 구성을 설정하고 프로젝트를 생성

크게 Gradle / Maven 형태로 생성이 가능하며, 현재는 Gradle을 많이 사용하는 것으로 알고 있음. 

GENERATE CTRL + Enter 를 클릭하면

압축파일이 다운로드됨 

해당 파일을 압축 해제하여 특정 폴더에 위치 후 

이클립스 또는 사용 IDE를 통해 프로젝트 import 

 

 

Gradle 프로젝트 import

 

 

Next 클릭

 

 

필요 라이브러리가 모두 다운로드 완료된 이후 

생성된 프로젝트 폴더 구성 확인

 

웹 시스템 사용을 위한

Dependency 추가 

build.gradle 파일 수정 > dependencies 아래 2 항목 추가

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
수정 후 프로젝트 우클릭 > gradle 리프레쉬를 통해 세팅 정보 반영 

 

TEST 화면을 띄워보기 위해 

메인 컨트롤러 1개 생성 및 index 페이지 구축 

 

 

 

[ MainController.java ]

package com.info.fastboard.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class MainController {
	@GetMapping("/")
	public String main() {
		return "index.html";
	}
}

 

index.html 파일을 만들기 전 

static 폴더를 하나 생성하고

 

 

해당 폴더 아래에 index.html 파일을 하나 생성.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>FAST BOARD</title>
</head>
<body>
테스트용 인덱스 페이지입니다.
</body>
</html>

최종 폴더 구성은 아래와 같음