본문 바로가기
일,/개발 노트

Next.js, Vercel, 카페24(DB) 조합으로 배포 시에 생길 수 있는 이슈

by 무벅 2022. 10. 24.

 

[ic]Next.js[/ic]와 [ic]Vercel[/ic] 조합의 배포는 편하고 좋지만 [ic]Vercel[/ic]은 동적으로 배포 환경을 셋팅하는데 이 과정에서 Server의 ip주소 역시 동적으로 생성된다. 문제는 [ic]카페24[/ic]의 DB 접속 IP가 제한된다는 점이다.

 

카페24에서는 DB에 접속할 수 있는 IP를 설정할 수 있는 기능을 제공한다.

 

현재까지는 카페24 DB에 모든 접속을 허용하는 방법을 찾지 못했다. Vercel에서 안내 하기로는 일반적으로 [ic]0.0.0.0[/ic]과 같은 방식으로 접속 ip를 [ic]public[/ic]으로 설정한다고 하는데 카페24의 경우에는 [ic]0.0.0.0[/ic]은 유효성을 통과하지 못하도록 처리되어 있다.

 

Vercel에서는 고정 ip를 사용할 수 없다고 공식적으로 안내하고 있다.

 

즉, 카페24 관리자에서 고정 ip를 접속할 수 있도록 허용해 주어야 하는데 Vercel의 배포 서버 ip는 고정할 수 없어서 [ic]build[/ic] 과정에서 우선 [ic]Prefetch[/ic] 해야 하는 [ic]SSR[/ic] 환경의 Next.js 백엔드 서버가 카페24 DB에 접속을 할 수 없어서 오류가 발생한다.

 

 

[ic]Deploy[/ic] 로그 에러를 확인해보면 [ic]reason: Unexpected token < in JSON at position 0[/ic] 에러를 표시하기 때문에 에러 내용을 구글링 해보면 솔루션 코드를 얻을 수 있지만, 지금의 이슈는 DB에 접속 자체를 할 수 없는 상황이라서 도움이 되지 않는다.

알고 나면 당연히 원리와 간편한 이해인데 모르는 상태에서 해결하기위한 방식을 하나씩 찾다 보면 꽤 오랜 시간이 걸릴 수 있다.

 

현재 상황에서 솔루션은 아래 두 가지가 있을 것 같다.

 

1. 카페24 DB에 모든 IP가 접속할 수 있는 방법을 찾아낸다. (불확실)

2. 배포를 Vercel이 아닌 다른 방법으로 실행하기 (현재는 [ic]Docker[/ic] 이미지를 생성해서 AWS EC2 서버에 올리는 방식을 생각 중)

 

둘 중 하나 해야 할 듯 하지만 1번은 안될 것 같아서 2번 방식을 시도해 봐야겠다.

 

 

 

반응형

댓글0