본문 바로가기

개발/Java

스프링부트 시작하기 + 개발준비

728x90
반응형

 

스프링부트 시작하기

 

 

스프링부트(Spring Boot)는 자바로 만들어진 웹 프레임워크(Web Framework)로 기존의 스프링 프레임워크보다 프로젝트를 아주 간편하게 설정 및 개발할 수 있는 프레임워크입니다.

 

여기서 웹 프레임워크는 웹 서버를 구현하기 위한 목적으로 만들어진 프레임워크입니다.

웹 서버를 구현하기 위해서는 페이지 구현, DB 관리, 유저 인증, API 서버, 사이트맵, 세션 관리 등의 여러가지 기능이 들어가야 하는데 각 기능을 보유한 라이브러리들을 한데 묶어서 개발자가 사용하기 편리하게 만들어놓은 프레임워크입니다.

 

 

 

스프링부트 장점

 

 

스프링부트는 웹 애플리케이션을 쉽고 빠르게 만들수 있습니다.

 

스프링 프레임워크를 사용하면 많은 XML 설정 파일 등을 작성해야 하고 설정하는 방법이 복잡하고 어려운 편이지만 스프링부트는 스프링으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주어 최소한의 설정으로 웹 애플리케이션을 구현할 수 있습니다.

 

 

스프링부트는 별도의 WAS 가 필요 없습니다.

 

스프링만을 사용하여 웹 에플리케이션을 개발한다면 웹 에플리케이션을 실행할 수 있는 톰캣(Tomcat) 컨테이너와 같은 WAS(Web Application Server) 가 필요하지만 스프링부트는 톰캣 컨테이너가 내장되어 있고 설정도 자동 적용되기 때문에 별도의 WAS 가 필요하지 않습니다.

 

 

스프링부트는 개발에 필요한 다양한 기능이 이미 준비되어 있습니다.

 

앞서 웹 프레임워크 설명 부분에서 언급했듯이 스프링부트는 로그인, 페이징, 시큐리티, 내장형 서버, 외부 설정 등의 다양한 기능을 기본적으로 제공하고 있습니다.

 

 

이외에도 많은 장점이 있으므로 스프링보다 스프링부트로 개발하면 효율성 및 생산성 등이 높아질 것입니다.

 

 

 

스프링부트 개발준비

 

 

자바 설치

 

스프링부트는 자바로 만들어진 웹 프레임워크이므로 자바를 설치해 주어야 합니다.

저는 로또번호 생성기 사이트 개발할 때 Windows - JDK 11.0.17 Version 을 사용했으므로 해당 버전을 설치하는 것으로 하겠습니다.

 

 

- 자바 다운로드 링크

https://www.oracle.com/kr/java/technologies/javase/jdk11-archive-downloads.html

 

Java Archive Downloads - Java SE 11 | Oracle 대한민국

WARNING: These older versions of the JRE and JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production. For production use Oracle recommends downlo

www.oracle.com

 

- 로또번호 생성기 사이트 링크

https://noticedev.com/lotto/generators/ 

 

로또번호 생성기 - Notice Lotto

로또번호 포함 생성기 포함할 로또번호를 직접 선택하여 로또번호를 생성할 수 있습니다. 번호 생성 시 선택한 번호가 포함됩니다.

noticedev.com

 

 

다운로드 페이지에 들어가서 설치할 Version 을 다운로드 받습니다.

 

 

설치하는 방법은 일반 프로그램 설치하듯이 다운로드한 파일을 더블클릭하여 설치해주시면 됩니다.

 

설치가 끝난 후 JAVA_HOME 환경변수를 설정합니다.

시스템 속성 - 고급 - 환경변수 에서 시스템 변수 부분에 새로 만들기를 한 후 JAVA_HOME 을 만들어 줍니다.

 

 

 

JAVA_HOME 을 만들었으면 그 다음 path 에 %JAVA_HOME%\bin 을 추가해줍니다.

 

 

 

JAVA_HOME 설정을 완료하였으면 자바가 정상적으로 설치되었는지 version 을 확인해봅니다.

 

 

자바가 정상적으로 설치되면 위와 같은 화면이 나옵니다.

 

 

 

IntelliJ 설치

 

 

먼저 IntelliJ 를 다운로드 합니다.

 

 

최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요

 

www.jetbrains.com

 

설치할 때 유료 버전과 무료 버전이 있는데 무료 버전인 Community 버전을 설치합니다.

선택할 설치 옵션이 보이면 필요한 사항에 체크하여 설치합니다.

 

- Create Desktop Community Edition : 바로가기 생성

- Update PATH variable : 설치한 프로그램의 bin 폴더 경로를 윈도우 환경변수 PATH 자동 추가

- Update Context Menu : 프로젝트로 폴더 열기 메뉴 추가

- Create Associations : 사용할 언어 확장자 선택

 

저는 바로가기 생성과 사용할 언어 확장자를 .java 로 선택하고 나머지는 다 체크하였습니다.

기본적인 프로그램 설치하는 것처럼 Next 나 Install 버튼을 계속 클릭하시면서 설치하시면 됩니다.

 

 

 

스프링 이니셜라이저(Spring Initializr)

 

 

스프링 이니셜라이저로 원하는 언어, 빌드도구, 스프링버전, 의존성, 라이브러리 등을 선택하여 빠르게 스프링 부트 프로젝트를 생성할 수 있습니다.

 

그러기 위해서는 먼저 스프링 이니셜라이저 사이트에 접속하여 원하는 항목을 체크해야 합니다.

 

https://start.spring.io/

 

 

사이트에 접속하게 되면 다음과 같은 화면이 나옵니다.

 

 

여기서 원하는 항목들을 체크하고 GENERATE 를 클릭하시면 생성된 프로젝트 파일이 다운로드 됩니다.

 

- Project : 빌드 툴을 선택합니다.

- Language : 프로젝트에 사용하고자 하는 프로그래밍 언어를 선택합니다.

- Spring Boot : 스프링 부트의 버전을 선택합니다. 버전 이름 뒤에 아무 것도 붙지 않은 버전으로 선택을 권장합니다.

  • SNAPSHOT : 아직 개발이 완료되지 않은 버전을 의미합니다.
  • M(Milestone) : 개발은 완료되었으나, 아직 기능들을 개선하는 중 또는 버그를 수정하고 있는 버전을 의미합니다.
  • RC(Release Candidate) : 기능 개선과 버그 수정이 완료되었으나, 최종적으로 릴리즈 되지는 않은 버전을 의미합니다

- Project Metadata : 프로젝트의 정보를 입력합니다.

  • Group : 프로젝트를 만드는 그룹의 이름으로, 보통 기업의 도메인 명을 역순으로 입력합니다. 
  • Artifact : 빌드 결과물의 이름입니다.
  • Description : 프로젝트에 대한 간략한 설명을 입력합니다.
  • Package name : 프로젝트에 생성할 패키지를 설정합니다.
  • Packaging : 배포를 위해 프로젝트를 업축하는 방법을 선택합니다.
  • Java : 여러분의 PC  에 설치된 JDK 의 버전을 선택하면 됩니다.

- Dependencies : 프로젝트를 통해 만들 애플리케이션의 동작에 필요한 라이브러리들을 선택합니다.

  • Spring Web 만 추가해봅니다. Spring Web 을 Dependencies 에 추가하면 스프링 기반의 웹 애플리케이션을 개발하는 데에 필요한 라이브러리들이 자동으로 설정됩니다.

 

 

원하는 항목을 체크한 화면입니다.

(프로젝트 실행에 기본적인 선택사항만 체크 하였습니다)

 

 

- Project : Gradle Project

- Language : Java

Spring Boot : 2.7.15(SNAPSHOT 또는 M2, M3 가 붙지 않은 버전 선택을 권장)

Project Meta Data

  • Group : Notice
  • Artifact : Lotto
  • Name : Lotto
  • Description : Lotto project for Spring Boot
  • Notice.Lotto
  • Packaging : Jar
  • Java : 11

- Dependencies(ADD DENENDENCIES 버튼 클릭해서 선택)

  • Spring Web

 

필요한 항목들을 선택한 후에 GENERATE 버튼을 클릭하면 파일이 다운로드 됩니다.

 

 

 

다운로드 받은 파일의 압축을 풀면 다음과 같은 구조로 생성된 것을 확인할 수 있습니다.

 

 

 

 

 

스프링부트 프로젝트 실행(feat. IntelliJ)

 

 

인텔리제이를 실행하여 File - Open 에서 다운로드된 폴더를 선택하여 프로젝트를 열어줍니다.

 

 

 

스프링부트의 프로젝트 구조는 다음과 같습니다.

 

 

src/main/java 디렉터리

 

src/main/java 디렉터리의 패키지는 자바 파일을 작성하는 곳입니다.

자바 파일로는 스프링부트의 컨트롤러, 폼과 DTO, 데이터베이스 처리를 위한 엔티티, 엔티티에 의해 생성된 데이터베이스에 접근하는 메서드들을 사용하기 위한 리포지토리, 컨트롤러에서 전달된 데이터를 처리하기 위한 서비스 등의  파일을 작성할 수 있습니다.

 

 

LottoApplication.java 파일

 

모든 프로그램에는 시작을 담당하는 파일이 있는데 스프링부트 애플리케이션에서 시작을 담당하는 파일은 LottoApplication.java(프로젝트명 + Application.java) 파일입니다. 

스프링부트 프로젝트를 생성할 때 입력한 이름으로 파일이 자동 생성됩니다.

 

 

src/main/resources 디렉터리

 

src/main/resources 디렉터리는 자바 파일을 제외한 HTML, CSS, Javascript, 환경파일 등을 작성하는 곳입니다.

 

 

static 디렉터리

 

src/main/resources 디렉터리인 static 디렉터리는 프로젝트의 스타일시트(css), 자바스크립트(js), 이미지 파일(jpg, png) 등을 저장하는 곳입니다.

사이트를 호스팅할 때는 sitemap.xml 및 사이트 대표 아이콘 등을 작성하여 저장할 수도 있습니다.

 

 

templates 디렉터리

 

src/main/resources 디렉터리의 하위 디렉터리인 templates 디렉터리에는 템플릿 파일을 저장합니다.

템플릿 파일은 HTML 파일 형태로 자바 객체와 연동되는 파일입니다. 

index.html, generators.html 등의 컨트롤러와 연동할 수 있는 파일을 작성합니다. 

 

 

application.properties 파일

 

application.properties 파일은 프로젝트의 환경 설정을 하는 파일입니다.

프로젝트 환경, server.port, 데이터베이스 설정 등의 프로젝트 설정을 작성할 수 있는 곳입니다.

의존성, 라이브러리 등이 추가됨에 따라 해당 항목에 맞는 설정항목들이 추가될 수 있습니다.

 

 

build.gradle 파일

 

그레이들(Gradle) 이 사용하는 환경 파일입니다. 

그리에들은 그루비(Groony) 를 기반으로 한 빌드 도구로 Ant, Maven 과 같은 이전 세태 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 빌드 도구 입니다. 

build.gradle 파일에는 프로젝트를 위해 필요한 플러그인과 라이브러리 등을 작성합니다.

작성 방법이 이전 세대의 빌드도구보다 훨씬 간단하여 편리하게 작성할 수 있습니다.

 

 

위의 디렉터리 및 파일들을 작성하는 방법은 로또 생성기 사이트 제작 방법을 설명하면서 진행하도록 하겠습니다.

 

그럼 이제 LottoApplication 파일을 열어서 오른쪽 상단의 ▶ 버튼을 클릭하도록 합니다. 

 

 

 

실행이 정상적으로 되면 아래와 같이 프로젝트가 실행된 것을 표시합니다.

 

 

이렇게까지 해서 스프링부트 프로젝트가 정상적으로 실행되는 것을 확인할 수 있습니다..만

웹 페이지에 뭐라도 출력이 되는 것을 확인해야 더 확실하게 알수 있겠죠?

컨트롤러를 하나 만들어서 모든 프로그래밍의 기본인 "Hello World" 라는 문구를 출력해봅시다.

 

먼저 Project 의 src/main/java/Notice/Lotto 에 마우스 우클릭해서 New - Java  Class 를 클릭해줍니다.

 

 

 

New Java Class 라면 창이 출력되면 거기에 HelloController 이라는 이름을 입력해줍니다.

 

 

 

파일이 생성되면 해당 파일에 아래와 같이 작성해줍니다.

 

@Controller
public class HelloController {

    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello World !!";
    }
}

 

 

아래는 위의 코드를 작성한 화면입니다.

 

 

간단하게 설명 드리면 클래스에 @Controller 어노테이션을 선언하여 컨트롤러로 명시하였고 GetMapping 으로 '/hello' 로 요청이 들어오면 해당 함수를 실행하여 @Responbody 로 문자열을 전달하도록 합니다.

 

저장 후 다시 오른쪽 상단의 실행 버튼을 누른 후 웹 브라우저에서 'localhost:8080/hello' 를 입력하여 줍니다.

 

 

작성한대로 "Hello World !!" 가 정상적으로 웹브라우저에 표시되는 것을 확인하실 수있습니다.

 

이렇게 스프링보다 훨씬 간단하고 효율적인 스프링부트를 사용하시면 보다 편리하게 웹 애플리케이션을 작성하실 수 있습니다.

 

이상입니다.

 

 

728x90