
오류가 발생했을 때 오류 페이지로 /error를 기본 요청한다. 스프링 부트가 자동 등록한BasicErrorController 는 이 경로를 받는다. 개발자는 오류 페이지만 등록하면 된다.BasicErrorController 는 기본적인 로직이 모두 개발되어 있다.개발자는 오류 페이지 화면만 BasicErrorController가 제공하는 룰과 우선순위에 따라서 등록하면 된다.정적 HTML이면 정적 리소스뷰 템플릿을 사용해서 동적으로 오류 화면을 만들고 싶으면 뷰 템플릿 경로에 오류 페이지 파일을 만들어서 넣어두면 된다. 오류 페이지 예) 4xx.html 4xx 오류 화면 스프링 부트 제공 오류 화면 입니다. 뷰 선택 우선순위BasicErro..

검증을 하는 이유회원가입 부분에서 검증을 필수이다. 양식에 맞는 정보를 입력할 수 있기에 구현을 해야된다. 검증 방법은 2가지가 있다.BeanValidation의 groups 기능을 사용한다.Item을 직접 사용하지 않고, ItemSaveForm, ItemUpdateForm 같은 폼 전송을 위한 변도의 모델 객체를 만든다.Gradle 추가implementation 'org.springframework.boot:spring-boot-starter-validation'Bean Validation - group@Datapublic class Item { @NotNull(groups = UpdateCheck.class) // 수정요구 사항 private Long id; @NotBlank(grou..

메시지기획자가 화면에 보이는 문구가 마음에 들지 않는다고, “상품명”이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 될까?여러 화면에 보이는 상품명, 가격, 수량 등, label에 있는 단어를 다 찾아가면서 모두 변경해야된다.화면 수가 적으면 문제가 되지 않지만 수십개 이상이라면 수십개의 파일을 모두 고쳐야한다. 해당 HTML파일에 메시지가 하드코딩되어있다.이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라고 한다. 예를 들어서 messages.properties라는 메시지 관리용 파일을 만들고item=상품item.id=상품 IDitem.itemName=상품명item.price=가격item.quantity=수량 각 HTML들을 다음과 같이 해당 데이터를 key 값으로 불러서 사..

PRG 패턴상품 등록 처리를 진행하는 과정에서 컨트롤러에서 오류가 발생했다.상품을 등록하고 새로고침을 하면 여러번 중복 등록이 되는 것을 확인했다. 새로고침에서 오류가 나는 이유가 멀까? 새로고침은 이전의 URL을 다시 한번 더 실행하는 것이다. 그렇다면 어떻게 해결할 수 있을까? 마지막을 GET으로 끝내면 된다/상품 저장 후에 뷰 템플릿으로 이동하는 것이 아니라, 상품 상세 화면으로 리다이렉트를 호출해주는 것이다.마지막으로 화면으로 이동시켰기에 GET으로 끝나게 된다. 새로고침을 해도 GET으로 호출받을 것이다. RedirectAttribute고객이 상품을 저장하고 저장이 잘 되었는지 확인을 할 수 있는 방법이 필요하다.고객입자에서 저장이 잘된 것인지 확인을 할 수 있도록. 상품 상세 화면에 "저장했습..

로깅 사용 이유 운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고,별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 로깅 라이브러리:스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)가 함께 포함된다. 로그 Level: TRACE > DEBUG > INFO > WARN > ERROR개발 서버: DEBUG 출력운영 서버: INFO 출력 사용 라이브러리: SLF4J테스트 코드@RestControllerpublic class LogTestController { private final Logger log = LoggerFactory.getLogger(getClass()); ..

MVC 구조 동작 순서1. 핸들러 조회 : 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다2. 핸들러 어댑터 조회 : 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다3. 핸들러 어댑터 실행: 핸들러 어댑터를 실행한다.4. 핸들러 실행 :핸들러 어댑터가 실제 핸들러를 실행한다5. ModelAndView 반환 : 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환 해서 반환한다6. viewResolver 호출 : 뷰 리졸버를 찾고 실행한다.7. View 반환 : 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체를 반환한다.8. 뷰 렌더링 : 뷰를 통해서 뷰를 렌더링 한다. 컨트롤러의 변화 old 형식@Component("/..
- Total
- Today
- Yesterday
- 국비지원
- 정보처리기사
- 해시
- 국비교육
- wsl
- Git
- 메시지 오류
- 오류
- 김영한
- post-redirct-get
- 스택
- 백준
- static
- (롯데)기업맞춤형 프로젝트
- MySQL
- java
- 프로그래머스
- docker
- 인텔리제이
- CSS
- deque
- JWT
- 국비
- JPA
- form
- 공공데이터포탈
- 덱
- 자료구조
- 그린대학교
- Queue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |