일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- 오버라이딩
- 오블완
- 코드트리
- 서블릿
- fielderror
- 의존관계
- 싱글톤
- 스프링
- 프록시
- 김영한
- HttpServletResponse
- 코딩테스트
- 티스토리챌린지
- 코드트리조별과제
- JSON
- 추상클래스
- 인터페이스
- 참조변수
- objecterror
- 스프링컨테이너
- equals()
- http 메시지 컨버터
- 다형성
- ocp
- java
- DI
- html form
- 테스트코드
- @configuration
- Today
- Total
목록TIL (147)
minOS
JDBC 등장 배경JDBC(Java Database Connectivity)는 Java 애플리케이션이 데이터베이스와 상호작용할 수 있게 해주는 표준 API이다.JDBC가 등장한 배경에는 다음과 같은 이유가 있다:1. 데이터베이스 독립성 확보: 기존에는 각 데이터베이스마다 고유한 API나 드라이버를 사용해야 했기 때문에, 특정 데이터베이스에 종속되지 않고 다양한 데이터베이스와 연결할 수 있는 표준화된 API가 필요했다. 2. Java의 성장과 엔터프라이즈 애플리케이션 요구: Java가 비즈니스 애플리케이션에 널리 사용되면서, Java 애플리케이션과 데이터베이스 간의 안정적이고 효율적인 연결이 필수적이 되었다. 3. 객체지향 접근 방식과 데이터베이스 연결 간의 간극 해소: Java는 객체지향 언어이지만 대부..
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..