개인 프로젝트/기본 프로젝트 환경 세팅(9)
-
머신러닝을 위한 Flask - Node.JS 연동
나는 보통 개발 프로젝트를 진행할 때 서버로 NodeJS를 사용하는데, 머신러닝 관련 라이브러리는 파이썬이 훨씬 잘되어있는 것 같다. 그래서 백단 서버는 NodeJS로 운영하되, client에서 머신러닝 모델을 돌려야 하는 요청이 오면 별도 파이썬 서버로 넘긴 후 결과를 NodeJS로 받아내는 방법이 없을까 고민했다. stackoverflow.com/questions/59738972/can-i-use-node-js-for-the-back-end-and-python-for-the-ai-calculations Can I use Node.js for the back end and Python for the AI calculations? I am trying to create a website in Node.j..
2021.03.11 -
[React-NodeJs-MySQL 프로젝트 세팅(restAPI+GraphQL)] (8) CRUD 테스트
마지막으로 client의 요청과 Server의 처리, DB에 입력과 리턴까지 확인해보겠다. 여기까지 하면 1장에서 그렸던 client(react)-server(node.js)-DB(mysql) 환경 세팅과, restAPI, graphQL을 모두 이용할 수 있는 apollo 환경까지 세팅이 완료된것이다. test로 만든 컨트롤러의 API 중 post 동작만 확인해보겠다. 상세 접근 테이블은 model을 따로 정의하여 컨트롤러로 불러온다. 이렇게 하면 테이블에 메소드로 CRUD를 사용할 수 있게 된다. 이때 주의할 부분은 각 req에 대한 적절한 파싱이다. req.body에 request의 내용이 담기므로, 잘 파싱에서 ORM 문법에 맞도록 쿼리를 돌려준다. post 요청을 화면에서 날리니까 서버 결과도 잘..
2021.03.10 -
[React-NodeJs-MySQL 프로젝트 세팅(restAPI+GraphQL)] (7) server: DB환경 세팅- RDS 생성 및 연결,ORM(Sequelize) 세팅 및 테스트
필요한 서버, 클라이언트 환경 구축과 통신, api에 대한 기본적인 테스트까지 모두 끝났다. 이제DB를 세팅하여 실제 DB에 접근해보고, 다음장에서 최종 테스트를 해보겠다. 1) DB 생성 DB는 MySQL을 사용할것이다. MySQL은 AWS의 RDS를 사용한다. public 접근을 모두 허용해주어야 한다. DB정보 중 엔드포인트, 포트, 사용자, 비밀번호 네가지를 기억하자. 모두 서버에서 연결할 때 config로 사용할 정보들이다. graphQL은 추후에 MongoDB를 이용할까 하는데, 이번 세팅에서는 restAPI만 DB에 연결해보겠다. MongoDB는 MongoDB대로 Mongoose를 사용하여 연결하면 된다. 2) Sequelize 설치 및 세팅 DB 스키마를 서버에서 관리하기 위해서는 mode..
2021.03.10 -
[React-NodeJs-MySQL 프로젝트 세팅(restAPI+GraphQL)] (6) client-server: Rest API 테스트
client와 server를 연결하여 apollo를 통한 GraphQL 동작을 확인했으니, 이제 restAPI 동작을 확인해보겠다. 화면 구성은 graphQL 테스트와 동일하고, get과 post만 확인해보겠다. react에서 restAPI를 요청할때는 주로 axios 모듈을 사용한다. 각 위젯에 axios call 이벤트를 달아놓는다. axios는 (링크, 데이터)의 형이다. response를 객체에 담아 활용할 수 있다. DB접근 환경은 아직 구축되지 않았으므로 주석처리하고, 제대로 req가 도달하는지만 확인해보겠다. 이때 body parser가 없으면 제대로 req를 읽지 못하므로, app객체에 반드시 사용해야함을 기억하자. endpoint 역시 graphQL과 달리 각 axios마다 정의해준다. ..
2021.03.10 -
[React-NodeJs-MySQL 프로젝트 세팅(restAPI+GraphQL)] (5) client: Apollo client 세팅 및 테스트
4장에서 graphQL을 사용하기 위한 서버를 모두 세팅하였으니, 이제 이를 client와 연결하여 사용할 수 있도록 세팅해보자 이 프로젝트는 apollo-client를 사용할것이다. 설정관련 폴더 구조는 다음과 같다. client에서 apollo client 객체를 생성하는데, 이 옵션에는 반드시 cache와 link가 있어야 하기에 두개의 파일을 더 만들어주었다. 1) 필요한 패키지 설치 및 client, link, cache파일 작성 대부분의 필요한 모듈은 apollo/client에 있지만, link의 경우 업로드 기능이 apollo-upload-client에서만 가능하다. 따라서 기존에 쓰는 HttpLink를 사용하지 못하고 creatUploadLink를 만들어 사용하려 한다. 단, 사진 업로드같..
2021.03.10 -
[React-NodeJs-MySQL 프로젝트 세팅(restAPI+GraphQL)] (4) server: Apollo server 세팅 및 테스트
server에서 graphQL을 사용하기 위해 Apollo server 프레임워크를 설치하겠다. 필요한 graphql 및 apollo 관련 패키지들을 설치하고, 로직들을 순서에 따라 작성하겠다. graphQL은 컴파일 시점에서 모든 스키마와 리졸버를 하나로 merge하여야한다. 그래야 하나의 endpoint를 사용하는 graphQL의 방식을 맞출 수 있고, client의 요청이 merge된 스키마에서 적절한 타입을 찾아 로직을 실행하게 된다. 1) 패키지 설치 및 package.json 스크립트 정의 필요한 패키지는 다음과 같다. 이 중 concurrently는 package.json의 스크립트를 동시에 실행하도록 해준다. generate command를 하나 더 만들고, graphql-codegen을 ..
2021.03.10