스프링&스프링부트
-
[스프링MVC - 2편] 타임리프 스프링 통합 (1)스프링&스프링부트 2025. 2. 1. 17:45
타임리프 스프링 통합타임리프는 스프링 없이도 동작하지만, 스프링과 통합을 위한 다양한 기능을 편리하게 제공한다 스프링 통합으로 추가되는 기능들스프링의 SpringEL 문법 통합${@myBean.doSomething()}처럼 스프링 빈 호출 지원편리한 폼 관리를 위한 추가 속성th:object (기능 강화, 폼 커맨드 객체 선택)th:field, th:errors, th:errorclass폼 컴포넌트 기능checkbox, radio button, List 등을 편리하게 사용할 수 있는 기능 지원스프링의 메시지, 국제화 기능의 편리한 통합스프링의 검증, 오류 처리 통합스프링의 변환 서비스 통합(ConversionService) 1. 입력 폼 처리th:object : 커맨드 객체를 지정한다*{...} : 선..
-
[스프링MVC - 2편] 타임리프 기본기능 (2)스프링&스프링부트 2025. 2. 1. 15:24
연산BasicController 추가@GetMapping("/operation")public String operation(Model model) { model.addAttribute("nullData", null); model.addAttribute("data", "Spring!"); return "basic/operation";} 산술 연산 10 + 2 = 10 % 2 == 0 = 비교 연산 1 > 10 = 1 gt 10 = 1 >= 10 = = 10"> 1 ge 10 = 1 ==..
-
[스프링MVC - 2편] 타임리프 기본기능 (1)스프링&스프링부트 2025. 1. 31. 11:44
타임리프 소개타임리프 특징서버 사이드 HTML 렌더링 (SSR)네츄럴 템플릿스프링 통합 지원 1. 서버 사이드 HTML 렌더링 (SSR)타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다 2. 네츄럴 템플릿타임리프는 순수 HTML을 최대한 유지하는 특징이 있다타임리프로 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다이렇게 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수 있는 타임리프의 특징을 네츄럴 템플릿(natural templates)이라 한다 3. 스프링 통합 지원타임리프는 스프링과 자연스럽게 통합되고, 스프링의 다양한 기능을 편리하게 사용할 ..
-
[스프링MVC - 1편] 스프링 MVC - 웹 페이지 만들기 (2)스프링&스프링부트 2025. 1. 30. 19:33
상품 목록 - 타임리프BasicItemController@Controller@RequestMapping("/basic/items")@RequiredArgsConstructorpublic class BasicItemController { private final ItemRepository itemRepository; @GetMapping public String items(Model model) { List items = itemRepository.findAll(); model.addAttribute("items", items); return "basic/items"; } // 테스터용 데이터 추가 @PostConstruct pub..
-
[스프링MVC - 1편] 스프링 MVC - 웹 페이지 만들기 (1)스프링&스프링부트 2025. 1. 30. 12:14
서비스 흐름 상품 도메인 개발1. Item - 상품객체@Datapublic class Item { private long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; }} 2. ItemRepository - 상품 저장소@Repositorypublic cl..
-
[스프링MVC - 1편] 스프링 MVC 기본기능 - 4스프링&스프링부트 2025. 1. 29. 15:26
HTTP 메시지 컨버터뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리하다 @ResponseBody 사용 원리@ResponseBody 사용HTTP의 BODY에 문자 내용을 직접 반환viewResolver 대신에 HttpMessageConverter 동작기본 문자처리 : StringHttpMessageConverter기본 객체처리 : MappingJackson2HttpMessageConverterbyte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 적용한다HTTP 요청 : @Re..
-
[스프링MVC - 1편] 스프링 MVC 기본기능 - 3스프링&스프링부트 2025. 1. 29. 12:25
HTTP 응답 - 정적 리소스, 뷰 템플릿스프링(서버)에서 응답 데이터를 만드는 방법 3가지정적 리소스 - 예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는 정적 리소스를 사용한다뷰 템플릿 사용 - 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다HTTP 메시지 사용 - 예) HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다 1. 정적 리소스스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다/static, /public, /resources, /META-INF/resources src/main/resources는 리소스를 보관하는 곳이고, 또..
-
[스프링MVC - 1편] 스프링 MVC 기본기능 - 1스프링&스프링부트 2025. 1. 28. 17:42
HTTP 요청 - 기본, 헤더 조회RequestHeaderController@Slf4j@RestControllerpublic class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest request, HttpServletResponse response, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, ..