반응형
제육's 휘발성 코딩
반응형
[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..

프로젝트 Jar 만들기
🔷 Spring/MVC 2021. 10. 7. 09:28

jar 파일 만들기 IntelliJ - Gradle 버전 오른쪽 사이드바 Gradle 선택 - Tasks/bootJar 실행 build / libs에 jar파일이 자동 생성 된다. jar파일을 복사한 경로에 터미널 실행 시 정삭 동작하는 것을 확인할 수 있다. 실행하는데 오류가 있다면 JDK 버전과 프로젝트 버전이 맞는지 확인해보자.

스프링 MVC - 웹페이지 만들기
🔷 Spring/MVC 2021. 8. 13. 15:46

요구사항 분석 디자이너 : 요구사항에 맞도록 디자인하고, 디자인 결과물을 웹 퍼블리셔에게 넘겨준다. 웹 퍼블리셔 : 디자이너에서 받은 디자인을 기반으로 HTML, CSS를 만들어 개발자에게 제공한다. 백엔드 : 디자이너, 웹 퍼블리셔를 통해서 HTML 화면이 나오기 전까지 시스템을 설계하고, 핵심 비즈니스 모델을 개발한다. 이후 HTML이 나오면 이 HTML을 뷰 템플릿으로 변환해서 동적으로 화면을 그리고, 또 웹 화면의 흐름을 제어한다. 상품 관리 상품 도메인 @Getter @Setter public class Item { private Long id; private String itemName; private Integer price; //null 가능성 o private Integer quantit..

스프링 MVC - 기본 기능
🔷 Spring/MVC 2021. 8. 13. 09:44

Welcome 페이지 스프링 부트에 Jar 를 사용하면 /resources/static/index.hml 위치에 index.html 파일을 두면 Welcome 페이지로 처리해준다. 로깅 스프링 부트 라이브러리는 스프링 부트 로깅 라이브러리를 포함한다. SLF4J (Logback, Log4J, Log4J2 통합) - 인터페이스 Logback - 구현체 (대부분 사용) @Slf4j // 애노테이션 설정으로 편리하게 사용 @RestController // 디폴트의 뷰 반환이 아닌 문자 반환설정 (http 바디에 담아서 전송) public class LogTestController { // private final Logger log = LoggerFactory.getLogger(getClass()); //해당..

스프링 MVC 구조
🔷 Spring/MVC 2021. 8. 12. 19:33

스프링 MVC 구조 Dispatcher Servlet 스프링 MVC의 프론트 컨트롤러 (스프링 MVC에서 가장 중요 ) 부모 클래스에서 HttpServlet을 상속 받아 서블릿으로 동작한다. DispatcherServlet - FrameworkServlet - HttpServletBean - HttpServlet 스프링 부트는 DispacherServlet 을 서블릿으로 자동으로 등록하면서 모든 경로( urlPatterns="/" )에 대해서 매핑한다. 자세한 경로가 우선순위가 높다. 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버만 DispacherServlet에 등록하면 커스텀 컨트롤러를 만들 수 있다. 요청 흐름 서블릿이 호출되면 HttpServlet이 제공하는 service() 메서드가 호출 (서블릿 방..

반응형
반응형