[SPRINGBOOT] 프로젝트 생성

728x90

저는 타임리프(thymeleaf)를 사용하기 위해 인텔리제이 얼티밋 버전을 이용하였습니다.

 

 

커뮤니티 버전을 사용하시는 분들은 먼저 스프링 이니셜라이저 사이트에 접속합니다.

 

https://start.spring.io/

 

 

 

스프링 3.x 이상부터는 자바 17버전이상에서만 사용할 수 있으므로 버전을 낮춰줘야 합니다.

 

add dependencies를 클릭하여 필요한 내용을 추가해줍니다.

 

그리고 Generate를 클릭하여 파일을 다운받습니다.

 

편한 위치에 압축을 풀고

 

인텔리제이를 실행하여 import나 open을 클릭하여 다운받은 파일의 build.gradle을 선택하여 open하면 됩니다.

 

 

얼티밋 버전을 사용하시는 분은  new project를 클릭하여 스프링 이니셜라이즈를 클릭하고 동일하게 설정하시면 됩니다.

추가해야 하는 의존성들입니다.

처음이라면 커뮤니티 버전에서 import하던 얼티밋 버전에서 프로젝트를 만들던 모두 다운받는데 시간이 걸립니다.

3~10분 정도 걸릴 수 있으므로 인내심을 가지고 기다립니다.

 

Spring Boot DevTools 란?

더보기

스프링 부트 DevTools는 스프링 부트 프로젝트의 개발과정을 더욱 편리하고 빠르게 만들어주는 도구입니다. 이 도구는 개발 단계에서 자주 변경되는 코드를 더 빠르게 반영하고, 애플리케이션을 다시 시작하지 않고도 변경 사항을 감지하여 자동으로 재시작하는 기능 등을 제공합니다.

주요한 기능들에 대해 알아봅시다:

코드 변경 감지: DevTools는 클래스패스 상의 파일들이나 템플릿 파일들의 변경을 감지합니다. 코드를 수정하거나 템플릿 파일을 변경하면 애플리케이션을 다시 시작하지 않고도 변경 사항이 즉시 반영되어 개발 생산성을 향상시킵니다.

자동 재시작: 코드나 리소스가 변경될 때, DevTools는 자동으로 애플리케이션을 다시 시작합니다. 이를 통해 변경된 내용이 빠르게 반영되며, 개발자는 수동으로 서버를 재시작할 필요가 없어집니다.

브라우저 새로고침: 프론트엔드 리소스를 수정했을 때, 브라우저 새로고침 기능을 제공합니다. 즉, 프론트엔드 코드를 변경했을 때 서버를 재시작하지 않고도 브라우저를 자동으로 새로고침하여 최신 변경 내용을 확인할 수 있습니다.

글로벌 설정 비활성화: DevTools는 개발 단계에서만 동작하도록 기본적으로 설정되어 있습니다. 프로덕션 환경에서는 DevTools의 기능이 끄거나 최소화되어 불필요한 오버헤드를 방지합니다.

Spring Configuration Processor 란?

더보기

Spring Configuration Processor(스프링 구성 프로세서)는 스프링 프레임워크와 스프링 부트에서 사용되는 어노테이션 기반의 구성 정보를 처리하는 도구입니다. 이 프로세서는 빌드 시간에 소스 코드를 분석하여 구성 정보를 수집하고, 컴파일 타임에 생성된 메타데이터를 활용하여 더 나은 개발 환경을 제공합니다.

스프링 Configuration Processor의 주요 기능은 다음과 같습니다:

컴포넌트 스캔 정보 수집: 스프링의 @Component, @Service, @Repository 등과 같은 어노테이션들을 사용하여 구성 요소를 등록할 때, Configuration Processor는 이러한 어노테이션들을 분석하여 해당 클래스들을 스프링 컨텍스트에 등록하는 데 도움을 줍니다.

빈 설정 정보 생성: 스프링 부트에서 @ConfigurationProperties 어노테이션을 사용하여 프로퍼티 파일과 자바 빈 클래스를 매핑할 때, Configuration Processor는 해당 빈 설정 정보를 생성하여 소스 코드에 반영합니다. 이를 통해 IDE에서 코드 자동 완성 기능을 제공하고, 구성 옵션들을 쉽게 확인할 수 있습니다.

런타임 검증 지원: Configuration Processor는 구성 정보에 대한 런타임 검증을 제공할 수도 있습니다. 잘못된 구성 옵션에 대해 경고나 오류를 출력하여 애플리케이션의 안정성을 향상시키고 디버깅을 용이하게 합니다.

Spring Data Jpa 란?

더보기

Spring Data JPA(Java Persistence API)는 스프링 프레임워크와 JPA를 함께 사용하여 데이터베이스와의 상호작용을 더 쉽게 만들어주는 기술입니다. JPA는 자바에서 객체 지향적인 방식으로 데이터베이스를 다루기 위한 API이며, 스프링 Data JPA는 이를 스프링 프레임워크와 통합하여 개발자들이 더 편리하게 데이터베이스를 다룰 수 있도록 도와줍니다.

Spring Data JPA는 다음과 같은 주요 기능들을 제공합니다:

리포지토리 지원: Spring Data JPA는 개발자들이 데이터베이스와 상호작용할 수 있는 리포지토리 인터페이스를 제공합니다. 개발자들은 이 인터페이스를 사용하여 데이터베이스에 접근하고 CRUD(Create, Read, Update, Delete) 작업을 쉽게 수행할 수 있습니다.

쿼리 메소드 지원: Spring Data JPA는 메소드 이름만으로도 쿼리를 자동으로 생성해주는 기능을 제공합니다. 개발자들은 쿼리 메소드를 작성함으로써 별도의 SQL 쿼리를 작성하지 않아도 됩니다.

페이징과 정렬 지원: Spring Data JPA는 페이징과 정렬을 간편하게 처리할 수 있는 기능을 제공합니다. 개발자들은 페이지 크기와 정렬 조건을 지정하여 데이터를 쉽게 조회할 수 있습니다.

자동 구현: Spring Data JPA는 리포지토리 인터페이스의 메소드에 따라 자동으로 구현 클래스를 생성합니다. 개발자들은 기본적인 CRUD 작업을 위한 코드를 작성하지 않아도 됩니다.

Spring Data JDBC 란?

더보기

Spring Data JDBC는 스프링 프레임워크와 함께 사용되는 데이터 액세스 기술로, JDBC(Java Database Connectivity)를 기반으로 동작합니다. JDBC는 자바 프로그램과 데이터베이스 간의 연결과 데이터 액세스를 위한 표준 API이며, Spring Data JDBC는 이를 스프링 프레임워크와 통합하여 더 편리하게 데이터베이스를 다룰 수 있도록 지원합니다.

Spring Data JDBC의 주요 특징은 다음과 같습니다:

객체 매핑: Spring Data JDBC는 자바 객체와 데이터베이스 테이블 간의 매핑을 자동으로 처리해줍니다. 객체를 테이블에 저장하거나 테이블로부터 객체를 로드하는 작업을 단순화하여 개발자들이 별도의 매핑 코드를 작성하지 않아도 됩니다.

SQL 쿼리 사용: Spring Data JDBC는 JPA와 달리 객체 지향 쿼리 언어인 JPQL이 아닌 SQL 쿼리를 직접 사용합니다. 개발자들은 직접 SQL 쿼리를 작성하여 데이터베이스를 다룰 수 있으며, 복잡한 쿼리를 더 효율적으로 작성할 수 있습니다.

연관 관계 처리: Spring Data JDBC는 객체 간의 연관 관계를 처리하는 기능을 제공합니다. 일대일, 일대다, 다대일과 같은 연관 관계를 객체로 표현할 수 있고, 이를 데이터베이스 테이블 간의 관계로 매핑하여 관련 데이터를 효과적으로 처리할 수 있습니다.

트랜잭션 관리: 스프링의 트랜잭션 관리 기능과 통합하여 데이터 액세스 작업에 대한 트랜잭션 처리를 지원합니다. 데이터베이스 작업이 원자적으로 처리되도록 보장하고, 롤백과 같은 트랜잭션 기능을 활용할 수 있습니다.

 

 

롬복을 설치합니다.

 

윈도우 버전으로 ctrl + alt + s를 눌러 settings로 들어갑니다.

 

첫번째 검색창에 plugin을 입력하고 나타난 창에서는 lombok을 입력합니다. 그리고 lombok을 설치합니다.

 

저는 설치되어 있어서 저렇게 나오지만, 새로설치하시는 분은 install이라는 버튼이 나타날 것입니다.

 

설치되었다면 ok를 누르고 다시 settings로 들어갑니다.

 

이번엔 검색창에 annotation processor을 입력하고 초록색 네모박스 부분을 체크합니다. ok를 눌러 빠져나옵니다.

 

이제 설정이 끝났습니다.

 

올바르게 설정되었는지 테스트해보겠습니다.

 

메인 실행파일에서 run버튼이 있습니다. (모양은 오른쪽 삼각형입니다.)  그 버튼을 클릭하면 아래와 같은 버튼이 나타납니다. 제일 위 버튼을 클릭합니다. ctrl + shift + F10을 눌러도 됩니다..

 console에 아래와 같은 화면이 나타난다면 설정이 잘된것입니다.

 

이제 lombok테스트를 하겠습니다.

Hello란 클래스를 하나 만들어서 변수 하나를 만들고 애노테이션을 추가합니다. 참고로 인텔리제이에서는 자동완성 기능이 대소문자를 구분하기 때문에 @D를 입력해야 lombok애노테이션이 나타납니다.

 

이제 실행클래스에서 테스트 하겠습니다.

 

 

주의해야할 점은 처음에는 실행클래스가 조금 헷갈리게 되어있습니다.

아래 그림에서 중괄호 안에 입력해야합니다.

 

아래와 같이 입력후 실행합니다. 참고로 인텔리제이에서 System.out.print()의 단축키는 sout입니다.

콘솔에 정상 출력되는 것을 확인할 수 있습니다.

 

스프링부트 프로젝트를 만들때 spring web 의존성을 추가하면 내부톰캣이 적용되기때문에 톰캣을 따로 연동하지 않아도 됩니다.