Comenzó a jugar a nivel escolar,[4] pasando por los equipos de la Escuela Secundaria Técnica de Suwon (en la que Park Ji-sung ya había dado sus primeros pasos) y la Universidad Yonsei.[4][5] En 2016 fue fichado gratis por el Gyeongju KHNP,[6] con el que debutó en el torneo semiprofesional de la Liga Nacional de Corea.[7]
Al año siguiente fichó por el Jeonbuk Hyundai, equipo de la primera división coreana.[8] Con los verdes se convirtió inmediatamente en titular, gracias a la confianza depositada en él por el entrenador Choi Kang-hee, y se consolidó como uno de los mejores defensas de la K League. En dos años totalizó tres goles en sesenta partidos, ganando dos ligas consecutivas y dos premios al Mejor Jugador Joven de la Liga.[9] Con el Jeonbuk, el central también llegó a jugar la Liga de Campeones de la AFC en 2018.[10]
Beijing Guoan
El 4 de julio de 2019, el Beijing Guoan de la Superliga de China anunció la compra del jugador.[11] Con el equipo pekinés, se consolidó inmediatamente como uno de los mejores defensores de la Superliga: tales actuaciones despertaron el interés de varios clubes europeos, entre ellos el Tottenham, que se interesó fuertemente por adquirir al defensa surcoreano. En mayo de 2020, por una cantidad de 15 millones de euros, los ingleses llegaron a un acuerdo con el club de Pekín que, sin embargo, no se cerró por motivos burocráticos.[12][13]
Fenerbahçe S. K.
El 13 de agosto de 2021 firmó un contrato de cuatro años con el Fenerbahçe S. K.[14] Debutó en la liga turca nueve días después, jugando como titular en la primera jornada contra el Antalyaspor (2-0).[15] El 16 de septiembre siguiente, debutó en la Liga Europa en un empate a uno contra el Eintracht Fráncfort.[15] Finalmente, el 20 de marzo de 2022, marcó su único gol de la temporada contra el Konyaspor.[15] Debido a su rendimiento,[16] fue incluido en el Equipo del Año de la Superliga al final de la temporada.[17]
Napoli
El 27 de julio de 2022 se hizo oficial su traspaso a la S. S. C. Napoli.[18] Debutó como titular con los italianos el 15 de agosto siguiente, en la victoria por 5-2 de visitantes ante el Hellas Verona, en la primera jornada de la Serie A.[19] En la fecha siguiente marcó su primer gol en Italia, fijando el marcador en el 4-0 final en el partido de local contra la A. C. Monza.[20] El 8 de septiembre debutó en la Liga de Campeones, en la victoria del Napoli por 4 a 1 contra el Liverpool F. C.[21] Gracias a su rendimiento en el inicio de temporada, fue galardonado como mejor futbolista del mes de septiembre por la Lega Serie A[22] y mejor futbolista del mes de octubre por la Asociación Italiana de Futbolistas (AIC).[23] Con el Napoli, se consagró campeón del scudetto en su año de debut en la liga italiana,[24] ganando también el premio Lega Serie A al mejor defensa.[25]
Bayern de Múnich
Se unió al Bayern de Múnich procedente del Napoli de Italia. El contrato se extendió hasta 2028, con un traspaso de 50 millones de euros.[26]