node.js 서버와 그누보드5 서버 병행

node.js 서버와 그누보드5 서버 병행

QA

node.js 서버와 그누보드5 서버 병행

본문

현재 런칭을 위해 개발하고 있는 서비스를 react.js로 개발하고 있습니다, react.js 앱 (빌드된 *.js 파일) 자체는 그누보드5를 설치한 PHP 서버를 통해서 제공되며 node.js 서버는 graphql을 이용한 내부 API 제공을 위해서만 구현해둔 상태 입니다.

 

문제는 그누보드5 내장 기능에 있습니다. 가령 글 올리기와 같은 내부 기능을 node.js 환경에서 사용을 가능하게 하도록 하고 싶으나 현재 개발된 이(node.js -> php 실행)를 지원하지 않고 있는 상황이며, 이미 작성된 그누보드5 코드를 node.js로 포팅할수도 없는 노릇이네요.

 

따라서 그누보드5 코드를 node.js 서버 내부에서 써야 하는 상황이 생기면, node.js 서버에 요청이 들어왔을때 PHP를 올리고 있는 Apache 서버에 요청을 보내서 -- 두 서버는 같은 서버 기기 내에 있습니다 -- 응답을 받아 처리하는 방식으로 진행하려 합니다. 이를테면, `./bbs/write_update.php`와 같은 코드를 실행 시켜야 할때는 node.js에서 POST로 매개변수와 함께 요청을 쏜 뒤, 결과를 node 서버에서 받고 다시 유저에게로 전송 하는거죠.

 

 

세션 변수와 같은 가동에 중요한 데이터들은 Redis로 node.js 서버와 PHP 서버 양쪽이 공유하고 있습니다. 따라서 작동에는 문제가 없어 보입니다. 하지만 문제는 퍼포먼스 입니다. 로컬 서버로 보내는 요청이 서버 성능에 큰 영향을 미칠 정도 일까요? TTFB와 같은 네트워크 처리 시간은 크게 상관이 없는 상황입니다.

 

따라서 질문을 정리하자면 다음과 같습니다:

 

1. 같은 기기에서 동작하고 있는 node.js API 서버에서 그누보드5를 제공하는 PHP 서버로 요청을 전송하여 그누보드5 코드를 실행하는 것은 과연 무거울까요? (혹은 성능이 많이 차이가 날까요?)

 

2. 리눅스 서버를 호스팅해주는 여러 VPS 서비스들 (혹은 일반 국내 호스팅 서비스들) 이 과연 로컬에서 로컬로 보내는 요청에 대해서 트래픽 계산을 할까요? 

 

-

 

혹시라도 '왜 편하게 그누보드5를 포기하고 node.js로 직접 서버를 개발하지 않는가' 하는 의견을 가지시는 분들이 있을까봐 첨언하자면, 개발 기간이 길지 않는다는 점이 가장 큰 이유일 것이고 무엇보다 대부분의 'reinventing the wheel' 은 상당히 결과가 좋지 않음을 제 스스로 알기 때문이라고 말씀 드리고 싶습니다.

 

이 질문에 댓글 쓰기 :

답변 1

똑같은 작업을 해본적은 없지만, 아는 범위 내에서 설명드리겠습니다.

1. 비동기 요청을 보내는거라면 문제가 없습니다만, 동기요청을 보내면 문제가 발생할 가능성이 높아집니다. 이 문제를 해결하기 위해선 nodejs 데몬을 여러개 실행하는 방식을 사용해야 할것입니다. nodejs 데몬이 늘어난다면 큰 문제는 없을걸로 보여집니다.

 

2. 사설아이피(192.168.x 또는 10.0.x) 를 이용한 내부망을 구성한 경우는 내부 트래픽에는 과금하지 않습니다. 어짜피 트래픽이 상단 스위치 밖으로 나가지 않습니다. 클라우드의 경우는 과금을 합니다.(대표적으로 aws. 물론 트래픽 비용은  공인 아이피 트래픽보다 많이 저렴합니다.)

 

ps) 님이 선택하신 방법은 현재 상황에서 최선이라는데 동의합니다. 중요한건 정해진 시기에 아웃풋이 나올수 있느냐는 것이죠. 아무리 좋은 기술과 아이디어도 시기를 맞추지 않으면 성공하기 어렵다는게 제 지론입니다.  

답변 감사드립니다.

1번 답변에 대해서는 GraphQL 환경에서는 각 클라이언트들의 요청을 concurrency를 유지하면서 처리 하기 때문에 걱정을 안해도 될것 같습니다. 만약 그 작업이 오래 걸린다 해도 다른 유저의 요청까지 blocking 되지는 않을거라 예상을 하고 있긴 합니다.

2번 답변은 네트워크에 대한 지식이 많이 없어서 해매고 있었는데 도움이 정말로 많이 됬습니다. 감사합니다. 추신으로서 해주신 조언도 새겨 듣겠습니다. 다행히 제가 node.js를 선택한게 생산성이 제일 큰 이유였던지라 개발 기간이 상당히 짧아질 것이라 예상하고 있습니다.

Typescript + React + GraphQL 스택을 이용하고 있는데 Plain PHP 보다는 생선성 부분에서 큰 차이가 나서 만족하고 있습니다. (생산성이라고 해봐야 IDE가 제공하는 자동완성 기능이 고작이겠지만요)

혹시라도 다른분이 답변을 달아주실수도 있으니 채택은 천천히 해드리겠습니다

답변을 작성하시기 전에 로그인 해주세요.
전체 126,540 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT