참고 : jaystevency.tistory.com/19

 

[SpringBoot] #1 IntelliJ 에서 spring boot 시작하기

Spring Boot Project 개발 환경 Dev OS : Mac Sierra 10.12.3 IDE : IntelliJ IDEA 2016.2.4 Build #IU-162.2032.8, built on September 9, 2016 java : jdk 1.8 본 게시글은 박재성님의 spring-boot, JPA 질문/..

jaystevency.tistory.com

무작정 해보는 스프링 부트..ㅎ

 

스터디를 시작하고 나서 무작정 나만의 서버를 만들어보자! 하고 시작하게 되었습니다.

 

그럼 레츠 고오오

 

옛날에는 이클립스를 많이 썻었는데 IntelliJ 인터페이스가 너무 깔끔해서 IntelliJ로 갈아탔다.

 

학생 버전은 무료니깐~ 

 

각설하고

 

인텔리제이에서 한 번 손쉽게 Spring Boot 프로젝트를 만들어보자.

 

IntelliJ IDEA 2019.3.1
Java 8

더보기

면접 볼 때 Java 8 버전이 이전 버전들과 어떤 차이가 있냐고 물어봤었던 적이 있다.

 그래서 그 기억에 한 번 찾아봤다.

 

  • Lambda Expression 추가
  • Streams 인터페이스 추가
  • Default Method 추가

여기서 내가 아는건 Lambda Expression이 추가 되었다는 것..?

Lambda Expression은 함수를 생성하지 않고 함수를 쓸 수 있게 해주는 것이다.

 

Streams 인터페이스의 경우는 무엇인가 하니 리스트의 반복 연산을 stream().filter()를 활용하여 코드의 동작을 한눈에 볼 수 있게 해주는 것.

 

Default Method는 interface에서 사용되는 건데, 기존에는 interface에 method를 선언할 때 method만 선언할 수 있지 이에 대한 기능은 선언할 수 없었다. 하지만 이 기능이 생기면서 interface에서 선언한 method에도 기능을 추가할 수 있게 되었다는 것.

 

Default method를 만든 이유는 '하위 호환성' 때문이라고 한다.

 

1. 프로젝트 생성하기

Spring Initializr 선택 후 Next~

 

ArtifactID : 보통 Name(프로젝트 ID)와 동일하게 설정

Type : Maven Project

Java Version : 8 (11로 하니깐 IntelliJ 업데이트 하라더라 싫어서 안한다. 그리고 Java 11은 유료잖아. 8 먼저 써보자 ㅋㅋ)

더보기

Maven Project?

메이븐 프로젝트 구조와 내용을 기술하는 선언적 접근방식의 오픈소스 빌드 툴 입니다. 컴파일과 동시에 빌드를 수행할 수 있으며 테스트를 병행하거나 서버측 디플로이 자원을 관리할 수 있는 환경을 제공합니다.

라는데...응?

즉, 요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다운받아줍니다.

이걸 보니 이해가 된다.

실제로 프로젝트를 만든 후에 dependencies 정보를 확인해보면 프로젝트를 생성할 당시 체크했던 항목들이 들이pom.xml에 들어와 있는 것을 알 수 있다.

 

추가 정보

+ Type : Maven - 프로젝트 빌드 및 의존성 관리에 Maven 을 사용합니다. Gradle을 선택할 수도 있습니다.

+ Packaging: Jar - 패키징을 Jar로 하도록 설정합니다. War로도 설정할 수 있습니다.
+ Java Version: 8 - 자바는 1.8을 사용합니다.
+ Language: Javav - 언어는 Java를 사용합니다. Kotlin을 선택할 수도 있습니다.
+ Group com.tistory.offbyone - 자신에게 맞는 값을 넣으면 됩니다. 보통 도메인을 사용합니다.
+ Artifact: spring-boot-test - Mave 아티팩트명인데, 이것이 프로젝트명이 됩니다.
+ Version: 0.0.1-SNAPSHOT - 프로젝트의 버전입니다.
+ Description: Demo project for Spring Boot - 프로젝트 설명입니다.
+ Package : com.tistory.offbyone.springboot - 초기 소스들이 만들어질 기본 패키지명 입니다.

 

dependencies를 추가해주고 next

더보기

Developer Tools

이놈은 상당히 유용한 놈이라고 한다.

Chrome의 LiveReload와 같이 사용할 경우 프로젝트 파일을 저장하면 무조건 새로 컴파일해서 서버를 다시 껐다 킬 필요가 없다고 한다. 개꿀이 아닌가 꼭 설치하자 ㅋㅋ

 

Spring Web

RESTful, Spring MVC를 활용하여 web을 만들어 준다고 한다.

일단 가장 기본적인거 같으니 이놈을 한 번 써보자

 

Template Engine- Mustache

템플릿 엔진이란 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어이다.

많은 코드를 줄일 수 있고(HTML에 비해 간단하다.), 재사용성이 높고(똑같은 디자인 페이지에 보이는 데이터만 바뀌는 경우가 굉장히 많다), 유지보수가 용이하다.

 

느낌은 알겠는데 직접 사용해봐야 할 듯 하다.

 

더보기

Spring MVC?

 

Model, View, Controller를 분리한 디자인 패턴의 일종이다.

 

다른 블로그 포스팅을 살짝 봤는데... 뭔가 한 번에 이해하기는 어렵다. 이건 따로 공부해서 포스팅 해봐야할 듯 하다.

이렇게 하면 프로젝트 완성!


2. index.html 파일 만들어서 띄워보기

resouce-static에 index.html 파일을 만들어보자

시작은 무조건 Hello World~

localhost:8080

출력 완료


3. DevTools + LiveReload 적용하기

이놈을 이용하면 서버를 다시 재시작 하지 않고도 프로젝트에서 변경된 정보를 저장만으로 반영시킬 수 있다.

 

1. Ctrl + Shift + A : compiler 입력

 

2. Build project automatically 클릭 -> OK 클릭

 

3. Ctrl + Shift + A : registry 입력

 

4. compiler.automake.allow.when.app.running 체크 박스 클릭 -> Close 클릭

5. 크롬에서 LiveReload 확장 프로그램 검색해서 다운로드 해주면 끗

 

6. index.html 데이터를 바꿔보면 약간의 딜레이는 있지만 F5를 누르면 바뀌는 것을 확인할 수 있다.

+ Recent posts