ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Back-end 스키마(Schema) 셋업하기
    Project/실시간 채팅 앱 2022. 9. 20. 17:58
    반응형

    스키마(Schema)란 무엇일까? 

    사전적 의미로는 "데이터베이스의 구조와 제약조건에 관한 전반적인 명세"를 뜻한다.

    쉽게 말하면 DB에 어떤 구조로 데이터에 저장되는지를 나타내는 데이터베이스 구조를 스키마라고한다.

     

    지금 내가 설계하고 있는 웹서비스에서 필요한 데이터는 User DB와 Chat DB이렇게 두 개이다.

    그리고 서버와 통신할 때 내가 필요한 기능을 나열해보자면 아래와 같다.

    - 회원가입  // POST(/auth/signup)

    - 로그인, 아웃 // POST(/auth/login)

    - 토큰 확인하기 // GET(/auth/me)

    - 채팅목록 불러오기 // GET(/chat-list)

    - 선택한 채팅방 내 메세지 불러오기 // GET(/chat-list:idx/msgs)

    - 선택한 채팅방으로 메세지 보내기 // POST(/chat-list:idx/msgs)

    - 내가 보낸 메세지 불러오기 // GET(/msgs/:sender)

    - 내가 보낸 메세지 삭제하기 // DELETE(/msgs/?id)

     

    Auth 스키마 아래처럼 구성할 예정이다.

    {

    id : string / 사용자의 고유한 id

    username : string / 사용자의 nickname

    password : string / 유저 패스워드

    email : email / 사용자 이메일}

     

    데이터 구조는 ChatList > List > msg 이런 형식이면 될 것 같다.

    List안에는 title, description, msgs가 들어가면 되고,

    msgs안에는 msg들이 포함되며 이 msg는 

    msgId : string

    text : string

    createdAt : Date

    name : string

    username : string

    이런 구조면 좋을 것 같다.

     

    혹시나 설계하면서 다른 데이터를 추가하거나 삭제할 수 있지만 이런 틀이 있으면 설계를 좀 더 쉽게 할 수 있다.

     

    반응형

    댓글

Designed by Tistory.