Spring Boot : Spring Initializr로 프로젝트 생성하기
Spring Boot란
스프링 프레임워크의 복잡한 설정 과정을 간소화하고, 빠르게 애플리케이션을 개발할 수 있도록 도와주는 도구
최소한의 설정만으로도 바로 실행 가능한 독립형(Spring Boot가 자체적으로 내장 웹 서버를 포함하여 실행) 애플리케이션을 만들 수 있다.
Spring Boot를 위한 사전준비
Postman이란?
API의 설계부터 구현, 테스트, 그리고 문서화에 이르기까지 모든 과정을 한 곳에서 진행할 수 있게 지원하는 도구
spring initializr 이용한 Spring Boot 프로젝트 생성하기
Spring Initializr : https://start.spring.io/ 접속
spring initializr란?
자바 프로젝트의 빌드, 의존성관리 (Tomcat, Spring MVC 등이 자동으로 포함됨) , 배포를 자동화하는 도구
Dependencies - 의존성 추가하기
애플리케이션이 필요로 하는 외부 라이브러리 및 모듈을 관리
pom.xml 파일을 사용하여 의존성을 관리
Maven이 자동으로 해당 라이브러리를 다운로드하고 프로젝트에 포함시킨다.
ex- 웹 애플리케이션을 개발시 Spring Web을 추가
가장 기본적으로 많이 사용하는 라이브러리 4가지!
Spring Webrestful API, Lombok, MySQL Driver, Spring Data JDBC
중에서
- Spring Webrestful API
개발에 필요한 핵심기능을 제공해주는 좋은 클래스들이 있음
- @RestController, @RequestMapping 등의 어노테이션 제공
- ResponseEntity를 통한 응답 본문과 HTTP 상태 코드 제어
- @RequestBody, @ResponseBody를 이용한 데이터 변환
- Lombok - 반복적인 코드 작성을 줄여주는 라이브러리
- 생성자, getter, setter 등을 자동 생성
- @Data, @Builder 등의 유용한 어노테이션 제공
당장은 DB 연결하는게아니여서
- MySQL Driver
- Spring Data JDBC 는 다음에 DB 연결 학습 때부터 사용해보겠습니다.
일단 위 2개만 설치 후 Generate 하여 다운로드. 미리 파일 압축을 풀어두자.
다시 GitHub에 가서 설정
repository(저장소) 생성
프로젝트 하나당 repository 도 하나씩 생성한다.
프라이빗으로 작업하도록 한다. 추후 필요시 퍼블릭으로 변경. Add a README file 도 체크하자.
github에 서버 코드 올릴 준비 완료!
내 컴퓨터로 클론(동기화)
<> 코드 ▶Open with GtiHub Desktop ▶
내 컴퓨터 깃허브폴더 지정후 클론
다운받아둔 프레임워크를 붙여넣기
* 숨김파일까지!
GitHub에서 추가된 파일들 바로 감지해준다~
이제 IntelliJ 에서 서버 가동해보기
서버는 무중단이라
종료 되지 않는다!
서버 중지시 종료 코드 -1(으)로 완료된 프로세스로 끝남
Tomcat started on port 8080 (http) with context path '/'
/ 경로
:port 8080
path '/'
(왜 port 8080인가 찾아봤는데,
일반 사용자 권한으로 사용할수도 있기도하고 개발자들 사이에서 널리 사용되는 관습이기도 한다네요)
브라우저에
http://localhost:8080/ uri 입력하면
아무런 query string 을 넣지 않았기에 400 bad request 에러가 리턴된다.
hello가 출력되게 해보자!
resources패키지 - 웹개발할때 씀
test - 테스트할때 씀
서버를 만들 우리는 일단 java폴더를 사용할거에요
controller 패키지와 그 안에 HelloController 클래스를 만든다
package com.marurun66.basic.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
//프레임워크에게 이 클래스는 경로처리하는 컨트롤러야~ 알려줌
public class HelloController {
// 메서드 만들기
@GetMapping("/")
//경로처리 : 유저가 "http://localhost:8080//" 오면 실행됨
public String hello(){
return "안녕하세요~ 서버입니다.";
}
}
@ 어노텐션
프레임워크에게 이 클래스는 컨트롤러야~ 알려줌
Postman에서 리퀘스트,리스폰즈 확인하기
지금은 브라우저에서 작동확인을 했지만
이제부터는 Postman에서 server request을 할거에요.
브라우저에선 get만 가능함 나머지 방식은 테스트 불가!
postman에선 get, post, put, delete 모두 테스트 가능
앞으로는 작업을 시작하기전 postman에 먼저 준비를 하고 코딩을 시작할거에요.
API명세서가 요구하는대로, 리퀘스트 처리가 잘 되었는지 직관적으로 확인가능!
여기까지 클린 코드다! 싶으면
githubDesktop Summary에 Commit 메시지를 입력해서 스냅샷 생성!
세이브포인트라고 생각하면 되겠다.
커밋이 어떤 변경 사항을 포함하고 있는지를 써두면 훗날 내 코드가 엉망이되었을때 복구할 시점을 찾기 편하겠죠?
커밋 후 Push하여 깃허브에 백업
깃허브 업로드 완료!
이제 어디서든 클론하여 프로젝트 작업을 할 수 있다!