“자사주 매입 결정” — 주가가 빠질 때 기업이 내놓는 단골 카드다. 발표가 나면 “주주환원”이라는 단어가 따라붙는다. 그런데 매입은 환원의 절반일 뿐이다. 나머지 절반, 소각이 따라오지 않으면 그 주식은 주주에게 돌아간 게 아니라 회사 금고에 들어가 있을 뿐이다.
그래서 물었다. 한국 상장사들은 자사주를 사고 나서 실제로 소각까지 하는가? dartlab으로 전상장사 2,933곳의 자기주식 취득·처분·소각을 한 번에 집계했다.
답은 분명했다. 자사주를 보유한 798곳 중 742곳(93%)이 최근 1년간 단 한 주도 소각하지 않았다.
매입과 소각은 다른 일이다
자사주를 둘러싼 행위는 셋으로 나뉜다.
- 취득(매입) — 회사가 자기 주식을 시장에서 사들인다. 유통 물량은 줄지만, 그 주식은 회사가 보유한다.
- 소각 — 보유한 자사주를 없앤다. 발행주식수 자체가 영구히 줄어든다. 주당 가치(EPS·배당)가 영구적으로 올라간다.
- 처분 — 보유한 자사주를 다시 시장이나 제3자에게 판다. 줄었던 물량이 되돌아온다. 잠재적 희석이다.
핵심은 이거다. 소각해야 비로소 영구적 환원이다. 매입만 하고 보유하면, 그 자사주는 언젠가 처분될 수 있는 ‘잠재 물량’으로 남는다. 실제로 이번 집계에서 131곳이 최근 1년간 자사주를 처분(되팔기) 했다. 금고에 쌓인 자사주가 환원이 아니라는 증거다.
전상장사 2,933곳, 전수 집계
dartlab scan("capital") 은 DART 정기보고서의 자기주식 현황을 전종목에서 한 번에 읽는다. 최신 연도(당기) 기준 결과는 다음과 같다.
| 구분 | 회사 수 | 비고 |
|---|---|---|
| 전체 상장사 | 2,933 | 집계 대상 전수 |
| 자사주 보유 (기말 잔액 > 0) | 798 | 전체의 27% |
| └ 그중 최근 1년 소각 0 | 742 | 보유사의 93% |
| 최근 1년 자사주 취득 | 139 | |
| └ 그중 같은 기간 소각 0 | 110 | 매입사의 79% |
| 최근 1년 자사주 처분(되팔기) | 131 | 잠재 희석 |
읽는 법은 단순하다. 자사주를 쥐고 있는 회사 10곳 중 9곳은, 가장 최근 1년 동안 그 자사주를 줄이지 않았다. 사들이기만 한 회사(139곳)로 좁혀도 5곳 중 4곳(79%)은 같은 기간 소각이 0이었다.
순환원 분류 — 적극환원은 단 7곳
dartlab은 같은 데이터로 각 회사의 순주주환원 방향도 분류한다. 배당(+1) · 자사주 매입(+1) · 최근 증자(−1) 점수의 합이다.
| 분류 | 회사 수 |
|---|---|
| 희석형 (점수 0 미만) | 1,363 |
| 중립 (점수 0) | 1,429 |
| 환원형 (점수 1 이상) | 134 |
| 적극환원 (점수 2 이상) | 7 |
배당과 자사주 매입을 같은 해에 함께 하면서 증자로 희석시키지 않은 ‘적극환원’ 기업은 전체에서 단 7곳이다. 반대로, 최근 증자로 주주 지분을 희석시킨 ‘희석형’이 1,363곳으로 가장 많다. 한국 증시의 주주환원 온도가 어디쯤인지 보여주는 단면이다.
대형주도 예외가 아니다
“규모가 작은 회사들 얘기 아니냐”고 물을 수 있다. 연매출 1조 원 이상 대형주 373곳만 따로 떼어봤다.
- 자사주 보유: 77곳
- 그중 최근 1년 소각 0: 68곳 (88%)
대형주에서도 자사주를 쥔 곳의 열에 아홉 가까이가 최근 1년 소각이 없었다. 규모의 문제가 아니라 관행의 문제라는 뜻이다.
단, 이렇게 읽으면 안 된다
데이터는 한 방향으로만 읽으면 위험하다. 이 집계가 말하지 않는 것을 분명히 한다.
- ‘당기’ 기준이다. 위 숫자는 가장 최근 정기보고서(당기) 기준이다. “이 회사는 역사상 한 번도 소각한 적 없다” 가 아니라 “최근 1년 동안 소각하지 않았다” 다. 여러 해에 걸쳐 소각하는 기업도 있다.
- 매입만 했다고 곧 나쁜 게 아니다. 자사주는 주식보상(RSU·스톡옵션), 합병 신주 배정, 향후 소각 예정 등 정상적 목적으로도 보유한다. 보유 자체가 문제는 아니다.
- 개별 회사 판단은 이력 전체를 봐야 한다. 한 해의 단면만으로 특정 기업을 단정하지 않는다. 이 글이 이름을 나열하지 않는 이유다 — 집계는 시장 전체의 구조를 말할 뿐, 개별 기업의 의도를 말하지 않는다.
이 글의 결론은 “어느 회사가 나쁘다”가 아니다. “자사주 매입 발표 건수가 아니라, 소각률을 봐야 한다” — 그 한 줄이다.
직접 확인해보라
이 글의 모든 숫자는 누구나 재현할 수 있다. dartlab을 설치하고 아래 세 줄이면 같은 표가 나온다.
import dartlab
import polars as pl
cap = dartlab.scan("capital") # 전상장사 주주환원 (배당·자사주·증자)
# 자사주 보유 중 최근 1년 소각 0
held = cap.filter(pl.col("자사주보유") == True).height
held_noburn = cap.filter((pl.col("자사주보유") == True) & (pl.col("자사주소각") == False)).height
print(held, held_noburn, round(100*held_noburn/held, 1)) # 798 742 93.0 검증 가능하지 않은 숫자는 신뢰할 이유가 없다. dartlab의 모든 집계는 공시 데이터에서 직접 나오고, 코드가 곧 방법론이다.
방법론 — 데이터 출처: DART 정기보고서 자기주식 현황(
treasuryStock). 집계 단위: 전상장사 2,933곳, 최신 연도(당기) 기준. 취득/처분/소각 수량은 해당 보고기간의 변동분이며, ‘보유’는 기말 잔액 기준이다. 재현:dartlab.scan("capital").본 글은 공시 데이터에 기반한 정보 제공이며, 특정 종목의 매수·매도를 권유하지 않는다.