Book/스프링부트 핵심가이드

스프링부트 생성 (Feat. Spring Initializr)

블로그 주인장 2023. 10. 25.

스프링 프로젝트 생성

스프링부트 프로젝트를 쉽게 만드는 방법인 인텔리제이(Intellj) IDEA 에서 프로젝트를 생성하는 방법과 Spring Initializr를 이용하여 생성하는 방법을 알아보겠습니다.


인텔리제이 IDEA에서 프로젝트 생성하기

1. 인텔리제이 IDEA -> [New Project] 생성

  1. 이름(Name) : 프로젝트 이름 설정
  2. 위치(Location) : 프로젝트를 생성할 위치를 설정한다.
  3. 언어(Language) : JVM 상에서 동작하는 언어를 선택
  4. 타입(Type) : 빌드 툴 선택, Maven/Gradle을 선택한다.
  5. 그룹(Group) : 해당 프로젝트를 정의하는 고유한 식별자 정보인 그룹을 설정한다.
  6. 아티팩트(Aritifact) : 세부 프로젝트를 식별하는 정보를 기입한다. (프로젝트 이름 설정 시 자동으로 기입된다)
  7. 패키지 이름(Package Name) : 그룹과 아티팩트를 설정하면 자동으로 입력된다.
  8. JDK : 프로젝트 관련 SDK를 설정한다.
  9. Java : 사용하려는 자바 언어 버전을 설정한다.
  10. 패키지 생성 : 애플리케이션을 쉽게 배포하고 동작하게 할 파일들의 패키징 옵션이다.

2. 스프링 부트 의존성 추가

  1. Lombok : 자바 클래스를 만들 때 자주 사용되는 Getter/Setter 등의 코드를 어노테이션으로 대체해서 선언하고 Java 코드를 컴파일 할 때 그에 맞는 코드를 생성해준다.
  2. Spring Configuration Processer : Configuration 메타데이터를 처리하는 데 도움을 주는 도구이다.
  3. Spring Web : 멀티파트 파일 업로드 등 웹 지향 통합 기능을 제공한다. HTTP 클라이언트와 Spring의 원격 지원을 위한 웹 관련 부분을 제공한다.

3. 최종 화면


Spring Initializr를 이용하여 생성하기

스프링 공식 사이트에서 스프링부트 프로젝트를 자동으로 만들어주는 서비스를 이용할 수 있다.

스프링부트 사이트 : https://start.spring.io/

위의 인텔리제이(Intellj) IDEA 에서 스프링부트 프로젝트 만들 때와 같은 방식으로 추가해주면 된다.

Dependencies

화면 오른쪽 상단의 [ADD DEPENDENDIES ...] 버튼을 클릭하여 의존성을 추가해준다.

 

의존성을 추가한 후에 GENERATE 버튼을 클릭하여 프로젝트를 내려받는다.

 

프로젝트를 내려받은 후에 인텔리제이를 이용하여 프로젝트를 이용한다.


pom.xml(Project Object Model)

pom.xml 파일은 Maven의 기능을 사용하기 위해 작성하는 파일이다.

의존성 라이브러리, 빌드 등의 정보 및 해당 프로젝트를 관리하는 데 필요한 내용이 기술되어있다.

빌드 관리 도구

JVM이나 WAS가 프로젝트를 인식하고 실행할 수 있게 우리가 작성한 소스 코드와 프로젝트에 사용된 파일(.xml, .jar, .properties)을 빌드하는 도구이다. 개발 규모가 커질 수록 라이브러리가 많아지고, 라이브러리 간 버전 호환성을 체크해야하는 어려움이 발생하는데, 빌드 관리 도구를 이용하면 해결이 가능하다.

Maven(메이븐)

Apache Maven(아파치 메이븐)은 자바 기반의 프로젝트를 빌드하고 관리하는데 사용하는 도구이다.

pom.xml 파일에 필요한 라이브러리를 추가하면 해당 라이브러리에 필요한 라이브러리까지 함께 내려받아 관리한다는 점이 특징이다.

Maven(메이븐)의 대표 기능

1. 프로젝트 관리 : 프로젝트 버전과 아티팩트를 관리한다.

2. 빌드 및 패키징 : 의존성을 관리하고 설정된 패키지 형식으로 빌드를 수행한다.

3. 테스트 : 빌드를 수행하기 전에 단위 테스트를 통해 작성된 애플리케이션 코드의 정상 동작 여부를 확인한다.

4. 배포 : 빌드가 완료된 패키지를 원격 저장소에 배포한다.

Maven(메이븐)의 생명 주기

인텔리제이 IDEA에서 생성한 프로젝트의 경우 프로그램 우측 상단에 있는 'Maven' 탭을 클릭하면 생명주기를 확인할 수 있다.

메이븐의 생명주기는 크게 기본 생명주기(Default Lifecycle), 클린 생명주기(Clean Lifecycle), 사이트 생명주기(Site Lifecycle)로 나눌 수 있다.

 

1. 클린 생명주기(Clean Lifecycle)

  • clean : 이전 빌드가 생성한 모든 파일을 제거한다.

2. 기본 생명주기(Default Lifecycle)

  • validate : 프로젝트를 빌드하는 데 필요한 모든 정보를 사용할 수 있는지 검토한다.
  • compile : 프로젝트의 소스코드를 컴파일한다.
  • test : 단위 테스트 프레임워크를 사용해 테스트를 실행한다.
  • package : 컴파일한 코드를 가져와서 Jar 등의 형식으로 패키징을 수행한다.
  • verify : 패키지가 유효하며 일정 기준을 충족하는지 확인한다.
  • install : 프로젝트를 사용하는 데 필요한 패키지를 로컬 저장소에 설치한다.
  • deploy : 프로젝트를 통합 또는 릴리스 환경에서 다른 곳에 공유하기 위해 원격 저장소에 패키지를 복사한다.

3. 사이트 생명주기(Site Lifecycle)

  • site : 메이븐의 설정 파일 정보를 기반으로 프로젝트의 문서 사이트를 생성한다.
  • site-deploy : 생성된 사이트 문서를 웹 서버에 배포한다.

Hello World 출력하기

컨트롤러 작성하기

  1. com.springboot.hello 패키지 -> [New] -> [Package] -> controller 생성
  2. controller 패키지 -> [New] -> [Java class] -> HelloController 생성 
  3. 💡주의 사항💡 컨트롤러에 포함된 로직에서는 애플리케이션의 사용자 또는 클라이언트가 입력한 값에 대한 응답을 수행한다. 특별한 경우를 제외한 모든 요청은 컨트롤러를 통해 진행되어야한다.​
  4. 컨트롤러 코드 작성하기
    package com.springboot.hello.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
    
        @RequestMapping("/hello")
        public String hello() {
            return "Hello World";
        }
    }​
  5. 8080번 포트를 통해 웹 서버가 열린 것을 확인

웹 브라우저를 통한 확인

 

  • 웹 브라우저 주소창에 "http://localhost:8080/hello"을 입력하면 Hello World 출력을 확인 할 수 있다.

Talend API Tester를 통한 동작 테스트

웹 브라우저를 통한 동작 테스트는 간편하지만 상세한 응답을 확인할 수 없다는 단점이 있다.

chrome 확장 프로그램인 'Talend API Tester' 를 이용하면 문제를 해결할 수 있다.

 

Talend API Tester

1. HTTP 통신을 테스트하는 프로그램이다.

2. GET, POST, PUT, DELETE 등의 다양한 HTTP 메서드를 설정

3. 쿼리(Query)와 파라미터(parameter)를 담아 요청을 보낼 수 있다.

4. URL 입력란에 'https' 가 기본 값으로 설정 되어있는데 이를 'http'로 변경해야한다.

반응형

댓글