Node.js(버전 18.20.6)와 Express(버전 4.18.2) 환경에서 여러 플랫폼을
모듈화된 구조로 관리할 수 있도록 설계된 강력한 백엔드 서버입니다.
인증, DB 연결, 라우트 등록 등 공통된 기능을 공통 모듈에 담고,
각 플랫폼에 맞는 환경을 폴더 단위로 분리하여
확장성과 유지보수성을 극대화했습니다.
주요 특징:
각 폴더와 파일은 다음과 같은 책임을 갖습니다.
통합 backend server/
├── public/ # 정적 HTML 파일 (404, 500 등)
├── serverUtils/ # 서버 공통 유틸리티 모듈
│ ├─ getPlatforms.js # 플랫폼 디렉토리 자동 탐색
│ ├─ loadDatabases.js # 플랫폼별 MongoDB 연결
│ ├─ loadRoutes.js # 플랫폼별 라우트 등록
│ └─ logger.js # 로그 출력 (chalk 기반)
├── src/
│ ├─ common/ # 공통 서비스 (IPFS, 이메일, 이미지 등)
│ │ ├─ email/
│ │ ├─ IPFS/
│ │ ├─ LLM/
│ │ ├─ media/
│ │ └─ middleware/
│ ├─ identity/ # 유저 인증 및 관리
│ │ ├─ config/
│ │ ├─ controllers/
│ │ ├─ models/
│ │ ├─ routes/
│ │ └─ services/
│ └─ platforms/ # 플랫폼별 독립 모듈 구조 (A, B, C...)
│ ├─ platformA/
│ ├─ platformB/
│ └─ ...
├── .env # 환경 변수 설정
└── server.js # 서버 초기 실행 파일
1) 플랫폼 자동 로딩
serverUtils/getPlatforms.js와
serverUtils/loadRoutes.js를 통해
플랫폼을 디렉토리 기준으로 자동 인식 & 라우트 등록합니다.
2) MongoDB 연결 관리
loadDatabases.js로 플랫폼별 MongoDB URI를 설정하고 연결을 점검합니다.
아틀라스 등 클라우드 DB 환경에도 쉽게 확장 가능합니다.
3) 인증 & 보안
auth.js 미들웨어로 JWT 토큰을 검증하며,
identity 디렉토리에서 회원가입, 로그인, 이메일 검증 등의 기능을 제공합니다.
4) 공통 서비스
sendGmail.js: Gmail SMTP를 통한 이메일 전송imgbbUploadService.js: 이미지 업로드 API 연동pinataService.js: IPFS(Pinata)에 데이터 업로드openaiLLMService.js: OpenAI 연동 (텍스트/이미지 생성)5) 미들웨어
auth.js: JWT 인증 처리convertToWebP.js: 이미지 WebP 변환upload.js: multer를 이용한 파일 업로드
# 1) 프로젝트 클론
git clone https://github.com/your-org/multi-platform-backend.git
cd multi-platform-backend
# 2) 의존성 설치
npm install
# 3) .env 파일 설정
PORT=4000
MONGO_URI_PLATFORM_A=Your_MongoDB_URI
JWT_SECRET=Your_Secret_Key
...
# 4) 서버 실행
npm start
본 서버는 .env 파일을 통해 환경 변수를 관리합니다.
인증 서버, 메일, OpenAI, IPFS 같은 주요 토큰을 안전하게 보관하세요.
테스트 & 배포
기여 방법
feat:, fix: 등)src/platforms/ 하위에 폴더 생성