목록Spring (78)
빙응의 공부 블로그

📝소프트웨어 개발 프로세스 - 검증&확인 검증과 확인 스프트웨어 테스트 기준에서 사용자&개발자 관점에서 하는 것을 말한다. 검증(Validation) 시스템이 실제 요구사항을 충족하는지 확인한다. 사용자 관점에서 테스트를 진행하는 것이다. 확인(Verification) 개발된 소프트웨어가 실제 요구사항을 정확히 따르고 있는지 확인한다. 개발자 관점에서 테스트를 진행하는 것이다. 📝스프링에서의 검증 지금까지 만든 웹 애플리케이션은 폼 입력시 숫자를 문자로 작성하면 검증 오류가 발생하여 오류 화면으로 이동하였다. 이렇게 되면 사용자는 처음부터 해당 폼을 다시 입력해야 하기 때문에 검증을 통해서 오류가 발생하면 따로 처리해야 한다. 컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. ..

📝메시지 만약 요구사항을 수정하는 중에 각 웹 페이지의 상품명이라는 단어를 모두 상품이름으로 고쳐야 한다면 어떻게 해야할까? 그러면 HTML 구현 기준으로 모두 고쳐야 한다. 이것을 HTML 하드 코딩이라고 한다. 하드 코드 예) 상품명 가격 수량 이것을 해결하는 방법이 메시지 일관 관리 기능이다. messages.properties 라는 메시지 관리용 파일을 만들고 item=상품 item.id=상품ID item.itemName=상품명 item.price=가격 item.quantity=수량 각 HTML들은 다음과 같이 해당 데이터를 key 값으로 불러서 사용할 것이다. addForm.html editForm.html 📝국제화 메시지에서 한 발 더 기능을 업그레이드해보자. 메시지에서 설명한 메시지 파일(m..

해당 포스팅은 전편 타임리프 1편의 추가 부분이다.! [Spring]타임리프(Thymeleaf)에 대해 알아보자! (tistory.com) [Spring]타임리프(Thymeleaf)에 대해 알아보자! 📝타임리프(Thymeleaf) 타임리프는 컨트롤러가 전달하는 데이터를 이용해 동적으로 화면을 만들어주는 뷰 템플릿 엔진이다. 특징 서버 상에서 동작하지 않아도 HTML 파일의 내용을 바로 확인이 가 quddnd.tistory.com 📝타임리프 기본 객체 2 타임리프는 다음과 같은 객체 접근을 지원한다. Request Response Session ServletContext Locale Bean 실습 컨트롤러 @GetMapping("/basic-objects") public String basicObjects..

📝타임리프(Thymeleaf) 타임리프는 컨트롤러가 전달하는 데이터를 이용해 동적으로 화면을 만들어주는 뷰 템플릿 엔진이다. 특징 서버 상에서 동작하지 않아도 HTML 파일의 내용을 바로 확인이 가능 순수 HTML 구조를 유지하기 때문에 Natural Template이라고도 불린다. JSP는 서버를 구동하지 않고 파일을 열면 정상적인 확인이 불가능하지만 타임리프는 쉽게 파악이 가능하여 개발이 용이하다! 타임리프 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 타임리프 기본 선언 HTML 상단에 해당 선언을 해야 타임리프 사용이 가능해진다. 📝타임리프 기본 문법 타임리프의 기본 문법은 접두어와 표현식으로 나뉜다..

📝HTTP 응답 - 정적 리소스, 뷰 템플릿 스프링에서 응답 데이터를 만드는 방법은 크게 3가지이다. 정적 리소스 웹브라우저의 정적인 HTML, CSS, JS를 제공할 때, 정적 리소스를 사용한다. 뷰 템플릿 사용 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용 HTTP 메시지 사용 HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 데이터를 실어서 보낸다. 🚩정적리소스 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources 정적 리소스 경로 src/main/resources/static 다음 경로에 파일이 들어있으면 ..

📝요청 매핑 스프링 컨트롤러는 다양한 방법으로 요청을 매핑할 수 있다. 기본 요청 /** * 기본 요청 * 둘다 허용 /hello-basic, /hello-basic/ * HTTP 메서드 모두 허용 GET, HEAD, POST, PUT, PATCH, DELETE */ @RequestMapping("/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } HTTP 메서드 매핑 /** * method 특정 HTTP 메서드 요청만 허용 * GET, HEAD, POST, PUT, PATCH, DELETE */ @RequestMapping(value = "/mapping-get-v1", method = RequestMeth..