2021-03-29(Mon)
항목 | 내용 |
학습 날짜 | 2021-03-29(월) |
학습 시간 | 11:00~23:00 |
학습 범위 및 주제 | spring |
학습 목표 | spring을 학습하자! |
동료 학습 방법 | - |
상세 학습 내용
http://start.spring.io 로 프로젝트를 구성해서 import해버리자. 다른건 몰라도 .gitignore
가 깔끔하게 셋팅되는 것이 참 편하다.
Gradle
dependencies에 명시된 라이브러리 뿐만 아니라 해당 라이브러리와 의존하고 있는 모든 라이브러리를 함께 다운로드한다.
스프링부트 핵심 라이브러리
spring-boot-start-web
spring-boot-starter-tomcat: 톰캣(웹 서버)
옛날에는 Tomcat WAS를 직접 서버에 설치하고 자바코드를 밀어넣는 식으로 개발했었다. 이제는 라이브러리에 WAS를 직접 포함시켜서 빌드해버린다.
sping-webmvc: 스프링 웹 MVC
spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
spring-boot
spring-core
spring-boot-starter-logging
logback, slf4f
실무에서는 로거를 써야한다. spring-boot-starter에 logging 라이브러리가 있는데,
slf4j
와logback-classic
을 엮어서 쓸 수 있도록 의존성 라이브러리로 포함되어있다.
테스트 라이브러리
spring-boot-starter-test
junit: 테스트 프레임워크
mockito: 목 라이브러리
asserts: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
spring-test: 스프링 통합 테스트 지원
View에 대해서
Welcom page는 어떻게 생성할까? 스프링 부트는 index.html
을 먼저 찾고, 없으면 index
template를 찾는다.
컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다.
스프링 부트 템플릿엔진이 기본 viewName을 매핑
resources:templates/
+{ViewName}+.html
스프링 웹 개발 기초
웹을 개발한다는 것은 크게 3가지를 뜻한다.
정적 컨텐츠
MVC와 템플릿 엔진
3. API
@ResponseBody
어노테이션으로 컨트롤러 메서드를 감싸면, viewResolver
를 사용하지 않는다. 그리고 메서드 리턴 값이 HttpMessageConverter
로 변환되어 응답 바디에 저장된다. 이 때 1) 요청의 HTTP Accept 헤더와 서버의 컨트롤러 반환 타입 정보를 조합하여 HttpMessageConverter
가 선택된다.
본 문자처리:
StringHttpMessageConverter
기본 객체처리:
MappingJackson2HttpMessageConverter
학습 내용에 대한 개인적인 총평
흠 재밌긴한데 갈길이 멀다!
다음 학습 계획
디자인패턴 학습
Last updated