차이가 무너지 모르겠었다.
커넥션 -> 물리적인 연결
세션 -> 논리적인 연결.
커넥션
- 커넥션은 DB와 클라이언트 간의 TCP 소켓을 통한 물리적인 연결(채널)이다
- 클라이언트가 데이터베이스 서버에 연결을 요청하면 커넥션을 맺게 된다
- 한 커넥션에서 여러 개의 트랜잭션을 동시에 실행시킬 수 없다
세션
- 사용자가 데이터베이스에 연결된 상태를 의미한다
- 세션은 DB와 클라이언트 간의 논리적인 연결이라고도 할 수 있다
- 커넥션 하나 당 여러 개의 세션을 가질 수 있다 (또는 세션을 아예 가지지 않을 수도 있다)
- 커넥션을 통한 모든 요청은 세션을 통해서 실행된다
- 쉽게 말해서 실제 SQL 쿼리 실행은 세션을 통해 이루어진다
- 사용자가 커넥션을 닫으면 세션은 종료된다
- 커넥션이 닫히면 세션은 종료되고, 커밋되지 못한 트랜잭션은 롤백된다.