반응형
제육's 휘발성 코딩
반응형
[MVC-2] 스프링 검증 - Bean Validation
🔷 Spring/MVC 2022. 4. 11. 12:19

Bean Validation 검증 기능을 매번 코드로 작성하는 것은 상당히 번거롭다. 특히 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 이러한 불편함을 애노테이션 하나로 검증 로직을 적용한 것이 Bean Validation이다. implementation 'org.springframework.boot:spring-boot-starter-validation' build.gradle에 라이브러리를 추가하자. 해당 라이브러리를 등록하면 스프링 부트는 자동으로 글로벌 Validator로 등록한다. 단, 사용할 때 해당 메서드 파라미터에 @Validated 또는 @Valid 를 넣어줘야 한다. 검증 오류가 발생하면 FieldError, Obj..

[MVC-2] 스프링 유효성 검증 - Validation, @Valid 사용법
🔷 Spring/MVC 2022. 4. 10. 21:24

검증 - Validation 컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 웹 서비스는 폼 입력시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 알려주어야 한다. 정상 로직보다 이런 검증 로직을 잘 개발하는 것이 어쩌면 더 어려울 수도 있다. 검증 요구사항 상품 관리 시스템에 새로운 요구사항이 추가되었다. 요구사항 : 검증 로직 추가 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증 상품명 : 필수, 공백X 가격 : 1000원 이상, 1백만원 이하 수량 : 최대 9999 특정 필드의 범위를 넘어서는 검증 가격 * 수량의 합은 10,000원 이상 검증 방식 1 (스프링 제공 X) 고객이 상품 등록 폼에서 요구사항에 맞지 않는 ..

[MVC-2] 스프링 메시지, 국제화 사용방법
🔷 Spring/MVC 2022. 4. 10. 00:52

메시지, 국제화 메시지 : 여러 화면에서 동일한 명칭으로 하드 코딩되어 있는 것을 한 곳에서 관리하는 기능을 의미한다. 예를 들어 messages.properties라는 메시지 관리용 파일을 만들고 각 HTML은 해당 데이터를 key 값으로 불러서 사용하는 것이다. 다음 예시를 살펴 보자. item = 상품 item.id = 상품 ID item.itemName = 상품명 item.price = 가격 item.quantity = 수량 messages.properties라는 메시지 관리용 파일 해당 label을 각 HTML에서 렌더링하여 사용한다. 국제화 : 메시지에서 설정한 파일을 각 나라별로 관리하여 서비스를 제공하는 것을 국제화라고 한다. 예를 들어 message_en.properties와 messag..

[MVC-2] 타임리프 - form 사용법 정리
🔷 Spring/MVC 2022. 4. 9. 22:25

타임리프 - 스프링 통합과 폼 타임리프는 ${@myBean.doSomething()}처럼 스프링 빈 호출 지원 th:object, th:field, th:errors, th:errorclass 등 폼 관리 속성 지원 HTTP 요청 메시지 로깅을 보고 싶다면 properties에 logging.level.org.apache.coyote.http11=debug를 설정 입력 폼 처리 상품 등록 폼 상품명 가격 수량 판매 여부 판매 오픈 등록 지역 서울 상품 종류 BOOK 배송 방식 ==배송 방식 선택== FAST 상품 등록 취소 th:object : 커맨드 객체를 지정한다. 폼 태그에 인라인으로 지정하면 th:field="${item.itemName}"을 th:field="*{itemName}"와 같이 사용할..

[MVC-2] 타임리프 기본 기능
🔷 Spring/MVC 2022. 4. 9. 15:56

타임리프 소개 https://www.thymeleaf.org/ 서버 사이드 HTML 렌더링 (SSR) : 백엔드 서버에서 HTML을 동적으로 렌더링하는 용도로 사용된다. 네츄럴 템플릿 : 순수 HTML을 최대한 유지하는 특징 (정적, 동적 둘다 사용 가능) 스프링 통합 지원 : 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원 타임리프 표현식 html 태그에 타임리프를 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:l..

[Web] - Servlet, JSP 정리
🔷 Java/web 2022. 3. 25. 01:31

Servlet 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램으로 자바 클래스의 일종 HttpServlet 를 상속받아 사용 JSP와 비슷한 점이 있지만, JSP가 HTML 문서 안에 자바 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있다. import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.ser..

[Web] - Cookie & Session (쿠키, 세션 비교)
🔷 Java/web 2022. 3. 25. 00:57

Cookie & Session http protocol 특징 Http (Hyper Text Transfer Protocol) : 인터넷에서 데이터를 주고 받는 스펙 client가 서버에 요청 서버는 요청에 대한 처리를 한 후 클라이언트에 응답 응답 후 연결을 해제 (stateless) 지속적인 연결로 인한 자원낭비를 줄이기 위해 연결을 해제 클라이언트와 서버 간 연결 상태를 유지해야하는 경우 즉, 클라이언트 단위로 상태를 유지해야 하는 경우 세션과 쿠키가 사용된다. (stateless 약점을 보완) 쿠키 클라이언트의 텍스트로 저장되어 문자열만 저장된다. 서버에서 사용자의 컴퓨터에 저장하는 정보 파일 request 시 Request Header에 넣어 자동으로 서버에 전송 key 와 value로 구성되고 ..

article thumbnail
HTML & CSS 정리
Frontend/Html&Css 2022. 3. 20. 22:20

HTML Hyper Text Markup Language 마크업 언어로 웹 문서를 작성하며, tag를 사용하여 문서의 구조 등을 기술하는 언어. Web & HTML 작동원리 서버는 클라이언트의 요청을 분석하여 결과값을 HTML로 전송하고 연결 종료. 클라이언트는 서버로부터 전달받은 HTML을 Web Browser에 표시 각 Web Browser는 브라우저 엔진이 내장되어 있고, 이 엔진이 tag를 해석하여 화면에 표현 Body 요소 id 속성을 이용하여 문서 내에서 tag를 유일하게 식별 가능 (id속성은 중복 X) class 속성을 이용하여 여러 tag에 공통적인 특성(CSS)을 부여 (class 속성은 중복 O); section section 태그를 이용하면 같은 태그를 서로 다르게 표현할 수 있다...

반응형
반응형