프로그래밍/Spring

스프링 부트로 게시판 만들기1 - 프로젝트 생성

abfc 2016. 10. 16.
반응형

스프링 부트는 2014년부터 개발된 스프링의 하위 프로젝트 중 하나입니다. 단독으로 실행이 가능하고(stand-alone), 제품 수준의(production-grade) 스프링 기반 어플리케이션을 제작하는 것을 목표로 진행된 프로젝트입니다. 스프링부트의 주요 기능들은


- 단독 실행이 가능한 수준의 스프링 어플리케이션 제작이 가능

- 내장된 Tomcat, Jetty, UnderTow 등의 서버를 이용해서 별도의 서버를 설치하지 않고 실행이 가능

- 최대한 자동화된 설정을 제공

- XML 설정 없이 단순한 설정 방식을 제공


이러한 특징들을 요약하면 스프링 부트는 '단독으로 빠르게 개발 가능한 스프링 프로젝트' 제작용입니다.


 처음 스프링 프레임워크를 사용했을 때 많은 XML파일을 설정해가며 개발을 하던 게 어노테이션으로 간편해졌고, Java Config를 사용하며 더더욱 단순해졌는데 이것마저 단순화해줄 수 있는 프로젝트가 스프링 부트(Spring Boot)라고 하네요. 스프링 부트는 스프링의 여러 기술들(Data, Batch, Integration, Web, JDBC, Security)을 사용자가 쉽게 사용할 수 있게 해주는 역할을 합니다.

 포트폴리오를 위해 스프링 프레임워크를 사용하여 몇 개의 웹사이트를 제작했었는데..... 왜 그동안 몰랐는지....(눈물) 그런데 문제는 분명 이전보다 간단하고 편리하긴 한데 스프링부트에 대해 아무것도 모르다보니 어렵기는 마찬가지네요; 당연하겠지만 이전 방식에 비해 자료도 부족하고 나는 영어도 못하고....(오열). 그래도 새로운 기술에 도전하고 삽질(?)하는게 개발자의 묘미가 아닐까 생각하며 아예 그냥 블로그를 만들어보자! 마음을 먹었습니다. 중간에 포스팅이 멈추는 일이 없길 바라며....



 저의 최종 목적은 Rest방식으로 구현된 스프링부트 프로젝트를 AWS로 배포하여 저의 개인 포트폴리오를 등록할 수 있는 사이트 제작입니다.

 그러기 위해서 구현해야할 기능은 일단 1차로는 글쓰기, 수정, 삭제, 보기, 리스트/ 로그인입니다.

이후로 더 나아가 2차로 소셜api도 사용해보고, 파일도 입출력해보고 등등 다 구현을 해야겠지만 일단 저도 공부하는 입장이기때문에 위의 기능정도만(1차) 구현을 하고 다른 기능은 추후에 구현해보도록 하겠습니다. 


Window7 환경에서 Eclipse Mars2를 사용하여서 프로젝트를 생성할거고요. DB는 MyBatis를 사용해서 MySQL과 연동을 시킬거예요. View는 JSP를 사용합니다. 또, XML이 아닌 gradle을 사용할거기 때문에 gradle설치를 해주셔야됩니다.



스프링 부트를 이용한 프로젝트 생성

STS를 이용하면 기본적으로 스프링 부트 프로젝트 생성을 지원하기 때문에 이클립스에서 STS를 설치한 후에 진행해주세요.

참고 : 이클립스에 스프링 플러그인 설치하기



1. File - New - Spring Starter Project선택




2. 프로젝트 이름은 board/Type은 Gradle(STS)/Packaging는 War/Package는 com.board로 지정한 후 Next

*gradle이 설치되어 있지 않으면 Type에 Gradle(STS)가 없습니다. xml을 사용하실 분들은 xml을 선택하셔도 돼요.




3. 프로젝트 생성 시 사용할 라이브러리를 선택하면 프로젝트를 생성하며 자동으로 다운로드 받기 때문에 상당히 편리합니다. 또한, 라이브러리는 추후에 추가할 수도 있으니 일단 web만 선택하고 프로젝트를 생성합니다. Finish

(제가 사용하려고한 MySQL도 체크박스 항목으로 존재하지만 MySQL은 DataSource에 대한 설정이 필요하기 때문에 최초로 생성할 때는 하지 않는 것이 좋다고하니 선택하지 않고 넘어가겠습니다.)




*추후에 추가할 라이브러리는 생성된 프로젝트에서 src - build.gradle의 아래쪽을 보시면 dependencies부분에 라이브러리를 작성해주어 추가해주면 됩니다.




생성된 프로젝트 실행하기

프로젝트의 구조를 보면 생성 시 지정한 패키지(com.board)에 '프로젝트명+Application'파일과 War를 선택했을 때 생성되는 ServletInitializer파일이 생성되어 있습니다. 


Application 파일에 작성되어 있는 코드를 보면 main() 메서드가 작성되어 있죠? 스프링 부트는 별도의 서버 설정 없이 main() 메서드를 실행하는 것 만으로도 내장된 Tomcat 서버를 이용해서 프로젝트가 실행됩니다.(감탄)



BoardApplication 혹은 프로젝트를 선택하고 우클릭 - Run As - Spring Boot App를 선택해서 프로젝트를 실행해볼까요?



콘솔창을 보면 스프링 부트의 로고와 Tomcat이 실행되는 것을 확인할 수 있습니다.



http://localhost:8080 을 호출하면 다음과 같은 화면이 출력됩니다.





Controller 작성

@RestController를 이용해서 데이터를 처리하는 컨트롤러를 작성해볼게요. 그냥 테스트로 작성하는 것이기 때문에 게시판 만드는것과는 관련이 없으며 테스트만 하고 삭제할거예요^^;


1.src/main/java 아래에 com.board.controller 패키지를 생성하고, TestController.java 클래스를 생성합니다.

TestController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.board.controller;
 
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class TestController {
 
    @RequestMapping("/test")
    public String test(){
        return "Hello World";
    }
}
 
cs



TestController를 작성한 후에 프로젝트 구조를 보면 자동으로 스프링의 빈으로 처리되있는 것을 확인할 수 있습니다.



작성한 컨트롤러가 잘 작동하는지 확인하기 위해서 프로젝트를 실행하고 http://localhost:8080/test 를 호출해볼게요.



잘 나오나요? 혹시 프로젝트 실행 시 콘솔창에 에러가 나는 분들은 이미 실행되어 있는 상태에서 또 실행을 해서 에러가 난걸수도 있으니 정지시키고 다시 실행을 해주세요.






**

데이터베이스 설정까지 하려고 했는데 너무 길어지는 것 같아서 다음 포스팅에서 이어가도록 하겠습니다. (github도 사용해볼겸 소스코드를 올리려고 했는데 지금까지는 너무 별거 없어서; 조금더 내용이 추가가 되면 올려보도록 하겠습니다^^;)




관련글 : 스프링 부트로 게시판 만들기2 - MyBatis, MySQL 연동



반응형

댓글

💲 추천 글