일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Nexus GraphQL
- Dependency Injection
- mvvm
- unit test
- Data structure
- dagger-hilt
- PYTHON
- 안드로이드 디자인패턴
- 우분투 파이썬
- Apollo Server
- 유니티
- 안드로이드 mvp
- 자바기초
- Android test
- LinkedList
- flutter
- 파이썬 크롤링
- 자바
- 안드로이드 테스트
- ubuntu python
- Android
- Design Pattern
- 웹크롤링
- 안드로이드
- prisma
- MVVM pattern
- java
- Apollo GraphQL
- graphQL
- Kotlin
- Today
- Total
Hun's Blog
Hackatalk opensource server setting guide 본문
Hackatalk은 두부랩(dooboolab)의 오픈 소스 채팅 프로젝트입니다. Hackatalk-Server는 GraphQL 기반으로 구현되어 있습니다. 해당 글은 Hackatalk 오픈 소스에 참여하시는 분들 중 Server, Backend의 경험이 부족 하시거나 GraphQL이 생소한 주니어 개발자 분들의 진입장벽을 조금이라도 낮추기 위해 작성되었습니다.
Hacaktalk - server의 기술 사양
- node
- typescript
- prisma
- prisma-nexus
- apollo-server
- jest
- postgreSQL
Database 관리 tool은 DBeaver를 사용하고 있습니다. 실행 환경은 MAC OS 이며 IDE는 vscode를 사용하여 작성하였습니다.
Hackatalk 오픈 소스에 Contribution하시길 원하신 다면 다음의 가이드를 먼저 참고하세요:)
git clone
$ git clone https://github.com/dooboolab/hackatalk
*위에 github contribution guide를 진행하셨다면 아래서부터 따라오시면 됩니다!
$ cd hackatalk/server
$ yarn
$ code .
PostgreSQL 설치
homebrew로 PostgreSQL을 설치합니다.
$ brew install postgresql
$ brew services start postgresql
설치가 완료되면 다음의 명령어를 입력합니다.
$ cp ./dotenv/dev.env ./dotenv/.env
경로로 이동하여 .env파일을 열어보겠습니다.
dotenv 라이브러리는 미리 작성한 .env 파일을 환경 변수에 설정 해주는 역할을 합니다. DATABASE_URL은 postgresql 로컬 데이터베이스로 연결됩니다.
url은 다음과 같습니다. database://databaseID:databasePW@localhostAddress:port/databaseName?schema=schemaName”
→ 데이터베이스에 등록된 id와 password로 생성된 스키마 테이블을 연결하겠다는 뜻입니다.
Database ID 생성
$ createuser -P -s postgres
→ password는 dooboolab0! 로 설정합니다.
postgreSQL 확인
$ psql postgres
$ \l
→ 생성된 id 리스트를 확인합니다.
$ \q
→ postgreSQL을 빠져나옵니다.
Prisma Command
Hackatalk-server는 Prisma + nexus를 활용하여 Database Model과 schema를 작성하고 client에서 사용할 수 있도록 mutation과 query가 작성되어있습니다.
$ yarn generate
→ 위 명령어를 통해 작성된 Model, Schema, Mutation, Query가 prisma에 의해 사용준비를 마치게되며 위 과정에서 문법 오류나 prisma에서 제시한 규칙에 위반되면 에러가 발생합니다.
$ yarn migrate:save
→ 위 명령어를 통해 성공적으로 사용준비를 마친 API와 데이터베이스의 현재의 migration을 저장합니다. 최초 입력시 테이블 생성을 하게되는데 Yes선택 후 적절한 migration명을 입력합니다 . 그렇게 되면 .env 파일안의 Database_url에 데이터베이스가 생성됩니다.
$ yarn migrate:up
→ 위명령어를 통해 현재의 migration을 최종 업로드 하게되어 사용할 수있는 상태가 됩니다.
DBeaver 설치
설치 후 DBeaver를 실행합니다.
signUp mutation
이미 작성되어있는 signUp Mutation 을 활용하여 회원가입을 하고 Playground에서 mutation을 확인하는 과정을 진행해보도록 하겠습니다.
아래의 명령어를 입력합니다.
$ yarn local
맨 아래의 url을 command + click하여 이동합니다.
위 이미지와 같이 mutation을 작성하고 play 버튼을 클릭합니다.
위 이미지와 같이 id가 반환되면 회원가입이 성공한 것입니다.
DBeaver로 위에서 가입한 user data가 입력 되었는지 확인합니다.
이상으로 Hackatalk-server setting 방법에 대해 알아보았습니다. Playground에서 mutation을 작성해보면서 실제로 데이터에 추가하는 과정을 통해 Hackatalk-server 의 전체적인 flow를 파악해보시기 바랍니다.
'Backend > GraphQL' 카테고리의 다른 글
Nexus GraphQL tutorials (1) - GraphQL이란? / setup and first query (0) | 2020.11.29 |
---|---|
Introducing Major improvements to Prisma v2.6.0 (0) | 2020.11.25 |
Nexus without database test Tutorial (0) | 2020.11.25 |
Testing graphql-resolver made with nexus without database (0) | 2020.11.25 |
Prisma CRUD, data modeling, aggregations (prisma 공식 유튜브 영상) (0) | 2020.11.25 |