Finely grated Parmesan cheese, for serving (optional)
Instructions
Heat 2 tablespoons olive oil in a Dutch oven or large pot over medium heat until shimmering. Add 1 finely diced small yellow onion, 1 peeled and finely diced medium carrot, 1 finely diced medium celery stalk, and 3 minced garlic cloves. Cook, stirring occasionally, until the vegetables are softened, 5 to 8 minutes.
Add 1 pound lean ground beef, 2 teaspoons kosher salt, and 1/4 teaspoon black pepper. Cook, breaking up the beef into smaller pieces, until cooked through, 5 to 7 minutes.
Stir in 3 tablespoons gochujang and 2 tablespoons tomato paste. Cook, stirring occasionally, until fragrant and the mixture begins to stick to the pot, about 3 minutes.
Stir in 1 (32-ounce) carton low-sodium beef broth, 1 1/4 cups whole milk, 1 (14-ounce) can crushed tomatoes, and 1 tablespoon soy sauce. Bring to a boil over medium-high heat.
Add 1 pound dried pasta and reduce the heat to maintain a simmer. Cook, stirring occasionally to prevent the pasta from sticking to the bottom of the pot, until al dente, 10 to 14 minutes. Taste and season with more kosher salt as needed. Serve with grated Parmesan cheese if desired.