1. Java에서의 객체 소멸자

<aside> 💡 주의할 점

Java에서의 객체 소멸자와 C++에서의 객체 소멸자는 다른 개념입니다.

C++에서의 소멸자는 new로 할당된 자원들을 회수하는 보편적인 방법으로서 사용되나 Java 에서의 객체 소멸자는 객체가 소멸될 때 특정 연산과 같은 행동(behavior)을 정의하는데 사용됩니다.

C++에서의 소멸자와 같은 개념은 Java에서 GC를 떠올리면 되겠습니다.

</aside>

2. 객체 소멸자의 문제점

2-1. 실행되는 것을 보장할 수 없다.

<aside> 💡 Connection Pool 이란?

Connection Pool은 DB Connection 객체를 일정 수 보관하고 있는 저장소와 같은 개념입니다.

Spring과 같은 멀티스레드 환경의 경우, 여러 개의 Connection 객체가 필요할 수 있는데 Connection 객체는 꽤 무거운 객체에 속합니다.

이를 계속 새롭게 생성하고 폐기하는것이 비효율적이므로, 프로그램 시작 시 일정 수의 Connection 객체를 미리 만들어 저장해놓음으로서 여러 개의 Connection 객체가 필요한 상황이 오더라도 대기 시간을 최소화할 수 있습니다.

</aside>