안드로이드(코틀린) 채팅앱 만들기 - 설계 1

박준식·2022년 7월 28일
0

Catting

목록 보기
1/8
post-thumbnail
코틀린 공부를 하던 중 간단한 채팅앱 만들기를 팀 프로젝트로 시작했다. 컨셉은 우리 집에 있는 고양이랑 채팅하기. 컨셉에 맞게 앱 이름도 Catting으로 결정되었다. 우선은 간단한 기능을 먼저 구현하고 그 후 확장시키는 방식으로 결정했기에 채팅앱이라면 필요한 최소한의 기능을 설계해 보았다.

1. 개요

  • 개발배경
  • 애완묘를 키우는 많은 집사들은 자기 고양이가 집에서 무엇을 하고 있는지 많이 궁금해한다. 친구나 가족이 무엇을 하고 있는지 궁금하면 간단하게 연락해서 물어볼 수 있지만 고양이는 그것이 안 되기에 간접적으로나마 고양이와 연락하는 느낌을 줄 수 있는 채팅앱을 만들고자 한다.

2. 전체 구성도

  • 구성도
  • 구성도

    프론트는 코틀린으로 개발된 모바일 안드로이드 앱을 사용하고 추가로 별도의 DB 없이 사용자 계정을 관리할 수 있는 Firebase를 사용하기로 하였다. 백엔드는 사용자 정보, 고양이 정보등을 저장하고 관리할 Node.JS서버와 고양이와의 채팅을 관리할 Python서버를 따로 구성하기로 하였다.

    프론트와 서버간의 통신은 rest API를 사용하기로 하였다.

3. Use Case

  • 회원가입
  • Firebase의 인증 기능중 이메일/비밀번호를 선택하였고 이를 위해 user가 사용할 e-mail과 password를 입력받아 Firebase로 넘겨줘야 한다. 이때 Firebase로부터 할당받은 uid와 다른 추가 정보를 서버쪽 DB에 저장한다.

  • 로그인
  • 마찬가지로 Firebase에 넘겨줄 e-mail과 password를 입력받아 Firebase로 넘겨줘야 한다. Firebase로부터 받은 uid로 서버에서 사용자 정보를 받아온다.

  • 사용자 정보 수정
  • 사용자가 입력한 수정할 정보를 uid와 묶어 서버에 수정요청을 보내면 서버는 이를 저장하고 변경된 사용자 정보를 프론트로 전송한다.

  • 고양이 정보 추가/수정/삭제
  • 고양이의 이름, 종, 성별, 생일, 프로필 사진등의 정보를 입력받고 생성 시간을 기반으로 cid를 생성하여 uid와 묶어 서버에 저장한다.

  • 채팅
  • 사용자가 고양이를 선택하여 채팅을 보내면 uid, cid, 전송할 메시지를 함께 서버에 보내면 서버는 이를 분석해서 uid, cid, 고양이의 대답, 카메라에 찍힌 사진을 클라이언트로 보내준다.

0개의 댓글