[스프링 부트] 처음 시작하기
참고 : jaystevency.tistory.com/19
무작정 해보는 스프링 부트..ㅎ
스터디를 시작하고 나서 무작정 나만의 서버를 만들어보자! 하고 시작하게 되었습니다.
그럼 레츠 고오오
옛날에는 이클립스를 많이 썻었는데 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. 프로젝트 생성하기
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 - 초기 소스들이 만들어질 기본 패키지명 입니다. |
Developer Tools
이놈은 상당히 유용한 놈이라고 한다.
Chrome의 LiveReload와 같이 사용할 경우 프로젝트 파일을 저장하면 무조건 새로 컴파일해서 서버를 다시 껐다 킬 필요가 없다고 한다. 개꿀이 아닌가 꼭 설치하자 ㅋㅋ
Spring Web
RESTful, Spring MVC를 활용하여 web을 만들어 준다고 한다.
일단 가장 기본적인거 같으니 이놈을 한 번 써보자
Template Engine- Mustache
템플릿 엔진이란 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어이다.
많은 코드를 줄일 수 있고(HTML에 비해 간단하다.), 재사용성이 높고(똑같은 디자인 페이지에 보이는 데이터만 바뀌는 경우가 굉장히 많다), 유지보수가 용이하다.
느낌은 알겠는데 직접 사용해봐야 할 듯 하다.
Spring MVC?
Model, View, Controller를 분리한 디자인 패턴의 일종이다.
다른 블로그 포스팅을 살짝 봤는데... 뭔가 한 번에 이해하기는 어렵다. 이건 따로 공부해서 포스팅 해봐야할 듯 하다.
2. index.html 파일 만들어서 띄워보기
시작은 무조건 Hello World~
출력 완료
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를 누르면 바뀌는 것을 확인할 수 있다.