inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Lập trình hệ thống Unity Pt.2 - Gói tất cả trong một về các hệ thống cốt lõi để hiện thực hóa trò chơi thương mại

우편 기능에 대해 궁금합니다.

Đã giải quyết

97

chrispark

11 câu hỏi đã được viết

0

안녕하세요. 강의 잘 듣고 있습니다.

 

모바일 게임에서 흔히 볼 수 있는 우편을 통해 재화를 보상을 주는 우편 시스템에 대해 궁금합니다.

강의 내에는 우편 관련 기능이 없긴 하지만 혹시 강사님께서는 우편 기능을 어떻게 구현해서 사용하시는지 알려주시면 큰 도움이 될 것 같습니다.

국내에서는 뒤끝과 같은 외부 서비스에 도움을 받아 할수있지만 혹시 개인이 다른 방법으로도 사용할 수 있을지 궁금해서 여쭤봅니다~!!

감사합니다~

C# unity 객체지향

Câu trả lời 2

1

burningcarrot

안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다.

저의 경우 Firestore DB에 UserMailData라는 컬렉션을 만들고, 그 데이터를 불러와서 UI에 표시해주는 방식으로 우편함 시스템을 구현했었습니다. 특정 플레이어에게 보상을 우편으로 전달해야 한다면, Firestore DB 콘솔에서 해당 플레이어의 UserMailData에 보상에 대한 데이터를 추가해 줍니다. 그럼 플레이어는 그 우편을 열어 '받기'를 클릭하면 보상이 지급됩니다.

물론 이럴 경우 수강생분이 각 플레이어를 식별할 수 있는 계정 정보(ex. 이메일)를 추가적으로 Firestore DB에 수집해 두셔야 합니다. 그리고 그런 개인정보를 저장할 때는 개인정보 처리방침 등에 잊지말고 잘 명시해야 하고, 구글/애플 개발자 콘솔의 유저 개인정보 수집 설정 페이지도 각 항목들이 올바르게 선택되어 있는지 잘 확인해 주셔야 합니다.

이해가 되지 않는 부분이 있으시다면 편하게 다시 질문해 주시길 바랍니다.

0

chrispark

답변 감사드립니다~!!

말씀주신 부분을 통해 궁금점이 생겼습니다.

1. 플레이어를 식별할 수 있는 계정 정보 예시 중 이메일을 말씀주셨는데 이메일로 사용한다면 이메일 주소를 따로 받아야 하는 추가적인 조치가 필요한게 아닌지 궁금합니다.
(이메일이 아닌 다른 고유 키값이 있을것 같아서 여쭤보았습니다.)

2. Firestore DB 를 통해 만약 전체 유저에게 7일동안 유효한 우편을 보낸다고 한다면 어디서 어떻게 설정을 해놓을 되는지 간략한 이미지라도 참고해서 알려주신다면 정말 감사드리겠습니다.

아니면 참고할 수 있는 url 을 알려만 주셔도 큰 도움이 될 것 같습니다.

Firebase를 통해 운영 로그 분석하는 방법도 강사님 덕분에 실제 적용해 볼 수 있었습니다.
다시한번 감사드립니다~

1

burningcarrot

안녕하세요. 각 질문에 대해 답변 드립니다.

  1. 이메일은 m_FirebaseUser 객체에서 받아올 수 있습니다. 아래 코드처럼 .Email하면 이메일값을 알 수 있습니다. Firestore DB에서 UserId(제가 한 방법)대신 이메일값으로 각 유저의 데이터를 저장하는 것도 방법일 수 있습니다. 제가 유저 식별을 위해 이메일을 저장하라고 말씀드린 것은, 예를 들어 수강생분께서 이벤트를 실시하고 당첨된 유저분들께 보상을 지급하려면 계정 주소로 밖에 식별할 수 없기 때문입니다(유저분들은 자신의 UserId 값을 아마 알지 못할 것입니다). 하지만 전체 유저에게 지급하는 방식을 생각하고 계시다면 굳이 계정 주소(이메일)를 수집할 필요는 없겠습니다.

m_FirebaseUser = m_Auth.CurrentUser;
m_FirebaseUser.Email
  1. 아래 링크를 참고하시기 바랍니다. 일단 파이어베이스 콘솔에서는 쿼리문을 사용한 데이터 단체 추가/수정/삭제는 불가능합니다. 하지만 유니티에서 할 수 있는 기능은 제공합니다. 유니티 에디터에 Firestore DB 업데이트 스크립트를 만드셔서 보상 지급 시 스크립트를 실행해 DB 데이터를 일괄 변경해주셔야 하겠습니다. 즉, 모든 유저의 UserMailData에 새로운 보상 지급 데이터를 추가해주는 스크립트를 만드셔야 하겠습니다. DB SQL에 대한 배경지식이 없으시다면 처음에 조금 어렵게 느껴지실 것 같네요... Test용 DB를 설정해 놓고 테스트를 충분히 해 보시기 바랍니다.

     

    https://firebase.google.com/docs/firestore/manage-data/transactions?hl=ko#unity

1

chrispark

상세한 답변 감사드립니다~

말씀주신대로 하나씩 따라가보도록 하겠습니다~ 감사합니다!!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 크리스팍님.

모바일 게임에서 우편 시스템은 플레이어에게 아이템이나 보상을 편리하게 전달할 수 있는 핵심 기능 중 하나입니다. 강의 내에서는 직접적으로 우편 시스템을 다루고 있지 않을 수 있지만, 일반적인 구현 방식을 간단히 설명드리겠습니다.

  1. 기본적인 우편 시스템 구조:

    • 데이터베이스: 우편 시스템은 보통 서버 측 데이터베이스를 통해 구현됩니다. 각 플레이어가 받을 우편 데이터를 저장하고 관리하는 테이블이 필요합니다.
    • 서버 API: 클라이언트(게임)와 서버 간의 통신을 위해 RESTful API를 설계합니다. 예를 들어, “받기”, “삭제”, “전체 받기” 등의 기능이 포함됩니다.
    • 클라이언트 UI: 플레이어가 우편함을 확인하고 우편을 받을 수 있는 인터페이스를 구현합니다.
  2. 외부 서비스:

    • 국내에서는 ‘뒤끝’과 같은 서비스를 활용하면, 우편 시스템을 손쉽게 개발할 수 있습니다. 이러한 서비스는 인증, 데이터 저장/관리, 서버 구축 등 다양한 기능을 제공합니다.
    • 물론, 개인 서버를 운영하여 우편 시스템을 구축하는 것도 가능합니다. 이를 위해서는 백엔드 기술 스택(Node.js, Django 등)과 서버 호스팅(AWS, Heroku 등)을 알아두셔야 합니다.
  3. 직접 구현할 경우:

    • JSON 파일이나 SQLite 사용: 서버 없이 로컬 환경에서 간단한 우편 시스템을 구현하고자 한다면, JSON 파일이나 SQLite를 활용해 클라이언트 측에서 데이터를 직접 관리할 수 있습니다.
    • 보안 고려: 개인 서버나 로컬 저장소에 중요한 보상 데이터를 저장할 경우, 보안에 대한 충분한 고려가 필요합니다.

이와 관련하여 강의 내용에서 연관성을 갖는 내용이 있다면, 강의 내 SingletonBehaviour 클래스의 where 제약 관련해서 질문 드립니다와 같은 시스템 설계 및 패턴에 대한 링크를 참고해보시면 도움이 되실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

[인앱결제] 질문

0

83

2

Firebase iOS 빌드 시 중복심볼

0

110

2

인앱결제 버전 업데이트된 버전이 강의에 반영되어있을까요?

0

76

2

인앱결제 버전 변경에 따른 질문

0

143

3

파이어베이스 이벤트 로그 수집관련 질문입니다.

0

90

1

파이어베이스 관련 질문입니다.

0

93

2

사전 등록 관련 재질문

0

65

1

구글 플레이 콘솔 사전 예약 등록에 대해.

0

183

2

41-원격 리소스 다운로드 강의의 후반에 실습할 텍스쳐가 없습니다.

0

78

2

로컬 알림과 다국어 지원에 대해 궁금합니다.

0

90

2

통합 에셋

0

72

2

구글 AD 미디에이션

0

184

2

구글로그인 인증 에러 문제 살려주세요 ㅠㅠ

0

179

2

18 유저 데이터 온라인DB 로드 및 저장 PT4의 UserInventoryData 클래스에 대하여

0

69

1

스팀 어드레서블

0

115

1

이미 리소스 다운받은 후 다시 실행시 리소스 인식 문제

0

127

2

로컬라이즈 어셋 각 언어별 폰트적용

0

548

2

강의 : Addressables를 활용한 어셋 관리 및 로딩 처리 문의

0

229

2

세계 시간 API 서버 이슈로 대체할만한 API 아시는분 계신가요?

0

626

2

안녕하세요 구글로그인 SDK 적용하고 빌드문제가있어 질문드립니다.

0

768

4

LogViewer 설치 시 Warning 로그

0

207

1

구매 환불 처리 과정

0

252

2

열심히 보고있습니다!

0

155

2

자막이 누락된 강의에 자막 추가해 주실 수 있을까요?

0

154

1