공부 중인 책
- 스프링 웹 프로그래밍 (저자 전병선)
- 스프링 부트 쇼핑몰 프로젝트 with JPA (저자 변구훈)
- 그 외 구글링과 여러 기술 블로그
1. 개발 환경 구축
1.1 스프링 부트란?
기존의 스프링 프레임워크보다 더 봄이 왔다는 뜻이다. 기존 스프링에 비해 최소한의 설정으로, 실행 버튼을 누르면 바로 애플리케이션이 실행되는 독립 실행 애필리케이션을 지향한다.
스프링 부트 특징
- 내장 서버를 이용해 별도의 설정 없이 독립 실행이 가능한 스프링 애플리케이션
- 자체 WAS 서버 내장 (톰캣, 제티 등)
- Spring Boot Starter을 통해 의존성 제공을 단순하게
- XML 설정 없이 단순 자바 수준의 설정 방식 제공
- JAR를 이용해 자바 옵션만으로 배포 가능
- 애플리케이션의 모니터링과 관리를 위한 스프링 액추에이터 제공
1.4 애플리케이션 실행하기
Spring Boot Project 생성하기
- 프로젝트 설정
Spring-demo 책 상황을 내 상황에 맞게 조금 변형
Gradle project, Spring Boot 3.X, Jar, Java 17
dependencies - Spring Web
빌드도구 Maven과 Gradle의 차이
빌드란?
application.properties 설정하기
sever.port = 80
application.name = sprint-demo
요즘은 application.properties 파일 대신 application.yml 파일로 많이 생성하는 추세라고 함. 들여쓰기를 통해 설정 값들을 계층 구조로 편리하게 관리 가능.
Hello World 출력하기
- @RestController : Restful Web API를 좀 더 쉽게 만들기 위해 스프링 프레임워크 4.0에 도입된 기능. @Controller와 @ResponseBody를 합쳐 놓은 어노테이션.
- @Controller : 해당 클래스를 요청을 처리하는 컨트롤러로 사용
- @ResponseBody : 자바 객체를 HTTP 응답 본문의 객체로 변환해 클라이언트에게 전송
- @GetMapping : 클라이언트의 요청을 처리할 URL을 맵핑
- 코드 작성 후 debug 모드로 실행하면 localhost:80080 포트에서 hello world 확인 가능
package com.example.springdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class SpringDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringDemoApplication.class, args);
}
@GetMapping(value = "/")
public String HelloWorld(){
return "Hello World";
}
}
Lombok 라이브러리
- Lombok 라이브러리는 Getter/Setter, ToString과 같은 반복적인 자바 코드를 컴파일할 때 자동으로 생성해주는 라이브러리이다. Lombok 라이브러리를 통해 반복적인 소스코드를 제거할 수 있으므로 코드를 좀 더 깔끔하게 짤 수 있다.
- InteliJ FIle/Setting -> Plugin -> Lombok 설치
- InteliJ FIle/Setting -> Annotation Processors -> Enable annotation processing 체크 (Lombok을 사용하는 프로젝트마다 설정해줘야 함)
- Lombok dependency 추가
- Maven : pom.xml에
<dependency> </dependency> 사이에 Lombok 의존성 추가 후 InteliJ 재시작
- Gradle : build.gradle 파일 dependencies에 의존성을 추가한다.
implementation 'org.projectlombok:lombok'
- 우측 상단 코끼리를 클릭하고 새로고침 눌러서 Reload All Gradle Projects 를 진행한다.

삽질 기록
- Lombok 설치 후 Getter, Setter를 통한 회원정보 출력을 시도 중인데 잘 안되고 있다.