울산 HD — 가장 많이 만들고, 가장 늦게 만든다
승점 2위 팀의 득실차가 +4다. 그 숫자 하나에서 시작해 26경기를 전부 열어봤다. 처음 두 개의 답은 틀렸다.
먼저 결론
- 울산은 키패스·유효슈팅이 리그 1위다. 기회를 만드는 총량에서 12개 구단 중 최상위다.
- 그 기회는 후반에 몰려 있다. 후반 xG가 전반의 1.7배이고, 하프타임에 앞서 있든 뒤져 있든 그렇다.
- 그런데 전반에 뒤진 7경기에서 한 번도 이기지 못했다. 후반에 강한 팀이지 뒤집는 팀이 아니다.
- 골은 기대만큼만 들어가고(0.95) 실점은 기대보다 많다(1.09). 득실 +4는 그 두 손해의 합이다.
- 가장 먼저 나온 두 개의 답 — “점유율이 낮을 때 이긴다”, “적게 들어가고 많이 쏜다” — 은 스코어보드가 만든 착시였다.
00순위표 앞에서 멈춘 이유
이 분석은 한 줄에서 시작했다
2위 울산 HD · 26경기 · 12승 4무 10패 · 승점 40 · 41득 37실 · 득실 +4
여기서 눈이 걸린다. 2위 팀이 10패를 했다. 그리고 득실차가 +4다. 1위 서울은 +31이고 3위 전북은 +9다. 울산보다 순위가 낮은 전북이 골 차이는 두 배 이상 좋다. 승점은 2위인데 득실은 4위권 팀의 그것이다.
이런 팀은 보통 둘 중 하나다. 접전을 유난히 잘 잡아냈거나, 질 때 크게 지거나. 울산은 둘 다였다. 1-0·2-1 같은 한 골 차 승리가 여럿이고, 동시에 1-4가 두 번, 1-3과 2-3이 있다.
그래서 질문은 이렇게 정해졌다. 이 팀은 어떻게 2위이고, 왜 득실은 +4인가. 아래는 그 질문을 따라 데이터를 순서대로 열어본 기록이다. 처음 두 개의 답은 틀렸다. 틀린 과정을 지우지 않고 그대로 남긴다. 그게 이 데이터가 준 가장 큰 교훈이었다.
01첫 번째 답 — 그리고 그게 틀린 이유
점유율은 스타일이 아니라 스코어보드를 재고 있었다
가장 먼저 점유율을 봤다. 이긴 경기 평균 43.6%, 진 경기 50.1%. 점유율과 승점의 상관은 −0.401이다. 시즌 평균은 46.7%. 여기서 멈추면 답이 하나 나온다 — “울산은 공을 내주고 역습으로 이기는 팀이다.”
틀렸다. 창을 바꾸면 무너진다.
02두 번째 답 — 이것도 절반만 맞다
‘적게 들어가고 많이 쏜다’를 같은 방법으로 검사했다
다음은 파이널서드 진입이다. 자기 진영에서 시작해 상대 진영 3분의 1로 성공한 패스를 셌다. 울산은 경기당 26.6회 들어가고 상대는 33.3회 들어간다. 그런데 슈팅은 울산 13.2개, 상대 12.1개다. 적게 들어가는데 더 많이 쏜다.
03리그 12팀 안에서 울산은 어디에 있나
게임 상태에 덜 흔들리는 시즌 누적 총량으로
04공격의 형태 — 짧게 끝내고, 빨리 끝낸다
소유 국면을 나눠 세어봤다
상대 이벤트가 두 번 연속 나오면 소유권이 넘어간 것으로 보고 경기를 국면 단위로 쪼갰다.
슛 직전에 무슨 일이 있었는지도 셌다. 울산은 볼 탈취 직후 슛이 18%(상대 16%), 오픈 크로스에서 나온 슛은 13%로 상대(21%)보다 확연히 낮다. 파이널서드 진입의 중앙 비중도 울산 25%로 상대(18%)보다 높다.
05이 팀은 후반에 다른 팀이 된다
게임 상태를 통제해도 남는 유일한 패턴
전반 슈팅 148개·xG 15.98, 후반 194개·xG 27.00. 후반에 만드는 기회가 전반의 1.7배다. 당연히 “지고 있으니 몰아붙인 것 아니냐”는 의심이 든다.
패스 길이도 같은 방향으로 움직인다. 전반 평균 16.9m·30m+ 비율 10.5%에서 후반 18.0m·13.9%로 길어진다. 정확도를 조금 내주고 전진을 산다.
06그런데 뒤집지는 못한다
후반에 강한 팀과 뒤집는 팀은 다르다
| 경기 | 전반 | 후반 | 후반 xG | 최종 |
|---|---|---|---|---|
| R2 서울(H) | 1-2 | 1-1 | 2.47 | 1-4 |
| R6 전북(A) | 0-1 | 0-1 | 1.29 | 0-2 |
| R9 안양(A) | 0-1 | 1-0 | 1.69 | 1-1 |
| R10 대전(H) | 0-3 | 1-1 | 1.58 | 1-4 |
| R15 강원(A) | 0-2 | 0-0 | 0.18 | 0-2 |
| R17 전북(H) | 0-1 | 1-2 | 1.17 | 1-3 |
| R18 대전(A) | 1-2 | 1-0 | 1.02 | 2-2 |
R2는 후반에만 xG 2.47을 만들고 1골에 그쳤다. R15는 반대로 후반 xG 0.18 — 후반 화력이 나오지 않은 유일한 경기다. 반대로 전반에 리드를 잡으면 8경기에서 7승. 유일한 예외가 R23 강원전(2-1 → 2-3)이다.
07득실 +4의 정체 — 양쪽 골문 앞에서의 손해
처음 질문으로 돌아온다
기회 생성이 리그 1위인데 왜 득실이 +4인가. xG는 슛 하나하나에 “이 위치·상황에서 평균 몇 골이 되는가”를 붙인 값이다. 골을 xG로 나눈 값이 1.00이면 기대대로 넣은 것이다.
08세트피스라는 빈칸
코너킥 110개가 만든 것
09창조가 한 명에게 몰려 있다
리그 1위의 기회 생성은 누가 만드나
| 선수 | 슈팅 | 골 | xG | 골 − xG |
|---|---|---|---|---|
| 야고 | 59 | 13 | 12.78 | +0.22 |
| 이동경 | 65 | 8 | 7.83 | +0.17 |
| 말컹 | 42 | 5 | 5.47 | -0.47 |
| 최석현 | 7 | 2 | 0.68 | +1.32 |
주요 득점원 모두 기대치대로 넣었다. 마무리로 벌어들인 선수가 사실상 없다. 7절의 0.95는 특정 선수의 부진이 아니라 팀 전체의 평균값이다.
10수비 — 태클 1위인데 파울 최소
높이가 아니라 방식의 문제
| 울산 | 상대 | |
|---|---|---|
| 태클 성공(경기당) | 7.46 | — |
| 파울(경기당) | 8.54 | — |
| 수비 액션 평균 위치(X) | 37.6 | 39.1 |
| 상대 진영 수비 개입 | 31.7% | 35.0% |
| 파이널서드 볼 탈취 | 16.6% | 17.8% |
두 가지가 같이 나온다. 첫째, 깨끗하게 뺏는다 — 태클 성공 리그 1위에 파울은 리그 최소다. 둘째, 높이 압박하는 팀이 아니다 — 수비 액션의 평균 위치가 상대보다 낮고 상대 진영 개입 비율도 파이널서드 탈취도 상대보다 적다.
전방에서 몰아붙여 뺏는 팀이 아니라, 내려서서 정확하게 끊는 팀이다. 그렇게 끊은 공이 15초 안에 슛으로 바뀐다(55.9%)는 게 4절과 이어진다.
리스크 구간: 90분 이후
전체 실점 37골 중 90분 이후가 6골(17%)이다.
| 라운드 | 실점 시각 | 그 경기 |
|---|---|---|
| R1 강원 | 93′ | 3-1 승 |
| R6 전북 | 93′ | 0-2 패 |
| R11 포항 | 94′ | 0-1 패 |
| R19 인천 | 92′ | 1-2 패 |
| R25 대전 | 93·96′ | 1-2 패 |
6골 중 5골이 패배한 경기에서 나왔다. 이미 지고 있어서 나온 실점인지 막판 집중력 문제인지는 이 표만으로 구분되지 않는다. 다만 경기 막판에 무너지는 장면이 반복된다는 사실은 남는다.
11다시 순위표 앞으로
처음의 질문은 이거였다. 이 팀은 어떻게 2위이고, 왜 득실은 +4인가.
2위인 이유는 3·4·5절에 있다. 울산은 공을 오래 돌리지 않고(패스 8위) 적은 터치로 마지막 패스까지 간다(키패스 1위). 되찾은 공을 15초 안에 슛으로 바꾸고(55.9%) 슛의 절반은 3패스 안에 끝난다. 그 결과 골문 안으로 가는 슛을 리그에서 가장 많이 만든다. 수비는 낮게 서서 깨끗하게 끊는다(태클 1위·파울 최소).
득실이 +4인 이유는 6·7절에 있다. 그 화력이 후반에 몰려 있고, 전반에 뒤지면 결과로 바뀌지 않는다(7경기 0승). 만든 기회는 기대만큼만 골이 되고(0.95) 내준 기회는 기대보다 더 들어간다(1.09). 특히 박스 언저리에서 기대의 1.45배를 실점했다.
울산은 리그에서 기회를 가장 많이 만들고, 그 기회를 가장 늦게 만든다. 전반 45분에 리드를 들고 하프타임에 들어가면 7승 1패다. 뒤지고 들어가면 후반에 아무리 만들어도 0승이다. 이 팀의 90분은 전반에 거의 결정된다.
그리고 이 글에서 가장 먼저 나온 두 개의 답은 틀렸다. “점유율이 낮을 때 이긴다”도, “적게 들어가고 많이 쏜다”도 스코어보드가 만든 착시였다. 국면을 잘라 다시 계산하니 하나는 방향이 뒤집혔고 하나는 격차의 대부분이 사라졌다. 데이터를 읽을 때 가장 먼저 의심해야 할 것은 데이터가 아니라 그 데이터를 만든 상황이다.
12이 팀을 상대한다면 / 울산의 숙제
막는 쪽에서 봐야 할 것
- 전반 45분이 승부처다. 울산의 전반 xG는 경기당 0.61로 후반(1.04)의 60%다. 전반에 앞서면 울산은 7경기 0승의 패턴으로 들어간다.
- 잃은 직후 5초를 관리하라. 울산 슛의 55.9%가 볼 회수 15초 내, 47.4%가 3패스 이내에 나온다. 그들의 빌드업을 막는 것보다 내가 공을 잃은 순간이 더 위험하다.
- 중앙 통로. 파이널서드 진입의 25%가 중앙으로, 상대 평균(18%)보다 높다. 측면 크로스 차단보다 하프스페이스와 중앙 차단이 우선순위다.
- 세트피스는 내줘도 된다. 코너킥 110개에서 1골이다. 코너를 주는 리스크가 리그에서 가장 낮은 상대다.
울산 입장에서 남은 숙제
- 전반의 공백. 후반 화력은 이미 리그 최상위다. 더 짜낼 여지가 크지 않다. 승점은 전반 xG 0.61을 끌어올리는 데서 나온다.
- 박스 언저리 실점 1.45배. 표본 편차인지 그 구역 수비의 실제 문제인지 분리해야 한다.
- 코너킥 110개 → 1골. 크로스 정확도와 박스 안 마무리가 다 있는데 연결이 없다.
- 이동경 의존. 결장 표본이 1경기라 크기는 못 쟀지만, 키패스 23%·크로스 27%는 그 자체로 리스크다.
13데이터를 가장 잘 보여주는 4경기
26경기를 7개 축으로 z-점수화해 고른 뒤, 본문의 논지를 한 경기 안에서 볼 수 있는 것으로 추렸다
모델이 최고 출력으로 돌아간 날
울산 5-1 광주16개 슈팅이 전부 페널티 박스 안에서 나왔다. 26경기 중 박스 밖 슛이 0개인 유일한 경기다. 진입은 상대보다 적은데(21 대 31) 슛은 3배, xG는 13배. 전반 2-1 리드 뒤 후반에 xG 2.45를 더 만들어 5-1로 끝냈다. 전반 리드 → 후반 폭발이라는 이 팀의 이상적 시나리오가 그대로 나온 경기다.
만들고도 못 뒤집는 구조
울산 1-4 서울xG는 2.74 대 2.71로 대등한데 1-4로 졌다. 슛은 25 대 13. 서울은 13개로 2.71(슛당 0.21), 울산은 25개로 2.74(슛당 0.11) — 같은 xG를 서울은 적은 슛에 몰아 담았고 울산은 넓게 펼쳤다. 전반 1-2로 뒤진 뒤 후반에만 xG 2.05를 만들고 1골. 정체성 지수 2위인 경기에서 가장 크게 졌다.
점유율 착시의 교과서
울산 3-1 서울xG에서 지고 3-1로 이겼다. 점유율 30%는 시즌 최저, 패스 264회는 시즌 최소, 파이널서드 진입은 10회 대 53회다. 전반 13분에 2-0을 만든 뒤 완전히 내려앉았다. 이 한 경기가 시즌 평균 점유율을 끌어내리고 “점유율이 낮을 때 이긴다”는 착시를 만든다. 이 경기를 보고 울산을 판단하면 안 된다는 걸 보여주는 경기다.
가장 울산답지 않은 날
울산 0-1 전북진입은 두 배인데 기회는 절반이다. 40번 들어가서 xG 0.48을 만들었다 — 진입당 xG 0.012로 시즌 평균(0.062)의 5분의 1이다. 점유율 60%는 시즌 최고. 정체성 지수는 26경기 중 아래에서 두 번째다. 앞의 경기와 나란히 놓으면 지표의 한계가 한눈에 보인다 — 30%로 이기고 60%로 졌다.
점유율과 결과는 아무 관계가 없다. 30%로 이기고 60%로 졌다. 진입 횟수와 위험도도 관계가 없다. 10번 들어간 경기가 40번 들어간 경기보다 xG가 세 배 높다. 관계가 있는 건 하나다 — 전반에 리드를 잡았는가.
14결론 대신 예측
틀릴 수 있는 예측을 남긴다. 남은 12경기가 채점한다.
- 득실차는 개선된다. 골/xG 0.95와 실점/피xG 1.09가 우연이라면 1.0 쪽으로 돌아온다. 기회 생성이 리그 1위로 유지되는 한 득실 +4는 지금 실력보다 낮게 찍힌 값일 가능성이 높다. 그대로 유지되면 우연이 아니라 구조다.
- 박스 언저리 실점은 줄어든다. 1.45배 초과가 표본 편차라면 되돌아온다. 안 되돌아오면 그 구역 수비에 실제 문제가 있는 것이다.
- 전반에 뒤진 경기를 뒤집는 날이 온다. 0승 2무 5패는 후반 화력(경기당 xG 1.04)에 비해 지나치게 나쁘다. 계속 0승이면, 후반 화력이 리드 상황에서만 작동한다는 뜻이 된다.
- 승점 추가는 전반에서 나온다. 전반 xG(0.61)가 후반(1.04)에 가까워지는 만큼 승점이 붙을 것이다.
부록 — 출처·정의·한계
데이터가 말하지 않는 것
- 26경기는 작다. 하위 그룹으로 쪼갠 숫자들 — 전반 열세 7경기, 90분 이후 6실점, 박스 언저리 3.4골 초과 — 는 우연으로 설명될 수 있는 크기다. 패턴으로 부르되 결론으로 쓰지 않았다.
- 인과는 확인하지 않았다. 후반 xG가 전반의 1.7배인 건 게임 상태를 통제해도 남지만, 교체·체력·전술 변화·상대 피로 중 무엇 때문인지는 이 데이터로 알 수 없다.
- 이동경 의존의 크기는 측정하지 못했다. 결장 경기가 1경기다.
- 지표 정의가 출처마다 다르다. 울산의 슛은 이벤트 342, 종합검색 342, 부가기록 344. 유효슈팅은 이벤트 126, 종합검색 124, 부가기록 127, 경기기록부 181로 더 크게 갈린다. 리그 비교는 종합검색 한 체계로만 계산했고 12개 구단 전부 같은 방식으로 처리했다. 종합검색의 값은 시도가 아니라 성공 기준이다.
- xG는 포털이 슛별로 제공하는 값의 합산이다. 구단별 공식 xG 테이블은 이번 수집에서 찾지 못했다. xG 모델은 제공자마다 다르므로 다른 출처의 xG와 직접 비교하면 안 된다.
- 트래킹·피지컬 데이터는 없다. “높이 압박하지 않는다”는 수비 액션 좌표에서 나온 추론이지 라인 높이를 직접 잰 것이 아니다.
정의
| 데이터 출처 | K리그 데이터포털 (portal.kleague.com), 2026-09-04 수집 |
| 범위 | 2026 K리그1 1~26R, 울산 26경기 전량 |
| 이벤트 | 38,593건 (양팀), 슈팅 657개에 xG 부착 |
| 좌표 | 피치 고정 좌표를 회전시켜 양 팀 모두 X가 커지는 쪽으로 공격하도록 정규화 |
| 파이널서드 | 정규화 X ≥ 66.7 |
| 페널티 박스 | 정규화 X ≥ 88 (박스 언저리 = 80~88) |
| 진입 | 자기 진영(X < 66.7)에서 시작해 파이널서드로 성공한 패스 |
| 소유 국면 | 상대 이벤트가 2회 연속 나오면 소유권 전환으로 처리 |
| 첫 골 이전 | 그 경기 첫 골(양 팀 통틀어) 이전 구간. 첫 골이 10분 이전인 경기는 표본이 짧아 제외 |
| 리그 비교 | 포털 종합검색(0307), 12개 구단 동일 조건, 시도가 아닌 성공 기준 |
검증
- 리그 순위표 ↔ 경기기록부 재합산 완전 일치 (26경기 12승4무10패 승점40 득41 실37)
- 이벤트 골 태깅 ↔ 공식 득점 41 = 41 (실점은 자책골 2건이 울산 이벤트로 잡혀 35 vs 37)
- 코너킥 3중 일치 — 종합검색 110 = 부가기록 110 = 경기기록부 110
- 경기기록부 ‘골’ 행의 ‘계’ 값이 26경기 중 12경기에서 전·후반 합과 달랐다(포털 버그) → 재합산 값 사용
- 경기기록부 득점 표에 매 경기 동일한 예시 행이 섞여 있었다 → 해당 경기 두 팀의 골만 채택