본문 바로가기

2021스텍 개발 일기~

대충 가늠잡아 본 서버 구조

먼저 내가 맡게 된 부분은 누구(NUGU)와 연결하는 서버 api였다. 누구는 SKT에서 개발한 인공지능이다. 누구에 대해 궁금하다면 밑에 나오는 링크에 들어가서 보면 될 것 같다.

 

누구(NUGU)

 

이 서버는 누구를 통해 받은 사용자의 발화에서 식물의 이름을 얻어 해당 식물의 재배 방법을 다시 누구로 보내주는 역할을 한다. 

 

예시를 한번 보자

 

사용자 : 파는 어떻게 키워?

누구 : 파는 수경 재배를 통해 키워요. 수경 재배에 대해 알려드릴까요?

사용자 : 그래

누구 : 수경 재배는 파의 뿌리 부분을 물에 담그고, 하루에 한번 물에 갈아주면 되는 방법입니다.

 

 

사용자의 첫번째 발화에서 '파'라는 식물의 이름을 얻어온다. 그리고 '파'의 재배 방법인 수경재배를 찾아온다. 

수경 재배를 사용자에게 알려준 뒤 한번 더 사용자에게 대답을 받는다. 알았다는 뜻의 대답이라면 자세한 설명을, 아니라는 뜻의 대답이라면 그대로 대화를 종료하게 된다. 

 

 


 

간단하게 서버 구조에 대해 짜봤다.

서버에서 입력은 request, 출력은 response 라고 한다.

이 서버에서 request는 사용자가 말한 식물의 이름이고 response는 식물의 재배 방법이다.

 

 

누구와 연결하는 서버는 Backend proxy라고 하는데 누구와 연동하기 위해서는 별도의 규격이 있다. 하지만 지금은 서버 짜는 초반이니 상관하지 않고 짜보도록 하겠다. 

 

 

GET과 POST의 차이

데이터의 전송 방식을 보통 GET 또는 POST로 하게 된다. 각자의 장단점이 있기 때문에 잘 골라서 사용하면 된다. 간단한 차이점을 보자면 GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고 쿼리스트링으로 전송하고, POST는 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송한다. 

 

특별히 보안할 점이 없지만 그래도 POST 방식을 통해 만들어보겠다.

서버의 경로는 localhost:8080/plant/search 이다. 

이 서버는 식물의 이름을 입력했을 때, 해당 식물의 관한 재배 방법을 제공한다.

 

POST localhost:8080/plant/search

Request Param : 

name -> 식물의 이름

Response :

200 -> 성공 시 name에 해당하는 식물의 재배 방법을 전송한다.

 

 

 

 

 

 

 

 

 


node 기본 테스트

 

개발할 땐 atom을 사용했다. 별다른 이유는 없지만 처음 node를 배웠을 때 사용했던 에디터여서 계속 사용하고 있는 것 같다. 

 

기본 패키지를 설치해준다.

express를 설치했다.

package.json

 

사실 express를 설치하기 전 package.json 파일을 생성해서 기본 정보들을 적었다.

 

package.json

 

이 파일의 내용은 직접 수정해서 바꿀 수 있으니 일단은 정말 기본만 적었다.

 

 

위에서 express모듈을 설치해줬으니 현재 파일 목록은 이런 상태이다.

 

현재 파일 목록

 

조금 더 위에서 언급했듯이 파일 경로를 plant/search 이런 식으로 잡았기 때문에 plant라는 폴더를 항상 생성해서 그 안에 search라는 js 파일을 하나 만들어준다.

 

현재 파일 목록

 

 

search.js 안에 이런 내용을 적어준다.

 

const express = require('express');

const app = express();
app.set('port', process.env.PORT || 8080);

app.use('/', (req, res) => {
  res.send('Test');
})
app.listen(app.get('port'), () => {
  console.log(app.get('port'), '번 포트에서 대기 중');
})

 

이제 인터넷 창을 열어 localhost:8080 이라고 치면 화면에 Test  라는 문구가 뜬다. 콘솔 창에는 8080번 포트에서 대기 중이라는 문구가 뜬다.

 

콘솔창 문구

 

 

인터넷 창 문구

 

 

이걸로 기본 테스트는 끝!