[SpringBoot]스프링부트 프로젝트 시작하기
안녕하세요!
오늘은 SpringBoot를 이용한 게시판 만들기 프로젝트의 첫 포스팅을 시작해볼까 합니다.
개발에 사용될 예정인 기술은 아래와 같습니다.
- 개발에 사용할 기술
1) IDE(통합개발환경): InteliJ(인텔리제이)
2) 개발 환경: SpringBoot+Gradle+yml
3) DB통신: Spring Data JPA+MYSQL(workbench)
4) View 템플릿 언어: Thymeleaf
5) 로그인 관련 처리: Spring Security
이번 포스팅에서는 SpringBoot 프로젝트 시작하는 것부터 다뤄보도록 하겠습니다.
1. Spring vs SpringBoot 차이
프로젝트를 시작하기 전에 Spring을 하다보면 종종 보이는 두 녀석의 차이부터 알아보고 가겠습니다.
JAVA진영에서 보통 서버 프레임워크를 말하면 Spring을 말합니다. 하지만 Spring에 대해 알아보다보면 SpringBoot라는 녀석이 종종 보이고는 하죠.
Spring을 해보신 분은 아시겠지만 Spring에는 기본적으로 설정해줘야하는 내용들이 많습니다.
제대로 프로젝트를 하다보면 dispatcherServlet.xml, server.xml, 각종 confing파일들.. 등 수많은 설정들을 만져주고 컨트롤 해줘야 하는데 여간 귀찮은게 아닙니다...ㅠ
그래서 Spring쪽에서 각종 설정들을 직접 일일이 지정해주는 것이 귀찮은 사람들을 위해 기본적인 설정들을 알아서 해주는 프레임워크인 SpringBoot가 나타났습니다.
Spring에서는 기존에 직접 설정파일을 만들어 모두 지정해주던 것들을 SpringBoot에서는 기본적인 설정들은 적어주지 않아도 다 알아서 디폴트로 설정 해주는데다가 자신에게 필요한 설정들만 골라서 커스터마이징할 수 있는 아주 편리하게 바뀌었습니다.
때문에 최근에 저는 Java로 서버구축할 일이 있으면 스프링이 아닌 스프링 부트로 작업을 시작하고 있습니다.
(Spring하다가 부트로 작업하니 너무 편해서 스프링쪽으로는 손이 잘 안가게 되더라고요...ㅋㅋ)
물론 과거에 이미 만들어진 프로젝트들이나 정부기관 프로젝트 등에는 아직 Spring쪽을 선호하는 추세이긴 합니다.
참고해서 알아두시면 좋습니다ㅎㅎ
2. SpringBoot 시작하기
SpringBoot를 시작할 때 프로젝트 만드는 작업을 편리하게 진행할 수 있도록 Spring측에서 지원하고 있습니다.
위 사이트에 가시면 각종 정보를 입력하는 칸이 나오는데 저는 아래 사진과 같이 입력하였습니다.
설정들에 대해 설명드리겠습니다.
1) 왼쪽의 각종 설정들.
우선 Project는 gradle로 진행할 것이기 때문에 gradle을 골랐습니다.
그 외에 Language, ProjectMetaData 쪽은 알아서 잘 쓰실거라 생각하고 패스하겠습니다.
(Packaging은 JAR (Java Archive) WAR (Web Application Archive)의 줄임말인데 Jar로 하면 자바 애플리케이션 형식으로 배포가능하고 War는 웹 애플리케이션입니다. War로 하면 실행할 때 Tomcat(톰캣)등의 웹컨테이너가 필요해서 개인적으로 Jar로 하는것을 추천드립니다.)
2) Dependency
우측의 Dependencies항목에는 자신이 사용할 항목들을 골라주면 되는데요,
여기서 골라준 내용은 서론에서 말씀드렸던 사용할 기술들 목록에 있는것들을 그대로 골라줬습니다.
그 외에 Lombok은 개발 편의성을 위해 넣었습니다.
(Lombok은 왠만하면 꼭 추가하시는 것을 추천드립니다. Getter, Setter등 귀찮은 반복작업들이 생략 가능해집니다)
설정이 끝났으면 하단의 Generate버튼을 눌러서 다운을 받고 압축을 풀어줍니다.
3. 프로젝트 Import하기
압축을 풀었다면 InteliJ를 열고 Import Project를 눌러줍니다.
Import를 눌렀다면 파일 선택창이 나오는데
압축을 푼 폴더로 가서 build.gradle 파일을 찾아서 더블클릭해 줍니다.
이제 gradle파일을 읽으면서 우리가 앞에서 설정해줬던 각종 dependency들을 가져오기 시작할 겁니다.
여기서 시간이 좀 걸리실 텐데 좀 기다리시다보면 완료가 되실겁니다ㅎㅎ
4. 기본적인 설정하기
dependency를 다 가져왔다면 하단의 로딩바가 사라질텐데 먼저 Project 경로를 엽니다.
경로상에서 src/resources/application.properties 파일이 보이실텐데 이 파일이 프로젝트의 각종 중요한 설정들을 맡아줄 설정파일입니다.
이 설정파일을 초기 상태 그대로인 properties 파일 형식 그대로 써도 되는데 저는 yml형식으로 사용하겠습니다.
(개인적으로 yml이 더 직관적이고 사용하기 편하다고 생각합니다)
yml로 바꾸기 위해서는 application.properties파일을 [우클릭->refactor->rename] 을 클릭하고 뒤에 형식만 yml로 바꿔주시면 됩니다.
여기서 이번 포스팅은 간단한 설정만 해볼건데 아래와 같이 적습니다.
간단하게 서버 도메인과 포트만 적어준 것입니다.
(저는 토이프로젝트로 내 컴퓨터 안에서만 돌릴 것이기 때문에 localhost라고 적었습니다.)
*application.yml
server:
address: localhost
port: 8080
끝나셨다면 프로젝트내에 있는 build.gradle이라는 녀석을 눌러줍니다.
누르면 dependencies안에 다양한 녀석들이 추가되어있는 모습을 볼 수 있는데요,
얘네들이 다 아까 우리가 추가해줬던 dependency들입니다.
여기서 우리는 일단 이 프로젝트가 구동되는지를 알아보기 위해 mysql관련 dependency를 잠시 꺼줘보겠습니다.
(이걸 안끄고 구동시키면 db관련 설정하라고 에러가 뜹니다ㅜ)
먼저 mysql-connector라고 되어있는 녀석을 주석처리해 준 뒤 위 사진 순서대로 Refresh Gradle Dependencies를 해줍니다.
(gradle창은 우측에 보면 조그맣게 있으니 눌러주면 나올겁니다)
앞으로 gradle파일에 dependencies가 추가될 때마다 자주 누르게될 녀석이니 기억해 두시면 좋습니다.
*추가
사진에서는 깜빡하고 안넣었는데 spring-data-jpa라고 되어있는 녀석도 같이 주석처리 해주셔야 합니다.
5. 서버 돌려보기
이렇게 하고 우측의 플레이버튼을 누르면 서버가 돌아가게 됩니다.
서버가 돌아가게 되면 아래의 로그창에 많은 메시지가 뜨게 됩니다.
이 때 위 사진과 같이
Started BoardApplication in 2.525 seconds (JVM running for 3.429)
이런 메시지가 나오면 무사히 서버를 켜는데 성공한 것입니다.
(걸린 seconds는 컴퓨터 사양에 따라 다릅니다)
물론 이렇게 서버를 켰다고 해서 우리가 아직 할 수 있는 것은 없습니다.
아직 아무것도 안만들었으니까요....ㅋㅋ
그럼 다음 포스팅부터 좀 더 본격적으로 서버 작업을 다뤄보도록 하겠습니다!
잘 안되는 내용이나 모르는 내용이 있으시다면 댓글남겨주시면 저도 아직 미숙하지만 최대한 알아보고 답변드리겠습니다ㅎㅎ
감사합니다!
▶다음 글
[SpringBoot]2. View만들어보기-Controller와 View에 대하여(feat.게시판을 만들어보자!)
https://chung-develop.tistory.com/16
'Backend > 게시판만들기' 카테고리의 다른 글
[SpringBoot]SpringDataJPA를 활용하여 회원가입 예제- Controller,Service,Repository의 역할및 구현 (3) | 2020.08.10 |
---|---|
[SpringBoot]SpringDataJPA를 활용한 회원가입 예제- View제작하기 (0) | 2020.08.08 |
[SpringBoot] 개발용으로 가볍고 편리한 H2 데이터베이스 설치 및 SpringBoot에 연동하기 (0) | 2020.08.06 |
[SpringBoot]DB구축을 위한 MySQL 및 Workbench 설치&SpringBoot 연동 (0) | 2020.08.05 |
[SpringBoot]View만들어보기-Controller와 View에 대하여 (0) | 2020.08.02 |