일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인터페이스
- JSON
- 오버라이딩
- @configuration
- 김영한
- 스프링
- 오블완
- ocp
- 프록시
- 코드트리
- DI
- 서블릿
- 코딩테스트
- 추상클래스
- 다형성
- java
- objecterror
- 백준
- html form
- 티스토리챌린지
- 참조변수
- 코드트리조별과제
- 스프링컨테이너
- equals()
- fielderror
- http 메시지 컨버터
- 의존관계
- 테스트코드
- 싱글톤
- HttpServletResponse
- Today
- Total
목록전체 글 (168)
minOS
H2 데이터 베이스 설정다운로드 및 설치https://www.h2database.com/html/download-archive.htmlh2 데이터베이스 버전은 스프링 부트 버전에 맞춘다.위와 같은 경우에 2.2.224 버전을 다운 받는다.Mac 사용자 기준다운 받은 h2 폴더 -> bin 폴더로 이동권한 주기: chmod 755 h2.sh실행: ./h2.sh 첫 실행할 떄 주의해당 SQL문을 실행하여 멤버 테이블을 만들고 insert 쿼리를 넣으면drop table member if exists cascade;create table member (member_id varchar(10),money integer not null default 0,primary key (member_id));insert in..
ch9-7 String클래스- String클래스 = 데이터(char[]) + 메서드(문자열 관련)public final class String implements java.io.Serializable, Comparable, CharSequence { private final char value[]; // 문자열을 저장하는 배열 (불변성 유지) private final int count; // 문자열의 길이 // String의 생성자 public String() { this.value = new char[0]; // 빈 문자열을 초기화 this.count = 0; } public String(String original) { ..
API 예외 처리 - @ExceptionHandlerAPI 예외처리의 어려운 점1)`HandlerExceptionResolver` 를 떠올려 보면 `ModelAndView` 를 반환해야 했다. 이것은 API 응답에는 필요하지 않다.2)API 응답을 위해서 `HttpServletResponse` 에 직접 응답 데이터를 넣어주었다. 이것은 매우 불편하다. 스프링 컨트롤러에 비유하면 마치 과거 서블릿을 사용하던 시절로 돌아간 것 같다.3)특정 컨트롤러에서만 발생하는 예외를 별도로 처리하기 어렵다. 예를 들어서 회원을 처리하는 컨트롤러에서 발생하는 `RuntimeException` 예외와 상품을 관리하는 컨트롤러에서 발생하는 동일한 `RuntimeException` 예외를 서로 다른 방식으로 처리하고 싶다면 어..
API 예외 처리 - DefaultHandlerExceptionResolverDefaultHandlerExceptionResolver` 는 스프링 내부에서 발생하는 스프링 예외를 해결한다. 대표적으로 파라미터 바인딩 시점에 타입이 맞지 않으면 내부에서 `TypeMismatchException` 이 발생하는데, 이 경우 예외가 발생했기 때문에 그냥 두면 서블릿 컨테이너까지 오류가 올라가고, 결과적으로 500 오류가 발생한다. 그런데 파라미터 바인딩은 대부분 클라이언트가 HTTP 요청 정보를 잘못 호출해서 발생하는 문제이다. HTTP 에서는이런 경우 HTTP 상태 코드 400을 사용하도록 되어 있다.`DefaultHandlerExceptionResolver` 는 이것을 500 오류가 아니라 HTTP 상태 코..
API 예외 처리 - ResponseStatusExceptionResolverResponseStatusExceptionResolver는 예외에 따라서 HTTP 상태 코드를 지정해주는 역할을 한다.다음 두 가지 경우를 처리한다.1) @ResponseStatus가 달려있는 예외2) ResponseStatusException 예외@ResponseStatus가 달려있는 예외예외에 다음과 같이 `@ResponseStatus` 애노테이션을 적용하면 HTTP 상태 코드를 변경해준다.package hello.exception.exception;import org.springframework.http.HttpStatus;import org.springframework.web.bind.annotation.ResponseS..
API 예외 처리 - HandlerExceptionResolver 활용이 코드에서 예외를 완전히 처리하기예외가 발생하면 WAS까지 예외가 던져지고, WAS에서 오류 페이지 정보를 찾아서 다시 `/error` 를 호출하는 과정은생각해보면 너무 복잡하다. `ExceptionResolver` 를 활용하면 예외가 발생했을 때 이런 복잡한 과정 없이 여기에서문제를 깔끔하게 해결할 수 있다.사용자 정의 UserException 클래스 생성package hello.exception.exception;public class UserException extends RuntimeException { public UserException() { super(); } public UserExcep..