Web/MVC2

    EP4. 검증2 - Bean Validation

    EP3. 검증1 에서 검증로직 구현은 개발자가 직접 작성했습니다. 사실 이 검증 로직은 여러 프로젝트에서 공통적으로 쓰이는 로직입니다. 그래서 검증 로직을 모든 프로젝트에서 공통적으로 쓰일 수 있게 공통화하고, 표준화 한 것이 바로 "Bean Validation" 입니다. Bean Validation 이란? Bean Validation 자체는 어떠한 구현체가 아니라 '기술 표준'입니다. 그래서 우리는 일반적으로 Bean Validation을 구현한 구현체 "하이버네이트 Validator"를 사용합니다. (앞에 붙은 하이버네이트는 ORM과는 관련이 없는 이름입니다.) (마치 기술 표준 JPA가 있고 구현체로 Hibernate 를 사용하는 것과 같은 맥락입니다.) Bean Validation 적용 1. va..

    EP3. 검증1 - Validation

    지금까지 만든 웹 어플리케이션은 사용자가 입력하는 모든 상황을 대비할 수 없습니다. 예를들어, 사용자가 가격을 입력하는 곳에 알파벳을 입력하거나 그냥 입력 창에 공백을 넣게되면 에러페이지로 연결이 되며 기존에 작성했던 데이터는 다 사라지게 됩니다. 만약 우리가 회원가입시 이런 상황을 겪게 된다면 당연히 이 사이트를 더이상 이용하고 싶지 않을 것입니다. 검증은 클라이언트에서도 가능하고 서버에서도 가능합니다. 클라이언트 검증은 포스트맨 등으로 조작할 수 있으므로 보안에 취약합니다. 하지만 서버만으로 검증하면, 즉각적인 고객 사용성이 부족합니다. 둘을 적절히 섞어서 사용하되, 최종적으로 서버에서 검증하는 과정은 필수입니다. API방식을 이용하면 API 스펙을 잘 정의해서 검증 오류를 API 응답 결과에 잘 넘..

    EP2. 메세지와 국제화

    메시지 현재 HTML의 상품명, 가격, 수량 등 'label'에 있는 단어들을 하드코딩 되어있습니다. 만약에 '상품명'이라는 단어를 '상품이름'으로 바꾸려면 모든 HTML상의 단어들을 바꾸어주어야합니다. 이런 다양한 메시지들을 한 곳에서 관리할 수 있는 기능을 메시지 기능이라고 합니다. messages.properties item=상품 item.id=상품 ID item.itemName=상품명 item.price=가격 item.quantity=수량 addForm.html 국제화 사용자가 접근한 locale에 따라, 혹은 사용자의 선택에 따라 보이는 메세지의 언어도 다르게 설정할 수 있습니다. 이 기능을 국제화 기능이라고 합니다. 메세지에서 설명한 메시지파일(messages.properties)를 나라별로 ..

    EP1. 타임리프 Thymeleaf

    toc링크기능이 추가가 안되어있어서 필요한 부분은 Ctrl+F 로 찾아서 보시면 됩니다~ 목차 타임리프 사용 선언 텍스트 - text, utext - Escape HTML 엔티티 springEL 표현식 지역변수 선언 기본 객체들 - 편의 객체 유틸리티 객체 - 자바8 날짜 URL 링크 리터럴 - 리터럴 사용 예시 연산 비교연산 조건식 - Elvis 연산자 No-Operation 속성 값 설정 속성 설정 - 속성 추가 - checked 처리 반복 - 반복 상태 확인 조건부 평가 주석 - HTML의 주석 - 타임리프의 주석 블록 자바스크립트 인라인 - 자바스크립트 인라인 each 템플릿 조각 템플릿 레이아웃 1 템플릿 레이아웃 2 타임리프 사용 선언 타임리프를 사용하기 위해서는 타임리프 선언을 해야합니다. ..