티스토리챌린지2 Springboot 어노테이션을 알아보자 - Transactional 트랜잭션이란?트랜잭션은 데이터베이스에서 하나의 작업 단위를 의미합니다. 여러 데이터 조작 작업이 하나의 논리적인 작업으로 묶여 원자성(Atomicity)을 갖습니다. 즉, 모든 작업이 성공적으로 완료되거나, 실패 시 모두 롤백됩니다.ACID 원칙트랜잭션은 다음과 같은 ACID 원칙을 따릅니다:원자성 (Atomicity): 트랜잭션 내의 모든 작업이 모두 적용되거나 전혀 적용되지 않아야 합니다.일관성 (Consistency): 트랜잭션 전후에 데이터베이스는 일관된 상태를 유지해야 합니다.격리성 (Isolation): 동시에 실행되는 트랜잭션들이 서로 간섭하지 않아야 합니다.지속성 (Durability): 트랜잭션이 커밋되면 그 결과는 영구적으로 저장되어야 합니다. 언제 @Transactional을 사용해야.. 2024. 11. 13. HikariCP? maximum-pool-size? minimum-idle? 개인 프로젝트를 진행하거나 테스트할 때는 몰랐지만, 이번 교내 프로젝트를 진행하면서 DB connection waiting 문제에 직면했다.개발을 완료하고 유저테스트를 준비해 진행했다. 교내 같은 과 지인들에게 사용법과 유의사항 등과 함께 서비스를 내놓았다. 처음 사용자가 내가 만든 서비스에 들어와 테스트한다는 게 얼마나 떨리고 신나는 일인지 아마 직접 해본 사람들은 알 것이다. 순탄하게 진행되던 중 10명 정도의 사용자가 들어왔을 때 서버가 엄청나게 느려지더니 접속이 안되기 시작했다. '무슨 일이지?'라는 생각에 급하게 서버 로그를 확인했는데, HikariPool-1 - Connection is not available라는 에러 메시지를 확인했다. 처음 보는 에러 메시지에 당황했지만 빠르게 에러를 찾아.. 2024. 11. 9. 이전 1 다음