1. 중앙 집중식 관리
- 모든 환경 변수와 상수는 한 곳에서 관리, 다른 파일에서 동일한 값을 사용하여도 일관성을 유지
- 변경이 필요할 때 한 곳에서만 수정하면 된다.
- 환경 변수, 상수의 직접 사용이 아니기 때문에 코드가 명확해지는 효과
- 필요한 경우 개발, 테스트, 프로덕션 환경 별로 다른 설정 사용이 가능하다.
src 폴더에 constans폴더를 생성하고 env.js 파일을 만들어줍니다. 그리고, .env 파일을 만들어 줍니다.
.env 파일 안에는
위와 같이 서버의 주소(HOST), 포트 번호(PORT), CLIENT_VERSION 이 들어갑니다.
env.js 파일은 .env 파일에 있는 정보들을 process로 부터 가져와 사용 합니다.
이제 서버로 부터 정보를 가져오고 싶다면 env.js 파일에서 가져오기만 하면 됩니다.
그런데, 패킷 해더와 관련된 상수를 추가하기 위해 contants/header.js 파일을 추가해보겠습니다.
header.js에는
위와 같이
message의 전체 길이를 나타내는 4 Byte 길이와
패킷 타입을 나타내는 1 Byte 정보를 저장해줍니다.
하지만, 위와 같이 작성할 경우 env.js에는 서버와 관련된 상수가 작성 돼 있고,
header.js 파일에는 패킷과 관련된 해더 정보가 작성 돼 있게 돼
중앙 집중화가 이뤄지지 않게 됩니다. 그래서,
src/config/config.js 파일을 만들어
서버와 관련된 상수와 패킷과 관련된 상수를 객체로 만들어 중앙 집중화 해줍니다.
그 결과, 우리는 config.js의 config 객체에서 config.server로 서버의 상수 정보를 가져올 수 있고,
config.client로 클라이언트와 관련된 정보를 가져올 수 있으며,
config.packet으로 패킷과 관련된 정보를 가져올 수 있습니다.
또한, env.js와 header.js 처럼 향후 다른 상수 정보를 기록한 .js 파일이 생기면
import 받아 server, client, packet 처럼 사용할 수 있습니다.
이제, config.js에 작성한 server의 정보로 코드를 수정해보겠습니다.
server.js의 기존 아래의 코드에서
const PORT = 5555를 지우고,
config.server.port, config.server.host를 추가해줍니다.
코드를 수정 후, 서버를 실행시켜보면
기존 서버의 주소가 안 나타나고 IPv6로 출력되던 결과가,
서버가 배포될 확실한 주소 127.0.0.1의 주소로 IPv4로
고정 된 것을 확인할 수 있습니다.
'Node 강의 > 주특기 플러스' 카테고리의 다른 글
2-4 프로토 파일 로드 (0) | 2024.10.22 |
---|---|
2-3 (중요)이벤트 구분, 바이트 배열 분해 (0) | 2024.10.21 |
2-1 실전 게임 서버 만들기 (0) | 2024.10.21 |
1-4 패킷 구조 설계하기 및 코드 구현 (0) | 2024.10.17 |
1-3 간단한 데이터 교환 (0) | 2024.10.17 |