본문 바로가기
유니티

[node.js, 유니티] 공지사항 API 서버 만들기

by 유니티세상 2025. 8. 8.
반응형

 

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 설치

https://nodejs.org/ko

 

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

 

반응형