[Spring]개발환경설정

2024. 1. 9. 11:43· 공부/Spring
목차
  1. 지원 계획 참조
  2. Spring 개발 환경 참조
  3. 첫번째 방법
  4. 두번째 방법
  5. Http Client의 용도
  6. 살펴보기
  7. View Template 추가
  8. Web Controller 추가
  9. 실행
  10. 접속
  11. Spring boot devtools
  12. Lombok
반응형

Untitled.png

개발 환경 개요

Untitled.png

지원 계획 참조

  • Java 버전 별 지원 계획 - https://www.oracle.com/java/technologies/java-se-support-roadmap.html
  • Spring 버전 별 지원 계획 - https://spring.io/projects/spring-framework/#support
  • https://spring.io/projects/spring-boot/#support

Spring 개발 환경 참조

https://spring.io/tools/

Spring Tool Suite 4

https://spring.io/tools/

  • 다운 받아 더블 클릭을 하여 적절한 위치에 압축을 푼다.

Untitled.png

  • 압축 푼 폴더에 들어가서 SpringToolSuite4.exe 실행 하면 Spring 을 사용하는 Eclipse가 켜진다.
  • Help > Eclipse Marketplace

Untitled.png

  • 검색어로 Thymeleaf 입력 후 Thymeleaf plugin 설치
    • 설치 중간에 약관 동의 해야 함
    Untitled.png
  • 플러그인 설치 후 STS 재시작

새 프로젝트를 만드는 법

첫번째 방법

  • File > New > Spring Starter Project

Untitled.png

  • Packaging을 Jar로 하면 실행 가능한 Jar 파일로 패키징된다. → Tomcat 포함
  • Packaging을 War로 하면 War파일로 패키징 되고, 배포 시 용량이 적고, 프로젝트 내용만 있고 Spring, Tomcat등 버전을 맞춰줘야함.

두번째 방법

https://start.spring.io/

Untitled.png

  • 적절히 설정 후 GENERATE
  • 초기 파일을 다운 받아 import 하여 사용한다.

Http Client

Http Client의 용도

  • Web page를 제공하지 않는 RESTful 서버나 axios 등의 요청을 처리하는 경우 Request를 서버로 날려줄 Client 앱이 있으면 편하다.
  • 포스트맨, 인섬니아 등이 있다.

포스트맨 : https://www.postman.com/

인섬니아: https://insomnia.rest/

→ 즉, 백엔드에서의 GET요청을 제외한 POST, PUT, PATCH 등을 테스트로 임의의 요청에 의해 응답을 받아 볼 수 있다.

프로젝트 생성

  • File > New > Spring Starter Project

Untitled.png

  • 설정 후 Next

Untitled.png

  • Template Engine 에서 Thymeleaf 체크
  • Web 카테고리에서 Spring Web 체크

살펴보기

Untitled.png

View Template 추가

  • /src/main/resources
    • templates 폴더에 index.html 파일 추가
    Untitled.png
  • New > File

Untitled.png

-index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Hello!!!!</h1>
</body>
</html>

Web Controller 추가

  • 만들어진 패키지에서 우클릭 > New > Class
  • Name : WebController

Untitled.pngUntitled.png

-WebController.java

package com.example.hello; // 사용자 패키지 이름

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class WebController {

@GetMapping("/")
public String index() {
return "index";
}

}

실행

  • src/main/java 내의 “패키지Application.java” 우클릭 선택 후 Run as > Spring Boot App

Untitled.png

  • 에티터 하단 화면 콘솔 확인
    • Port 번호(프로토콜) 확인
    • Started 패키지Application 메시지 확인

Untitled.png

Tomcat initialized with port “8080” 이 부분이 포트 번호이다.

  • 이떄 실행 시 오류가 나면 포트번호가 겹쳐서 생기는 오류 일수도 있으니 포트번호를 변경해보자.

접속

  • http://localhost:포트번호
  • 접속 시 index.html 가 표시된다.

Untitled.png

유용한 라이브러리

Spring boot devtools

  • 소스코드의 수정 사항을 서버 리부팅 없이 적용해준다.
  • WebController.java에 해당 내용을 추가하여본다.
@GetMapping("/hello")
	@ResponseBody
	public String hello() {
		return "Hello";
	}
  • ResponseBody 클래스 import 필요하다. import org.springframework.web.bind.annotation.ResponseBody;
  • 서버가 켜진 상태에서 저장 후 http://localhost:포트번호/hello 를 웹 브라우저에서 열어봅니다.

Untitled.png

  • Spring boot devtools가 없으면 소스코드를 수정해도 서버를 리부팅 하지 않으면 수정 내용이 반영되지 않는다.
  • 패키지의 build.gradle 에 다음 코드를 추가한 다음 해당 파일 우클릭 Gradle > Refresh Gradle Project
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Refresh가 적용된 후 서버에 devtools가 추가될 것이다.

Lombok

  • Annotation(어노테이션)을 이용해 Getter/Setter 및 Constructor를 자동으로 만들어주는 도구
  • 데이터용 클래스에서 작업량을 줄여주고 코드 가독성을 높여준다

Untitled.png

  • Lombok 플러그인을 먼저 설치해줘야한다.
  • https://projectlombok.org/download

Untitled.png

  • 다운로드 받은 폴더에서 cmd나 쉘을 켜고 “java -jar lombok.jar” 명령어를 친다.

Untitled.png

  • 자동으로 경로를 잡아주지만 만약 경로가 잘못되는 경우나 찾지 못한 경우 “Specify location” 버튼을 클릭하고 STS 실행파일을 지정해주고 “Install” 버튼 클릭 한다.
  • STS를 리부팅 후 Help > About 메뉴 클릭 후 Lombok이 설치된 지 확인한다.

Untitled.png

정상적으로 설치된 경우

  • 패키지의 build.gradle 에 다음 코드를 추가한 다음 해당 파일 우클릭 Gradle > Refresh Gradle Project
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
  • 소스코드를 컴파일할 때 Getter/Setter/Constructor 를 지정된 클래스에 생성해 준다.
  • @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 생성하는 어노테이션
import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor // 모든 파라미터를 받을 때 사용
@Getter

public class users {
	private final int userId;
	private final String userName;
	
}
  • AllArgsConstructor를 사용하고 @Setter 어노테이션을 없애고, 필드에 final를 명명하면 한번 설정되고 값이 중간에 변경되지 않도록 하여 데이터의 일관성을 요하는 DB 작업등과 같이 작업할 때 사용 가능하다.
반응형
  1. 지원 계획 참조
  2. Spring 개발 환경 참조
  3. 첫번째 방법
  4. 두번째 방법
  5. Http Client의 용도
  6. 살펴보기
  7. View Template 추가
  8. Web Controller 추가
  9. 실행
  10. 접속
  11. Spring boot devtools
  12. Lombok
'공부/Spring' 카테고리의 다른 글
  • [Spring]JPA 사용해보기
  • [Spring]WAS(Web Application Server)
  • [Spring]Spring Framework 소개
  • [Spring] Controller
Future0_
Future0_
rm -rf /
Future0_
Luna Developer Blog
Future0_
전체
오늘
어제
  • 분류 전체보기 (112)
    • 프로그래밍 (4)
      • 알고리즘 (4)
    • 보안 (14)
      • Dreamhack (4)
      • Hackthebox (1)
      • Webhacking (9)
    • 프로젝트 (4)
    • 공부 (80)
      • Database (2)
      • Python (11)
      • System (4)
      • Java (13)
      • JSP (13)
      • Spring (11)
      • Kotlin (16)
      • 자료구조 (10)
      • 기계학습 (0)
    • Docker (4)
    • Github (2)
    • Tip (1)
    • 잡담 (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • spring
  • Database
  • android studio 삭제
  • api 통신
  • Computer science
  • native app
  • Java
  • ViewModel
  • docker
  • 자바빈즈
  • 디버깅키해시
  • 코틀린기본문법
  • Python
  • webhacking
  • 알고리즘
  • Kotlin
  • SpringBoot
  • 보안
  • dreamhack
  • Android Studio
  • 자료구조
  • jsp
  • React
  • 키 해시
  • 프로그래밍
  • cs
  • 컴퓨터
  • 1.9.22
  • 상속
  • shared preference

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
Future0_
[Spring]개발환경설정
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.