인프런 김영한님 스프링 DB 1편 - 데이터 접근 핵심 원리강의 중 4장을 보고 핵심 내용을 정리했습니다. 애플리케이션 구조를 나누는 이유여러가지 애플리케이션 구조가 있지만, 가장 단순하면서 많이 사용하는 방법은 역할에 따라 3가지 계층으로 나누는 것 이다.프레젠테이션 계층UI와 관련된 처리 담당 웹 요청과 응답 사용자 요청을 검증주 사용 기술: 서블릿과 HTTP 같은 웹 기술, 스프링 MVC 서비스 계층비즈니스 로직을 담당주 사용 기술: 가급적 특정 기술에 의존하지 않고, 순수 자바 코드로 작성데이터 접근 계층실제 데이터베이스에 접근하는 코드주 사용 기술: JDBC, JPA, File, Redis, Mongo ...순수한 서비스 계층여기서 가장 중요한 곳은 어..
인프런 김영한님 스프링 DB 1편 - 데이터 접근 핵심 원리강의 중 2장을 보고 핵심 내용을 정리했습니다. 트랜잭션 - 개념 이해데이터를 저장할 때 단순히 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유는 무엇일까? 여러가지 이유가 있지만, 가장 대표적인 이유는 바로 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문이다. 트랜잭션을 이름 그대로 번역하면 거래라는 뜻이다. 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻한다. 일반적인 예시 계좌이체 (모든 것이 제대로 수행되어야 거래 완료)5000원 계좌이체 1. A의 잔고를 5000원 감소 2. B의 잔고를 5000원 증가 데이터베이스가 제공하는 트랜잭션 기능을 사용하면 1,2 둘다 함께 ..
인프런 김영한님 스프링 DB 1편 - 데이터 접근 핵심 원리강의 중 2장을 보고 핵심 내용을 정리했습니다. 커넥션 풀(Connection Pool)이란?직접 데이터베이스 커넥션을 매번 획득할 때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 드라이버는 커넥션 객체를 생성해서 클라..