GraphQL + MongoDB + Prisma 를 이용하여 REST API 를 대체할 수 있는 서버 만들기REST API 보다 GraphQL 이 더 낫다고 할 순 없지만, 요즘 트렌드 기술인 듯 하여 현재 운영중인 서버에 테스트겸 구축해보면서 기록 전체적인 구조는 아래 이미지와 같다. Prisma 를 사용하는 이유 : GraphQL 서버를 구축해서 사용하려면 리졸버들을 구현해야하는데 이 리졸버를 구현하는거 자체가 까다로운데, Prisma를 이용하면 실제 데이터베이스에 맞는 리졸버를 자동으로 생성하여 연결해주기에 실제로 우리가 리졸버를 구현할때는 한두줄로 해결할 수 있다. 일단 구축하기 전 상황은 아래와 같다. AWS EC2 인스턴스에 REST API 서버와 MongoDB 가 돌아가고 있다.MongoDB..
MongoDB
MongoDB Authorization 설정 기본적으로 MongoDB 를 설치하고 구동하게되면 보안 관련 설정이 없기 때문에 로그인 없이 접속하여 이용 가능하다. 이러한 문제를 해결하기 위해 아이디와 패스워드를 통해서만 이용 가능하도록 설정을 해본다. MongoDB User 생성 db.createUser({ user: "accountUser",
Phpmyadmin 에서 Export to JsonExport 탭에서 아래 Format 값을 JSON으로 설정한 후 Go 실행하여 파일 저장 Json Pretty Site를 이용하여 데이터 형식 변경Phpmyadmin 에서 뽑아낸 json data 파일을 그대로 MongoDB에 import 하면 에러가 발생한다. 이 문제를 해결하기 위해 우선 뽑아낸 json 파일을 열고 안에 내용을 복사한 후, https://jsonformatter.org/json-pretty-print 여기나 다른 사이트를 이용해서 붙여넣기한 다음 print 된 값으로 기존 json 데이터를 대체한다. ( 아마도 추출하는 과정에서 한글이 유니코드로 변환되면서 발생하는 문제가 아닌가 싶다. )왼쪽 공간에 추출한 데이터를 넣고 붉은색으로..
MongoDB Database Data를 Export 하기mongoexport -d databaseName -c collectionName -o output.json --port 27017-d : 추출하고자 하는 Database 이름을 입력 -c : 추출하고자 하는 Collection 이름을 입력-o : 추출한 결과를 저장할 파일의 이름--port : 현재 돌고 있는 MongoDB 중 추출하고자 하는 MongoDB의 포트번호를 입력 MongoDB Database Data를 Import 하기mongoimport -d databaseName -c collectionName --file output.json --jsonArray --port 27017--file : import 하기 위해 데이터가 저장되어 있..
1. MongoDB Replica SetReplication의 사전 뜻네이버 사전 검색결과로 응답이라 나오는데 보통 기술분야나 바이오 ( DNA 관련 ) 이런 쪽에서는 '복제' 라는 뜻으로 사용된다. 마찬가지로 Replica 는 복제품이라는 뜻으로 Replica Set 이라 함은 원본 DB ( Master ) 의 내용을 고대로 복사해 새로운 복제품 ( Slave ) 을 만드는 것을 의미한다.MongoDB 의 Replica Set 에서는 오직 하나의 쓰기가 가능한 DB = Primary 를 가질 수 있으며, Secondary 라 불리는 복제품들은 Primary 의 데이터 셋을 그대로 반영한다. Secondary는 Primary 에서 CRUD 작업에 의해 변경되는 사항들을 그대로 반영한다. Secondary..