9 분 분량

국내 주식이라고 하면 코스피와 코스닥을 한 덩어리로 묶어 생각하기 쉽습니다. 같은 나라에서 같은 시간에 원화로 거래되기 때문입니다. 그런데 장기 성적은 많이 달랐습니다. 1996년 7월에 두 지수에 같은 돈을 넣었다면, 2026년 10월 말 코스닥 쪽 평가액은 코스피 쪽의 10분의 1 남짓이었습니다.

수익률이 이만큼 다르다면 두 지수는 따로 움직이는 시장일까요. 이 글에서는 먼저 두 지수가 얼마나 같이 움직였는지를 보고, 그다음 수익률 차이가 어느 시기에 생겼는지를 나눠 봅니다. 같이 움직인다면 둘을 섞어도 분산 효과가 작고, 따로 움직인다면 섞을 이유가 생깁니다.

데이터

FinanceDataReader로 코스피(KS11)와 코스닥(KQ11) 지수의 일별 종가를 받았습니다. 코스닥 지수의 기준일인 1996년 7월 1일부터 2026년 10월 30일까지, 두 지수가 모두 있는 7,591거래일입니다. 둘 다 배당을 뺀 가격지수이고, 연복리는 달력 연수로 계산했습니다. 코스닥 지수는 1996년 7월 1일을 100으로 시작했다가 2004년 1월 26일에 기준을 1,000으로 바꾸면서 과거 값도 모두 10배로 고쳤기 때문에, 이 데이터도 처음부터 1,000 기준입니다.

두 지수의 장기 수익률은 수익률 계산 글(2005년~2026년 8월, 연복리 코스피 9.84%, 코스닥 3.57%)과 추세추종과 손절 글(2026년 9월 17일까지 코스닥 보유 연 -0.6%)에서도 다뤘습니다. 기간이 달라 숫자가 꽤 다릅니다. 이 글은 1996년 7월부터 시작해 1997~1998년과 2000~2001년의 큰 하락이 모두 들어가고, 끝도 2026년 10월 30일로 더 늦습니다.

  코스피 코스닥
시작 → 끝 833.79 → 5,730.74 1,000.00 → 724.38
누적 6.87배 0.72배
연복리 6.56% -1.06%
연 변동성 26.8% 28.3%
최대 낙폭(MDD) -67.4% (1996년 7월 → 1998년 6월) -90.8% (2000년 3월 → 2008년 10월)
고점 회복 1999년 6월 데이터 끝까지 회복하지 못함

코스닥은 2000년 3월 10일의 2,834.40이 이 데이터의 최고점이고, 데이터가 끝나는 2026년 10월 30일에는 출발점(1,000)보다 28% 낮은 724.38이었습니다.

상관계수 0.685

두 지수의 일별 수익률 상관계수는 0.685입니다. 주별로 재면 0.666, 월별로 재면 0.657(363개월)로 비슷합니다. 1에는 못 미치지만, 상관관계 글에서 월별 데이터로 본 미국 주식과 채권의 상관계수(0.05)와 비교하면 같은 월별 기준의 0.657은 훨씬 높은 값입니다.

이 값은 시기마다 꽤 달랐습니다. 아래 그림의 위쪽은 두 지수의 누적 흐름(로그 척도), 아래쪽은 각 날짜의 직전 1년(252거래일) 일별 수익률로 잰 이동 상관계수입니다.

코스피와 코스닥의 누적 흐름과 1년 이동 상관계수

이동 상관계수의 중앙값은 0.75였고, 가장 낮을 때는 0.33(1997년 6월), 가장 높을 때는 0.91(2009년 1월)이었습니다. 0.5보다 낮았던 날은 전체의 12.4%인데, 거의 다 1997~2000년과 2013~2015년에 몰려 있고 나머지는 2017년 11월~2018년 2월 초입니다.

높은 쪽은 큰 하락과 겹쳤습니다. 이동 상관계수가 0.87 이상이었던 459일은 모두 직전 1년 안에 코스피가 20% 넘게 떨어진 구간을 담고 있었습니다. 2003년 5월(0.89), 2009년 1월(0.91), 2020년 10월(0.87), 2022년 12월(0.89)이 그런 때입니다. 직전 1년 안에 그런 하락이 있던 날의 이동 상관계수는 중앙값 0.81, 없던 날은 0.72였습니다.

5년 안팎으로 끊어 보면 이렇습니다(첫 구간은 4년 반, 마지막 구간은 5년 10개월입니다). 베타는 코스피가 1% 움직일 때 코스닥이 평균적으로 몇 % 움직였는지를 나타내는 값입니다.

구간 코스피 연복리 코스닥 연복리 일별 상관계수 베타
1996.07~2000.12 -10.59% -13.35% 0.49 0.45
2001.01~2005.12 22.24% 5.94% 0.80 0.91
2006.01~2010.12 8.25% -6.16% 0.83 0.88
2011.01~2015.12 -0.89% 5.97% 0.67 0.80
2016.01~2020.12 7.93% 7.25% 0.77 1.07
2021.01~2026.10 12.57% -4.86% 0.76 0.79

첫 구간(1996~2000년)만 상관계수 0.49, 베타 0.45로 유독 낮습니다. 이 구간에서는 오늘의 코스닥 수익률과 어제의 코스피 수익률 사이의 상관계수가 0.20으로 다른 구간(-0.05~0.12)보다 커서, 코스피의 움직임 일부가 코스닥 가격에 하루 늦게 반영됐다고 볼 수 있습니다. 다만 그 몫은 크지 않았습니다. 같은 구간을 월별 수익률로 재도 상관계수는 0.51로, 다른 구간의 월별 상관계수(0.57~0.86)보다 낮았습니다. 이 시기에는 두 시장이 실제로도 덜 같이 움직였습니다.

크게 떨어진 날

분산투자에서는 평소의 상관계수와 함께, 크게 떨어지는 날 한쪽이 다른 쪽을 받쳐 주는지도 봐야 합니다. 코스피의 하루 등락 폭을 다섯 구간으로 나누고, 구간마다 같은 날의 코스닥 수익률을 모았습니다. 하루 -3%는 큰 하락 다음 날 글과 같은 기준입니다(기간이 달라 포함된 날은 다르고, 일수는 공교롭게 둘 다 296일입니다).

코스피가 일수 코스피 평균 코스닥 평균 같은 방향이었던 날 코스닥이 더 크게 움직인 날
-3% 이하 296 -4.52% -3.45% 92.9% 36.8%
-3% ~ -1% 1,092 -1.70% -1.44% 87.7% 39.5%
-1% ~ +1% 4,683 +0.04% +0.11% 66.0% 65.4%
+1% ~ +3% 1,259 +1.66% +1.16% 87.7% 30.3%
+3% 이상 260 +4.65% +2.77% 90.4% 21.5%

코스피가 3% 이상 빠진 296일 가운데 코스닥도 함께 빠진 날이 93%였습니다. 코스닥이 오르며 받쳐 준 날은 7%뿐입니다.

눈여겨볼 점은 코스피가 오를 때와 내릴 때 코스닥이 따라가는 정도가 달랐다는 것입니다. 코스피가 3% 이상 빠진 날 코스닥은 평균 -3.45%로 코스피 낙폭의 76%를 따라갔지만, 3% 이상 오른 날에는 평균 +2.77%로 60%만 따라갔습니다. 코스피 하락일만 모아 구한 베타는 0.82, 상승일만 모아 구한 베타는 0.57입니다. 1996~2026년의 31개 연도를 하나씩 따로 계산해도 28개 연도에서 하락일 베타가 더 컸고, 코스피가 ±3% 안에서 움직인 날만 써도 0.93 대 0.59였습니다. 코스닥은 코스피가 오를 때보다 내릴 때 더 많이 따라 움직였습니다. (하락일만 모아 구한 상관계수는 0.63, 상승일은 0.49로 둘 다 전체보다 낮습니다. 코스피 수익률의 범위를 한쪽으로 잘라 내면 그것만으로 상관계수가 작아지기 때문에, 이 비교에는 그 영향을 덜 받는 베타를 썼습니다.)

이 차이는 시기를 나눠도 남았습니다. 하락일·상승일 베타는 1996~2000년 0.59·0.38, 2001~2008년 1.05·0.81, 2009~2026년 0.97·0.67이었습니다. 따라가는 정도 자체는 1996~2000년에만 낮았고, 2001년 이후의 두 기간은 비슷했습니다.

월 단위로 보면 방향이 같았던 비율은 오를 때와 내릴 때 비슷했습니다. 코스피가 떨어진 165개월 가운데 코스닥도 떨어진 달은 75.8%, 코스피가 오른 198개월 가운데 코스닥도 오른 달은 77.8%였습니다. 일별에서도 방향이 같았던 비율은 비슷했고(위 표의 92.9%와 90.4%) 차이는 따라간 크기에서 났는데, 월별 베타도 코스피가 떨어진 달 0.91, 오른 달 0.59로 차이가 남았습니다.

하락장에서는

하루가 아니라 하락장 전체로도 봤습니다. 코스피가 그때까지의 최고점보다 20% 이상 떨어지면 하락장으로 보고, 그 최고점을 다시 넘을 때까지를 한 구간으로 묶었습니다. 그래서 2000~2003년처럼 최고점을 되찾기 전에 여러 번 떨어진 경우는 한 줄로 합쳐집니다. 구간마다 코스피의 고점부터 바닥까지 같은 기간에 코스닥이 어떻게 됐는지 정리했습니다.

코스피 고점 → 바닥 코스피 같은 기간 코스닥 그 사이 코스닥 최대 낙폭
1996.07.10 → 1998.06.16 -67.4% -31.1% -46.4%
1999.07.09 → 1999.10.05 -23.0% -27.2% -30.0%
2000.01.04 → 2001.09.17 -55.7% -82.7% -83.8%
2007.10.31 → 2008.10.24 -54.5% -65.8% -65.8%
2011.05.02 → 2011.09.26 -25.9% -20.7% -24.8%
2018.01.29 → 2020.03.19 -43.9% -53.8% -53.8%
2021.07.06 → 2022.09.30 -34.8% -35.6% -36.5%
2026.06.22 → 2026.10.26 -40.0% -24.9% -33.4%

이 기준으로 본 여덟 번 모두 코스닥도 20% 넘게 떨어졌습니다. 다섯 번은 코스피보다 더 많이, 세 번은 덜 떨어졌습니다. 덜 떨어진 세 번 가운데 1996~1998년은 출범 직후의 코스닥이 1996년 7~12월에 +20.5%(코스피 -21.9%)로 반대로 움직이며 출발해서, 코스피 고점일부터 잰 같은 기간 수익률(-31.1%)이 작게 잡혔습니다. 다만 그 사이 코스닥의 최대 낙폭(-46.4%)으로 비교해도 코스피(-67.4%)보다 덜 떨어졌습니다. 마지막 2026년 구간은 데이터가 끝나는 10월 30일까지 코스피가 고점을 되찾지 못한 구간이라, 10월 26일이 바닥으로 정해진 것은 아닙니다.

하락장을 나누는 기준을 바꾸면 결과가 조금 달라집니다. 바닥에서 20% 반등한 날을 하락장의 끝으로 잡으면 하락장은 20번으로 늘어나는데, 그중 1996년 7월~1997년 1월(코스피 -28.8%)에는 코스닥이 +8.4% 올랐고, 다른 세 번은 코스닥도 떨어졌지만 그 폭이 20%에 못 미쳤습니다. 최고점 회복 기준을 유지한 채 하락 폭 기준을 -15%나 -25%로 바꾸면 하락장이 11번, 7번 잡히고, 어느 쪽에서도 코스닥이 오른 구간은 없었습니다. 다만 -15% 기준에서는 코스닥 하락이 20%에 못 미친 구간이 세 번 있었습니다.

수익률 차이는 어디서 났나

이만큼 같이 움직였는데도 30년 연복리는 7.6%p 차이가 납니다. 해마다 보면 코스닥이 늘 진 것은 아닙니다. 1997~2025년 29년 가운데 코스닥이 더 오른 해는 13년(두 지수가 모두 +0.7%로 사실상 같았던 2013년 포함)이었고, 두 지수의 연간 수익률 부호가 같았던 해는 21년이었습니다. 다만 한 해 수익률 차이의 크기는 중앙값이 13.4%p로 컸습니다.

격차가 언제 생겼는지는 1996년 7월에 두 지수에 같은 돈을 넣었을 때 코스닥 쪽 평가액이 코스피 쪽의 몇 배였는지를 따라가 보면 잘 보입니다.

시점 코스닥 쪽 ÷ 코스피 쪽 그 사이
1996년 7월 1일 1.00  
1997년 말 2.15 1996년 하반기 코스피 -21.9%·코스닥 +20.5%, 1997년 코스피 -42.2%·코스닥 -19.3%
1998년 말 1.11 코스피 +49.5%, 코스닥 -22.7%
1999년 말 2.08 코스피 +82.8%, 코스닥 +240.7%
2000년 말 0.87 3월 13일 2.73까지 오른 뒤 급락. 한 해로는 코스피 -50.9%, 코스닥 -79.5%
2004년 말 0.35 2002~2004년 해마다 26~29%p 뒤짐
2008년 말 0.25 2005년에 앞섰지만 2006~2008년 해마다 12~18%p 뒤짐
2024년 말 0.24 16년 동안 0.19~0.33 사이를 오감
2026년 10월 30일 0.105 2025년 코스피 +75.6%·코스닥 +36.5%, 2026년 각각 +36.0%·-21.7%

이 비율의 변화를 시기별 몫으로 나누면(로그 기준) 최종 격차의 40%가 2002~2004년, 36%가 2025~2026년, 29%가 1998년, 24%가 2006~2008년에서 나왔고, 1996~1997년에 코스닥이 앞선 몫(-34%)과 2005년(-8%)이 그 일부를 되돌렸습니다. 1999~2000년은 크게 오르고 크게 떨어져 두 해를 합치면 11%였습니다. 2009~2024년은 2%뿐이었고, 이 기간 연복리도 코스피 4.85%, 코스닥 4.56%로 거의 같았습니다. 그래서 “코스닥은 늘 코스피보다 못하다”보다는 “격차는 1998년, 2002~2008년(2005년 제외), 2025~2026년에 벌어졌고, 2009~2024년에는 벌어졌다 좁혀지기를 되풀이했다”는 요약이 이 데이터에 가깝습니다.

이유를 이 데이터만으로 가릴 수는 없지만, 지수 구성의 차이는 짚어 둘 만합니다. 코스닥에서 규모가 커진 회사가 코스피로 옮겨 가는 이전 상장이 꾸준히 있었습니다. 당시 이름이 NHN이던 네이버는 2008년, 카카오는 2017년, 셀트리온은 2018년에 코스닥에서 코스피로 옮겼습니다. 옮긴 회사가 옮긴 뒤에도 남은 회사들보다 더 오른다면, 그 몫은 코스닥 지수가 아니라 코스피 지수에 담깁니다. 다만 네이버가 옮긴 직후부터 카카오·셀트리온이 옮긴 뒤까지를 담은 2009~2024년에는 두 지수 연복리가 거의 같았습니다. 옮긴 회사들의 2025~2026년 수익률도 코스피 쪽에 담기므로, 격차가 다시 벌어진 이 시기가 이전 상장과 무관하다고 볼 수도 없습니다. 이것이 격차를 얼마나 설명하는지는 이 데이터로 잴 수 없습니다.

반반 섞으면

상관관계 글의 식에 코스피 변동성 26.8%, 코스닥 28.3%, 상관계수 0.685를 넣으면 반반 섞은 포트폴리오의 변동성은 25.3%입니다. 세 숫자가 같은 일별 수익률에서 나왔으므로, 매일 반반으로 맞춘 시계열의 변동성과 정확히 같습니다. 두 변동성의 가중평균 27.5%보다 2%p 남짓, 비율로는 8%가량 낮아질 뿐입니다. 같은 글에서 미국 주식과 채권을 60/40으로 섞었을 때 변동성이 가중평균 9.73%에서 7.77%로 5분의 1 줄어든 것과 비교하면 작은 효과입니다.

최대 낙폭은 반반이 -73.7%로 코스피(-67.4%)보다 컸고 코스닥(-90.8%)보다는 작았습니다. 다만 세 숫자는 다른 시기에 나왔습니다. 코스피가 최대 낙폭을 낸 1996년 7월~1998년 6월에 반반은 -51.4%였고, 반반이 최대 낙폭을 낸 2000년 1월~2003년 3월에는 코스피 -51.3%, 코스닥 -87.0%였습니다. 반반의 낙폭이 커진 것은 상관계수보다 그 시기에 코스닥 자체가 87% 빠졌기 때문입니다. 매월이나 매년 반반으로 맞추거나, 처음에 반반으로 사서 그대로 두어도 최대 낙폭은 -71.9%~-75.5%로 비슷했습니다.

같은 시장인가

움직임으로 보면 두 지수는 같은 시장에 가까웠습니다. 일별 상관계수는 0.685, 직전 1년으로 잰 상관계수의 중앙값은 0.75였고, 코스닥은 코스피가 오를 때(베타 0.57)보다 내릴 때(0.82) 더 많이 따라 움직였습니다. 앞의 기준으로 본 코스피 하락장 여덟 번 동안 코스닥도 매번 20% 넘게 떨어졌습니다. 장기 수익률로 보면 다른 시장이었습니다. 30년 연복리는 6.56% 대 -1.06%였고, 그 차이는 1998년, 2002~2004년과 2006~2008년, 2025~2026년에 몰려서 생겼습니다.

이 데이터에서 코스피와 코스닥으로 나눠 담는 일은 위험을 나누는 효과가 작았습니다. 반반으로 섞어도 변동성은 8%가량 낮아지는 데 그쳤고, 하락장에서 한쪽이 다른 쪽을 받쳐 준 경우는 찾기 어려웠습니다. 상관계수가 낮은 다른 자산도 주식과 채권의 상관관계 글에서 봤듯 그 상관계수가 시기에 따라 달라졌으므로, 한 기간의 숫자만으로 섞는 효과를 판단하기는 어렵습니다.

코드

아래 코드는 상관계수, 위의 ‘크게 떨어진 날’ 표, 하락일·상승일 베타를 다시 계산합니다. 종료일을 2026년 10월 30일로 고정해 두었습니다.

import numpy as np
import pandas as pd
import FinanceDataReader as fdr

START, END = "1996-07-01", "2026-10-30"           # 코스닥 지수 기준일 ~ 종료일 고정
px = pd.concat([fdr.DataReader("KS11", START, END)["Close"],
                fdr.DataReader("KQ11", START, END)["Close"]],
               axis=1, keys=["kospi", "kosdaq"]).dropna()
r = px.pct_change().dropna()

print("일별 상관계수", round(r["kospi"].corr(r["kosdaq"]), 3))

# 코스피가 움직인 크기별로, 같은 날 코스닥은 어땠나
labels = ["-3% 이하", "-3~-1%", "-1~+1%", "+1~+3%", "+3% 이상"]
k = r["kospi"]
bucket = np.select([k <= -0.03, k <= -0.01, k < 0.01, k < 0.03], labels[:4], labels[4])
r["구간"] = pd.Categorical(bucket, categories=labels)
r["같은방향"] = np.sign(r["kospi"]) == np.sign(r["kosdaq"])
r["코스닥이더큼"] = r["kosdaq"].abs() > r["kospi"].abs()
table = r.groupby("구간", observed=True).agg(일수=("kospi", "size"), 코스피=("kospi", "mean"),
                                           코스닥=("kosdaq", "mean"), 같은방향=("같은방향", "mean"),
                                           코스닥이더큼=("코스닥이더큼", "mean"))
table.iloc[:, 1:] *= 100
print(table.round(2))

# 코스피 하락일과 상승일을 나눠 구한 베타
for name, sub in [("하락일", r[r["kospi"] < 0]), ("상승일", r[r["kospi"] > 0])]:
    print(name, "베타", round(sub["kosdaq"].cov(sub["kospi"]) / sub["kospi"].var(), 2))

5년 단위 표, 이동 상관계수, 하락장 표와 기준을 바꾼 결과, 누적 비율, 반반 포트폴리오와 그림까지 만드는 전체 코드는 kospi_vs_kosdaq.py에 있습니다.

데이터와 한계

  • 가격지수: 두 지수 모두 배당을 뺀 값입니다. 배당을 넣으면 두 지수 모두 연복리가 올라가지만, 가격지수만 있는 이 데이터로는 그 폭을 확인할 수 없습니다.
  • 시작 시점: 코스닥 지수는 1997년 1월부터 발표됐고, 1996년 7~12월 값은 나중에 기준일까지 거슬러 올라가 계산한 값입니다. 또 코스피는 데이터가 시작된 1996년 7월 1일에 이미 1995년 10월 고점(1,016.77)보다 18% 낮았습니다. 표의 코스피 최대 낙폭 -67.4%는 이 데이터 안의 값이고, 1995년 고점 기준으로는 -72.5%, 회복은 1999년 7월입니다.
  • 초기 코스닥: 1996~2000년의 낮은 일별 상관계수에는 코스닥 가격이 하루 늦게 반영된 영향이 일부 섞여 있을 수 있지만, 월별로 재도 다른 구간보다 낮았습니다.
  • 끝나지 않은 해: 2026년은 10월 30일까지의 수익률이고, 마지막 하락장의 바닥과 길이도 바뀔 수 있습니다. 2025~2026년이 격차의 36%를 차지하므로 끝 날짜에 따라 숫자가 크게 달라집니다. 같은 1996년 7월에서 출발해도 2024년 말에서 끊으면 연복리는 코스피 3.78%, 코스닥 -1.35%입니다.
  • 기준을 바꿔 보면: 이동 상관계수의 1년 창, 하루 ±3% 구간, 하락장 -20%는 제가 고른 값입니다. 창을 6개월·2년으로 바꾸면 이동 상관계수의 중앙값은 0.74·0.76이었습니다. 하루 기준을 ±2%·±4%로 바꾸면 코스피가 크게 빠진 날 코스닥도 빠진 비율은 92.2%·95.1%였고, 코스닥 평균은 코스피 평균의 0.80배·0.76배(크게 오른 날은 0.60배·0.57배)였습니다. 하락장 기준을 바꾼 결과는 위 하락장 절에 적었습니다.

이 글은 학습과 정보 공유 목적으로 작성되었으며, 특정 종목이나 상품에 대한 투자 권유가 아닙니다. 과거 데이터로 계산한 결과는 미래 성과를 보장하지 않습니다. 투자의 판단과 책임은 투자자 본인에게 있습니다.

최종 수정: