스프링을 이용해 서버 프로젝트를 만들어 보기 위해 새롭게 공부를 시작했다.
1. 프로젝트 생성
스프링 부트 스타터 사이트의 도움을 받아 스프링 프로젝트를 생성한다

Project: Gradle Project Spring Boot: 2.3.x Language: Java Packaging: Jar
Java: 11 Project Metadata
groupId: hello
artifactId: hello-spring Dependencies: Spring Web, Thymeleaf
보는 것과 같이 프로젝트의 라이브러리 관리 툴인 gradle, maven을 선택할 수 있고 스프링 버전을 설정해줄 수 있다
그룹명과 프로젝트 명을 기재한 후 GENERATE 버튼을 누르면 폴더에 저장된다.
맥을 쓰고있기 때문에 root/study 라는 폴더를 생성해서 그 밑에 jar 파일을 압축 해제 시켜주었다
인텔리제이로 들어가 폴더를 open 해주면 기본적인 틀을 갖춘 프로젝트가 생성된다.

빌드를 Gradle로 하게 되면 시간이 오래 걸릴 수 있으므로 preferences에서 IntelliJ로 바꿔준다!
2. Gradle 확인
Gradle은 그루비를 이용한 빌드 자동화 시스템이다. Groovy와 유사한 도메인 언어를 채용하였으며, 현재 안드로이드 앱을 만드는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템이기도 하다. Java, C/C++, 파이썬 등과 같은 여러 가지 언어를 지원한다. 출처 위키백과
그렇다고 한다.
쉽게 말하면 디펜던시가 걸려있는 라이브러리들을 다 끌어 모아주는 기능을 하는 툴이다.

간단하게 Spring의 Web 라이브러리와 Thymleaf 라이브러리를 임포트 해왔다.
Thymleaf 라는 라이브러리는 서버사이드 자바 템플릿 엔진으로, 웹과 웹이 아닌 환경 양쪽에서 text, HTML, XML, Javascript 등을 생성할 수 있는 기능을 한다.
이는 MVC 모델의 View 기능을 제공해 주는 것이라고 볼 수 있는데, 컨트롤러가 전달하는 데이터를 이용해 동적으로 화면을 구성할 수 있게 해준다.
3. 화면 구성
Spring starter를 이용하면 기본적으로 tomcat 서버가 딸려 나온다고 한다 (자세한 내용은 모름)
빌드를 시키면 8080 포트번호로 서버가 켜지고, 정적 페이지가 불려나온다

정적 페이지는 src/resources/static 폴더 아래 index.html 파일로 구성이 가능하다.
spring-boot-features.html#boot-features-spring-mvc-static-content
스프링 도큐먼트에 따르면
Spring Boot supports both static and templated welcome pages. It first looks for an index.html file in the configured static content locations. If one is not found, it then looks for an index template. If either is found, it is automatically used as the welcome page of the application.
라고 하는데, index.html 파일을 가장 먼저 찾는다는 소리이다.
Thymleaf를 이용하면 동적 페이지를 구성할 수 있다.

먼저 main/java/project-name 아래에 controller 라는 패키지를 생성한 후, 컨트롤러 클래스를 생성한다
내부 코드는 아직 자바 문법도 잘 모르고 해서 걍 넘기겠다,,ㅎ
어쨌든 GetMapping("hello") 로 넘기면 html 파일에서 key 값 (attrivuteName:"data")을 이용해 class 내부의 value값 (attributeValue:"spring") 을 가져와서 페이지에 넘긴다는 그런 구조이다~~~~~~~~~

그리고 그 View인 템플릿은 Thymleaf가 제공해 주는 것이다~~~!!!!
4. 빌드
인텔리제이 상단바를 이용해서 빌드를 할 수도 있겠지만? 터미널로 하는 것이 덕목이다

빌드는 이런느낌이다.
./gradlew build
cd build/libs
java -jar [tab]
빌드 끝 서버 세팅 완료
빌드 파일을 지우고 싶다면
./gradlew clean build
오늘은 여기까지 공부했고, 자세한 내용을 공부하려면 한참 멀었다
공부하자마자 정리하는 습관을 들여야겠다
앗자앗자
'CSE > Spring' 카테고리의 다른 글
| Spring이 제공하는 싱글톤 컨테이너 (0) | 2021.03.01 |
|---|---|
| IoC, DI, 컨테이너 (0) | 2021.02.24 |
| AppConfig - 애플리케이션 동작 방식을 Configuration ! (0) | 2021.02.22 |
| 기본적인 자바 문법 + IntelliJ 단축키 @계속 추가 예정 (0) | 2021.02.20 |
| 객체 지향 프로그래밍 - Why spring? (0) | 2021.02.17 |