무엇인가

[코드스테이츠 PMB 14기] 내 버튼 클릭 하나에 벌어지는 놀라운 일들 - 요기요 리뷰 작성 본문

PMB Daily

[코드스테이츠 PMB 14기] 내 버튼 클릭 하나에 벌어지는 놀라운 일들 - 요기요 리뷰 작성

윗니winny 2022. 9. 28. 15:49

어떤 배달앱을 가장 많이쓰시나요?

개인적으로 요기패스가 처음 나왔을 때 부터 요기요에 정착하기 시작했고, 배달시킬 일이 있을 경우 요기요부터 실행한다.

 

요기요는 O2O기반 배달 서비스로 앱 내에서 검색, 주문, 쿠폰 받기 등 다양한 행동을 할 수 있지만 그 중에서 '리뷰 작성' 기능 분석을 선택했다.

 

요기요는 리뷰를 작성하면 100포인트를 지급하고 있다. 해당 과정에서 클라이언트와 DB 사이에 활발한 소통이 있을 것으로 예상되어 '리뷰 작성하기'를 분석 대상으로 선정하였다. 

 

 

 

✅ 리뷰 작성 Flow 분석

 

✅ 리뷰 작성 과정에 있어서, 클라이언트와 서버 DB는 어떻게 움직일까?

아래의 내용은 요기요의 서버 구조를 정확하게 모르기에 서버 오늘 학습 내용을 적용하여 움직임을 예상해보았다. 

 

주문정보를 불러와주세요 [주문내역 버튼 클릭]

① 클라이언트 : 클라이언트 (ios, 안드로이드)를 통해 서버에 주문 정보 요청

② 앱서버 : 서버가 DB에 고객ID(PK)를 전달하며 주문정보 요청 

③ DB : 고객 회원 ID값을 기준(PK)으로 주문 정보 DB를 서버에 반환

가게DB: 가게명, 가게 대표 이미지, 가게 상세 페이지 링크

결제DB : 주문번호, 결제시간, 결제 항목, 결제 금액, 주문 상태

④ 앱서버 : 리뷰 작성 가능 여부 (접속일 기준 주문일 비교) 검증, 클라이언트에 데이터 전달 

⑤ 클라이언트 :서버가 전달해준 정보를 프로그래밍된 UI 구조에 맞춰 표시

 

 

이미지 리뷰를 작성하고 100포인트 받을래요 [리뷰 작성 버튼 클릭]

① 클라이언트 : 텍스트, 이미지 첨부 리뷰 작성 (갤러리 접근 권한 확인, 최소 입력 조건 확인)

② 앱서버 : 리뷰DB Creat 요청, 회원 DB 포인트 정보 Update 요청

③ DB : 전달된 정보 생성, 수정

리뷰 DB : 별점, 이미지, 텍스트

회원 DB : 보유 포인트  

④ 앱서버 : 변경된 DB를 클라이언트에 전달 (리뷰 저장 완료, 포인트 적립 완료 신호 전달)

⑤ 클라이언트 :서버가 전달해준 정보를 프로그래밍된 UI 구조에 맞춰 표시

 

 


그리다보니 클라이언트/서버/DB 사이에서 어떤 일을 하는지 명확하게 구분이 잘 가지 않아 과제 진행이 조금 어려웠다.

하지만 막상 그려보니 이해가 가는 것 같기도 하고...

 

이번 과제는 개발자와 소통하기 위한 기초 지식을 쌓기 위함이니 의견, 태클은 얼마든지 환영합니다.