api 를 받아서 띄워주는걸 만들고 있었는데 어떻게 api를 만드는지 궁금했음


공지사항 데이터(JSON)를 클라이언트에 제공하는 HTTP 기반의 API 서버
즉, 공지사항 API 서버를 직접 설계하고 배포하는 걸 해보자~
Application Programming Interface = 기능을 외부에 제공하는 “입구”
"공지사항 데이터를 요청하면 JSON으로 보내주는 기능"
그 API 기능을 직접 실행하고 응답해주는 서버 프로그램
서버 만들기
app.get('/notice', (req, res) => {
res.json({
notices: [ ... ]
});
});
→ 이게 바로 공지사항 API 생성 코드입니다.
“공지사항 API 서버 만들기” 흐름 정리
| 단계 | 설명 | 우리가 했던 일 |
| 1단계 | Node.js 프로젝트 생성 | npm init, express 설치 |
| 2단계 | 공지사항 데이터 작성 | 처음엔 코드 내부에 직접 작성함 |
| 3단계 | API 라우터 만들기 | GET /notice 라우터 작성 |
| 4단계 | JSON 응답 처리 | res.json({ notices: [...] }) |
| 5단계 | 서버 실행 | node server.js 또는 Render 배포 |
| 6단계 | Unity에서 호출 | UnityWebRequest.Get(...)으로 JSON 수신 |
1. Node.js 설치
2. 프로젝트 폴더 만들기
터미널(cmd, PowerShell, zsh 등)에서:
mkdir notice-api
cd notice-api
-> notice-api 폴더경로는 C:\Users\이름 \notice-api 에 저장됨
3단계: Node.js 프로젝트 초기화
npm init -y
→ package.json 파일이 생성됩니다.
4단계: 필요한 라이브러리 설치
npm install express cors
- express: 웹 서버 기능
- cors: Unity에서 호출할 수 있도록 CORS 허용
5단계: API 서버 코드 작성 (server.js)
폴더 안에 server.js 파일을 새로 만들고, 아래 코드 붙여넣기:
// server.js
const express = require('express');
const cors = require('cors');
const app = express();
const port = 3000;
// CORS 허용 (Unity에서 호출 가능하게 함)
app.use(cors());
app.get('/notice', (req, res) => {
res.json({
notices: [
{
title: "업데이트 공지",
body: "버전 1.1 업데이트가 진행됩니다.",
date: "2025-08-08"
},
{
title: "서버 점검",
body: "2025년 8월 10일 10시부터 점검이 있습니다.",
date: "2025-08-10"
}
]
});
});
app.listen(port, () => {
console.log(` 공지사항 서버 실행 중 → http://localhost:${port}/notice`);
});
6단계: 서버 실행
터미널에서 아래 명령어 입력:
node server.js
화면에 다음처럼 나오면 성공입니다:
공지사항 서버 실행 중 → http://localhost:3000/notice

7단계: Unity에서 연결 테스트
Unity 코드에 있는 NOTICE_API_URL을 아래처럼 바꾸세요:
private const string NOTICE_API_URL = "http://localhost:3000/notice";
그 후 Unity에서 실행하면 noticeManager.FetchNoticeListAsync(...) 함수가 위 JSON을 받아와서 공지사항을 출력합니다.


====
핵심 키워드
Node.js, Express, CORS, REST, GET /notice
코드 분석
const express = require('express'); // 서버 프레임워크
const cors = require('cors'); // 외부 요청 허용 (CORS)
app.get('/notice', (req, res) => {
res.json({ notices: [ ... ] }); // JSON 형식으로 응답
});
/notice라는 경로로 들어오는 요청에 대해 JSON을 반환합니다.
Unity에서 http://localhost:3000/notice로 요청하면 이 JSON을 받게 됩니다.
로컬로 접속 가능!
다만 지금은 Node.js로 만든 공지사항 서버가 "내 컴퓨터 안에서만" 실행
다른 사람이나 Unity WebGL 빌드 같은 외부 클라이언트에서 이 서버에 접속하려면
"인터넷에 노출된 서버"로 배포해야함!
2탄)
https://thenight-avicii.tistory.com/242
[node.js, 유니티] 공지사항 API 서버 만들기_2탄
이전에서는 로컬로만 돌려봤는데 "인터넷에 노출된 서버"로 배포해보자 그럼 어떻게 외부 접속을 열까?1. ✅ ngrok (임시 URL 제공)로컬 서버를 외부에서 접속할 수 있게 터널링주소 예: https://b3a2-xx
thenight-avicii.tistory.com
-
[node.js, 유니티] 공지사항 API 서버 만들기_2탄
이전에서는 로컬로만 돌려봤는데 "인터넷에 노출된 서버"로 배포해보자 그럼 어떻게 외부 접속을 열까?1. ✅ ngrok (임시 URL 제공)로컬 서버를 외부에서 접속할 수 있게 터널링주소 예: https://b3a2-xx
thenight-avicii.tistory.com
'유니티' 카테고리의 다른 글
| 공지사항 API 서버 만들기 & 실무 확장 흐름 (0) | 2025.08.08 |
|---|---|
| [node.js, 유니티] 공지사항 API 서버 만들기_2탄 (0) | 2025.08.08 |
| Unity 공지사항 시스템 개발 - Unity ↔ REST API 연동 핵심 기술 정리 (0) | 2025.08.08 |
| 델파이 조사란? (0) | 2025.08.07 |
| Unity WebGL에서 videoPlayer.url 만들기(CORS 피하기) (0) | 2025.08.07 |