일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- html form
- 서블릿
- 오버라이딩
- 의존관계
- 코딩테스트
- 싱글톤
- 오블완
- 테스트코드
- 코드트리조별과제
- 참조변수
- objecterror
- DI
- 코드트리
- HttpServletResponse
- java
- fielderror
- 프록시
- 스프링컨테이너
- 다형성
- equals()
- http 메시지 컨버터
- 김영한
- ocp
- 추상클래스
- 인터페이스
- 티스토리챌린지
- 백준
- JSON
- 스프링
- @configuration
- Today
- Total
목록2024/11/20 (3)
minOS
트랜잭션 - 개념 이해데이터를 저장할 때 단순히 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유는 무엇일까?여러가지 이유가 있지만, 가장 대표적인 이유는 바로 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문이다.트랜잭션을 이름 그대로 번역하면 거래라는 뜻이다. 이것을 쉽게 풀어서 이야기하면, 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻한다. 그런데 하나의 거래를 안전하게 처리하려면 생각보다 고려해야 할 점이 많다. 예를 들어서 A의 5000원을 B에게 계좌이체한다고 생각해보자. A의 잔고를 5000원 감소하고, B의잔고를 5000원 증가해야한다.5000원 계좌이체1. A의 잔고를 5000원 감소2. B의 잔고를 5000원 증가계좌이체라는 거래는 이렇게 2가지 작..
DataSource이해커넥션을 얻는 방법은 앞서 학습한 JDBC `DriverManager` 를 직접 사용하거나, 커넥션 풀을 사용하는 등 다양한 방법이 존재한다.커넥션을 획득하는 다양한 방법우리가 앞서 JDBC로 개발한 애플리케이션 처럼 `DriverManager` 를 통해서 커넥션을 획득하다가, 커넥션 풀을 사용하는 방법으로 변경하려면 어떻게 해야할까?예를 들어서 애플리케이션 로직에서 `DriverManager` 를 사용해서 커넥션을 획득하다가 `HikariCP` 같은 커넥션 풀을 사용하도록 변경하면 커넥션을 획득하는 애플리케이션 코드도 함께 변경해야 한다. 의존관계가`DriverManager` 에서 `HikariCP`로 변경되기 때문이다. 물론 둘의 사용법도 조금씩 다를 것이다.커넥션을 획득하는 방..
커넥션 풀 이해데이터베이스 커넥션을 매번 획득 데이터베이스 커넥션을 획득할 때는 다음과 같은 복잡한 과정을 거친다.1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다.2. DB 드라이버는 DB와 `TCP/IP` 커넥션을 연결한다. 물론 이 과정에서 3 way handshake 같은 `TCP/IP` 연결을 위한 네트워크 동작이 발생한다.3. DB 드라이버는 `TCP/IP` 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달한다.4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성한다.5. DB는 커넥션 생성이 완료되었다는 응답을 보낸다.6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다.1. 리소스 측면의 문제복잡한 커넥션 생성 과정으로 인한 ..