동적 API URL 설정

This commit is contained in:
2025-09-04 12:02:35 +09:00
parent 2d6b0fc7ce
commit a03db24ab9
2 changed files with 15 additions and 13 deletions

View File

@@ -29,7 +29,7 @@ app.use(express.urlencoded({ extended: true, limit: "10mb" }));
// CORS 설정
app.use(
cors({
origin: config.cors.origin.split(',').map(url => url.trim()),
origin: config.cors.origin.split(",").map((url) => url.trim()),
credentials: true,
methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
allowedHeaders: ["Content-Type", "Authorization", "X-Requested-With"],
@@ -84,11 +84,13 @@ app.use(errorHandler);
// 서버 시작
const PORT = config.port;
const HOST = config.host;
app.listen(PORT, () => {
logger.info(`🚀 Server is running on port ${PORT}`);
app.listen(PORT, HOST, () => {
logger.info(`🚀 Server is running on ${HOST}:${PORT}`);
logger.info(`📊 Environment: ${config.nodeEnv}`);
logger.info(`🔗 Health check: http://localhost:${PORT}/health`);
logger.info(`🔗 Health check: http://${HOST}:${PORT}/health`);
logger.info(`🌐 External access: http://39.117.244.52:${PORT}/health`);
});
export default app;

View File

@@ -2,24 +2,24 @@ import axios, { AxiosResponse, AxiosError } from "axios";
// API 기본 URL 동적 설정 (클라이언트 사이드에서 현재 도메인 기반으로 결정)
const getApiBaseUrl = (): string => {
if (typeof window !== 'undefined') {
if (typeof window !== "undefined") {
const currentHost = window.location.hostname;
const currentPort = window.location.port;
// 외부 IP로 접근한 경우
if (currentHost === '39.117.244.52') {
return 'http://39.117.244.52:8080/api';
if (currentHost === "39.117.244.52") {
return "http://39.117.244.52:8080/api";
}
// 내부 IP로 접근한 경우
else if (currentHost === '192.168.0.70') {
return 'http://192.168.0.70:8080/api';
else if (currentHost === "192.168.0.70") {
return "http://192.168.0.70:8080/api";
}
// localhost로 접근한 경우
else if (currentHost === 'localhost' || currentHost === '127.0.0.1') {
return 'http://localhost:8080/api';
else if (currentHost === "localhost" || currentHost === "127.0.0.1") {
return "http://localhost:8080/api";
}
}
// 서버 사이드 렌더링이나 기본값
return process.env.NEXT_PUBLIC_API_URL || "http://39.117.244.52:8080/api";
};