토스증권 실시간 시세 연결하기
이 대시보드의 차트와 분석은 누구나 공공데이터포털(금융위원회) 전 영업일 종가로 볼 수 있고, 실시간 주가(오늘 봉 · 1분봉 포함)는 각자 본인의 토스증권 Open API 키로 연결해야 보입니다. 한 번 설정해 두면 휴대폰·PC 어디서든 내 시세가 뜹니다. 개발을 해 본 적이 없어도 화면에 적힌 대로 누르고, 명령어는 복사·붙여넣기만 하면 됩니다.
무엇을 만드나요
토스증권은 미리 등록한 인터넷 주소(IP) 한 곳에서 온 요청에만 시세를 줍니다. 집 와이파이나 휴대폰은 주소가 수시로 바뀌므로, 주소가 바뀌지 않는 내 전용 서버를 하나 만들어 그 서버가 대신 시세를 받아 내 화면으로 전달하게 합니다.
처음 보는 낱말 풀이
- 서버 (인스턴스)
- 인터넷에 24시간 켜져 있는 내 전용 컴퓨터입니다. 오라클에서는 Instance라고 부릅니다. 내 PC를 꺼도 계속 돌아갑니다.
- 공인 IP
- 서버의 인터넷 주소입니다(예: 152.67.200.10). 토스증권에 "이 주소만 허용"으로 등록합니다.
- 프록시
- 서버에서 도는 작은 중계 프로그램입니다. 내 토스 키를 보관하고 시세 조회만 내 화면으로 전달합니다. 설치는 명령어 두 줄로 끝납니다.
- 접속 키 (프록시 키)
- 내 프록시에 들어가기 위한 비밀번호입니다. 설치할 때 자동으로 만들어지고, 설치 끝에 나오는 연결 링크와 QR 코드에 들어 있습니다. 직접 만들 필요가 없습니다.
- 터미널 · SSH
- 글자로 명령을 입력하는 창이 터미널, 그 창으로 멀리 있는 서버에 들어가는 방법이 SSH입니다. Mac·Windows에 기본으로 들어 있어 따로 설치할 것이 없습니다.
준비물
- 토스증권 계좌Open API 키를 발급받을 본인 계좌
- 해외 결제 카드 1장오라클 가입 시 본인 확인용 (요금이 나가지 않습니다)
- PC와 40~60분Mac 또는 Windows. 가입 · 서버 생성은 PC에서 하세요
아래는 오라클 클라우드 무료 등급(Always Free) 기준입니다. 무료 범위 안에서만 만들기 때문에 유료로 전환(Upgrade)을 직접 누르지 않는 한 요금이 청구되지 않습니다.
설정 순서
-
토스증권 Open API 키 발급 약 3분
PC에서 토스증권 웹(WTS)에 로그인 → 설정 → Open API에서
client_id와client_secret을 발급받습니다.- 화면의 복사 버튼으로 복사해 메모장에 잠깐 붙여 두세요. 6단계에서 씁니다. 앞뒤 공백이 섞이면 인증이 실패합니다.
- 이 두 값은 내 서버에만 입력합니다. 다른 사람이나 이 사이트에 보낼 일이 없습니다.
-
오라클 클라우드 가입 약 10분
오라클 클라우드는 작은 서버를 기간 제한 없이 무료로 쓸 수 있는 등급(Always Free)이 있습니다.
- signup.oraclecloud.com을 엽니다.
- Country는 South Korea, 이름과 이메일을 입력하고 Verify my email을 누릅니다. 받은 메일의 링크를 30분 안에 누르면 다음 화면으로 넘어갑니다.
- 비밀번호를 정합니다 (8자 이상, 대문자 · 소문자 · 숫자 · 특수문자 각 1개 이상).
- Cloud Account Name을 정합니다. 영문 소문자와 숫자로 짧게 지으세요(예:
mystock2026). 로그인할 때마다 필요하니 메모해 두세요. - Home Region은 South Korea Central (Seoul) 또는 South Korea North (Chuncheon)을 고릅니다.
가입 후에는 바꿀 수 없습니다. 무료 서버는 여기서 고른 지역에만 만들 수 있으니 꼭 한국 지역으로 고르세요.
- 주소(영문)와 휴대폰 번호를 입력하고 Continue.
- Add payment verification method → Credit Card에서 카드를 등록합니다. 카드 정보는 오라클 화면에 본인이 직접 입력합니다.
- Visa · Mastercard 등 해외 결제가 되는 신용카드가 가장 무난합니다. 체크카드도 되지만 거절되는 경우가 있고, 선불 · 가상 카드는 받지 않습니다.
- 본인 확인을 위해 소액이 잠깐 승인됐다가 자동으로 취소됩니다. 유료 전환을 직접 하지 않는 한 실제 청구는 없습니다.
- 약관에 동의하고 Start my free trial을 누릅니다. 계정이 준비되면 콘솔(관리 화면)으로 넘어가거나 완료 메일이 옵니다. 몇 분 걸릴 수 있습니다.
다음부터 로그인하려면
- cloud.oracle.com → Cloud Account Name 입력 → Next → 이메일과 비밀번호.
- 처음 로그인할 때 2단계 인증 등록을 요구하면, 화면 안내대로 휴대폰에 인증 앱(Oracle Mobile Authenticator)을 설치해 QR을 찍으면 됩니다.
- 메뉴가 한글로 나오면 오른쪽 위 지구본 아이콘 → English로 바꾸세요. 아래 설명의 버튼 이름과 똑같아져 따라 하기 쉽습니다.
가입 첫 30일은 체험 크레딧이 함께 제공됩니다. 30일이 지나도 무료 등급 서버는 그대로 유지됩니다.
-
서버(인스턴스) 만들기 약 10분
- 콘솔 왼쪽 위 ☰ 메뉴 → Compute → Instances → Create instance.
- Name에
toss-proxy처럼 알아볼 이름을 적습니다. - Image and shape에서 운영체제를 바꿉니다: Change image → Ubuntu → Canonical Ubuntu 24.04 선택 → Select image.
- 이름 뒤에 Minimal이나 aarch64가 붙지 않은 것을 고르세요.
- 바로 아래에서 서버 크기를 고릅니다: Change shape → Virtual machine → Specialty and previous generation → VM.Standard.E2.1.Micro 선택 → Select shape.
- Always Free-eligible 표시가 붙어 있는지 확인하세요. 이 표시가 있는 것이 무료입니다.
- Next. Security 화면은 건드리지 않고 다시 Next.
- 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가 열리는데, 열 필요 없는 파일이니 그냥 닫으면 됩니다. - Next → Storage 화면도 그대로 Next → Review에서 Create.
- 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단계 설치 전에 하세요.
- 인스턴스 화면 Networking 탭 → Attached VNICs에서 VNIC 이름을 누릅니다.
- IP administration 탭 → 주소 줄 오른쪽 ⋯ → Edit → Public IP type을 No public IP로 바꾸고 Update.
- 다시 ⋯ → Edit → Reserved public IP → Create new Reserved IP Address → 이름을 적고 Update.
- 새로 표시된 주소가 내 서버 IP입니다.
-
방화벽 열기 (80 · 443번 문) 약 5분
새 서버는 바깥에서 들어오는 문이 거의 다 닫혀 있습니다. 내 휴대폰·PC가 서버에 접속할 수 있도록 웹용 문 두 개(80, 443)를 엽니다.
- ☰ 메뉴 → Networking → Virtual cloud networks → 방금 만들어진 vcn-… 이름을 누릅니다.
- Security 탭(화면에 따라 왼쪽 Resources 목록)의 Security Lists에서 Default Security List for vcn-…을 누릅니다.
- Security rules 탭 → Add Ingress Rules.
- 아래처럼 입력합니다. 적지 않은 칸은 그대로 둡니다.
Source CIDR 0.0.0.0/0IP Protocol TCP Destination Port Range 80 - + Another Ingress Rule을 눌러 한 줄 더 만들고, 같은 값에 Destination Port Range만
443으로 적습니다. - 아래쪽 Add Ingress Rules를 눌러 저장합니다. 목록에 80과 443 두 줄이 보이면 끝입니다.
Source Port Range는 비워 두세요. 80·443은 Destination 칸에 적습니다. 서버 안쪽 방화벽은 6단계 설치 프로그램이 알아서 엽니다.
-
내 PC에서 서버에 접속하기 약 5분
이제 서버에 들어가 명령어를 입력할 차례입니다. 서버에는 화면이 없어서, 내 PC의 터미널이라는 창으로 들어갑니다.
입력하면 아래 명령어에 자동으로 들어갑니다. 이 칸의 값은 어디로도 전송되지 않습니다.Mac
- ⌘ + Space → 터미널 입력 → Enter.
- 아래 두 줄을 차례로 복사해 붙여넣고(⌘+V) 각각 Enter를 누릅니다. 첫 줄은 아무 반응이 없는 게 정상입니다.
chmod 400 ~/Downloads/ssh-key-*.keyssh -i ~/Downloads/ssh-key-*.key ubuntu@서버IPWindows 10 · 11
- 시작 버튼 → PowerShell 입력 → Windows PowerShell을 엽니다.
- 아래 한 줄을 복사해 붙여넣고(창 안에서 마우스 오른쪽 클릭) 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가 아니라 서버에서 실행됩니다. -
프록시 설치 약 5분
서버에 접속한 그 창에서 아래 두 줄을 차례로 붙여넣고 Enter를 누릅니다.
curl -fsSLO https://raw.githubusercontent.com/nowjay/quant-stock-dashboard/main/tools/server/setup.shsudo 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를 다시 실행하세요.
-
토스증권에 허용 IP 등록 약 2분
토스증권 WTS 설정 → Open API → 허용 IP 관리에 내 서버 IP(설치 끝 화면의 1번 줄)를 등록합니다.
- 내 집이나 휴대폰의 IP가 아니라 서버 IP를 넣어야 합니다. 이후 어떤 기기로 접속하든 토스증권에는 서버가 대신 요청합니다.
-
기기마다 연결 기기당 1분
휴대폰
카메라로 터미널 화면의 QR 코드를 찍어 링크를 엽니다.
PC
터미널에서 연결 링크(
https://부터 끝까지)를 마우스로 드래그해 복사한 뒤 브라우저 주소창에 붙여넣습니다.- 터미널에서 복사하기 — Mac: 드래그 후 ⌘+C · Windows: 드래그 후 마우스 오른쪽 클릭
그다음
대시보드가 열리면서 설정창에 주소와 접속 키가 채워져 있습니다. 주소가 내 서버(
https://서버-IP.sslip.io)인지 확인하고 연결하기를 누르세요.실시간토스증권 일봉화면 우상단에 실시간, 종목 이름 옆에 토스증권 일봉이 보이면 연결된 것입니다. 키는 그 브라우저에만 저장되므로 기기마다 한 번씩 해 주세요.
링크 없이 직접 입력하려면
- 대시보드 우상단 톱니 아이콘 → 데이터 소스를 토스증권 Open API — 실시간 주가로 바꿉니다.
- 프록시 주소에
https://서버-IP.sslip.io를 적습니다 (서버 IP의 점을 하이픈으로 바꾼 주소). - 프록시 접속 키에 설치 끝 화면의 "접속 키" 뒤 글자를 그대로 붙여넣고 연결하기.
설치한 뒤 알아둘 것
- 서버는 그대로 켜 두면 됩니다. 내 PC를 끄거나 터미널 창을 닫아도 서버는 계속 돌아갑니다.
- 키 파일(
ssh-key-….key)은 보관하세요. 나중에 서버에 다시 들어갈 때 필요합니다. 잃어버리면 서버를 새로 만들어야 합니다. - 오라클이 서버를 멈출 수 있습니다. 무료 등급은 오랫동안 거의 쓰이지 않는 서버를 오라클이 회수할 수 있다고 안내합니다. 어느 날 연결이 안 되면 콘솔 Compute → Instances에서 상태를 보고, Stopped면 인스턴스를 눌러 Start를 누르세요. IP는 그대로이고 프록시도 자동으로 다시 켜집니다.
- 요금 — Always Free-eligible 서버 1대만 쓰고 콘솔의 Upgrade를 누르지 않으면 청구되지 않습니다.
- 그만 쓰려면 — 콘솔에서 인스턴스를 Terminate하고, 토스증권 WTS에서 허용 IP를 지우면 됩니다.
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로 빠져나옵니다) |
- 다른 사람에게 보내지 마세요. 공유하면 내 토스 데이터를 남에게 주는 셈이 되어 약관 위반입니다. 친구는 이 안내대로 자기 키를 만들면 됩니다.
- 설치 끝 화면을 캡처해 메신저나 SNS에 올리지 마세요. 링크와 QR에 접속 키가 들어 있습니다.
- 프록시는 시세 조회만 중계하고 주문·계좌 API는 막혀 있어, 키가 새더라도 주문은 할 수 없습니다.
- 시세는 서버나 이 사이트에 저장되지 않고 내 브라우저에만 표시됩니다.