본문 바로가기
유니티

공지사항 API 서버 만들기 & 실무 확장 흐름

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

✅ STEP 0: 공지사항 API 서버 만들기 (완료)

👉 가장 기본적인 서버 만들기와 배포

  • Node.js + Express 사용

  • /notice 라우트에서 JSON 형식 공지사항 반환

  • CORS 허용 (app.use(cors()))

  • Render에 배포하여 외부에서 접근 가능하게 설정

  • 예시 주소: https://my-notice-api.onrender.com/notice

// server.js 주요 코드 예시

app.get('/notice', (req, res) => {

  res.json({

    notices: [

      { title: "업데이트", body: "1.1 업데이트", date: "2025-08-08" }

    ]

  });

});

 


✅ STEP 1: JSON → DB 연동 (데이터 실시간 관리)

👉 JSON 대신 DB에서 공지사항을 불러오도록 변경,실제 서비스에 쓰기 위한 준비

🔹 방법

  • MongoDB 또는 Firebase Firestore 사용

  • 서버 시작 시 또는 요청마다 DB에서 데이터 읽기

  • 실시간 추가/삭제가 가능해짐


✅ STEP 2: 로그인 기능 + JWT 발급

👉 유저 인증 기능 추가 (관리자/일반 유저 구분 가능)

🔹 흐름

  1. POST /login 요청 (아이디/비밀번호)

  2. 서버에서 로그인 확인

  3. 로그인 성공 → JWT 토큰 발급

  4. 클라이언트가 이후 요청에 JWT 포함

🔹 JWT란?

  • JSON Web Token

  • 로그인 정보를 담은 토큰

  • "누가 보냈는지" 서버가 확인 가능


✅ STEP 3: 인증된 사용자만 공지 추가 허용

👉 인증되지 않은 사용자는 /notice/add 호출 불가 → "관리자만 공지 추가 가능" = 역할별 API 접근 제어

🔹 구현

  • POST /notice/add 라우트 생성

  • Authorization 헤더에서 JWT 확인

  • 토큰이 유효하면 저장, 아니면 401 Unauthorized 응답


✅ STEP 4: Unity ↔ Node.js 연동

👉 Unity에서 안전하게 API 요청 보내기, 유저 인증을 포함한 안전한 API 통신 완성

🔹 UnityWebRequest 사용 예시

UnityWebRequest request = UnityWebRequest.Get("https://my-api.com/notice");

request.SetRequestHeader("Authorization", "Bearer " + jwtToken);

await request.SendWebRequest();

 

🔹 서버에서는 JWT 검증 후 응답 처리


🔁 실무에서의 흐름 요약

단계 목적 기술 스택 예시
STEP 0 서버 만들기 & 배포 Node.js, Express, Render
STEP 1 데이터 관리 MongoDB, Firebase
STEP 2 로그인 인증 JWT, bcrypt
STEP 3 접근 제어 Middleware, Authorization 헤더
STEP 4 유니티 연동 UnityWebRequest, async/await

 

전체 Flow Chart

 

💡 Flow 설명:

  • 일반 사용자: /notice API 호출

  • 관리자: 로그인 → JWT 발급 → 공지사항 추가 API 호출

  • 서버: DB에서 데이터를 읽거나 저장


📑 2. 공지사항 API 명세

메서드 경로 설명 인증 필요 요청 바디/쿼리
GET /notice 모든 공지사항 목록 불러오기 없음
POST /login 로그인 요청 (JWT 발급) { username, password }
POST /notice/add 새로운 공지사항 추가 ✅ JWT 필요 { title, body, date }

✅ 인증이 필요한 API는 Authorization: Bearer <token> 헤더를 포함해야 합니다.



반응형