Ki recently terminated his contract with Newcastle United, where he made just four appearances in all competitions this season.
The 31-year-old has spent the last decade of his career in British football, turning out for the likes of Celtic, Swansea City, Sunderland and Newcastle.
Ki joins a Real Mallorca side who are struggling to maintain their top flight status in the Spanish La Liga.
Mallorca are 18th in La Liga with just one win in their last five league games.
"It's a great honour to play for Mallorca. For me, it's a great honour to play in Spain because when I was younger I dreamt of playing in Spain so hopefully I’m looking forward to playing against the best players. Dreams do come true," Ki told the club's website.
"I think now fans from Korea are going to try and be a bit more interested because I play for the team.
"Take [Takefusa] Kubo is also a very talented player and those from Japan are watching games. Hopefully we will be able to contribute to the team and a lot of fans from the area will support us."
Ki could make his debut for Mallorca against Getafe this weekend.
Ki has won 110 caps for the South Korea national team, scoring 10 goals.