태그 목록
전체보기 (138)자바스크립트(16)js(16)Spring(16)linux(15)Thymeleaf(14)MVC(13)ubuntu(12)http(12)서버(11)servlet(10)springMVC(10)C(10)Message(7)Request(5)Controller(5)@Validated(4)python(4)알고리즘(4)git(4)BindingResult(4)validation(3)github(3)server(3)checkbox(3)modelattribute(3)BeanValidation(3)model(3)재귀(2)form(2)json(2)jsp(2)API(2)redirect(2)리눅스(2)GET(2)layout(2)POST(2)template(2)static(2)if(2)shell(2)html(2)함수(2)요구사항(1)매개변수(1)만들면서배욱(1)우분투(1)datamodeling(1)RedirectAttribute(1)util(1)정리(1)유닉스(1)셀렉트박스(1)View(1)OpenSSH(1)while(1)for(1)branch(1)&&(1)domain(1)정적파일(1)동적파일(1)동적할당(1)attribute(1)init(1)front(1)기본문법(1)ssh(1)utext(1)welcom page(1)HttpServletRequest(1)라디오버튼(1)friend(1)@PathVarialbe(1)복사(1)String(1)pattern(1)commit(1)ObjectError(1)Fuction(1)new(1)bindingResults(1)FrontController(1)체크박스(1)repository(1)html form(1)리터널(1)중복(1)국제화(1)th:each(1)SSR(1)logger(1)logging(1)만들면서배우기(1)Templet(1)th:inline(1)springel(1)명령어(1)bean validation(1)함수중복(1)Java(1)상속(1)db(1)@RequestParam(1)변수(1)literals(1)selectbox(1)예제(1)반복(1)PRG(1)SQLD(1)VNC(1)중급(1)case(1)TELNEL(1)Queryparameter(1)연산(1)요구사항추가(1)test(1)주석(1)참조(1)갑자기(1)궁금함(1)link(1)재귀알고리즘(1)schema(1)인자(1)@ResponseBody(1)radio(1)merge(1)non-static(1)logback(1)조건식(1)sourcetree(1)그냥(1)3-level-schema(1)Response(1)FieldError(1)RequestMapping(1)tempelet(1)project(1)th(1)ubunut(1)연산자(1)ErrorCode(1)Slf4j(1)Model/View(1)unless(1)th:block(1)text(1)

Bean Validation - 한계

데이터를 등록할 때와 수정할 때는 요구사항이 다를 수 있다.타입 검증가격, 수량에 문자가 들어가면 검증 오류 처리필드 검증상품명: 필수, 공백X가격: 1000원 이상, 1백만원 이하수량: 최대 9999특정 필드의 범위를 넘어서는 검증가격 \* 수량의 합은 10,000원

2023년 1월 28일
·
0개의 댓글
·

Bean Validation - 스프링 적용

코드 제거기존에 등록한 ItemValidator를 제거해두자! 오류 검증기가 중복 적용된다.스프링 부트가 spring-boot-starter-validation 라이브러리를 넣으면 자동으로 Bean Validator 를 인지하고 스프링에 통합한다.LocalValidat

2023년 1월 28일
·
0개의 댓글
·

Bean Validation - 시작

Bean Validation 기능을 어떻게 사용하는지 코드로 알아보자.먼저 스프링과 통합하지 않고, 순수한 Bean Validation 사용법 부터 테스트 코드로 알아보자.Bean Validation을 사용하려면 다음 의존관계를 추가해야 한다.build.gradlesp

2023년 1월 27일
·
0개의 댓글
·

Bean Validation

검증 기능을 지금처럼 매번 코드로 작성하느 것은 상당히 번거롭다.특히 특정 필드에 대한 검증 로직은 대부분이 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다.이런 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화 한것이 바로

2023년 1월 27일
·
0개의 댓글
·

오류 코드와 메시지 처리6

검증 오류 코드는 다음과 같이 2가지로 나눌 수 있다.개발자가 직접 설명한 오류 코드 -> rejectValue()를 직접 호출스프링이 직접 검증 오류에 추가한 경우 (주로 타입 정보가 맞지 않음)price 필드에 문자 "A"를 입력해보자.로그를 확인해보면 Bindin

2023년 1월 27일
·
0개의 댓글
·

오류 코드와 메세지 처리 5

핵심은 구체적인 것에서! 덜 구체적인 것으로!MessageCodesResolver는 required.item.itemName처럼 구체적인 것을 먼저 만들어주고, required처럼 덜 구체적인 것을 가장 나중에 만든다.이렇게 하면 앞서 말한 것 처럼 메세지와 관련된 공

2023년 1월 27일
·
0개의 댓글
·

오류 코드와 메세지처리4

우선 테스트 코드로 MessageCodesResolver를 알아보자.검증 오류 코드로 메세지 코드들을 생성한다MessageCodesResolver 인터페이스이고 DefaultMessageCodesResolver는 기본 구현체 이다.주로 다음과 함께 사용ObjectErr

2023년 1월 27일
·
0개의 댓글
·

오류 코드와 메세지 처리3

오류 코드를 만들 때 다음과 같이 자세히 만들 수도 있고,required.item.itemName: 상품 이름은 필수 입니다.range.item.price: 상품의 가격 범위 오류 입니다.또는 다음과 같이 단순하게 만들 수도 있다.required: 필수 값 입니다.ra

2023년 1월 27일
·
0개의 댓글
·

오류 코드와 메세지 처리2

목표FieldError, ObjectError는 다루기 너무 번거롭다.오류 코드도 좀 더 자동화 할 수 있지 않을까? ex) item.itemName 처럼?컨트롤러에서 BindingResult는 검증해야 할 객체인 target바로 다음에 온다.따라서 BindingRes

2023년 1월 27일
·
0개의 댓글
·

오류 코드와 메세지 처리1

오류 메세지를 체계적으로 다루어보자FieldError 생성자FieldError는 두 가지 생성자를 제공한다.파라미터 목록objectName : 오류가 발생한 객체 이름field : 오류 필드rejectedValue : 사용자가 입력한 값(거절된 값)bindingFail

2023년 1월 21일
·
0개의 댓글
·

BindingResult2

스프링이 제공하는 검증 오류를 보관하는 객체이다. 검증 오류가 발생하면 여기에 보관하면 된다.BindingResult가 있으면 @ModelAttribute에 데이터 바인딩 시 오류가 발생해도 컨트롤러가 호출 된다.ex) @ModelAttribute에 바인딩 시 타입 오

2023년 1월 21일
·
0개의 댓글
·

Validation2

핵심은 BindingResult이다.📍 주의 : BindingResult bindingResult 파라미터의 위치는 @ModelAttribute Item item 다음에 와야 한다.필드에 오류가 있으면 FieldError 객체를 생성해서 bindingResult 에

2023년 1월 20일
·
0개의 댓글
·
post-thumbnail

Validation1

상품 관리 시스템에 새로운 요구사항이 추가되었다.타입 검증가격, 수량에 문자가 들어가면 검증 오류 처리필드 검증상품명: 필수, 공백X가격: 1000원 이상, 1백만원 이하수량: 최대 9999특정 필드의 범위를 넘어서는 검증가격 \* 수량의 합은 10,000원 이상폼 입

2023년 1월 20일
·
0개의 댓글
·
post-thumbnail

3층 스키마

사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들간의 관계를 정의한 ANSI 표준이다.3층 스키마는 데이터베이스의 독립성을 확보하기 위한 방법이다.데이터의 독립성 확보 시 장점데이터 복잡도 감소 데이터 중복 제거사용자 요구사항 변경

2023년 1월 19일
·
0개의 댓글
·
post-thumbnail

데이터 모델링

추상화 (Abstraction) : 현실 세계를 간략하게 표현한다. 단순화 (Simplification) : 누구나 쉽게 이해할 수 있도록 표현한다.명확성 (Clarity) : 명확하게 의미가 해석되어야 하고 한 가지 의미를 가져야 한다.개념 모델링 (conceptua

2023년 1월 19일
·
0개의 댓글
·

국제화

메세지에서 한 발 더 나가보자메세지에서 설명한 메세지 파일(messages.properties)을 각 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다.예를 들어서 다음과 같이 2개의 파일을 만들어서 분류한다.messages_en.propertiesmessages_

2023년 1월 18일
·
0개의 댓글
·

message

기획자가 화면에 표시되는 문구가 맘에 들지 않아 상품명 -> 상품이름 변경 요청을 한다면?여러 화면에 보이는 상품명,가격,수량 등 lable에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경 해야 한다.화면 수가 적으면 문제가 되지 않지만 화면이 수십개

2023년 1월 18일
·
0개의 댓글
·

셀렉트 박스

셀렉트 박스는 여러 선택지 중에 하나를 선택할 때 사용할 수 있다.셀렉트 박스를 자바 객체를 활용해서 개발해보자.배송방식빠른 배송일반 배송느린 배송셀렉트 박스로 하나만 선택할 수 있다.DeliveryCode 라는 자바 객체를 사용하는 방법으로 진행하겠다.Delivery

2023년 1월 17일
·
0개의 댓글
·

라디오 버튼

라디오 버튼은 여러 선택지 중에 하나를 선택할 때 사용할 수 있다.라디오 버튼을 자바 ENUM을 활용해서 개발해 보자상품 종류도서, 식품, 기타라디오 버튼으로 하나만 선택할 수 있다.itemTypes를 등록 폼,조회, 수정 폼에서 모두 사용하므로 @ModelAttrib

2023년 1월 17일
·
0개의 댓글
·

체크 박스 - 멀티

체크 박스를 멀티로 사용해서, 하나 이상을 체크할 수 있도록 해보자등록 지역서울, 부산, 제주체크 박스로 다중 선택할 수 있다등록 폼, 상세화면, 수정 폼에서 모두 서울, 부산, 제주라는 체크 박스를 반복해서 보여주어야 한다. 이렇게 하려면 각각의 컨트롤러에서 mode

2023년 1월 17일
·
0개의 댓글
·