북터디/스프링 부트 핵심 가이드

스프링 부트 핵심 가이드 4장 [스프링 부트 애플리케이션 개발하기]

vita12321 2023. 7. 30. 22:56
728x90
반응형

스프링 부트 핵심가이드 ( 부제 : 스프링 부트를 활용한 애플리케이션 개발 실무 ) - 장성우 지음

4장 스프링 부트 애플리케이션 개발하기

 

4.1 프로젝트 생성


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

IntelliJ  IDEA Ultimate 버전

IntelliJ  IDEA Ultimate 버전에 내장된 Spring Initializr를 사용하여 외부에서 프로젝트를 생성할 필요 없이 곧바로 스프링 프로젝트를 생성할 수 있습니다.

  • Name : 프로젝트의 이름을 설정합니다.
  • Location : 프로젝트 생성할 위치를 지정합니다.
  • Laguage : JVM 상에서 동작하는 언어를 선택합니다 (java)
  • Group : 이 프로젝트를 정의하는 고유한 식별자 정보인 그룹을 설정합니다.
  • Type : 빌드 툴을 선택합니다. 과거엔 Maven을 많이 사용했으나 요즘은 비교적 최신인 Gradle을 많이 이용합니다.
  • Artifact : 세부 프로젝트를 식별하는 정보를 기입합니다. 프로젝트 명과 동일하게 작성해도 무관합니다.
  • Package name: 그룹과 Artifact를 설정하면 자동으로 입력됩니다.
  • Project SDK : JDK 버전을 설정합니다.
  • Java : 자바 언어 버전을 설정합니다.
  • Packaging : 애플리케이션을 쉽게 배포하고 동작하게 할 파일들의 패키징 옵션입니다.
  • Jar / War : 자바 언어의 툴에서 사용하는 아카이브 파일. (애플리케이션의 배포와 동작을 위해 사용)

프로젝트에 사용할 의존성 추가



4.1.2 스프링 공식 사이트에서 프로젝트 생성하기 (spring initializar)

https://start.spring.io/

의존성 추가 후 'GENERATE'로 다운로드 후 압축을 풀고 인텔리제이 IDEA로 실행.


4.2 pom.xml(Project Object Model) 살펴보기

 

Maven의 핵심 부분인 pom.xml(Project Object Model) 파일은 Maven 프로젝트의 기본 설정 파일로서, 이 파일에는 프로젝트 구성, 의존성, 플러그인, 목표 빌드 프로파일 등의 프로젝트와 관련된 모든 정보가 포함된다.


4.2.1 빌드 관리 도구

 

JVM이나 WAS가 프로젝트를 인식하고 실행할 수 있게 우리가 작성한 소스코드와 프로젝트에 사용된 파일들(.xml, .jar, .properties)을 빌드하는 도구이다.

개발 규모가 커질수록 관리 할 라이브러리가 많아지고 라이브러리 간 버전 호환성을 체크해야 하는 어려움이 발생하는데, 빌드 관리 도구를 이용하면 이 같은 문제를 해결할 수 있다.


4.2.2 메이븐 (Maven)

 

아파치 메이븐은 자바 기반 프로젝트를 빌드하고 관리하는데 사용하는 도구로 메이븐의 가장 큰 특징은 pom.xml 파일에 필요한 라이브러리를 추가하면 해당 라이브러리에 필요한 라이브러리까지 함꼐 내려받아 관리한다는 점이다.

 

  • 프로젝트 관리 : 프로젝트 버전과 아티팩트 관리.
  • 빌드 및 패키징 : 의존성 관리, 설정된 패키지 형식으로 빌드 수행.
  • 테스트 : 빌드를 수행하기 전에 단위 테스트를 통해 작성된 애플리케이션 코드의 정상 동작 여부 확인.
  • 배포 : 빌드가 완료된 패키지를 원격 저장소에 배포.

4.2.2.1 메이븐의 생명주기 

메이븐 생명주기

 

  • 클린 생명주기
    clean : 이전 빌드가 생성한 모든 파일을 제거합니다.

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

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

각 생명주기 단계는 이전 단계가 성공적으로 완료된 후에 실행됩니다.


 

4.3 Hello World 출력하기

 

4.3.1 컨트롤러 작성하기

controller 패키지, HelloController.class 생성

스프링 MVC(Model-View-Controller)의 컨트롤러는 사용자 요청 처리에 있어 핵심 역할을 수행하며,
MVC 패턴에서 "Controller" 부분을 차지한다.

 

  • 컨트롤러 코드 작성
package com.example.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";
    }
}

 

컨트롤러에서 수행되는 주요 작업

  • 사용자의 요청을 받음.
  • 요청에 맞는 모델(Model)의 메서드나 기능을 호출.
  • 모델의 반환 값을 처리하여 사용자에게 표시할 결과를 생성.
  • 결과를 뷰에 전달하여 사용자에게 웹 페이지를 표시.

4.3.2 애플리케이션 실행하기

 

스프링 실행

 

스프링 정상 작동시 콘솔


 

4.3.3 웹 브라우저를 통한 동작 테스트

 

'Tomcat started on port(s): 8080 (http) with context path' 을 통해
'http://localhost:8080/hello'에 실행 됬다는 것 확인 가능하다.

http://localhost:8080/hello 모습


4.3.4 Talend API Tester를 통한 동작 테스트

 

웹 브라우저를 통한 동작 테스트는 간편하지만 상세한 응답을 확인할 수 없다는 단점이 있기에
Talend API Tester 크롬 확장프로그램 또는 포스트맨 등의 프로그램을 사용합니다.

 

body와 headers 확인 가능

 

728x90
반응형