2024. 3. 28. 11:55ㆍSpringBoot
안녕하세요. 진득 코딩입니다. 이번 시간에는 스프링부트의 여러 가지 도구들을 살펴보고 각각의 도구들이 어떤 역할을 하는지 살펴보도록 하겠습니다.
스프링 부트 도구
필자가 스프링 프레임 워크를 사용하여 레거쉬 프로젝트를 사용할 때만 해도 의존성들을 손수 입력해줬었는데 스프링 부트에서는 앞선 시간에 이미 의존성 주입을 마쳤습니다. 필요한 의존성 주입은 끝났으니 간단하게 주입한 스프링부트 도구들을 살펴보도록 하겠습니다.
스프링부트 도구는 gradle로 만들었을 때 위 사진에 보이시는 build.gradle.kts 파일을 열어보시면 살펴볼 수 있습니다. 파일 목록에서 찾기 힘드시다면 파일 목록에서 shift를 두번 누르시면 나오는 검색창을 이용하시면 됩니다.
build.gradle.kts 파일을 열면 위와 같이 해당 파일의 내용이 나타나게 됩니다. 빨간 밑줄이 그어진 dependencies를 보시면 프로젝트 생성할 때 주입한 의존성들의 목록을 확인해보실 수 있습니다.
Spring Boot Devtools
스프링 부트 Devtools를 추가하게 되면 서버를 매번 재시작하지 않고도 수정한 내용이 반영이 됩니다. developmentOnly는 해당 라이브러리는 개발 환경에만 적용된다는 의미로, 운영 환경에 배포되는 jar, war 파일에는 이 라이브러리가 포함되지 않습니다.
저번 시간에 만들었던 컨트롤러에 있는 내용 그대로 출력을 하게 되면 return값인 Hello World가 출력되는 것을 확인해보실 수 있습니다.
이 상태에서 서버를 재시작하지 않고 컨트롤러의 return값을 바꾼 후에 브라우저를 새로고침해보면 바뀐 return값이 서버 재실행 없이 출력되는 것을 확인하실 수 있습니다.
Lombok
롬복(Lombok) 라이브러리는 소스 코드를 작성할 때 자바 클래스에 어노테이션을 사용하여 자주 쓰는 Getter 메서드, Setter 메서드, 생성자 등을 자동으로 만들어 주는 도구입니다. 위 사진에 빨간 밑줄이 그어져 있는 두 문장이 lombok 관련 의존성 주입입니다.
1. 롬복(Lombok)으로 Getter, Setter 메서드 만들기
Lombok이 잘 되는지 테스트 하면서 Lombok을 어떻게 활용하는지 살펴보도록 하겠습니다. 먼저 com.mysite.testproject에 자바 클래스를 생성하도록 하겠습니다.
전에 올린 포스팅에서 언급한 것처럼 원하시는 파일 경로에서 마우스 오른쪽으로 누르고 New-> Java Class를 눌러서 자바 클래스를 생성해주시면 됩니다.
클래스의 이름은 HelloLombok으로 하겠습니다. 원하시는 클래스 이름으로 생성하셔도 됩니다.
클래스를 생성하시고나서 위와 같이 세팅을 먼저 해주시면 됩니다. 해당 코드를 입력한 뒤에 오류가 있어서는 안됩니다.
만약에 오류가 난다면 오른쪽 메뉴에서 gradle 메뉴(코끼리 아이콘)을 클릭하셔서 clean이나 새로고침을 해보는 것도 한 가지 방법입니다.
입력하실 때 helloLombok. 이라고 입력했을 때 위와 같이 set과 get이 정상적으로 뜨면 잘 작동하는 겁니다.
오류가 없다면 실행해봅시다. 실행 결과를 확인해보면 입력했던 hello와 5가 잘 출력되는 것을 확인하실 수 있습니다.
2. 롬복(Lombok)으로 생성자 만들기
HelloLombok 클래스를 위와 같이 수정해봅시다. @RequiredArgsConstructor 어노테이션을 적용하게 되면 해당 어노테이션이 final로 선언한 속성들을 찾아서 필요한 생성자를 자동으로 만들어줍니다.
속성들을 final로 지정해주었기 때문에 바뀌지 않는 값이어서 setter를 사용할 수 없어서 위와 같이 set관련된 코드들이 오류가 나는 것을 확인하실 수 있습니다. 즉, @ RequiredArgsConstructor를 사용하게 되면 @setter를 사용할 수 없습니다.
Spring Web
Spring Web에 대해서 간단하게만 살펴보겠습니다. Spring Web을 살펴보기 위해서는 Gradle 버튼(코끼리 아이콘)을 눌러서 Dependencies를 살펴봐야 합니다. 중요한 몇 가지만 살펴보겠습니다.
1) spring-boot-starter-tomcat
내장 tomcat이 깔리기 때문에 tomcat을 따로 쓰지 않아도 됩니다.
2) spring-web-mvc
spring 프레임 워크 mvc 패턴을 사용할 수 있습니다.
3) sprin-boot-starter
(1) spring boot, spring core가 포함되어 있습니다.
(2) spring-boot-starter-logging: slf4j로 logging을 할 수 있습니다.
4) spring-boot-starter-test
(1) junit : 테스트 프레임 워크
(2) mockito : 목 라이브러리
(3) assertj : 테스트 코드를 편하게 작성하도록 도와주는 라이브러리
(4) spring-test : 스프링 통합 테스트 지원
Thymeleaf
타임리프란 '템플릿 엔진'의 일종으로 html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있게 도와주는 라이브러리입니다.
Spring Data JPA
1. JPA(Java Persistence API)는 자바 애플리케이션과 관계형 데이터베이스 사이의 데이터 영속성을 관리하기 위한 표준화된 인터페이스를 제공하는 기술입니다.
2. Spring Data JPA는 Hibernate와 JPA를 기반으로 한 데이터 엑세스 기술을 보다 간편하게 사용할 수 있도록 지원하는 Spring Framework의 프로젝트 중 하나입니다. Spring Data JPA에서는 JPA를 한단계 더 추상화시킨 Repository라는 인터페이스를 제공해서 개발자가 JPA를 더 쉽고 간편하게 사용할 수 있도록 도와주고 있습니다. SpringBoot에서는 Spring 프레임 워크에서 사용하던 myBatis 대신에 JPA를 사용합니다.
MariaDB Driver
MariaDB Driver는 Java 애플리케이션이 MariaDB 데이터베이스와 상호작용하기 위한 드라이버입니다. 이 드라이버를 사용하여 Java 애플리케이션은 MariaDB 데이터베이스에 연결하고 데이터를 쿼리하거나 조작할 수 있습니다. 따라서 MariaDB와 Java 간의 효율적인 상호작용을 도와주는 역할을 합니다.
이번 시간에는 스프링 부트에서 사용하기 위해 의존성 주입한 스프링 부트 도구들을 간단하게 살펴보았습니다. 다음 시간부터는 본격적으로 스프링 부트의 기본 기능을 익히는 시간을 가져보도록 하겠습니다.🙂
'SpringBoot' 카테고리의 다른 글
스프링 부트 컨트롤러와 매핑을 알아보자 (0) | 2024.03.28 |
---|---|
스프링 부트 프로젝트 구조를 알아보자 (0) | 2024.03.28 |
스프링 부트로 기본적인 웹 프로젝트 만들어보자 (0) | 2024.03.27 |
스프링 부트 개발 환경을 구축해보자! (0) | 2024.03.27 |
스프링 부트를 시작해보자! (0) | 2024.03.26 |