본문 바로가기

Java/Spring Boot

[Spring Boot] 프레임워크, 세팅 및 페이지 로드

스프링 프레임 워크 란 ?

스프링 프레임워크 자바 플랫폼을 위한 오픈 소스 애플리케이션

프레임워크로서 간단히 스프링(Spring)이라고도 한다.

동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 

 

프레임 워크란?

프레임워크는 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체를 말한다.

스프링에서 말하는 프레임워크는 서버 개발 프레임워크로 웹 프레임워크로도 불린다.

이러한 프레임워크는 기능 구현을 위한 기본적인 형태를 지원할 뿐이고 필수적인 사항은 아니다.

하지만 사용여부에 따라 생산하는 코드 품질 및 개발 속도를 높일 수 있다.

 

스프링 프레임워크 특징

 

- POJO(Plain Old Java Object) 방식

POJO는 Java EE의 EJB(Enterprise JavaBeans) 를 사용하면서 해당 플랫폼에 종속되어 있는 무거운 객체들을 만드는 것에 반발하며 나타난 용어다. 스프링 컨테이너에 저장되는 자바 객체는 특정한 인터페이스를 직접 구현하거나 상속받을 필요가 없어서 기존 라이브러리를 지원하기가 용이하고, 객체가 가볍다.

 

- 관점 지향 프로그래밍(Aspect Oriented Programming, AOP) 

로깅, 트랜잭션, 보안 등 여러 모듈에서 공통 관심 사항(cross-cutting concern) 과 핵심 관심 사항(core concern) 분리하여 관리할 수 있다.

 

- 의존성 주입(Dependency Injection, DI)

구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부에서 설정을 통해 정의되는 방식이다. 코드 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며 모듈간의 결합도도 낮출 수 있다. 계층, 서비스 간에 의존성이 존재하는 경우 스프링 프레임워크가 서로 연결시켜준다.

 

- 제어 역전(Inversion of Control, IoC) 

컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.

 

- 생명주기 관리

스프링 프레임워크는 Java 객체의 생성, 소멸을 직접 관리하며 필요한 객체만 사용할 수 있다.

 

- 모델-뷰-컨트롤러(MVC) 패턴

스프링은 웹 프로그램밍 개발 시 거의 표준적인 방식인 Spring MVC라 불리는 모델-뷰-컨트롤러(MVC) 패턴을 사용한다. DispatcherServlet이 Controller 역할을 담당하여 각종 요청을 적절한 서비스에 분산시켜주며 이를 각 서비스들이 처리를 하여 결과를 생성하고 그 결과는 다양한 형식의 View 서비스들로 화면에 표시될 수 있다.

 

출처: https://hcjo.tistory.com/7

 

 

Spring Boot 세팅

 

1. 이클립스 내부의 마켓플레이스에서 spring tool 3 버젼을 다운로드한다.

3버전 다운로드

2. 환경을 spring으로 변경

Spring 으로 변경

3. 스프링 홈페이지에서 프로젝트 세팅후 다운

  • Maven Project
  • 제일 아래 버젼 설정
  • Lombok, Spring Boot DevTools, Spring Web, Thymeleaf(서버)

스프링 프로젝트 다운로드

4. 다운받은 프로젝트를 불러오게 되면 Maven이 되면서

필요한 라이브러리들이 자동으로 생성되게 된다.

Maven 된 프로젝트

5. 포트 번호를 아래의 경로를 따라 지정해준다.

포트 지정 경로
포트 지정

 

기본적인 세팅이 끝났다.

 

이제 내부를 살펴보면 java 폴더에 자동으로

패키지와 클래스가 생성 되어있는걸 확인 할 수 있다. 

Spring boot는 따로 서버를 세팅 하지 않아도

내부에 저장되어 있어서 가능한 것인데 

아까 위에서 세팅했던 Thymeleaf 자체에서

서버를 실행 할 수 있게 자동으로 생성 한 것이다.

.
Thymeleaf 인해서 자동 생성

이제 간단하게 서버를 실행하여 페이지를 로드 하기 위해 코드를 작성해 보겠다.

get.html 경로

먼저 templates 폴더안에 Method  폴더를 만들고 

get.html을 생성하였다.

기본적인 html 세팅이다. 여기서 xmlns:th 라는 키워드가 눈에띄는데 thymleaf와 관련된 것이다.

위에 보이는 것 처럼 세팅을 하지 않을 경우 배포를 했을시 서버 로드가 되지 않아서 

일일이 다 넣어서 수정해줘야하는 번거러움이 있기 때문에 html생성시 꼭 넣어 줘야한다.

 

그리고 자바 폴더로가서 처음 생성 되었던 패키지 안에 패키지 를 생성해주고

컨트롤러 클래스를 생성한다.

클래스 생성

그리고 클래스안에 페이지를 로드 할 수 있게 설정을 해준다.

컨트롤러 사용해서 서버 실행

이전 자동 생성된 자바 파일로 서버 실행이 가능하지만

직접 Controller 를 어노테이션해서 서버를 실행 할 수 있게 세팅하고

GetMapping으로 맵핑주소를 세팅하고 / 와, /index로 설정한다. 

아까 method 폴더에 생성한 get을 실행하게 리턴값을 주었다.

여기서 어노테이션과 관련된것들은 추후에 설명하겠다.

서버를 실행 했을때 get.html이 실행된다.

서버 실행시 콘솔

서버가 오류없이 잘 실행 됬다고 나온다.

만약 서버실행이 계속 되고 있어서 겹친다고 나오면

따로 서버를 제거해줘야한다.

 

그리고 아까 지정했던 포트 번호와 맵핑주소를  사용해서

확인을 해보면 페이지가 잘 로드 된 것을 확인 할 수 있다.

페이지 로드 성공