Programming/Java

[완독정리] 자바웹을 다루는 기술 5(스프링부트)- 길벗

armyost 2021. 2. 15. 21:21
728x90

스프링부트

스프링 프레임워크보다 의존성 관리가 용이할 뿐만아니라 배포 또는 테스트 역시 스프링 프레임워크보다 쉽고 빠르게 할 수 있습니다. 스프링부트로 개발하면 메이븐의 라이브러리 자동 업데이트 기능을 이어받을 수 있을 뿐만아니라 기존 스프링 프레임워크의 복잡한 설정 과정을 최대한 줄일 수 있어 편리합니다. 

 

- 일반적인 응용 프로그램을 단독으로 실행하는 수준으로 스프링 애플리케이션을 구현할 수 있습니다.

- 프로젝트 환경을 구축할때 필요한 톰캣, jerry, UnderFlow 같은 서버 외적인 툴이 내장되어 있어 따로 설치할 필요가 없습니다. 

- XML 기반 설정이나 코드없이 환경설정을 자동화할 수 있습니다.

- 의존성 관리를 쉽게 자동으로 할 수 있습니다.

 

구성요소 역할
application.properties 프로젝트 전체와 관련된 기능을 설정. 톰켓 요청포트 번호와 세션 유효시간을 설정합니다.
@SpringBootApplication  스프링부트 애플리케이션으로 설정합니다.

 

타임리프

스프링 부트에서는 화면 기능은 간결하게 구현하면서 스프링과 더 빠르고 쉽게 연동할 수 있는 기능을 제공하는 타임리프를 표준으로 지정하였습니다.

 

타임리프에 대해 알아보기 전에 먼저 템플릿 엔진에 대해 알아보겠습니다. 웹 서비스를 만들 때에는 서버의 데이터와 정적자원(html, css, image)을 조합해야 합니다. 서버에서 데이터를 보내 웹 서비스를 만드는 방법에는 크게 2가지가 있습니다.

  1. SPA(Single Page Application)최초 한번 전체페이지를 다 불러오고 응답데이터만 페이지 특정부분 렌더링.
  2. SSR(Server Side Rendering)전통적인 웹 애플리케이션 방식. 요청시마다 서버에서 처리한 후 새로고침으로 페이지에 대한 응답.

보통 자바에서 웹 개발시 JSP(Java Server Page)를 이용하여 진행합니다. JSP를 사용하면 <% %>형태의 스크립트릿을 사용하여 개발하게 됩니다. 그러나 이 방식은 스크립트릿과 Html이 혼재된 상태가 되고 html태그의 반복적인 사용으로 인해 수정하기 어려운 상황이 됩니다. 이러한 상태를 해결할 수 있는 것이 바로 템플릿 엔진 입니다. 템플릿 엔진이란 html(Markup)과 데이터를 결한한 결과물을 만들어 주는 도구 입니다. 타임리프는 이 템플릿 엔진중 하나 입니다. 스프링 부트에서는 JSP가 아닌 타임리프를 사용할 것을 권장하고 있습니다. 때문에 스프링 부트에서 JSP를 사용하기 위해서는 별도의 설정이 필요합니다.

 

 

타임리프의 속성들에 대해 알아보고 실습을 진행하겠습니다.

 

표현식
-변수 : ${…}
-선택 변수 : *{…}
-메시지 : #{…}
-Link URL : @{…}

 

리터럴

-텍스트 : ‘one text’, ‘Another one’,…
-숫자 : 0, 34, 1.0, …
-boolean : true, false
-Null : null
-token : one, sometext, main, …

 

text opeation
-문자열 연결 : +
-문자 대체 : |The name is ${name}|

 

연산
-Binary : +, -, *, /, %
-마이너스 : -
-boolean 연산
-Binary : and, or
-부정 : !, not

 

비교 연산
-비교연산자 : >, <, >=, <= (gt, lt, ge, le)
-균등연산자 : ==, != (eq, ne)

 

조건 연산
-if-then : (if) ? (then)
-if-then-else : (if) ? (then) : (else)
-Default : (value) ?: (defaultValue)

 

위의 표현식들은 th:attr의 형태로 사용이 가능합니다. attr부분에 적당한 속성을 넣어주면 됩니다.(ex. attr, class, text etc)