반응형

 

실제 안드로이드 기기 없이 Mac의 에뮬레이터 환경에서 카카오톡 채팅봇을 구축하는 방법을 단계별로 설명합니다.


목차

  1. 개요 및 동작 원리
  2. 사전 준비물
  3. BlueStacks 설치
  4. 카카오톡 설치 및 계정 설정
  5. 메신저봇R 설치 및 권한 설정
  6. 봇 스크립트 작성
  7. 테스트 및 디버깅
  8. 운영 시 주의사항
  9. 마무리

1. 개요 및 동작 원리

메신저봇R이란?

메신저봇R은 안드로이드의 알림(Notification) 시스템을 이용해 카카오톡 메시지를 감지하고, 미리 작성해둔 JavaScript 스크립트에 따라 자동으로 응답하는 앱입니다.

동작 흐름

카카오톡 메시지 수신
        ↓
 안드로이드 알림 발생
        ↓
 메신저봇R이 알림 감지
        ↓
 JavaScript 스크립트 실행 (response 함수)
        ↓
 카카오톡 알림 액션으로 자동 답장

왜 BlueStacks인가?

안드로이드 스튜디오의 AVD(Android Virtual Device)보다 BlueStacks를 권장하는 이유는 다음과 같습니다.

  • Google Play Services가 기본 탑재되어 앱 호환성이 높음
  • 카카오톡 에뮬레이터 감지 우회 가능성이 상대적으로 높음
  • Mac용 네이티브 빌드 지원 (Intel / Apple Silicon 모두 지원)
  • 설정이 간단하고 UI가 직관적

2. 사전 준비물

시작하기 전에 아래 항목들을 준비해주세요.

항목 설명
Mac (Intel 또는 Apple Silicon) macOS 11 Big Sur 이상 권장
여유 저장 공간 최소 10GB 이상
여분의 전화번호 카카오톡 봇 전용 계정 인증용
카카오 계정 (신규) 봇 전용으로 새로 만들 것을 권장
메신저봇R APK Play Store 또는 공식 채널에서 다운로드

⚠️ 중요: 기존에 사용 중인 카카오톡 계정을 그대로 사용하면 기존 기기와 충돌할 수 있습니다. 봇 전용 신규 계정을 만들고, 봇을 운영할 오픈채팅방에 해당 계정을 참여시키는 방식을 권장합니다.


3. BlueStacks 설치

3-1. 자신의 Mac 환경 확인

터미널에서 아래 명령어로 CPU 종류를 확인합니다.

uname -m
# x86_64 → Intel Mac
# arm64  → Apple Silicon (M1/M2/M3)

3-2. BlueStacks 다운로드

BlueStacks 공식 홈페이지에 접속해 Mac용 최신 버전을 다운로드합니다.

  • Intel Mac: BlueStacks 5 (x64)
  • Apple Silicon: BlueStacks 5 (Silicon) — 별도 빌드 선택

💡 Apple Silicon의 경우 공식 홈페이지에서 "Apple Silicon" 버전을 명시적으로 선택해야 합니다.

3-3. 설치 및 초기 설정

  1. 다운로드한 .dmg 파일을 실행합니다.
  2. 설치 마법사를 따라 진행하면 BlueStacks가 설치됩니다.
  3. 최초 실행 시 Google 계정 로그인을 요구합니다. 봇 전용 Google 계정을 사용하거나 기존 계정으로 로그인합니다.
  4. 로그인 후 Play Store가 정상적으로 활성화되는지 확인합니다.

3-4. 권장 에뮬레이터 설정

BlueStacks 우측 사이드바의 설정(⚙️)환경 설정에서 아래와 같이 설정합니다.

설정 항목 권장값
CPU 코어 수 2 이상
RAM 2048MB 이상
해상도 1280 x 720
Android 버전 Android 9 이상

4. 카카오톡 설치 및 계정 설정

4-1. 카카오톡 설치

  1. BlueStacks 내부의 Google Play Store를 실행합니다.
  2. 검색창에 카카오톡을 입력하고 설치합니다.
  3. 설치가 완료되면 카카오톡을 실행합니다.

⚠️ 일부 버전에서는 에뮬레이터 환경을 감지해 실행을 거부할 수 있습니다. 이 경우 BlueStacks 설정에서 루트 권한 비활성화를 확인하고, Android 버전을 변경해 재시도해보세요.

4-2. 봇 전용 계정으로 로그인

  1. 카카오톡 실행 후 새 계정 만들기 또는 기존 봇 계정으로 로그인합니다.
  2. 전화번호 인증 단계에서 준비해둔 여분 회선의 번호를 입력합니다.
  3. 해당 번호로 수신된 SMS 인증번호를 입력해 인증을 완료합니다.
  4. 로그인 완료 후 봇이 활동할 오픈채팅방에 참여합니다.

4-3. 알림 설정 확인

메신저봇R이 메시지를 감지하려면 카카오톡 알림이 반드시 활성화되어 있어야 합니다.

  • 카카오톡 앱 내 설정 → 알림 → 모든 알림 켜기
  • BlueStacks 설정 → 알림 → 알림 표시 활성화

5. 메신저봇R 설치 및 권한 설정

5-1. 메신저봇R 설치

메신저봇R은 Play Store에서 검색되지 않는 경우가 있습니다. 이 경우 APK 파일을 직접 설치합니다.

방법 1: Play Store에서 "메신저봇R" 검색 후 설치
방법 2: 공식 오픈채팅방이나 신뢰할 수 있는 출처에서 APK 다운로드 후 설치

APK를 직접 설치하려면 BlueStacks의 사이드바에서 APK 설치 버튼을 클릭하거나, APK 파일을 BlueStacks 화면으로 드래그 앤 드롭합니다.

5-2. 알림 접근 권한 허용 (가장 중요!)

메신저봇R이 정상 동작하려면 알림 읽기 권한이 반드시 필요합니다.

  1. 메신저봇R 앱을 처음 실행하면 권한 요청 팝업이 뜹니다.
  2. "알림 접근 허용" 버튼을 눌러 Android 시스템 설정으로 이동합니다.
  3. 메신저봇R 항목을 찾아 알림 접근 허용을 활성화합니다.

경로: Android 설정 → 앱 → 메신저봇R → 알림 접근

이 권한이 없으면 메시지를 아예 감지하지 못합니다. 권한 설정 후 앱을 재시작하세요.

5-3. 봇 활성화

  1. 메신저봇R 메인 화면에서 전원 버튼(▶)을 눌러 봇을 활성화합니다.
  2. 상단에 초록색 ON 상태가 표시되면 봇이 동작 중입니다.
  3. 이 상태에서 카카오톡으로 메시지를 받으면 스크립트가 실행됩니다.

6. 봇 스크립트 작성

메신저봇R은 JavaScript로 봇 로직을 작성합니다. 메인 함수는 response입니다.

6-1. response 함수 파라미터

function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {
    // room       : 채팅방 이름 (String)
    // msg        : 수신된 메시지 내용 (String)
    // sender     : 보낸 사람 닉네임 (String)
    // isGroupChat: 단체 채팅방 여부 (Boolean)
    // replier    : 답장 객체 (replier.reply()로 답장)
    // imageDB    : 이미지 관련 객체
    // packageName: 메시지를 보낸 앱의 패키지명 (String)
}

6-2. 기본 예제 - 특정 채팅방에서만 응답

function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {

    // 카카오톡 메시지만 처리
    if (packageName !== "com.kakao.talk") return;

    // 특정 오픈채팅방에서만 동작
    if (room !== "내 오픈채팅방 이름") return;

    // 인사 응답
    if (msg === "안녕" || msg === "안녕하세요") {
        replier.reply("안녕하세요! 무엇을 도와드릴까요? 😊");
        return;
    }

    // 도움말 명령어
    if (msg === "!도움말") {
        replier.reply(
            "📋 사용 가능한 명령어\n" +
            "!도움말 - 명령어 목록\n" +
            "!정보 - 봇 정보\n" +
            "!시간 - 현재 시간"
        );
        return;
    }

    // 현재 시간 출력
    if (msg === "!시간") {
        var now = new Date();
        replier.reply("현재 시간: " + now.toLocaleString("ko-KR"));
        return;
    }

    // 봇 정보
    if (msg === "!정보") {
        replier.reply("🤖 카카오톡 자동응답 봇 v1.0\nBlueStacks + 메신저봇R로 동작 중입니다.");
        return;
    }
}

6-3. 심화 예제 - 키워드 감지 및 조건 분기

function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {

    if (packageName !== "com.kakao.talk") return;
    if (room !== "내 오픈채팅방 이름") return;

    var lowerMsg = msg.toLowerCase();

    // 욕설 감지 및 경고 (예시)
    var badWords = ["욕설1", "욕설2"];
    for (var i = 0; i < badWords.length; i++) {
        if (msg.indexOf(badWords[i]) !== -1) {
            replier.reply("⚠️ " + sender + "님, 채팅 규칙을 지켜주세요!");
            return;
        }
    }

    // 특정 사람에게만 반응
    if (sender === "관리자닉네임" && msg.startsWith("!공지")) {
        var notice = msg.replace("!공지 ", "");
        replier.reply("📢 [공지사항]\n" + notice);
        return;
    }

    // 주사위 기능
    if (msg === "!주사위") {
        var result = Math.floor(Math.random() * 6) + 1;
        replier.reply(sender + "님의 주사위 결과: 🎲 " + result);
        return;
    }

    // 반복 메시지 에코 (테스트용)
    if (msg.startsWith("!에코 ")) {
        replier.reply(msg.replace("!에코 ", ""));
        return;
    }
}

6-4. 스크립트 적용 방법

  1. 메신저봇R 앱 하단의 스크립트 편집기 탭으로 이동합니다.
  2. 기존 코드를 모두 삭제하고 작성한 스크립트를 붙여넣습니다.
  3. 우측 상단의 저장(💾) 버튼을 누릅니다.
  4. 컴파일(▶) 버튼을 눌러 문법 오류가 없는지 확인합니다.
  5. 봇이 ON 상태인지 다시 확인합니다.

7. 테스트 및 디버깅

7-1. 기본 동작 테스트

  1. 다른 기기(혹은 다른 카카오톡 계정)에서 봇이 참여한 오픈채팅방에 메시지를 보냅니다.
  2. 봇 계정이 자동으로 답장하는지 확인합니다.
  3. !도움말 등 미리 정의한 명령어를 입력해 정상 동작 여부를 체크합니다.

7-2. 로그 확인

메신저봇R의 로그 탭에서 메시지 수신 및 응답 내역을 확인할 수 있습니다.

[INFO] room: 내 오픈채팅방, sender: 테스터, msg: !도움말
[INFO] reply sent: 📋 사용 가능한 명령어...

7-3. 자주 발생하는 문제

문제 원인 해결 방법
봇이 응답하지 않음 알림 접근 권한 미허용 설정에서 권한 재확인
봇이 응답하지 않음 카카오톡 알림 비활성화 카카오톡 알림 설정 켜기
일부 메시지만 감지됨 room 이름 불일치 로그에서 실제 room 이름 확인 후 수정
스크립트 오류 JavaScript 문법 오류 편집기에서 컴파일 후 오류 메시지 확인
카카오톡 설치 불가 에뮬레이터 감지 BlueStacks 버전 변경 또는 루트 비활성화

8. 운영 시 주의사항

8-1. Mac 절전 모드 해제

BlueStacks가 실행 중이더라도 Mac이 잠자기 모드에 들어가면 봇이 중단됩니다. 아래 설정으로 절전을 막아주세요.

방법 1: 시스템 설정에서 변경

시스템 설정 → 배터리(또는 에너지 절약) → 디스플레이 끄기 시간을 늘리거나 "절대 끄지 않음"으로 설정

방법 2: 터미널 명령어 (일시적)

# 카페인 앱처럼 절전 방지 (터미널 열어두는 동안 유지)
caffeinate -d

8-2. 카카오톡 계정 정책

  • 자동응답 봇은 카카오톡 이용약관상 회색 지대에 해당합니다.
  • 과도한 자동 메시지 발송 시 계정이 제한될 수 있습니다.
  • 봇 전용 계정을 사용해 메인 계정이 영향을 받지 않도록 합니다.

8-3. 리소스 관리

BlueStacks는 상당한 CPU와 메모리를 소모합니다. 장시간 운영 시:

  • 불필요한 BlueStacks 앱은 종료해 리소스를 확보하세요.
  • 주기적으로 BlueStacks를 재시작해 메모리 누수를 방지하세요.
  • Mac의 온도와 팬 소음을 주기적으로 확인하세요.

9. 마무리

이번 포스트에서는 Mac 환경에서 BlueStacks와 메신저봇R을 활용해 카카오톡 오픈채팅방 자동응답 봇을 구축하는 방법을 알아보았습니다.

요약

  1. BlueStacks 설치 (Mac 아키텍처에 맞는 버전 선택)
  2. 카카오톡 설치 → 봇 전용 계정으로 인증 및 로그인
  3. 메신저봇R 설치 → 알림 접근 권한 허용
  4. JavaScript 스크립트 작성 및 적용
  5. 봇 활성화 후 테스트

실제 기기 없이도 충분히 구축 가능하지만, 24시간 안정적인 운영이 필요하다면 중고 저가 안드로이드 폰을 별도 기기로 사용하는 것이 장기적으로 더 안정적입니다.


이 포스트가 도움이 되었다면 공유 부탁드립니다! 궁금한 점은 댓글로 남겨주세요. 🙌

반응형

+ Recent posts