Android에서 채팅 애플리케이션을 빌드하는 방법
Published: 2024-02-20 07:52:22

모바일 [채팅 애플리케이션은](https://www.pubnub.com/solutions/chat/) 전 세계의 사람과 디바이스가 쉽게 협업하고, 사교하고, 새로운 경험을 하고, 실시간으로 정보를 교환할 수 있는 디지털 환경을 조성하는 효과적인 방법입니다. 이러한 디바이스를 구동하는 세계에서 가장 인기 있는 운영체제는 개발자들이 휴대폰, 시계, 텔레비전, 자동차를 위한 다양한 애플리케이션을 만들 수 있는 오픈 소스 모바일 플랫폼인 안드로이드입니다. Google은 2008년에 Android 플랫폼을 처음 개발했으며 현재 전 세계 25억 대 이상의 기기에서 [25억 대 이상의 기기에서](https://www.android.com/what-is-android/).

디바이스에서 가장 많이 사용되는 모바일 앱은 채팅 애플리케이션입니다. 사용자들은 문자 메시지, SMS 메시지, 영상 통화를 통해 전 세계의 다른 사람들과 실시간으로 소통하기 위해 WhatsApp, Snapchat, Messenger, Discord, Zoom, Slack과 같은 소셜 애플리케이션에 의존하고 있습니다. 점점 더 많은 사람들이 [가상 공간](https://www.pubnub.com/learn/glossary/virtual-spaces/)에 대한 요구가 점점 더 커지면서 전문가, 학생, 일반 사용자는 전 세계 어디에 있든 학교, 비즈니스, 의료, 친구, 가족과 연결 상태를 유지해야 합니다. 계속 읽어보면서 Android 플랫폼에 대해 자세히 알아보고, 개발자가 이러한 모바일 디바이스용 채팅 애플리케이션을 만들어야 하는 이유와 Android에서 채팅 앱을 만드는 데 필요한 단계에 대해 알아보세요.

Android에서 채팅 애플리케이션을 제작해야 하는 이유
-------------------------------

안드로이드는 사용자가 휴대폰, 태블릿, 스마트워치, 텔레비전, 차량용 애플리케이션을 만들 수 있는 모바일 플랫폼입니다. 안드로이드는 오픈 소스이기 때문에 더욱 다양한 기능을 갖춘 디바이스와 애플리케이션을 개발할 수 있습니다. 오픈 소스 플랫폼은 모든 사람에게 도움이 됩니다:

-   Google 이외의 제조업체도 Android 운영체제를 사용하는 휴대전화를 생산할 수 있으므로 시장에 다양한 제품이 출시될 수 있습니다.
    
-   개발자는 애플리케이션 요구사항에 맞는 다양한 Android 기능을 실험하고 GitHub에서 다른 개발자들과 협업하여 새로운 기능을 계속 개발할 수 있습니다.
    
-   소비자는 예산에 따라 유연하게 사용할 수 있는 경쟁력 있는 가격의 휴대전화를 구매할 수 있습니다.
    

Google은 다음을 제공합니다. [개발자 리소스](https://developers.google.com/) 을 제공하여 개발자가 Android 기능을 충분히 실험할 수 있도록 지원하며, 대부분의 기능은 처음 시작할 때 무료로 제공됩니다. 다음과 같은 Google 서비스와 동기화 [Firebase](https://firebase.google.com/)와 같은 Google 서비스와 동기화하여 데이터를 저장, 관리, 인증 요청을 수행하고 다음을 통해 기기에 모바일 푸시 알림을 보낼 수 있습니다. [Firebase 클라우드 메시징](https://www.pubnub.com/learn/glossary/fcm-firebase-cloud-messaging/). Google 지도는 [지도 API](https://www.pubnub.com/learn/glossary/what-is-a-map-api/) 를 제공하여 애플리케이션에 GPS 기능을 추가하고 [구글 플레이](https://play.google.com/console/about/) 를 사용하면 애플리케이션을 배포하고 구매, 뉴스 업데이트, 소셜 기능, 접근성 기능, 분석 등의 인앱 서비스를 호스팅할 수 있습니다. 수많은 [학습 리소스](https://codelabs.developers.google.com/?cat=Android) 이러한 서비스를 애플리케이션에 통합하는 방법을 안내하는 다양한 학습 리소스가 제공됩니다.

이러한 서비스를 활용하면 Android 채팅 애플리케이션이 사용자층의 요구를 완벽하게 충족시킬 수 있습니다. Firebase를 사용하여 애플리케이션의 로직을 지원하는 백엔드 서비스를 호스팅할 수 있습니다. Google 지도는 사용자의 게시물/프로필 정보의 위치 세부 정보를 제공할 수 있습니다. Google Play는 배포 및 기타 인앱 구매(예: 프리미엄 요금제 업그레이드 또는 Play 스토어의 다른 앱에서 가치 있는 확장 기능)를 제공합니다. 또한 애플리케이션에서 활용할 수 있는 분석 데이터 및 기타 소셜 기능을 위해 Google Play를 활용할 수도 있습니다.

Android 채팅 애플리케이션을 빌드하는 방법
--------------------------

Android에서 채팅 애플리케이션 구축을 시작하려면 다음을 다운로드하세요. [안드로이드 스튜디오](https://developer.android.com/studio)를 다운로드하여 Android 앱 개발을 위한 공식 통합 개발 환경(IDE)을 다운로드하세요.

최신 버전의 Android Studio를 다운로드한 후에는 선택한 플랫폼을 대상으로 하는 프로젝트를 만듭니다. 휴대폰, 태블릿, 시계, 텔레비전, 자동차 등 다양한 디바이스의 에뮬레이트된 환경을 실행할 수 있습니다. 그런 다음 원하는 언어를 선택해야 합니다. Android는 Java와 Kotlin의 두 가지 언어를 제공합니다. Java는 수년 동안 Android 개발의 표준으로 사용되어 왔지만, 이제 Android는 사용을 권장합니다. [Kotlin](https://developer.android.com/kotlin) 을 사용하여 Android 애플리케이션을 빌드할 것을 권장합니다. 이는 Android 앱에서 더 안정적이고 풍부한 언어 기능을 제공하기 때문입니다. Android 애플리케이션에 패키지 이름을 지정하고 생성 버튼을 눌러 새 메시징 앱을 초기화하고 MainActivity 클래스에서 개발을 시작하세요. Android의 [시작하기](https://developer.android.com/studio/workflow) 가이드를 따라 Google 서비스를 통합하여 Android 앱의 일반적인 문제를 해결하세요. [구글의 Codelabs 튜토리얼](https://codelabs.developers.google.com/?cat=Android). 다음과 같은 툴킷도 활용하세요. [제트팩 컴포즈](https://developer.android.com/jetpack/compose)와 같은 툴킷을 활용하여 (기존에 XML을 사용하여 UI를 레이아웃하는 대신) `안드로이드x` 네임스페이스를 사용하여 네이티브 UI를 효율적으로 빌드하고, 커뮤니티에서 권장하는 플러그인을 설치하여 개발 프로세스에 도움이 되도록 하세요.

애플리케이션을 구축할 때 사용자에게 필요한 다양한 유형의 상호 작용과 기능을 염두에 두어야 합니다. 사용자는 취미 또는 전문적인 용도로 만들어진 다양한 서버나 조직에 가입할 수 있기를 원할 것입니다. 다양한 채널이나 주제에 대해 공동 작업할 수 있을 뿐만 아니라 그룹 채팅을 하거나 비공개 채팅방에서 친구 및 동료와 1:1 대화를 할 수 있기를 원할 것입니다. 사용자는 친구나 채널 멤버가 온라인 상태인지 여부를 보여주는 멤버 목록에 액세스할 수 있어야 합니다. 사용자는 메시지를 입력할 때 다른 사람이 언제 입력하거나 응답하는지 확인할 수 있어야 하며, 대화에 활기를 불어넣을 수 있도록 메시지 반응과 이모티콘을 지원할 수 있어야 합니다. 모바일 푸시 알림은 사용자가 채팅 앱의 다른 곳에 있거나 채팅 앱이 백그라운드에 있거나 애플리케이션을 완전히 종료했을 때 화면 상단과 앱 아이콘 또는 위젯을 통해 다른 사용자로부터 새 메시지가 도착했음을 알려주는 기능을 사용해야 합니다.

이러한 기능을 구현하는 것은 결코 쉬운 일이 아닙니다. 채팅 앱의 UI를 구축하는 것 외에도 모든 사용자 간의 메시지 교환을 처리하는 커뮤니케이션 플랫폼을 유지하고, 온라인 상태 시스템을 감지하고, 사용자가 온라인 상태가 되면 메시지를 로드하고, 사용자를 위해 이러한 기능을 안전하게 유지 및 확장할 수 있는 인프라를 구축해야 합니다. 이러한 인프라를 직접 구축할 수도 있지만, 다른 곳에 투자할 수 있는 시간, 리소스, 유지 관리 비용이 소요됩니다. 바로 이 부분에서 PubNub이 도움을 드릴 수 있습니다.

안드로이드 채팅 예시
-----------

WhatsApp, Messenger, Snapchat, Discord, Slack과 같은 인앱 메시징이 포함된 Android 앱은 앱에서 이러한 기능을 자체적으로 구현하여 사용자에게 고유한 경험을 제공합니다. 그러나 PubNub을 사용하면 사용자 규모에 관계없이 안정적으로 확장하고 지연 시간을 최소화하는 데 필요한 인프라를 설정할 필요가 없습니다.

[NurseGrid](https://www.pubnub.com/customers/nursegrid/)는 간호 부서에서 실시간으로 동료들과 스케줄을 액세스, 관리 및 공유할 수 있는 앱으로, PubNub를 사용하여 모바일 푸시 알림 및 인앱 메시지로 실시간 스케줄 업데이트를 지원하여 간호사 스케줄링의 비효율성을 줄이는 데 도움을 줍니다.

[조쉬 토크](https://www.pubnub.com/customers/joshtalks/)인도의 영어 학습 플랫폼인 조쉬 토크는 PubNub를 사용하여 모바일 푸시 알림뿐만 아니라 대규모 다이렉트 채팅 및 그룹 채팅을 지원하여 앱 내 체류 시간을 늘리고 고객 유지율을 높이고 있습니다. 5백만 건 이상의 [5백만 다운로드](https://play.google.com/store/apps/details?id=com.joshtalks.joshskills&hl=en_US&gl=US) 를 기록한 PubNub은 Josh Talks 개발자가 직면했던 동시성 및 대기 시간 문제를 해결하고 플랫폼을 최적화하여 다양한 위치, 언어, 기기에 걸쳐 사용자에게 실시간으로 더 나은 서비스를 제공할 수 있도록 지원합니다.

[vFairs](https://www.pubnub.com/customers/vfairs/) 는 모든 규모의 기업과 조직이 50명 또는 3만 명의 청중을 대상으로 전 세계 사람들을 연결하는 매력적이고 원활한 원격 경험을 만들 수 있는 가상 이벤트 플랫폼입니다. vFairs는 PubNub를 사용하여 이러한 청중에게 안정적이고 확장 가능한 인앱 채팅을 실시간으로 제공하며, 사내 채팅에서 PubNub로 전환함으로써 개발자 시간을 75% 절약할 수 있었습니다.

안드로이드 채팅 앱용 PubNub 시작하기
-----------------------

[PubNub](https://www.pubnub.com/blog/pubnub-what-is-it-and-why-do-you-need-it/) 은 애플리케이션이 대규모의 글로벌 규모로 실시간 업데이트를 받을 수 있도록 지원하는 개발자 API 플랫폼입니다. PubNub은 [2000개 이상의 고객](https://www.pubnub.com/customers/) 기반이 되고 있습니다. 개발자는 PubNub의 확장성과 안정성을 바탕으로 다음과 같은 강력한 [채팅 기능](https://www.pubnub.com/solutions/chat/) 애플리케이션의 채팅 기능을 강화할 수 있습니다. PubNub은 사용자 경험에 영향을 주지 않으면서 실시간 채팅 애플리케이션에 이러한 기능을 제공할 수 있을 만큼 효율적이고 안정적이며 빠릅니다.

PubNub에는 다음과 같은 기능이 API에 내장되어 있으며 애플리케이션의 특정 요구 사항을 충족할 수 있습니다.

1.  [게시](https://www.pubnub.com/docs/messages/publish): 텍스트 업데이트, 이모티콘 반응, 전송된 파일, 기타 복잡한 메타데이터 등 사용자 입력이 업데이트될 때마다 메시지를 전송합니다. [메타데이터](https://www.pubnub.com/docs/metadata/channel-metadata).
    
2.  [구독](https://www.pubnub.com/docs/messages/receive): 새 메시지를 수신하여 사용자 화면을 새로 고칩니다.
    
3.  [프레즌스](https://www.pubnub.com/docs/presence/overview): 사용자의 온라인 상태를 업데이트하고 감지합니다.
    
4.  [메시지 지속성](https://www.pubnub.com/docs/storage): 사용자가 앱에 로그인하면 수신된 모든 메시지를 표시하거나 프로젝트 및 문서 수정본을 추적합니다.
    
5.  모바일 [푸시 알림](https://www.pubnub.com/docs/general/push/android): 앱에서 떨어져 있는 모바일 사용자에게 채팅 메시지, 프로젝트 업데이트 또는 애플리케이션 업데이트에 대해 알립니다.
    
6.  [앱 컨텍스트](https://www.pubnub.com/docs/metadata/channel-metadata): 데이터베이스를 설정하거나 호출할 필요 없이 사용자에 대한 정보를 한 곳에 저장하세요.
    
7.  [액세스 관리자](https://www.pubnub.com/docs/security/access-control): 특정 사용자의 비공개 대화, 채널룸, 문서, 프로젝트에 대한 접근을 제한하세요.
    
8.  [기능](https://www.pubnub.com/docs/general/serverless/functions/overview): 메시지 번역, 부적절한 메시지 검열, 새 사용자 도착 알림, 다른 사용자에게 멘션 알림을 할 수 있습니다.
    
9.  [이벤트 및 작업](https://www.pubnub.com/docs/general/serverless/events-and-actions/overview): 애플리케이션 에코시스템의 이벤트를 중앙에서 관리하고 코드 없이 비즈니스 로직을 트리거할 수 있습니다.
    

PubNub을 사용하여 Android 실시간 채팅 앱을 강화하려면 먼저 PubNub 계정을 생성하고 PubNub의 [안드로이드 SDK](https://www.pubnub.com/docs/sdks/android). 이 SDK는 애플리케이션에 원활하게 통합되며 PubNub의 실시간 커뮤니케이션 플랫폼에 연결할 수 있습니다.

1.  [로그인](https://admin.pubnub.com/#/login) 하거나 계정을 생성하여 관리자 포털에서 앱을 만들고 애플리케이션에서 사용할 키를 받습니다. 다음 방법을 따라 키를 생성하는 방법을 알아보세요. [키 생성하기](https://www.pubnub.com/how-to/admin-portal-create-keys/).
    
2.  [다운로드](https://www.pubnub.com/docs/sdks/android) 문서에 안내된 지침에 따라 Android SDK를 다운로드하여 메시징 앱에 필요한 PubNub 종속 요소를 설치합니다.
    
3.  SDK의 시작하기 문서에 따라 `build.gradle` 파일에서 키를 구성하고 채팅 기능을 구동하기 위한 기능 구현을 시작합니다.
    

자세히**알아보기**: Kotlin SDK를 사용하여 간단한 Android 채팅 애플리케이션을 빌드하는 [튜토리얼이](https://www.pubnub.com/tutorials/getting-started-chat-sdk/) 마련되어 있습니다.

개인적인 도움이 더 필요하신 경우 [에 문의하세요.](https://www.pubnub.com/company/contact-sales/). Android 채팅 애플리케이션에 PubNub을 추가하는 가장 좋은 방법을 안내해 드리겠습니다.

PubNub이 어떤 도움을 줄 수 있나요?
=======================

이 문서는 원래 [PubNub.com에](https://www.pubnub.com/blog/build-chat-application-android/) 게시되었습니다.

저희 플랫폼은 개발자가 웹 앱, 모바일 앱 및 IoT 디바이스를 위한 실시간 상호작용을 구축, 제공 및 관리할 수 있도록 지원합니다.

저희 플랫폼의 기반은 업계에서 가장 크고 확장성이 뛰어난 실시간 에지 메시징 네트워크입니다. 전 세계 15개 이상의 PoP가 월간 8억 명의 활성 사용자를 지원하고 99.999%의 안정성을 제공하므로 중단, 동시 접속자 수 제한 또는 트래픽 폭증으로 인한 지연 문제를 걱정할 필요가 없습니다.

PubNub 체험하기
-----------

[라이브 투어를](https://www.pubnub.com/tour/introduction/) 통해 5분 이내에 모든 PubNub 기반 앱의 필수 개념을 이해하세요.

설정하기
----

PubNub [계정에](https://admin.pubnub.com/signup/) 가입하여 PubNub 키에 무료로 즉시 액세스하세요.

시작하기
----

사용 사례나 [SDK에](https://www.pubnub.com/docs) 관계없이 [PubNub 문서를](https://www.pubnub.com/docs) 통해 바로 시작하고 실행할 수 있습니다.