← 대시보드로

토스증권 실시간 시세 연결하기

이 대시보드의 차트와 분석은 누구나 공공데이터포털(금융위원회) 전 영업일 종가로 볼 수 있고, 실시간 주가(오늘 봉 · 1분봉 포함)는 각자 본인의 토스증권 Open API 키로 연결해야 보입니다. 한 번 설정해 두면 휴대폰·PC 어디서든 내 시세가 뜹니다. 개발을 해 본 적이 없어도 화면에 적힌 대로 누르고, 명령어는 복사·붙여넣기만 하면 됩니다.

ℹ️ 토스증권 약관상 API로 받은 정보는 본인 매매 목적으로만 쓸 수 있고, 다른 사람에게 보여주거나 나눠줄 수 없습니다. 그래서 한 사람의 키로 모두에게 보여주지 않고, 각자 자기 키로 자기 화면에만 받습니다.

무엇을 만드나요

내 휴대폰 · PC대시보드 화면
내 서버 (프록시)오라클 클라우드 · 무료
토스증권실시간 시세

토스증권은 미리 등록한 인터넷 주소(IP) 한 곳에서 온 요청에만 시세를 줍니다. 집 와이파이나 휴대폰은 주소가 수시로 바뀌므로, 주소가 바뀌지 않는 내 전용 서버를 하나 만들어 그 서버가 대신 시세를 받아 내 화면으로 전달하게 합니다.

처음 보는 낱말 풀이
서버 (인스턴스)
인터넷에 24시간 켜져 있는 내 전용 컴퓨터입니다. 오라클에서는 Instance라고 부릅니다. 내 PC를 꺼도 계속 돌아갑니다.
공인 IP
서버의 인터넷 주소입니다(예: 152.67.200.10). 토스증권에 "이 주소만 허용"으로 등록합니다.
프록시
서버에서 도는 작은 중계 프로그램입니다. 내 토스 키를 보관하고 시세 조회만 내 화면으로 전달합니다. 설치는 명령어 두 줄로 끝납니다.
접속 키 (프록시 키)
내 프록시에 들어가기 위한 비밀번호입니다. 설치할 때 자동으로 만들어지고, 설치 끝에 나오는 연결 링크와 QR 코드에 들어 있습니다. 직접 만들 필요가 없습니다.
터미널 · SSH
글자로 명령을 입력하는 창이 터미널, 그 창으로 멀리 있는 서버에 들어가는 방법이 SSH입니다. Mac·Windows에 기본으로 들어 있어 따로 설치할 것이 없습니다.

준비물

아래는 오라클 클라우드 무료 등급(Always Free) 기준입니다. 무료 범위 안에서만 만들기 때문에 유료로 전환(Upgrade)을 직접 누르지 않는 한 요금이 청구되지 않습니다.

설정 순서

  1. 토스증권 Open API 키 발급 약 3분

    PC에서 토스증권 웹(WTS)에 로그인 → 설정 → Open API에서 client_id와 client_secret을 발급받습니다.

    • 화면의 복사 버튼으로 복사해 메모장에 잠깐 붙여 두세요. 6단계에서 씁니다. 앞뒤 공백이 섞이면 인증이 실패합니다.
    • 이 두 값은 내 서버에만 입력합니다. 다른 사람이나 이 사이트에 보낼 일이 없습니다.
  2. 오라클 클라우드 가입 약 10분

    오라클 클라우드는 작은 서버를 기간 제한 없이 무료로 쓸 수 있는 등급(Always Free)이 있습니다.

    1. signup.oraclecloud.com을 엽니다.
    2. Country는 South Korea, 이름과 이메일을 입력하고 Verify my email을 누릅니다. 받은 메일의 링크를 30분 안에 누르면 다음 화면으로 넘어갑니다.
    3. 비밀번호를 정합니다 (8자 이상, 대문자 · 소문자 · 숫자 · 특수문자 각 1개 이상).
    4. Cloud Account Name을 정합니다. 영문 소문자와 숫자로 짧게 지으세요(예: mystock2026). 로그인할 때마다 필요하니 메모해 두세요.
    5. Home Region은 South Korea Central (Seoul) 또는 South Korea North (Chuncheon)을 고릅니다.
      가입 후에는 바꿀 수 없습니다. 무료 서버는 여기서 고른 지역에만 만들 수 있으니 꼭 한국 지역으로 고르세요.
    6. 주소(영문)와 휴대폰 번호를 입력하고 Continue.
    7. Add payment verification method → Credit Card에서 카드를 등록합니다. 카드 정보는 오라클 화면에 본인이 직접 입력합니다.
      • Visa · Mastercard 등 해외 결제가 되는 신용카드가 가장 무난합니다. 체크카드도 되지만 거절되는 경우가 있고, 선불 · 가상 카드는 받지 않습니다.
      • 본인 확인을 위해 소액이 잠깐 승인됐다가 자동으로 취소됩니다. 유료 전환을 직접 하지 않는 한 실제 청구는 없습니다.
    8. 약관에 동의하고 Start my free trial을 누릅니다. 계정이 준비되면 콘솔(관리 화면)으로 넘어가거나 완료 메일이 옵니다. 몇 분 걸릴 수 있습니다.

    다음부터 로그인하려면

    • cloud.oracle.com → Cloud Account Name 입력 → Next → 이메일과 비밀번호.
    • 처음 로그인할 때 2단계 인증 등록을 요구하면, 화면 안내대로 휴대폰에 인증 앱(Oracle Mobile Authenticator)을 설치해 QR을 찍으면 됩니다.
    • 메뉴가 한글로 나오면 오른쪽 위 지구본 아이콘 → English로 바꾸세요. 아래 설명의 버튼 이름과 똑같아져 따라 하기 쉽습니다.

    가입 첫 30일은 체험 크레딧이 함께 제공됩니다. 30일이 지나도 무료 등급 서버는 그대로 유지됩니다.

  3. 서버(인스턴스) 만들기 약 10분

    1. 콘솔 왼쪽 위 ☰ 메뉴 → Compute → Instances → Create instance.
    2. Name에 toss-proxy처럼 알아볼 이름을 적습니다.
    3. Image and shape에서 운영체제를 바꿉니다: Change image → Ubuntu → Canonical Ubuntu 24.04 선택 → Select image.
      • 이름 뒤에 Minimal이나 aarch64가 붙지 않은 것을 고르세요.
    4. 바로 아래에서 서버 크기를 고릅니다: Change shape → Virtual machine → Specialty and previous generation → VM.Standard.E2.1.Micro 선택 → Select shape.
      • Always Free-eligible 표시가 붙어 있는지 확인하세요. 이 표시가 있는 것이 무료입니다.
    5. Next. Security 화면은 건드리지 않고 다시 Next.
    6. Networking 화면에서 아래 세 가지를 확인합니다.
      • Create new virtual cloud network과 Create new public subnet이 선택되어 있을 것 (처음이면 기본값입니다)
      • Automatically assign public IPv4 address가 켜져 있을 것
      • Add SSH keys에서 Generate a key pair for me를 고르고 Download private key(또는 Save private key)를 눌러 키 파일을 내려받을 것
      키 파일(ssh-key-날짜.key)은 이때 한 번만 받을 수 있습니다. 서버에 들어가는 열쇠이니 다운로드 폴더에 그대로 두고, 지우거나 남에게 보내지 마세요. Mac에서 더블클릭하면 Keynote가 열리는데, 열 필요 없는 파일이니 그냥 닫으면 됩니다.
    7. Next → Storage 화면도 그대로 Next → Review에서 Create.
    8. 1~2분 뒤 상태가 주황색 Provisioning에서 초록색 Running으로 바뀝니다. 같은 화면의 Public IP address(예: 152.67.200.10)가 내 서버 IP입니다. 메모해 두세요.
    "Out of capacity" 오류가 나오면

    그 지역에 무료 서버 자리가 잠깐 없다는 뜻입니다. 몇 시간 뒤 다시 시도하면 대부분 됩니다. 급하면 4번에서 Ampere → VM.Standard.A1.Flex(OCPU 1, 메모리 6GB)를 골라 보세요. 이것도 Always Free-eligible 표시가 있는 무료 범위입니다.

    IP는 안 바뀌나요? (선택: 예약 IP로 바꾸기)

    오라클은 서버를 껐다 켜도 IP가 그대로이고, 인스턴스를 삭제(Terminate)할 때만 사라집니다. 그래서 그대로 써도 됩니다.

    나중에 서버를 새로 만들어도 같은 IP를 쓰고 싶다면 예약 IP(Reserved public IP)로 바꿔 둘 수 있습니다. 바꾸면 IP가 달라지므로 반드시 6단계 설치 전에 하세요.

    1. 인스턴스 화면 Networking 탭 → Attached VNICs에서 VNIC 이름을 누릅니다.
    2. IP administration 탭 → 주소 줄 오른쪽 ⋯ → Edit → Public IP type을 No public IP로 바꾸고 Update.
    3. 다시 ⋯ → Edit → Reserved public IP → Create new Reserved IP Address → 이름을 적고 Update.
    4. 새로 표시된 주소가 내 서버 IP입니다.
  4. 방화벽 열기 (80 · 443번 문) 약 5분

    새 서버는 바깥에서 들어오는 문이 거의 다 닫혀 있습니다. 내 휴대폰·PC가 서버에 접속할 수 있도록 웹용 문 두 개(80, 443)를 엽니다.

    1. ☰ 메뉴 → Networking → Virtual cloud networks → 방금 만들어진 vcn-… 이름을 누릅니다.
    2. Security 탭(화면에 따라 왼쪽 Resources 목록)의 Security Lists에서 Default Security List for vcn-…을 누릅니다.
    3. Security rules 탭 → Add Ingress Rules.
    4. 아래처럼 입력합니다. 적지 않은 칸은 그대로 둡니다.
      Source CIDR0.0.0.0/0
      IP ProtocolTCP
      Destination Port Range80
    5. + Another Ingress Rule을 눌러 한 줄 더 만들고, 같은 값에 Destination Port Range만 443으로 적습니다.
    6. 아래쪽 Add Ingress Rules를 눌러 저장합니다. 목록에 80과 443 두 줄이 보이면 끝입니다.

    Source Port Range는 비워 두세요. 80·443은 Destination 칸에 적습니다. 서버 안쪽 방화벽은 6단계 설치 프로그램이 알아서 엽니다.

  5. 내 PC에서 서버에 접속하기 약 5분

    이제 서버에 들어가 명령어를 입력할 차례입니다. 서버에는 화면이 없어서, 내 PC의 터미널이라는 창으로 들어갑니다.

    입력하면 아래 명령어에 자동으로 들어갑니다. 이 칸의 값은 어디로도 전송되지 않습니다.

    Mac

    1. ⌘ + Space → 터미널 입력 → Enter.
    2. 아래 두 줄을 차례로 복사해 붙여넣고(⌘+V) 각각 Enter를 누릅니다. 첫 줄은 아무 반응이 없는 게 정상입니다.
    chmod 400 ~/Downloads/ssh-key-*.key
    ssh -i ~/Downloads/ssh-key-*.key ubuntu@서버IP

    Windows 10 · 11

    1. 시작 버튼 → PowerShell 입력 → Windows PowerShell을 엽니다.
    2. 아래 한 줄을 복사해 붙여넣고(창 안에서 마우스 오른쪽 클릭) Enter를 누릅니다.
    ssh -i (Resolve-Path $HOME\Downloads\ssh-key-*.key) ubuntu@서버IP
    • 처음 접속하면 Are you sure you want to continue connecting (yes/no)?라고 묻습니다. yes를 입력하고 Enter.
    • 이 명령어는 다운로드 폴더에 키 파일이 하나만 있다고 가정합니다. 여러 번 받았다면 하나만 남기세요.
    맨 아랫줄이 ubuntu@toss-proxy:~$ 처럼 바뀌면 서버 안에 들어온 것입니다. 지금부터 입력하는 명령은 내 PC가 아니라 서버에서 실행됩니다.
  6. 프록시 설치 약 5분

    서버에 접속한 그 창에서 아래 두 줄을 차례로 붙여넣고 Enter를 누릅니다.

    curl -fsSLO https://raw.githubusercontent.com/nowjay/quant-stock-dashboard/main/tools/server/setup.sh
    sudo bash setup.sh

    설치가 진행되다가 네 가지를 물어봅니다. 이렇게 답하세요.

    client_id:1단계에서 복사해 둔 client_id를 붙여넣고 Enter
    client_secret:client_secret을 붙여넣고 Enter. 붙여넣어도 화면에 아무것도 안 보이는 게 정상입니다. 한 번만 붙여넣으세요.
    대시보드 주소 […]:아무것도 적지 말고 Enter
    프록시 도메인 […]:아무것도 적지 말고 Enter

    몇 분 뒤 아래와 비슷한 화면이 나오면 설치가 끝난 것입니다. 노란색으로 표시한 세 가지를 다음 단계에서 씁니다.

      프록시 실행 중 ✓
      HTTPS 인증서 · 접속 확인 ✓
    
     남은 설정
       1) 토스증권 WTS > 설정 > Open API > 허용 IP 관리에 등록:   152.67.200.10
       …
          연결 링크  https://nowjay.github.io/quant-stock-dashboard/#toss=https://152-67-200-10.sslip.io&key=AbCd…
    
          (직접 입력: 톱니 → 토스증권 Open API → 프록시 주소 https://152-67-200-10.sslip.io · 접속 키 AbCd…)
    
       █▀▀▀▀▀█ ▄▀ ▄ █▀▀▀▀▀█   ← QR 코드
    • 접속 키(프록시 키)는 이때 자동으로 만들어져 연결 링크와 QR 코드 안에 들어 있습니다. 따로 만들 것이 없습니다.
    • 토스 키와 접속 키는 내 서버 안에만 저장됩니다.
    • 창을 닫아도 프록시는 서버에서 계속 돌아갑니다. 다만 8단계를 마칠 때까지는 이 창을 닫지 마세요. 닫았다면 5단계로 다시 접속해 sudo bash setup.sh를 실행하면 링크와 QR이 다시 나옵니다(키는 다시 묻지 않습니다).
    • ⚠️ 아직 https://… 에 접속되지 않습니다가 나오면 4단계의 80 · 443 규칙을 확인한 뒤 sudo bash setup.sh를 다시 실행하세요.
  7. 토스증권에 허용 IP 등록 약 2분

    토스증권 WTS 설정 → Open API → 허용 IP 관리에 내 서버 IP(설치 끝 화면의 1번 줄)를 등록합니다.

    • 내 집이나 휴대폰의 IP가 아니라 서버 IP를 넣어야 합니다. 이후 어떤 기기로 접속하든 토스증권에는 서버가 대신 요청합니다.
  8. 기기마다 연결 기기당 1분

    휴대폰

    카메라로 터미널 화면의 QR 코드를 찍어 링크를 엽니다.

    PC

    터미널에서 연결 링크(https://부터 끝까지)를 마우스로 드래그해 복사한 뒤 브라우저 주소창에 붙여넣습니다.

    • 터미널에서 복사하기 — Mac: 드래그 후 ⌘+C · Windows: 드래그 후 마우스 오른쪽 클릭

    그다음

    대시보드가 열리면서 설정창에 주소와 접속 키가 채워져 있습니다. 주소가 내 서버(https://서버-IP.sslip.io)인지 확인하고 연결하기를 누르세요.

    실시간토스증권 일봉

    화면 우상단에 실시간, 종목 이름 옆에 토스증권 일봉이 보이면 연결된 것입니다. 키는 그 브라우저에만 저장되므로 기기마다 한 번씩 해 주세요.

    링크 없이 직접 입력하려면
    1. 대시보드 우상단 톱니 아이콘 → 데이터 소스를 토스증권 Open API — 실시간 주가로 바꿉니다.
    2. 프록시 주소에 https://서버-IP.sslip.io를 적습니다 (서버 IP의 점을 하이픈으로 바꾼 주소).
    3. 프록시 접속 키에 설치 끝 화면의 "접속 키" 뒤 글자를 그대로 붙여넣고 연결하기.

설치한 뒤 알아둘 것

AWS Lightsail(유료)로 하려면

2~5단계 대신 아래처럼 서버를 만들고, 6단계부터 똑같이 진행합니다.

  • 리전 서울, Linux/Unix, OS 전용 → Ubuntu 24.04, IPv4가 포함된 가장 작은 플랜으로 생성
  • 네트워킹 탭에서 고정 IP 생성 · 연결, IPv4 방화벽에 HTTPS(443) 추가 — 고정 IP를 연결한 뒤에 설치하세요
  • 인스턴스의 SSH로 연결 버튼을 누르면 브라우저에서 바로 터미널이 열립니다 (키 파일 불필요)

안 될 때

오라클 가입에서 카드가 거절됨VPN을 끄고, 카드 명의와 같은 이름 · 주소로 다시 시도하세요. 체크카드가 안 되면 해외 결제가 되는 신용카드로 바꿔 보세요.
ssh 접속이 한참 멈춰 있다가 "timed out"서버 IP를 잘못 적었거나 인스턴스가 아직 Running이 아닙니다. 콘솔에서 상태와 Public IP address를 다시 확인하세요.
"Permission denied (publickey)"명령어의 ubuntu@를 지우지 않았는지, 다운로드 폴더의 키 파일이 이 서버를 만들 때 받은 것인지 확인하세요.
"UNPROTECTED PRIVATE KEY FILE" / "too open"Mac은 5단계 첫 줄(chmod 400 …)을 먼저 실행하세요. Windows는 PowerShell에서 icacls (Resolve-Path $HOME\Downloads\ssh-key-*.key) /inheritance:r /grant:r "$($env:USERNAME):R"을 실행한 뒤 다시 접속하세요.
"허용 IP 가 아닙니다"7단계에서 등록한 IP가 설치 끝에 나온 서버 IP와 같은지 확인하세요. 설치한 뒤에 예약 IP로 바꿨다면 IP가 달라졌습니다 — 서버에서 sudo rm /etc/caddy/Caddyfile 후 sudo bash setup.sh를 다시 실행하고, 새 IP를 토스증권에 등록한 뒤 새 링크로 연결하세요.
"client_id / client_secret 이 틀렸습니다"서버에서 sudo rm /opt/toss-proxy/.env 후 sudo bash setup.sh를 다시 실행해 복사 버튼으로 붙여넣으세요. 접속 키가 새로 만들어지므로 기기마다 새 링크로 다시 연결합니다.
"프록시에 연결할 수 없습니다"4단계의 80 · 443 규칙이 Ingress에, Destination Port Range로 들어가 있는지 확인하세요. 인스턴스가 Stopped면 Start를 누르세요. 인증서 로그: sudo journalctl -u caddy -n 30
"접속 키가 틀렸습니다"연결 링크를 다시 열거나, 서버에서 sudo bash setup.sh를 다시 실행하면 링크가 다시 나옵니다.
서버 로그에 "토큰이 무효화됐습니다"같은 키로 프록시를 두 곳(예: 내 PC와 서버)에서 돌리고 있습니다. 토큰은 계정당 1개라 한 곳만 켜 두세요.
그 밖의 문제서버에서 sudo journalctl -u toss-proxy -f로 로그를 확인하세요. (Ctrl+C로 빠져나옵니다)
접속 키와 연결 링크는 비밀번호입니다.