[개발 공부]/[자바 JAVA]

[JAVA - Spring Boot] 스프링부트 사용하기(1)

wild keyboardist 2022. 9. 24. 14:42

[JAVA - Spring Boot] 스프링부트 기본구조 / 특징

 

 

 

 

 

 

 

  • Spring Boot 란?

 

Spring Legacy 사용시의 환경설정 / 모듈 버전관리 / dependency 주입 등에 걸리는 시간을 최소화한

compact 버전의 스프링 프로젝트.

 

초기 설정 시에 필요한 모듈들을 (lombok 등) 선택만 해주면 자동으로

버전은 물론, dependency 주입까지 셋팅하여 바로 비지니스 로직 개발로 들어갈 수 있게 해준다.

 

tomcat 또한 내장되어있어, 개발자가 환경설정에 할애하는 시간을 최소화해준다.

 

 

 

 

 

 

 

 

[기본구조]

 

  • src/main/java

=> 비지니스 로직이 들어가는 섹션. 초기 생성시, mainApplication.java 가 들어있는 곳이다. 

 

 

 

  • src/main/resources

=> 환경설정을 해주는 섹션. application.properties 또는, application.yml 이 들어있는 곳이다.

 

//application.properties 의 경우 (나열식)

server.port=8080
spring.mvc.view.prefix=hahaha
spring.mcv.view.suffix=lalala


//application.yml 의 경우 (들여쓰기 형식의 계층형)

server:
    port:8080
spring:
    mvc:
        view:
            prefix:hahaha
            suffix:lalala

 

 

  • src/test/java

=> 테스트 기능을 지원하는 섹션.

 

 

 

이외 Maven Dependencies / pom.xml 이 있는 섹션이 있다. gradle 또한 물론 사용가능하다

 

 

 

 

 

 

 

 

[특징]

 

 

1) 모듈화

 

Spring Boot 는 기본적으로 micro 서비스를 지향한다. 

즉, 단위별로 (로그인, 결제 등) 모듈화하여 기능을 나누어놓은 구조를 말한다. 

 

이렇게 나누어놓은 각각의 모듈을 이용하기 위해서는 URI 라는 주소를 사용하여 접근하는데,

이를 REST 방식이라고 칭한다. 흔히들 들어본 RESTful API, 바로 그것이다.

 

쉽게 말하면, 각각의 메소드에 URI 라는 주소값을 입혀서 외부에서든, 내부에서든,

해당 서비스를 이용하겠다는 요청이 올 때마다 호출해주는 방식이다.

 

 

 

 

2) 데이터 통신

 

또한 Spring Boot 는 서버 / 프론트 단을 분리해서 data 를 주고 받는데, 이를 위해서 JSON 형식의 data 를 사용한다.

 

기존의 서버 단에서 JSP 를 사용하여 page 를 생성하고, 데이터를 parsing 하여 view 화면을 그려서 쏴주는 방식이 아니라,

서버 단에서는 그냥 JSON 데이터를 보내줄테니, 프론트 단에서 알아서 처리하는 것이다.

(즉, React / Vue / Angular 등이 해주는 작업이 된다)

 

=> JS 가 실행되는 곳이 client 단으로 이동되었으므로,  서버 단에 주는 부하가 훨씬 적어진다.

 

 

 

 

3) XML 사용 최소화 (Annotation 으로 대체)

 

Legacy 에서는 bean 등록 시에 root-context.xml 파일에 가서 일일히 등록해주었어야 했는데,

Boot 에서는 그럴 필요가 없다. Boot 에서 제공하는 Annotation 만 입혀주면 자동으로 설정해준다.

 

MainApplication.java 에는 @SpringBootApplication 이라고 설정이 되어있을 것이다.

이는 xml 에서 Bean 을 등록해주었던 것을 클래스에서 동일하게 처리하는 기능을 제공한다.

 

Controller 에는 @RestController 를 사용한다. 

responseBody 에서 converter 로 등록되어있는 것을 거쳐서 JSON 데이터로 반환하는 기능을 포함하고 있다.