Hermit Under the Cliff

[NocoDB] NocoDB 소개 - CRUD API 자동 생성 및 User Pool 관리 본문

Test Automation - Technical

[NocoDB] NocoDB 소개 - CRUD API 자동 생성 및 User Pool 관리

AnonymousDeveloper 2022. 9. 28. 11:01

최근 업무를 하면서 DB + Dashboard + Windows Client 구성으로

각종 데이터 관리를 하는 시스템을 개발해야할 일이 생겼습니다.

PC에서 기존 테스트 Tool의 data를 분석하여 DB에 넣고

이를 Dashboard로 구성하여 제공을 하는 역할인데요,

Windows Client의 desktop UI 말고도

Web에서 간단하게 데이터를 확인할 수 있으면 좋을 것 같았습니다.

 

몇몇 솔루션들을 검색해보다가 NocoDB 라는 것을 발견하였습니다.

https://www.nocodb.com/

 

NocoDB | Turns your SQL database into a Nocode platform. Free & Open Source.

Free & Open Source Airtable alternative. Turns any SQL database into a smart spreadsheet. Supports MySQL, Postgres, SQL server, MariaDB & SQLite.

NocoDB.com

 

아래 이미지와 같이 DB내의 데이터를 표 형식으로

web에서 깔끔하게 보여주는 솔루션 입니다.

Windows Client를 실행하지 않고도 데이터 조회 및 간단한 수정이 가능해

이를 프로젝트에 적용하기로 하고 간단하게 docker image를 stack에 추가해서 띄웠습니다.

 

그리고 나서 다시 DB에 데이터를 쌓아주는 REST API 들을 만들려고 하는 순간

NocoDB에서 아래와 같이 Swagger를 이용한 REST API를 자동으로 만들어 준다는 걸 알게되었습니다.

 

따로 API 서버 코드를 짤 필요 없이 DB 연결만 해주면

table 구조에 맞추어서 자동으로 REST API가 생성이 됩니다.

순식간에 API 서버를 완료하고 나서 혹시나 다른 기능도 이용할 수 있을지 살펴 봅니다.

 

User 인증 역시 NocoDB에 등록된 user 기반으로 하면 좋을 듯 한데,

자동 생성된 API 문서를 보면 table의 데이터를 관리하는 API만 존재합니다.

그래도 뭔가 있을 것 같아서 NocoDB의 documentation을 찾아보니,

아래와 같이 System level에서의 REST API가 존재합니다.

https://docs.nocodb.com/developer-resources/rest-apis

 

NocoDB Documentation

NocoDB Documentation

docs.nocodb.com

 

 

아래와 같이 Signin API를 이용해서 User의 Sign In을 처리할 수 있습니다.

NocoDB에 등록된 email과 password를 body에 넣어서 POST를 날려주면

성공했을 경우 token이 반환이 되고,

이 반환된 token을 각 request header에 xc-token이라는 key랑 같이 추가를 해주면

깔끔하게 동작을 합니다.

 

이런식으로 user 관리 역시 NocoDB를 통해 할 수 있고

기본적인 DB내 data 조회도 깔끔하게 할 수 있으니,

NocoDB를 아예 web front end 단으로 사용 하는 것으로 결정을 하였습니다.

 

다른 추가적인 기능들도 시간을 두고 천천히 살펴가면 좋을 듯 하지만

일단 자동 API 생성 및 User 관리 역할만으로도 충분히 제 몫을 해주고 있다는 느낌입니다.

 

Comments