본문 바로가기

spring3

PostgreSQL - Spring JPA Lock Timeout 적용하기 Spring JPA에서 비관적 락 (Pessimistic lock) 사용 시 Lock timeout을 함께 적용해주어야 한다. 그렇지 않으면 락을 얻기위해 무한정 대기하게 될 수 있다. DB종류별 LockTimeout 기본값은 다음과 같다. LockTimeout Oracle MySQL PostgreSQL H2 Apache Derby unit of measurement sec sec ms ms sec nowait (or similar) 0 0 1 1 0 min 0 0 1 1 0 max 2.147.483 oo (no internal limit) 2.147.483.647 2.147.483.647 oo (no internal limit) infinite wait -1 N/A 0 N/A N/A default -1.. 2023. 12. 10.
Oracle DB TestContainers 통합 테스트 구현 배경 테스트 컨테이너는 도커 컨테이너를 활용하여 격리된 테스트 환경을 쉽게 구축할 수 있도록 해줍니다. 컨테이너를 활용한 격리된 테스트 환경의 장점은 다음과 같습니다. (chatGPT 참고) 일관된 테스트 환경 제공: 테스트 컨테이너는 테스트 환경을 컨테이너화하므로, 모든 테스트가 동일한 환경에서 실행됩니다. 이로써 테스트 결과가 일관되며, 테스트 간의 상호 작용 문제를 줄일 수 있습니다. 테스트 격리: 테스트 컨테이너는 테스트 간의 격리를 제공합니다. 각 테스트는 독립적인 컨테이너 내에서 실행되므로 다른 테스트에 영향을 미치지 않습니다. 복잡한 의존성 관리: 테스트 시스템이 복잡한 의존성을 가질 때, 테스트 컨테이너를 사용하면 이러한 의존성을 쉽게 관리할 수 있습니다. 데이터베이스, 메시지 큐, 외부 .. 2023. 10. 25.
1. Spring Microservice 개요 1. 모놀리식아키텍처(monolithic) vs 마이크로서비스(microservice) 모놀리식아키텍처(monolithic) UI, 비즈니스 로직, 데이터베이스 엑세스 로직 모두가 하나의 산출물로 패키징됨. 작은 변경에도 애플리케이션 전체를 다시 빌드, 테스트 및 배포해야함. 애플리케이션이 커질 수록 비용 증가. 마이크로서비스(microservice) 애플리케이션 로직을 각자 책임이 명확한 작은 컴포넌트들로 분해, 조합해서 솔루션을 제공. 각 팀마다 코드와 인프라스트럭처(앱 서버 및 데이터베이스)가 독립적. 독립적 빌드, 테스트, 배포 가능. 데이터 교환을 위해 HTTP, JSON 같은 경량 통신 프로토콜 사용. 다양한 언어와 기술로 애플리케이션 구축 가능 2. 스프링 부트 및 스프링 클라우드 스프링 부.. 2021. 12. 28.