
이번에 꽤 흥미로운 이슈를 하나 겪었다. 동일한 쿼리, 동일한 파라미터로 MyBatis 쿼리를 두 번 실행했는데, 첫 번째 쿼리의 결과와 두 번째 쿼리의 결과가 달랐다. (p6spy를 통해 확인했을 때 두 번째 쿼리는 로그조차 안 찍힘)결론부터 얘기하자면, MyBatis의 1차 캐시 때문에 발생한 문제였다.트랜잭션과 1차 캐시트랜잭션 내에서 1차 캐시가 동작한다는 점을 이해하는 것이 중요하다. MyBatis에서 1차 캐시는 SqlSession 단위로 관리되며, 하나의 트랜잭션 내에서 같은 SqlSession을 사용하기 때문에 트랜잭션 동안 캐시된 데이터는 계속 유지된다. 이 말은 트랜잭션 내에서 같은 쿼리와 파라미터로 데이터 조회 시, 쿼리가 실행되지 않고 1차 캐시에서 결과를 가져온다는 의미다.따라서 ..
PART 0 HTTP의 특징 Stateless 프로토콜 : 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식Connectionless 프로토콜 : 클라이언트가 서버에 요청(Request)을 했을 때, 그 요청에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리방식But, 실제로는 데이터 유지가 필요한 경우가 많음 => Sateful 경우를 대처하기 위해 쿠키와 세션 사용- 쿠키와 세션의 차이점은 상태정보의 저장 위치- 쿠키(클라이언트=로컬=사용자의 브라우저에 저장), 세션(서버에 저장) PART 1 쿠키(Cookie) 사용자의 브라우저에 저장통신할 때 HTTP 헤더에 포함되는 텍스트 데이터 파일이름, 값, 만료기간(지정가능), 경로 정보가 있고 키와 값으로 구성되어 있다해당 사용자의 컴퓨터를 ..
- Total
- Today
- Yesterday
- 캐시
- 1차캐시
- 제우스8
- cleanup policy
- 스레드 동기화
- 넥서스 보관주기
- php
- volatile
- multiple datasource
- 제우스8.5
- myabatis
- AWS
- db 두개
- 카프카
- 도커
- 주키퍼 없는 카프카
- jpa 1차 캐시
- 보관주기
- 넥서스 파일 보관주기
- s3
- docker
- 오블완
- API Gateway
- 네트워크
- cleanup policies
- SynchronousQueue
- spring boot
- 쓰레드 변수
- 다중 데이터소스
- 제우스 로그
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |