Cut the chicken thighs into 3 cm / 1-inch pieces and pat them dry with paper towels.
Whisk gochujang, gochugaru, soy sauce, rice syrup, mirin, garlic, ginger, curry powder, sesame oil and black pepper into a thick, glossy paste.
Fold the chicken into the marinade until every piece is coated, then chill at least 30 minutes and up to overnight.
Cut the cabbage into squares, slice the sweet potato into thin half-moons, and thickly slice the onion.
Soak the rice cakes in warm water for 10 minutes if they are refrigerated or frozen, then drain.
Heat 2 tbsp oil in your largest skillet, at least 30 cm / 12 inches, over medium-high heat until it shimmers.
Add the marinated chicken in one layer and let it sit undisturbed for 3 minutes, until the underside darkens and smells toasty.
Stir once, then add the sweet potato and onion and cook 3 minutes more.
Add the cabbage and rice cakes, turn the heat to medium, cover, and cook 8 minutes, stirring twice — the cabbage will slump and release liquid.
Uncover and cook 5 to 7 minutes, stirring often, until the sauce clings to the chicken and the pan sounds like frying rather than simmering.
Check the sweet potato with a chopstick — it should slide in with no resistance. Taste a piece of chicken for doneness, 74 C / 165 F at the center.
Stir in the scallions and perilla leaves, cook 1 minute, then push everything to the edges and scatter mozzarella in the middle if using. Cover 2 minutes to melt.
Serve straight from the pan, keeping about a quarter of the chicken and sauce in the skillet for the fried rice.
For the bokkeumbap: scrape the reserved bits into the center, add the cooled rice and 1 tbsp sesame oil, and press and fold over medium heat for 3 minutes.
Flatten the rice into a disc, let it sit undisturbed 2 minutes to build a crust, then top with crumbled seaweed and sesame seeds and eat it from the pan.