본문 바로가기
내일배움 강의/강의-게임서버

4. 개발 환경 세팅

by GREEN나무 2024. 12. 11.
728x90

🔷 개발환경

⭐Tech Stack: 백엔드 기술 스택
1. 웹 프레임워크 - Node.js의 대표적인 웹 프레임워크인 Express를 이용합니다.
2. 패키지 매니저 - npm 을 이용합니다.
3. 모듈 시스템 - ES6 부터 도입 된 모듈 시스템(ESModule, type: "module")을 이용합니다.

 

🔹 새로운 폴더에 프로젝트 만들기

# 프로젝트 시작
npm init -y

# express socket.io 설치
npm install express socket.io
npm install -D nodemon prettier

# prettier nodemon 설치
npm install -D nodemon prettier

🔹

// package.json에 추가
  
  "type": "module",
  "scripts": {
    "dev" : "nodemon src sever.js",

🔹 .prettierrc 코드

// .prettierrc

{
    "singleQuote": true,
    "semi": true,
    "useTabs": false,
    "tabWidth": 4,
    "trailingComma": "all",
    "printWidth": 100,
    "arrowParens": "always",
    "orderedImports": true,
    "bracketSpacing": true,
    "jsxBracketSameLine": false
  }

 

🔹 readme.md파일을 꼭 만드세요

 

🔹 main을 app.js로 바꾸기

첫번 째 접속 포인트

 

// ./scr/app.js

🔹import { createServer } from 'http';

시스템 상의 node.js가 다운로드받아져 있는 거라 현재 이 프로젝트 내에서는 찾을 수 없는 내용입니다.

하지만 기본적으로 다 깔려있어서 Node.js가 당영히 가지고 있는 모듈이라 Intellij에서 지원해주는 기능입니다.

활성화 시켜주어야 합니다.(안해도 되던데...?)

 

URL 인코딩을 자동으로 바디파싱 해줌

// ./src/app.js
import express from 'express';
//'http'는 시스템 상의 node.js가 다운로드받아져 있습니다.
import { createServer, Server } from 'http';

const app = express();
const server = createServer(app);

const PORT = 3000;

app.use(express.json());
// URL 인코딩을 자동으로 바디파싱 해줌
app.use(express.urlencoded({ extended: false }));

server.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

 

🔹 서버 테스트

※ 127.0.0.1은 컴퓨터 네트워크에서 로컬호스트를 가리키는 특별한 IP 주소입니다.

// test 기본url로 'Hello World!' string을 뿌리기
app.get('/', (req, res) => {
    res.send('Hello World!');
});

🔹기본 express 세팅

import express from 'express';
//'http'는 시스템 상의 node.js가 다운로드받아져 있는 것
import { createServer, Server } from 'http';

const app = express();
const server = createServer(app);

const PORT = 3000;

app.use(express.json());
// URL 인코딩을 자동으로 바디파싱 해줌
app.use(express.urlencoded({ extended: false }));

// test 기본url로 'Hello World!' string을 뿌리기
app.get('/', (req, res) => {
    res.send('Hello World!');
});

server.listen(PORT, () => {
    console.log('example');
    console.log(`Server is running on port ${PORT}`);
});

 

🔷 socket.io 세팅

폴더 이름이 init인 이유 : 서버가 실행될 때 이 안의 내용이 항상 호출되어 함께 실행된다.

// ./src/init/socket.js

// socket.io 라이브러리 사용
// socket.io에서 Server를 가져와 SocketIO라는 이름으로 사용하겠습니다.
// as는 이름을 바꿀 수 있습니다. SQL에서 컬럼이름 바꿔서 보여주기 같은 것
import { Server as SocketIO } from 'socket.io';

const initSocket = (server) => {
    // SocketIO 서버 생성
    const io = new SocketIO();
    // io.attach로 서버에 연결
    // 여기에서 server는 app.js의 서버
    io.attach(server);
};

export default initSocket;

app.js에 추가

import initSocket from './init/socket.js';

// socketIO 와 연결
initSocket(server);

 

 

 

 

 

 

 

 

 

Node,js

Express

websocket

로만 로직 작성하기

db는 다음시간에

학습

🔷🔹🟦

문자티콘 : https://xn--yq5bk9r.com/blog/emoji-lock

 


 


 



 


숙제

 


※ 요약

 

※ 기억할 것

 

※Tip

'내일배움 강의 > 강의-게임서버' 카테고리의 다른 글

5. 서버 로직 개발  (0) 2024.12.12
3. 게임 기획해보기  (2) 2024.12.11
2. HTTP, TCP, 웹소켓  (2) 2024.12.11
1. 게임 개발의 시작  (1) 2024.12.10