docker-compose로 실행된 MongoDB 컨테이너와 로컬 MongoDB Atlas 클러스터를 연결하고, spring application을 실행하니
javax.net.ssl.SSLException: Received fatal alert: internal_error
위와 같은 error가 발생했다.
찾아보니
internal_error가 발생한 이유는 MongoDB Atlas에 IP 주소를 허용하지 않아서 발생하는 문제로,
MongoDB Atlas의 네트워크 접근 설정에서 해당 Docker 컨테이너의 IP 주소가 허용 목록에 추가되어 있어야 연결이 원활하게 이루어질 수 있다고 한다.
MongoDB Atlas에 접속 후 해당 프로젝트를 누르고 좌측 메뉴에서 Network Access를 클릭 후 해당 IP 주소를 추가하면 끝!
curl -4 ifconfig.me
명령어를 통해 로컬 공인 IP 주소를 확인했다.

현재 로컬에서 실행된 Docker Compose의 로컬 공인 IP 주소를 입력했으나, 후에 배포환경에서 Docker Compose를 실행하려면 추후에 배포 서버의 공인 IP주소를 추가하면 된다!
MongoDB Atlas는 기본적으로 SSL/TLS를 통해 클라이언트와의 통신한다고 한다.
근데, 어떻게 Docker Compose나 Spring 애플리케이션이 SSL 인증서를 직접 사용하지 않았는데, MongoDB Atlas와 통신할 수 있는 이유가 뭘까 궁금해졌다..
MongoDB URI의 기본 설정:
mongodb+srv:// 프로토콜을 사용하는 경우, 드라이버는 기본적으로 SSL을 사용하도록 설정된다.
예를 들어, 다음과 같이 yml파일에 URI를 작성할 때:
SPRING_DATA_MONGODB_URI: mongodb+srv://username:password@cluster0.mongodb.net/myDatabase
드라이버는 자동으로 SSL을 사용하여 Atlas와 통신한다고 한다.

아하!