서비스
솔루션
개발자
데모
가격
사정보
모든 블로그

Yalla가 이렇게 인기 있는 이유와 Yalla와 같은 채팅룸 앱을 만드는 방법

10 분 읽기
Feb 18, 2025

Yalla가 이렇게 인기 있는 이유와 Yalla와 같은 채팅룸 앱을 만드는 방법

음성 채팅 앱이란?

음성 채팅 룸은 사용자가 개인적인 설정에서 다른 사용자와 대화할 수 있는 온라인 커뮤니티입니다. 이러한 유형의 룸은 클라이언트와의 회의, 비즈니스 파트너와의 문제 해결 등 다양한 목적으로 사용할 수 있습니다. 많은 온라인 커뮤니티에는 사용자가 회의나 세미나를 일정 잡거나 제품 및 서비스 업데이트 및 뉴스에 대해 논의하는 등의 커뮤니케이션을 할 수 있는 음성 룸이 있습니다.

Yalla 음성 채팅 앱이란?

Yalla Voice Chat App은 전 세계 여러 지역에서 친구를 만들고, 재미있는 음성 통화를 하고, 게임을 플레이하고자 하는 사용자 그룹을 연결하는 것을 목표로 하는 앱입니다.

앱 이름

Yalla Voice Chat app

출시 연도

2020

본사 지역

Gulf Cooperation Council (GCC)

국가

50개 이상

Apkpure 평가

6.3/10

수익

6350만

주요 수익원

앱 내 가상 아이템 구매, 프리미엄 멤버십 업그레이드.

통합

Google Drive, Dropbox Business, Mailchimp, Google Analytics, Evernote Teams, Freshbooks, Zapier, Google Calendar, Adobe Campaign, CallTrekkingMetrics, Visual Visitor

Yalla가 이렇게 인기가 있는 이유

Yalla의 성장과 발전을 검토해 보면, 이 회사는 2016년에 설립되었으며 같은 해에 자체 이름을 딴 첫 번째 음성 그룹 채팅 제품을 출시했습니다. 중동 및 북아프리카에서 순수 음성 사회 제품의 첫 번째 사례로, Yalla는 고도로 현지화된 콘텐츠 및 제품 디자인으로 중동 음성 채팅 시장에서 빠르게 입지를 다졌습니다. Yalla Chat과 같은 제품은 짧은 시간 안에 시장에서 인정을 받았습니다.

Yalla가 이렇게 인기가 있는 이유1.png

소셜 제품을 통해 상당한 사용자 기반을 확보한 후, Yalla는 경량 게임으로 사업을 확장하기 시작했습니다. 2018년에 출시된 "Yalla Ludo"는 Yalla의 게임 사업의 시작을 알리는 첫 번째 Ludo 게임으로, 음성 채팅 룸 기능을 통합했습니다. 현재까지 이 제품은 매월 900만 달러 이상의 글로벌 수익을 창출하며, Yalla의 게임 사업의 핵심 수익원이 되었습니다.

Ludo와 음성 채팅 룸의 조합이 가져다 준 엄청난 잠재력을 보고, Yalla는 이후 남미에서 "Yalla Parchis", 사우디 아라비아에서 "Yalla Baloot", 터키에서 "101 Okey Yalla"와 같은 다른 제품을 출시하여 음성 채팅 룸과 지역 게임을 통합했습니다. 그러나 수익 및 제품 성능 측면에서 이들 제품은 "Yalla Ludo"의 높이에 도달하지 못했습니다.

왼쪽에서 오른쪽으로: Yalla Parchis, Yalla Baloot, 101 Okey Yalla

"Merge Kingdoms"는 음성 채팅 룸 시스템을 통합한 첫 번째 SLG 게임입니다.

사실, 하드코어 SLG 플레이어에게 실시간 커뮤니케이션은 중요한 서비스 요구 사항입니다. 동맹 전투 중에는 종종 긴밀하고 집중적인 커뮤니케이션이 필요하며, 플레이어는 일반적으로 Discord 또는 TT와 같은 제3자 앱을 사용하여 실시간 커뮤니케이션을 합니다. 하지만 여러 앱을 실행하면 때때로 안정성에 영향을 줄 수 있습니다. 내장 음성 룸을 통합하는 것은 가장 "직접적"인 접근 방식이라고 할 수 있습니다.

Merge Kingdoms 음성 채팅 룸

"Merge Kingdoms"의 게임 플레이는 신규 사용자에게 약 5-10분 동안 진행되는 튜토리얼을 통해 소개됩니다. 이 게임은 중동의 주류 COK 유사 게임 플레이를 채택하고 있으며, 큰 지출자를 위해 크게 단순화되었습니다.

구체적으로, "Merge Kingdoms"는 "Top War"(Pocket Soldiers)와 유사한 게임 메커니즘을 공유하며, 슬라이딩 합성 게임 플레이 스타일을 활용합니다. 자원을 수집하고 건물과 병력을 업그레이드하는 번거로운 단계를 제거하고, "2배 속도 전투" 및 "건너뛰기"와 같은 기능을 포함하여 플레이어가 건물을 클릭하여 자원을 수집하고 드래그하여 병합하고 전투에 들어갈 수 있도록 합니다.

COK 게임 플레이를 넘어, "Merge Kingdoms"는 또한 영웅 개발 시스템을 통합합니다. 전투에서 영웅이 병사보다 먼저 공격하며, 더 높은 수준과 더 높은 등급의 영웅이 더 많은 피해를 주어 전투 시간을 단축합니다.

게임 플레이 디자인만 놓고 보면, "Merge Kingdoms"는 정말 가볍고 신규 사용자에게 매우 쉽습니다. SLG 게임에 대한 플레이어의 기대에 잘 부합합니다. 그러나 지나치게 단순화된 게임 플레이는 후반 단계에서 플레이어 유지율을 감소시킬 수 있다는 점은 부인할 수 없습니다. 그럼에도 불구하고 음성 채팅 룸의 추가는 효과적으로 잠재적인 피로감을 상쇄하는 데 도움이 됩니다.

메인 인터페이스 왼쪽 하단의 작은 집 아이콘을 클릭하면 플레이어는 음성 채팅 룸에 들어갈 수 있습니다. 첫 번째 "동맹 룸" 외에도 플레이어는 다른 모든 채팅 룸에 자유롭게 들어갈 수 있습니다.

개별 음성 채팅 룸 외에도 Yalla는 음성 채팅 룸에 선물 시스템, 리더보드, 미니 게임 및 음악 재생 기능을 통합했습니다. 음성 채팅 룸에서는 관심 있는 주제가 있을 경우 즉시 "룸 호스트"가 되어 토론을 시작할 수 있으며, 다른 사용자들은 대화에 참여하고 선물로 감정을 표현할 수 있습니다. 게임을 하면서 채팅을 원할 경우 "전화를 끊기" 기능을 사용하여 음성 채팅 룸이 메인 인터페이스의 옆에 작은 위젯으로 나타나도록 할 수 있습니다.

포괄적인 기능 덕분에 채팅과 사회적 상호작용을 선호하는 사용자조차도 "Merge Kingdoms"의 음성 채팅 룸을 독립형 앱으로 사용할 수 있으며, 게임을 또 다른 토론 주제로 추가할 수 있습니다. 경험하는 동안 여러 방의 채팅 내용은 매우 다양하며, 게임 전략, 일상 생활 및 기타 주제를 포함합니다.

게임 자체는 사용자를 유치하는 도구 역할을 하며, 음성 채팅 룸은 목표 사용자를 변환하는 핵심 포인트입니다. 게임 과정에서 사용자는 친구를 사귀거나 게임 전략을 찾기 위해 음성 채팅 룸에 들어갑니다. 상호 작용을 통해 그들은 점차 더 많은 사회적 필요를 발전시킵니다. 궁극적으로 사회적 상호작용을 선호하는 대부분의 사용자는 음성 채팅 룸의 기능으로 돌아올 가능성이 높으며, 게임 사용자들은 동맹 전투 중 음성 장치로 음성 채팅 룸을 사용할 가능성이 높습니다.

자신만의 실시간 채팅 앱 만들기: 단계별 안내

음성 채팅 앱을 구축하고 싶다면, 몇 가지 주요 단계를 한 시간 이내에 완료하여 완전한 UI 인터페이스와 음성 룸 기능을 갖춘 앱을 얻을 수 있습니다.

아래 내용은 안드로이드 통합을 예로 들었습니다. iOS 장치에 음성 채팅 룸을 설치하려면 여기를 참조하세요.

환경 준비

Android 5.0(SDK API 레벨 21) 이상.

Android Studio 4.2.1 이상.

Android 5.0 이상을 지원하는 장치.

1단계. 서비스 활성화

Tencent Cloud에서 제공하는 오디오 및 비디오 서비스를 사용하기 전에 콘솔로 이동하여 애플리케이션의 서비스를 활성화해야 합니다. 자세한 단계는 서비스 활성화를 참조하십시오.

2단계: TUILiveKit 구성 요소 다운로드

코드를 Github에서 복제/다운로드하고, 그런 다음 Android 디렉토리의 tuilivekit 하위 디렉토리를 현재 프로젝트의 동일한 수준 디렉토리에 복사합니다.

3단계: 프로젝트 구성

프로젝트에 jitpack 저장소 종속성을 추가하여야 합니다(선물 svg 애니메이션을 재생하는 세 번째 라이브러리 SVGAPlayer 다운로드):

Gradle 7.0 이하

프로젝트 루트 디렉토리의 build.gradle 파일에 jitpack 저장소의 주소를 추가하십시오:

allprojects {
    repositories {
        google()
        mavenCentral()
        // jitpack 저장소 추가
        maven { url 'https://jitpack.io' }
    }
}

2. 프로젝트 루트 디렉토리에서 settings.gradle 파일을 찾아 아래 코드를 추가하십시오. 이는 2단계에서 다운로드한 tuilivekit 구성 요소를 현재 프로젝트에 가져오는 기능을 합니다:

include ':tuilivekit'

3. 앱 디렉토리의 build.gradle 파일을 찾아 아래 코드를 추가하십시오. 이는 새로 추가된 tuilivekit 구성 요소에 대한 현재 앱의 종속성을 선언하는 기능을 합니다:

api project(':tuilivekit')

4. SDK 내부에서 Java의 리플렉션 기능을 사용하므로, SDK의 일부 클래스를 난독화되지 않은 목록에 추가해야 하므로, 다음 코드를 proguard-rules.pro 파일에 추가해야 합니다:

-keep class com.tencent.** { *; }

5. AndroidManifest.xml에서 Theme.AppCompat 테마를 android:theme 속성의 application에 설정하십시오:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
        ...
    </application>
</manifest>

4단계. 로그인

TUILiveKit 구성 요소의 기능을 호출하기 전에 TUI 구성 요소의 로그인을 수행해야 합니다. 프로젝트에서 비즈니스 로그인 시나리오 또는 앱의 첫 번째 시작 활동에 다음 로그인 코드를 추가하는 것이 좋습니다. 이는 TUICore에서 관련 API를 호출하여 TUI 구성 요소의 로그인을 완료하는 데 사용됩니다. 이 단계는 매우 중요합니다. 로그인에 성공해야 TUILiveKit의 모든 기능을 사용할 수 있으므로, 관련 매개변수가 올바르게 구성되어 있는지 신중하게 확인하십시오.

import TUICore

TUILogin.login(context, 
    1400000001,     // Step 1에서 얻은 SDKAppID로 교체하십시오.
    "denny",        // 사용자 ID로 교체하십시오.
    "xxxxxxxxxxx",  // 콘솔에서 UserSig를 계산하여 입력하십시오.
    new TUICallback() {
    @Override
    public void onSuccess() {
        Log.i(TAG, "로그인 성공");
    }

    @Override
    public void onError(int errorCode, String errorMessage) {
        Log.e(TAG, "로그인 실패, errorCode: " + errorCode + " msg:" + errorMessage);
    }
});

매개변수 설명: 로그인 함수에서 사용하는 주요 매개변수는 아래와 같습니다:

SDKAppID: 이전 단계에서 얻은 값으로, 여기서는 자세히 설명하지 않습니다.

UserID: 현재 사용자의 ID로, 문자열이며 문자(a–z 및 A–Z), 숫자(0–9), 하이픈(-), 또는 밑줄(_)만 포함할 수 있습니다.

UserSig: Tencent Cloud에서 현재 사용자가 TRTC 서비스를 사용할 수 있는지 확인하는 인증 자격 증명입니다. 이는 SDKSecretKey를 사용하여 SDKAppID와 UserID와 같은 정보를 암호화하여 얻을 수 있습니다. 콘솔에서 UserSig 생성을 클릭하여 임시 UserSig를 생성할 수 있습니다.

5단계. 라이브 미리보기 화면으로 들어가기

  1. app_activity_anchor.xml이라는 새 파일을 생성합니다(기본 경로: app/src/main/res/layout/app_activity_anchor.xml).
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android='httpschemasandroidcomapkresandroid'"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id='idfl_container'"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>
  1. AnchorActivity.java라는 새 파일을 생성하고 AndroidManifest.xml에 등록합니다. TUILiveKit TUIVoiceRoomFragment 페이지를 로드하여 미리보기 화면을 띄울 수 있습니다.
public class AnchorActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app_activity_anchor);

        //RoomId는 사용자 정의할 수 있습니다.
        String roomId = "123666";

        TUIVoiceRoomFragment.RoomParams params = new TUIVoiceRoomFragment.RoomParams();
        // 기본값은 패키지가 지원하는 최대 좌석 수입니다.
        params.maxSeatCount = 0;
        params.seatMode = TUIRoomDefine.SeatMode.APPLY_TO_TAKE;

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        TUIVoiceRoomFragment fragment = new TUIVoiceRoomFragment(roomId, 
        TUIVoiceRoomFragment.RoomBehavior.PREPARE_CREATE, params);
        fragmentTransaction.add(R.id.fl_container, fragment);
        fragmentTransaction.commit();
    }
}

앱 프로젝트의 AndroidManifest.xml에 AnchorActivity를 등록해야 합니다(실제 패키지 이름을 사용하십시오):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        ...
        <!-- 예: AnchorActivity를 등록하려면 실제 패키지 이름을 사용하십시오. -->
        <activity android:name="com.trtc.uikit.livekit.example.main.AnchorActivity"
                  android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/>
        ...
    </application>
</manifest>

라이브 스트리밍을 시작해야 하는 곳(비즈니스에 따라 기본적으로 MainActivity의 클릭 이벤트에서 실행될 수 있음)에서, 다음 작업을 수행하여 호스트 시작 페이지를 띄워야 합니다:

Intent intent = new Intent(context, AnchorActivity.class);
startActivity(intent);

6단계: 방 목록 가져오기

1, app_activity_main.xml이라는 새 파일을 생성합니다(기본 경로: app/src/main/res/layout/app_activity_main.xml).

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android='httpschemasandroidcomapkresandroid'"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id='idfl_live_list'"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>
  1. MainActivity.java를 생성하고 AndroidManifest.xml에 등록합니다. TUILiveKit 페이지의 TUILiveListFragment를 로드하여 방 목록을 표시할 수 있습니다.
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app_activity_main);

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        TUILiveListFragment listFragment = new TUILiveListFragment();
        fragmentTransaction.add(R.id.fl_live_list, listFragment);
        fragmentTransaction.commit();
    }
}

앱의 AndroidManifest.xml에 MainActivity를 등록해야 합니다(실제 패키지 이름을 사용하십시오):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        ...
        <!-- 예: MainActivity를 등록하려면 실제 패키지 이름을 사용하십시오. -->
        <activity 
            android:name="com.trtc.uikit.livekit.example.view.main.MainActivity" 
            android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/>
        ...
    </application>
</manifest>

7단계. 청중이 스튜디오에 들어감

app_activity_audience.xml이라는 새 파일을 생성합니다(기본 경로: app/src/main/res/layout/app_activity_audience.xml).

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android='httpschemasandroidcomapkresandroid'"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id='idfl_container'"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

AudienceActivity.java라는 새 파일을 생성하고 AndroidManifest.xml에 등록합니다. TUILiveKit TUILiveRoomAudienceFragment 페이지를 로드하여 방에 들어갈 수 있습니다.

public class AudienceActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app_activity_audience);
        //RoomId는 사용자 정의할 수 있습니다.
        String roomId = "123666";

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        TUIVoiceRoomFragment fragment = new TUIVoiceRoomFragment(roomId, 
                TUIVoiceRoomFragment.RoomBehavior.JOIN, null);
        fragmentTransaction.add(R.id.fl_container, fragment);
        fragmentTransaction.commit();
    }
}

앱 프로젝트의 AudienceActivity를 등록해야 합니다(실제 패키지 이름을 사용하십시오):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android='httpschemasandroidcomapkresandroid'"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        ...
        <!-- 예: AudienceActivity를 등록하려면 실제 패키지 이름을 사용하십시오. -->
        <activity android:name="com.trtc.uikit.livekit.example.main.AudienceActivity"
                  android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"/>
        ...
    </application>
</manifest>

청중이 방에 들어가야 하는 곳(비즈니스에 따라 기본적으로 MainActivity의 클릭 이벤트에서 실행될 수 있음)에서, 다음 작업을 수행하여 청중 진입 페이지를 띄워야 합니다:

Intent intent = new Intent(context, AudienceActivity.class);
startActivity(intent);

비슷한 앱이나 플랫폼을 구축하고 싶으신가요? 지금 무료로 10,000분을 받아보세요.

무료로 시작하기

Yalla 그룹 음성 채팅 룸 앱의 주요 기능

 다중 사용자 음성 룸: Yalla는 사용자가 여러 사람이 동시에 대화할 수 있는 음성 채팅 룸을 생성하거나 참여할 수 있게 하여 그룹 토론 및 사회적 모임에 적합합니다.

 글로벌 연결성: 전 세계의 사람들과 연결할 수 있어 문화 교류와 국제 친구 만들기에 훌륭한 플랫폼입니다.

 인터랙티브 게임: 앱 내에 다양한 인터랙티브 게임이 통합되어 있어 사용자가 음성 채팅을 하면서 즐겁고 경쟁적인 경험을 추가할 수 있습니다.

 라이브 엔터테인먼트: Yalla는 사용자가 음악을 듣고 공연을 관람하며 라이브 토론에 참여할 수 있는 라이브 세션을 개최하여 엔터테인먼트와 참여를 제공합니다.

 사용자 프로필 및 맞춤 설정: 사용자는 아바타, 상태 업데이트 등을 통해 프로필을 생성하고 맞춤 설정할 수 있어 커뮤니티 내에서 개인화된 경험과 정체성을 허용합니다.

Yalla 채팅 룸 앱의 5가지 최고의 대안

Discord

게이머들 사이에서 인기가 있는 Discord는 뛰어난 음성 채팅 기능을 제공하며 텍스트 및 비디오 옵션도 함께 제공하여 캐주얼 및 전문 상호작용 모두에 적합합니다.

Clubhouse

이 앱은 기술부터 개인 발전까지 다양한 주제에 대한 논의를 호스팅할 수 있는 방에서 라이브 음성 대화에 중점을 두고 있습니다.

Viber

보안 메시징으로 유명한 Viber는 그룹 음성 채팅을 포함하여 음성 및 비디오 통화 옵션을 제공하며, 스티커와 GIF와 같은 추가 기능으로 활기찬 채팅 경험을 제공합니다.

Telegram

주로 메시징 앱이지만, Telegram은 대규모 그룹 음성 채팅인 Voice Chats 2.0을 지원하여 라이브 이벤트나 대규모 그룹 논의에 적합합니다.

Zello

이 앱은 워키토키처럼 작동하며 간단한 푸시 투 톡 기능으로 실시간 음성 통신을 가능하게 하여 빠르고 효율적인 음성 채팅을 위한 최적입니다.

자주 묻는 질문

Yalla에서 음성 채팅 룸에 어떻게 참여하나요?

Yalla에서 음성 채팅 룸에 참여하려면, 앱을 열고 사용 가능한 룸 목록을 탐색하거나 특정 룸을 찾기 위해 검색 기능을 사용한 다음, 참여할 룸을 탭하면 됩니다.

Yalla에서 나만의 채팅 룸을 만들 수 있나요?

네, Yalla는 사용자가 자신의 채팅 룸을 만들 수 있도록 허용합니다. 주제를 설정하고 공개 또는 비공개 여부를 결정하며, 친구를 초대하거나 누구나 참여하도록 할 수 있습니다.

Yalla는 안전하게 사용할 수 있나요?

Yalla는 존중하고 안전한 환경을 보장하기 위해 다양한 관리 도구와 가이드라인을 우선시합니다. 그러나 모든 온라인 플랫폼과 마찬가지로 신중하게 사용하고 개인 정보를 보호하는 것이 중요합니다.

Yalla는 여러 언어를 지원하나요?

네, Yalla는 여러 언어를 지원하여 글로벌 사용자에게 접근 가능하며 비영어 사용자의 사용자 경험을 향상시킵니다.

Yalla를 사용하는 데 수수료가 있나요?

Yalla는 무료로 다운로드하고 사용할 수 있지만, 프리미엄 기능 및 콘텐츠에 대한 액세스를 위해 인앱 구매 및 구독도 제공합니다.

온라인에서 질문이 있거나 도움이 필요하시면 저희 지원 팀이 언제든지 도와드릴 준비가 되어 있습니다. 언제든지 문의하시거나 저희와 함께 텔레그램 또는 디스코드에 참여하시기 바랍니다.