주식 봇은 투자자의 개입 없이 자동으로 종목을 분석하고, 조건에 맞는 시점에 매수 또는 매도하는 프로그램이에요. 특정 전략을 코드로 구현하고, 실시간 데이터를 받아 판단해서 트레이딩을 자동으로 처리하는 거죠.
과거엔 이런 봇이 대형 금융사나 퀀트팀에서만 사용되었지만, 요즘은 키움증권 Open API+, 한국투자 KIS API 등 덕분에 개인도 얼마든지 자신만의 주식 봇을 만들 수 있어요. 특히 파이썬을 활용하면 쉽고 직관적인 구현이 가능하죠.
이 글에서는 '개념 → 준비물 → 전략 설계 → 코딩 → 테스트 → 실전 운영'까지 단계별로 주식 봇을 만드는 전 과정을 자세히 알려드릴게요. 실전 예제도 포함돼 있으니 따라 하기만 해도 내 봇을 만들 수 있답니다! 😎
그럼 지금부터 당신만의 트레이딩 봇 만들기, 함께 시작해볼까요? 💡
🤖 주식 봇이란?
주식 봇은 사전에 정해진 알고리즘이나 조건에 따라 주식을 자동으로 사고파는 프로그램이에요. 사람이 직접 매수를 클릭하지 않아도, 컴퓨터가 실시간으로 시장을 분석하고 조건이 맞으면 자동으로 주문을 넣는 구조죠.
이런 봇은 보통 파이썬, C++, 자바 같은 프로그래밍 언어로 만들어지고, 증권사에서 제공하는 API를 통해 실시간 데이터와 주문 기능을 연동해요. 국내에선 키움증권, 한국투자증권, 미래에셋증권 등이 대표적인 API 제공 증권사예요.
봇은 단순히 자동 매매만 하는 것이 아니라, 전략에 따라 특정 조건이 충족될 때만 매매하고, 수익률이 일정 이상이면 자동 매도를 하거나, 손절선을 넘으면 손실을 자동으로 줄이는 등의 스마트한 행동도 가능해요.
초보자라면 ‘RSI(상대강도지수)가 30 이하이면 매수, 70 이상이면 매도’ 같은 간단한 전략부터 시작해도 좋아요. 이러한 조건을 코드로 만들고 봇이 자동으로 실행하게 하면, 시간과 감정을 절약하면서도 체계적인 투자가 가능하답니다.
주식 봇의 주요 기능은 다음과 같아요: ① 조건 검색, ② 시세 감시, ③ 자동 주문 실행, ④ 체결 결과 분석, ⑤ 수익/손실 계산, ⑥ 기록 저장 및 리포트 생성. 이 모든 과정을 자동화하면 진짜 ‘로보 트레이더’가 완성되는 거예요!
단, 주식 봇은 어디까지나 ‘도구’일 뿐이에요. 봇이 아무리 똑똑해도, 전략이 잘못됐거나 시장 상황이 급변하면 손실이 날 수 있어요. 그래서 봇을 만들기 전에 철저한 계획과 테스트가 반드시 필요해요.
내가 생각했을 때, 주식 봇은 특히 본업이 따로 있어 매매 타이밍을 놓치기 쉬운 직장인이나, 감정 매매를 줄이고 싶은 분들에게 가장 유용한 도구예요. 하루 종일 차트를 볼 수 없는 사람에게는 정말 든든한 조력자가 되어줄 수 있어요.
주식 봇은 장 시작과 동시에 여러 종목을 동시에 감시하고, 조건이 충족되면 순식간에 주문을 넣고, 체결 여부를 확인한 후 로그로 저장까지 해줘요. 사람이 하루 종일 붙어서 하는 일을 1초 만에 처리하는 셈이죠.
정리하자면, 주식 봇이란 나만의 전략을 24시간 감시하고 대신 실행해주는 똑똑한 매매 도구예요. 본격적인 개발에 앞서, 봇이 어떤 역할을 하고 어떤 구조로 움직이는지를 먼저 이해하는 게 중요해요.
🤖 주식 봇의 핵심 기능 요약
기능 | 설명 | 중요도 |
---|---|---|
조건 검색 | 특정 지표나 조건 충족 종목 필터링 | ★★★ |
시세 감시 | 실시간 주가, 거래량 분석 | ★★★ |
주문 실행 | 조건 충족 시 자동 매수/매도 | ★★★★★ |
체결 확인 | 실제 거래 성사 여부 확인 | ★★ |
로그 저장 | 매매 내역 기록 및 분석 | ★★ |
이제 주식 봇의 개념을 이해했으니, 본격적으로 어떤 준비물이 필요한지, 어떤 환경을 갖춰야 시작할 수 있는지 알아볼게요! 🧰
🧰 개발 전 준비 사항
주식 봇을 만들기 전에 준비해야 할 것들이 있어요. 아무 장비 없이 트레이딩 로봇을 만드는 건 불가능하니까요! 기초 환경부터 계좌 개설, 라이브러리 설치까지 차근차근 준비하면 누구나 시작할 수 있어요.
첫 번째는 증권사 API 신청이에요. 국내에서는 키움증권 OpenAPI+가 가장 널리 쓰여요. 별도로 신청해야 하며, 공인인증서와 모의투자 계좌가 필요해요. 키움증권 HTS인 ‘영웅문4’를 PC에 설치하고, OpenAPI 설치까지 완료해야 해요.
두 번째는 파이썬 개발 환경이에요. 파이썬을 설치한 후, 대표적인 개발 도구인 VS Code나 PyCharm을 쓰면 편리해요. 그리고 주식 데이터를 분석하거나 매매를 실행하려면 pandas
, pykiwoom
, datetime
같은 라이브러리가 필요해요.
세 번째는 모의투자 환경 구축이에요. 무턱대고 실전에 들어가면 위험하니까, 모의투자를 통해 먼저 전략을 테스트해보는 게 좋아요. 키움 OpenAPI는 모의투자용 API를 별도로 제공해요. 신청은 키움 홈페이지에서 할 수 있어요.
네 번째는 실시간 시세 수신 권한이에요. 대부분의 API는 기본적으로 실시간 데이터 수신이 제한돼 있어요. 키움은 로그인 시 '실시간 등록'을 하면 이벤트 기반으로 시세를 받을 수 있고, 별도의 종목 등록 절차도 필요해요.
다섯 번째는 매매 전략 구상이에요. 아무 조건 없이 봇을 돌리면 무작위 매매가 되기 쉬워요. 예를 들어 “거래량이 전일 대비 200% 이상이고 RSI가 30 이하인 종목을 매수 후 5% 상승 시 매도”처럼 명확한 기준을 정해두는 게 좋아요.
여섯 번째는 보안 설정이에요. 자동 로그인, 계좌 정보 저장, 프로그램 강제 종료 방지 등은 모두 사전 설정이 필요해요. 특히 봇이 실거래로 넘어갈 때는 반드시 보안문자 인증을 거치거나, 사용자 동의가 필요한 구조로 짜야 해요.
일곱 번째는 자동 실행 스크립트예요. 매일 아침 봇을 수동으로 켜는 건 비효율적이에요. 파이썬 스크립트를 예약 실행하거나, 윈도우 작업 스케줄러를 이용해 자동으로 프로그램이 구동되게 만들 수 있어요.
마지막으로 네트워크 환경도 중요해요. 갑작스런 인터넷 끊김이나 시스템 다운은 치명적일 수 있어요. 그래서 장기 운영을 원한다면 AWS나 Google Cloud 같은 클라우드 서버에 올려서 봇을 돌리는 걸 추천해요.
이런 준비 과정을 차근히 마치면, 본격적으로 '내 전략'을 어떻게 코드로 구현할지, 설계 단계로 들어갈 수 있어요! 📐
🧾 주식 봇 개발 준비 체크리스트
준비 항목 | 설명 | 필수 여부 |
---|---|---|
키움 API 신청 | HTS, 모의계좌, 공인인증서 필요 | ✅ |
파이썬 환경 | VS Code, 라이브러리 설치 | ✅ |
모의투자 계정 | 전략 테스트용 계좌 | ✅ |
매매 전략 | 조건 및 로직 구상 | ✅ |
클라우드 서버 | AWS, GCP 등에서 24시간 운영 | 선택 |
이제 모든 준비가 끝났어요! 다음 단계에서는 실제로 봇에 넣을 전략을 어떻게 설계하고 구조화할지 배워볼게요 ✏️
📐 봇 전략 설계 방법
주식 봇을 만들기 위해 가장 먼저 할 일은 어떤 전략으로 매매를 할지 정하는 거예요. 봇은 사람처럼 감정이 없기 때문에 명확한 '조건'이 있어야만 움직여요. 그래서 구체적인 로직과 기준이 필수예요.
전략을 설계할 땐 다음 3가지 요소를 꼭 정의해야 해요: 1) 매수 조건, 2) 매도 조건, 3) 리스크 관리 조건. 예를 들어 “5일 이동평균선이 20일선 상향 돌파 시 매수, 3% 수익 시 익절 또는 2% 하락 시 손절”처럼 명확하게요.
초보자라면 기술적 지표 기반 전략이 가장 쉽고 직관적이에요. 대표적인 지표로는 RSI, MACD, 볼린저밴드, 이동평균선 등이 있어요. 이 지표들은 파이썬으로 쉽게 계산할 수 있고, 대부분의 데이터 제공 API에서도 기본으로 제공돼요.
또 다른 전략은 거래량 기반 전략이에요. 예를 들어 “전일 대비 거래량이 200% 이상 증가한 종목 중 상승폭이 3% 이하인 종목만 매수”처럼 시장의 관심이 몰리는 종목을 추려내는 전략도 매우 강력해요.
그 외에도 시가/고가/저가/종가 패턴 전략, 이벤트 기반 전략(공시, 뉴스), 실적발표 반응 기반 전략 등 다양한 접근이 있어요. 처음엔 단순한 로직부터 시작하고, 테스트를 통해 점점 고도화하는 게 좋아요.
중요한 건 전략이 과거 데이터에서도 작동했는지 확인하는 것이에요. 이걸 ‘백테스트’라고 부르며, 전략을 수립할 때 반드시 거쳐야 하는 단계예요. 과거 수익률, 손실 폭, 매매 빈도 등을 미리 확인할 수 있어요.
그리고 전략은 시장 조건에 따라 바뀔 수 있기 때문에 변수화하는 게 좋아요. 예: 매수조건=“RSI 30 이하”, 손절기준=“2%”. 이렇게 변수로 만들면 나중에 파라미터를 바꾸기만 해도 쉽게 테스트할 수 있어요.
마지막으로 리스크 관리 전략도 꼭 포함시켜야 해요. ① 하루 총 매매 금액 제한, ② 한 종목에 몰빵 방지, ③ 손실 시 자동 종료 등 안전장치를 넣지 않으면 알고리즘이 폭주할 수 있어요.
전략을 설계할 때는 사람이 직접 판단하지 않고도 기계가 정확히 실행할 수 있도록 최대한 정량적이고 구체적으로 설계하는 것이 핵심이에요. 감성적인 표현은 봇이 이해 못 해요!
📋 봇 전략 설계 예시표
항목 | 예시 조건 | 설명 |
---|---|---|
매수 조건 | 5MA > 20MA & RSI < 30 | 단기 강세 + 과매도 상태 진입 |
매도 조건 | 수익률 3% 또는 RSI > 70 | 익절 타이밍 포착 |
손절 조건 | -2% 손실 발생 시 | 과도한 손실 방지 |
자산 분산 | 한 종목 비중 20% 이하 | 몰빵 리스크 회피 |
전략이 정해졌다면, 이제 그 전략을 코드로 옮기는 단계로 넘어가야겠죠? 다음 섹션에서는 실제 파이썬으로 주식 봇을 어떻게 만들 수 있는지 실전 예제를 통해 알려드릴게요 💻
💻 파이썬으로 봇 만들기
이제 본격적으로 파이썬을 이용해 주식 봇을 만들어볼 거예요. 이번 섹션에서는 키움증권 OpenAPI와 파이썬을 활용해 기본적인 매수 전략을 가진 자동 매매 봇을 만들어보는 과정을 다뤄볼게요.
먼저 필요한 라이브러리 설치부터 진행할게요. 파이썬 설치가 완료됐다면 아래와 같이 필수 패키지를 설치해 주세요:
pip install pykiwoom pandas datetime pyqt5
이제 키움 OpenAPI를 불러오기 위한 파이썬 코드 기본 틀을 작성해볼게요. 아래 코드는 ‘pykiwoom’을 사용해서 키움증권 계좌에 연결하고, 주식 종목 정보를 불러오는 간단한 구조예요.
from pykiwoom.kiwoom import Kiwoom
import time
kiwoom = Kiwoom()
kiwoom.CommConnect(block=True)
# 연결 확인
account_list = kiwoom.GetLoginInfo("ACCNO")
print("계좌번호:", account_list)
다음은 간단한 매수 전략을 코드로 구현해보는 예제예요. 여기서는 예를 들어, 삼성전자(005930)의 현재가가 7만 원 이하일 때 10주를 시장가로 매수하는 전략이에요.
stock_code = "005930" # 삼성전자
price = kiwoom.GetMasterLastPrice(stock_code)
price = int(price.replace(",", ""))
print("현재가:", price)
if price <= 70000:
kiwoom.SendOrder("시장가매수", "0101", account_list[0], 1, stock_code, 10, 0, "03", "")
print("조건 충족 → 매수주문 전송 완료!")
여기서 중요한 건, '03'은 시장가 주문이라는 뜻이고, 1은 매수, 2는 매도예요. 실전 주문이 들어가기 때문에 꼭 모의투자 환경에서 먼저 테스트해야 해요!
다음은 반복적으로 감시하면서 조건이 충족되면 주문하는 간단한 봇 형태예요. 이건 시간 간격을 두고 계속 조건을 확인해요.
while True:
price = kiwoom.GetMasterLastPrice(stock_code)
price = int(price.replace(",", ""))
if price <= 70000:
kiwoom.SendOrder("시장가매수", "0101", account_list[0], 1, stock_code, 10, 0, "03", "")
print("자동매수 실행")
break
print("조건 미충족, 현재가:", price)
time.sleep(60) # 1분마다 확인
이런 식으로 봇을 만들면 실시간으로 종목을 감시하다가 조건을 만족하면 자동으로 매매를 실행하게 돼요. 여기에 기술적 지표나 종목 리스트, 손절 조건 등을 추가해 더 정교한 봇으로 발전시킬 수 있어요.
💻 파이썬 주식 봇 구조 요약
구성 요소 | 내용 | 예시 |
---|---|---|
API 연결 | 키움 OpenAPI 로그인 및 계좌 확인 | kiwoom.CommConnect() |
조건 검사 | 지정가 이하 여부 판단 | price <= 70000 |
자동 주문 | 조건 충족 시 매수 전송 | SendOrder() |
이제 여러분도 실제로 작동하는 주식 봇을 만들 수 있어요! 다음은 이 봇이 실전에서 어떤 성과를 낼지 알아보기 위해 📊 백테스트 및 모의투자 단계로 넘어가 볼게요 😊
📊 백테스트 및 모의투자
주식 봇을 실전에 적용하기 전에 가장 중요한 단계는 바로 백테스트와 모의투자예요. 이 단계는 봇이 과거의 데이터를 바탕으로 얼마나 잘 작동했는지를 확인하고, 실전 손실을 방지하기 위한 필수 절차랍니다.
백테스트는 주어진 전략이 과거 시세 데이터에서 어떤 수익률을 냈는지 시뮬레이션하는 과정이에요. 예를 들어 ‘RSI 30 이하 매수 → RSI 70 이상 매도’라는 전략이 2023년에 몇 번의 매매를 했고, 누적 수익은 얼마였는지를 확인하는 거죠.
파이썬에서는 backtrader
, bt
, pandas
등을 활용해 백테스트를 수행할 수 있어요. 실제로 CSV로 저장된 과거 주가 데이터를 불러와서 매수/매도 조건에 따라 수익을 계산할 수 있답니다.
예를 들어, 아래는 단순 이동평균 전략을 백테스트하는 코드예요. pandas로 과거 데이터를 불러오고, 수익을 계산하는 방식이에요.
import pandas as pd
df = pd.read_csv("samsung_2023.csv")
df["MA5"] = df["Close"].rolling(window=5).mean()
df["MA20"] = df["Close"].rolling(window=20).mean()
df["Buy"] = (df["MA5"] > df["MA20"]) & (df["MA5"].shift(1) < df["MA20"].shift(1))
df["Sell"] = (df["MA5"] < df["MA20"]) & (df["MA5"].shift(1) > df["MA20"].shift(1))
print("총 매수 신호:", df["Buy"].sum())
print("총 매도 신호:", df["Sell"].sum())
위처럼 백테스트 결과가 기대만큼 나오지 않으면 전략을 조정하거나, 손절/익절 조건을 강화해야 해요. 백테스트는 전략의 안정성과 실현 가능성을 판단하는 첫 번째 테스트죠.
다음은 모의투자예요. 이는 실시간 시장 데이터를 기반으로 거래를 실행하지만, 실제 돈은 움직이지 않아요. 실전과 똑같은 조건에서 전략을 테스트할 수 있기 때문에 가장 좋은 실전 연습이에요.
키움증권의 모의투자 API에 접속하면, 실전과 동일한 방식으로 주문을 넣고 체결 결과를 확인할 수 있어요. 이때 봇이 잘 작동하는지, 조건이 지나치게 많거나 적지 않은지도 체크할 수 있어요.
모의투자에서 꼭 확인해야 할 포인트는 다음과 같아요: ① 주문이 정상적으로 전송되는가, ② 체결 결과가 빠르게 수신되는가, ③ 조건 판단이 정확한가, ④ 로그가 제대로 저장되는가. 이 네 가지가 잘 작동하면 실전에 거의 준비된 상태예요.
백테스트와 모의투자를 충분히 거친 후에야 비로소 실제 투자 계좌에 연결해서 실거래로 넘어가는 것이 안전해요. 아무리 간단한 전략이라도 최소 일주일 이상은 모의 환경에서 돌려보는 걸 추천해요.
📈 테스트 단계별 요약표
단계 | 설명 | 목표 |
---|---|---|
백테스트 | 과거 데이터로 전략 검증 | 전략의 실현 가능성 확인 |
모의투자 | 실시간 시세로 가상매매 | 봇의 안정성 테스트 |
리포트 작성 | 매매 결과 기록 및 분석 | 전략 개선 기반 확보 |
마지막 단계는 이 봇을 실제로 시장에 배포하고 실전에서 운영하는 일이에요. 그럼 이어서 🚀 실전 배포와 운영 섹션으로 넘어가볼게요!
🚀 실전 배포와 운영
모의투자에서 충분히 테스트를 마쳤다면 이제는 실전 계좌에 봇을 연결해서 운영해볼 수 있어요. 하지만 실제 돈이 오가는 만큼, 준비는 더 철저히 해야 해요. 이 단계에서는 실전 배포를 위한 설정과 자동화를 중점적으로 다뤄볼게요.
가장 먼저 해야 할 일은 실전 계좌로의 연결 전환이에요. 키움 OpenAPI에서는 모의투자와 실전투자 API가 다르기 때문에 별도로 연결해줘야 해요. 실전용 계좌로 로그인하고 인증서 오류가 없도록 확인해요.
그 다음으로는 자동 로그인 설정이에요. 파이썬 봇을 실행할 때마다 직접 로그인하면 불편하니까, opstarter.exe
를 이용해 자동 로그인 매크로를 설정해두는 방법이 있어요. 또는 윈도우 작업 스케줄러를 활용해 부팅 시 자동 실행도 가능해요.
다음은 운영 중 예외 처리에요. 네트워크가 끊기거나, 봇이 멈췄거나, API 호출이 실패하는 등 예외 상황이 종종 발생할 수 있어요. 이를 대비해 try-except 구문을 활용하고, 예외 발생 시 알림을 보내는 구조를 갖추는 게 좋아요.
실제로 많은 투자자들이 슬랙(Slack), 텔레그램(Telegram), 이메일을 활용해 봇 상태를 실시간으로 받아보는 시스템을 만들어요. 예: “삼성전자 매수 완료”, “연결 끊김: 자동 재로그인 중” 등의 알림이 오는 거죠.
또한 주기적 로그 저장도 매우 중요해요. 어떤 조건으로 매매가 발생했고, 어떤 종목이 체결되었는지를 기록해야 나중에 분석과 전략 수정을 할 수 있어요. pandas를 활용해 CSV로 저장하거나, SQLite 같은 경량 DB도 좋아요.
시스템을 더 안정적으로 운영하고 싶다면 AWS, Google Cloud, Oracle Cloud와 같은 클라우드 환경에서 봇을 24시간 운영하는 것이 좋아요. 로컬 PC보다 오류나 전력 끊김 가능성이 적어요.
운영 중 반드시 확인해야 할 점은 다음과 같아요: ① 현재 봇이 잘 작동 중인지, ② 조건에 맞게 매매가 이뤄지는지, ③ 예기치 않은 주문 반복이 있는지, ④ 자금 한도를 초과하지는 않는지 등 지속적인 모니터링이 필요해요.
마지막으로 운영 일지 작성을 추천해요. 봇이 언제 작동했는지, 어떤 종목을 사고팔았는지, 총 수익과 손실은 어땠는지를 매일 기록하면 전략 개선에 큰 도움이 돼요. 이 데이터는 가장 귀중한 자산이에요.
🛠 실전 운영 핵심 체크리스트
운영 항목 | 설명 | 추천 도구 |
---|---|---|
자동 로그인 | 수동 로그인 없이 봇 실행 | opstarter, 작업 스케줄러 |
실시간 알림 | 매매 결과와 오류 상황 알림 | 텔레그램, Slack |
로그 저장 | 매매 내역 자동 기록 | CSV, SQLite |
클라우드 운영 | 24시간 안정성 확보 | AWS, GCP |
이제 여러분만의 주식 봇이 실전에서도 안정적으로 돌아갈 준비가 되었어요! 🎉
마지막으로 자주 묻는 질문들 FAQ 섹션을 통해 마무리할게요. 🧾
📌 FAQ
Q1. 주식 봇을 만드는 데 코딩 실력이 꼭 필요한가요?
A1. 꼭 고급 코딩 실력이 필요하진 않아요! 파이썬의 기본만 익히고 예제를 활용하면 입문자도 충분히 만들 수 있어요. 노코드 플랫폼도 점점 많아지고 있어서 선택의 폭이 넓답니다.
Q2. 실전 매매에 바로 투입해도 되나요?
A2. 절대 아니에요. 반드시 백테스트 → 모의투자 → 실거래 순서로 충분히 검증해야 해요. 아무리 간단한 전략이라도 실전 시장에서는 다양한 예외 상황이 발생하거든요.
Q3. 키움 API는 무료인가요?
A3. 네, 개인 투자자에게 무료로 제공돼요. 하지만 실시간 데이터 수신, 자동 로그인 설정 등은 별도 세팅이 필요하고, 기업용 API는 유료인 경우도 있어요.
Q4. 전략이 실패하면 큰 손실이 나지 않을까요?
A4. 그래서 손절 조건, 매매 한도, 종목 분산 등 리스크 관리가 중요해요. 무조건 이기는 전략은 없기 때문에, 손실을 통제하는 로직을 꼭 포함시켜야 해요.
Q5. 주식 봇은 언제 작동하나요?
A5. 봇은 보통 장 시작 전 자동으로 실행되거나, 사용자가 직접 실행해요. 장 중에는 실시간 데이터를 바탕으로 1초~몇 분 간격으로 조건을 점검하면서 자동으로 매매하게 돼요.
Q6. 봇을 스마트폰에서도 실행할 수 있나요?
A6. 직접 실행은 어렵지만, 클라우드 서버에 올려두고 슬랙이나 텔레그램으로 알림을 받는 방식은 가능해요. 모바일로 매매 결과를 확인하거나 강제 종료 지시는 할 수 있어요.
Q7. 종목은 자동으로 고를 수 있나요?
A7. 조건검색 기능을 활용하면 매일 자동으로 종목을 선별할 수 있어요. 예를 들어 '전일 대비 거래량 증가' 조건을 설정하면 해당 종목만 자동으로 감시하게 만들 수 있어요.
Q8. 봇을 다른 사람과 공유하거나 판매할 수 있나요?
A8. 가능해요! GitHub에 오픈소스로 올리거나, 유료 텔레그램 채널이나 노션, 유튜브 등을 통해 전략을 소개하고 판매하는 사례도 점점 늘고 있어요. 단, 책임 문제는 주의해야 해요.
여기까지가 주식 봇 만들기의 전 과정을 담은 완성 가이드였어요! 🎯
이제 여러분도 자신만의 전략으로 직접 자동매매 봇을 만들 수 있어요. 중요한 건 계속 테스트하고, 실패해도 다시 전략을 수정하는 꾸준함이에요. 여러분의 성공적인 자동투자를 응원할게요! 🧠📊🤖