inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 DB 1편 - 데이터 접근 핵심 원리

트랜잭션 - 적용2

connection 객체는 JSESSIONID를 가진 실제 conection을 생성해주는 객체인 것인가요?

349

컴퓨터공부하자

작성한 질문수 54

0

DB 서버에 DB 클라이언트로 접근할 때는 JSESSIONID만 같으면 어떤 connection이든 같은 클라이언트로 여겨졌고 같은 트렌젝션을 가지게 되는 것 같았습니다.

세션은 서버의 메모리에 남아서 커넥션보다 더 긴 생명주기를 가지고 stateless한 접속들을 stateful하게 처리하기 위한 방법이니까, 엄밀하게 말하면 어플리케이션에 있는 connection도 다른 connection과 JSESSIONID만 공유하면 같은 DB 세션과 트렌젝션을 가질 수 있어야 한다고 생각합니다.

그런데 그런 것이 되지 않는 이유는 자바 스펙에서 connection이라는 객체가 connection 자체가 아니라 실제 connection들을 만들어주는, JSESSIONID를 보관하는 객체이기 때문이라는 생각이 들었습니다.

한 마디로 getConnection()해서 커넥션을 획득해서 close()할 때가지 실질적으로는 하나의 커넥션이 생성되는게 아니라 preparedStatement의 executeQuery()와 executeUpdate()가 실행되어 tcp 통신이 이루어질 때마다 커넥션이 만들어졌다가 사라지고, 그때 connection 객체에서 관리되는 JSESSIONID에 의해서 같은 트렌젝션으로 관리된다는 생각이 들었습니다. 그리고 close()가 하는 역할은 커넥션의 종료라기 보다는 DB서버에 있는 세션을 메모리에서 내리는 역할을 한다는 생각이 들었습니다.

이런 제 생각이 맞을까요?

spring

답변 1

2

김영한

안녕하세요. 컴퓨터공부하자님

일반적으로 데이터베이스 커넥션은 JSESSIONID 같은 내용과는 전혀 무관합니다^^

이 부분은 H2 데이터베이스만의 아주 특별한 동작 방식입니다.

(H2 데이터베이스 웹 콘솔의 특별한 동작 방식으로만 이해하시면 됩니다. 웹 콘솔이 JSESSIONID가 같으면 같은 커넥션을 유지하는 것 같아요.)

그리고 H2 데이터베이스를 사용하더라도 JSESSIONID를 같이 사용하면 안됩니다.

너무 지엽적인 부분이기 때문에 내부 원리를 이해하는 것은 사실상 무의미합니다^^!

감사합니다.

0

컴퓨터공부하자

감사합니다!

트랙잭션 격리수준 선택에 대해서 질문

0

25

1

spring initialiser 어떤걸 선택해야될지 모르겠어요

0

61

2

트랜잭션 템플릿이 체크예외는 커밋하는 이유가 궁금합니다.

0

73

1

jdbc 학습하다 궁금해서 질문드려요

0

104

1

정상이체와 이체중 예외발생 차이

0

86

2

이번 강의부터가 JDBC 직접 사용 맞나요?

0

103

1

순수한 서비스 계층에 대한 의문???

0

94

2

3_4test, 4test 자동 리소스 안됨

0

66

2

데이터베이스 선택 관련 질문.

0

77

2

after 메서드 사용 유무

0

67

2

데이터베이스 접근 및 DB 락

0

65

1

@SpingBootTest, @TestConfiguration

0

68

1

Read Committed 격리 수준 사용 관련 질문

0

62

1

AopCheck Test 부분의 EnhancerBySpring 확인 법??

0

74

2

커리큘럼 관련 질문

0

85

1

서비서 계층 스프링 프레임워크 사용

0

100

1

validation(toMember)의 위치

0

91

2

데이터 계층에서 서비스 로직의 datasource를 인식하는 방법

0

178

2

member 상수 질문

0

140

2

ctrl + F6 이후로 con 인식이 안 됩니다

0

171

2

DrivenManager 와 Connection 반환에 대한 질문입니다!

0

121

1

섹션5 트랜잭션 템플릿관련 질문(이기종 DB)

0

127

1

세션1 테이블 조회결과 그림은 Redo 로그에 속하나요?

0

107

1

트랜잭션이 필요하지 않은 경우 DB 대신 파일 시스템을 사용하는 것이 더 효율적인가?

0

105

1