It's easy, if you try

[Spring] 스프링 입문 강의 섹션 1,2 - 프로젝트 초기 세팅 / 라이브러리 / 웹 개발 기초(구조) 본문

스프링

[Spring] 스프링 입문 강의 섹션 1,2 - 프로젝트 초기 세팅 / 라이브러리 / 웹 개발 기초(구조)

s5he2 2023. 1. 12. 21:45
반응형

프로젝트 초기셋팅 (springboot)

build.gradle > repositories

- mavenCentral : 메이븐 공개 사이트에서 관련 레포지토리를 다운로드 받아라.

.gitignore : 기본적으로 셋팅 되어있음

라이브러리

스프링부트는 tomcat 서버 설치 안해도 된당 

실무에서는 system.out.println 대신 log 사용해야한다 !! (로그 레벨별로 관리하기 위해)

테스트 관련

  • java에서 테스트 코드 작성시 주로 junit을 이용한다. (최근에 junit5가 나옴) - 테스트 프레임워크
  • assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
  • spring-test: 스프링 통합 테스트 지원

View 환경설정

src>resources>static> index.html : default welcome page

  • spring.io > projects > spring Boot > Learn tab > 버전 선택 > Spring Boot Feature > index.html 검색 > Welcome Page 검색하면 정의 알 수 있음. 

템플릿엔진(Thymeleaf)

과거 jsp, php 도 템플릿 엔진 -> 서버 동작을해서 화면을 동적으로 제공

절대경로를 복사해서 붙여넣기해도 페이지의 껍데기를 확인할 수 있음

다른 템플릿엔진 종류로는 FreeMarker, Groovy, Mustache가 있다.

  • return "hello"; : hello.html을 렌더링해라
  • viewResolver: 화면을 찾아서 처리 resources:templates/{viewName}.html
  • 참고: spring-boot-devtools 라이브러리 사용시 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.

빌드하고 실행하기

맥 기준: 터미널에서 프로젝트 폴더 접속 >  ./gradlew build > cd build/libs > java -jar {jar 파일명}

  • ./gradlew clean : build 폴더가 사라짐

 

스프링 웹 개발 기초

정적 콘텐츠

/static 폴더에서 제공

MVC와 템플릿 엔진

model / view / controller 로 구분

view는 화면을 그리는 것에만 집중

 

API

템플릿엔진과는 다른 방식

@ResponseBody 필수 !! (return값이 응답 body 값으로 셋팅됨.)
html 태그 없이 return값이 그대로 내려감

객체를 return하면 ? json 형태(키+값)로 내려감.

@ResponseBody 사용 원리

  • HTTP의 BODY에 문자 내용을 직접 반환
  • viewResolver 대신 HttpMessageConverter가 동작
  • 기본 문자처리 : StringHttpMessageConverter
  • 기본 객체처리 : MappingJackson2HttpMessageConverter
  • 참고: HTTP Accept 헤더(클라이언트가 받고싶어하는 형식)와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter가 선택된다. 

단축키

command + shift + enter : 자동완성

반응형
Comments