Parboil the bones. Place pork bones in a large pot, cover with cold water, and bring to a rolling boil for 5–7 minutes.
This pulls out impurities for a cleaner broth.
Rinse and reset. Drain the bones. Rinse the bones under cold water and scrub off any scum. Rinse the pot too.
Start the broth. Return bones to the pot with 12–14 cups of fresh water, the onion, ginger, and half the garlic.
Bring to a boil, then lower to a steady simmer. Skim foam during the first 20 minutes.
Simmer low and slow. Cook for 1.5–2 hours, partially covered. The broth should turn milky and the meat should loosen on the bone.
Make the seasoning paste. In a bowl, combine gochujang, gochugaru, doenjang, soy sauce, fish sauce (if using), remaining garlic, perilla seed powder, and sesame oil.
Stir into a thick paste.
Season the broth. Remove the onion and ginger. Stir the seasoning paste into the pot until fully dissolved. Taste and adjust salt, soy sauce, or gochugaru.
Add hearty vegetables. Add potatoes and Korean radish (if using).
Simmer 15–20 minutes until just tender.
Add greens for freshness. Stir in Napa cabbage, perilla leaves, and green onions. Simmer 5–7 minutes more, until cabbage softens but still has some bite.
Final balance. Taste again. Add a splash of soy sauce for savoriness, a pinch of sugar if it’s too sharp, or more perilla seed powder for nuttiness.
Finish with black pepper.
Serve hot. Ladle into large bowls. Include bones and plenty of broth, potatoes, and greens. Serve with steamed white rice and extra perilla leaves if you have them.