센터백(수비수)으로 2018년 4월 군복무를 마친 후 원소속팀인 성남FC에 복귀하여 활약 중이다. 단국대학교 시절 U리그 우승을 이끌었고 2010년 신인 드래프트에서 성남 일화 천마에 1순위로 지명되어 입단하였다. 데뷔 초에는 조병국, 사샤 등 준수한 센터백 자원이 성남에 즐비했기 때문에 서브 멤버로 지냈다. 이후 2010년 3월 19일 전북 현대 모터스와의 원정 경기에서 72분 김진용과 교체되며 리그에 첫 출전하였다. 그해 7월 18일 울산 현대와의 경기에서 경고 누적으로 결장하는 사샤 오그네노브스키를 대신해 선발 출장하여 처음으로 풀 타임 경기를 소화하였고, 이후 주전 센터백으로 활약하였다.
2013 시즌이 끝나고 중국 슈퍼리그의 허난 젠예로부터 이적 제의를 받아 성사 직전까지 갔으나, 메디컬테스트에 문제가 생겨 다시 성남 FC로 복귀하였다.
2016 시즌 중 상주 상무에 입대하였으나 무릎 문제로 기초 군사 훈련을 받지 못하고 소속팀에 복귀하였다가 2016년 7월 다시 상주 상무로 재입대하였다. 그리고 2018년 4월 3일 군복무를 마치고 원소속팀 성남으로 돌아왔다.
국가대표 경력으로는 2015년 월드컵 예선 라오스, 미얀마와의 경기를 앞두고 대표팀에 처음으로 발탁되었고, 라오스 원정 후반 40분 경 김기희 선수 대신 교체 투입되며 첫 A매치 데뷔전을 치렀다. 2017년 EAFF- E-1 풋볼챔피언십 최종명단에도 발탁되어 일본전에 선발로 출전해 풀타임을 소화하며 안정적인 모습을 선보였다.
신태용 국가대표팀 체제 하에서는 꾸준히 A매치 명단에 이름을 올리고 있다. 전술에 잘 녹아들고 안정적인 활약 덕에 어려운 수비진 경쟁을 뚫고 종종 출전하고 있다.