I previously said:
"We are the defendants, and we are guilty.God hates sin (and sinners, you cannot easily separate the sin from the sinner). If you doubt this, read Leviticus 10. Sin can take many forms, but fundamentally it is disobeying God's commands.
There must be a price paid (more like our civil court than criminal). That price can only be paid by the blood of Jesus."
God is just. Deuteronomy 32:4 is particularly beautiful: "[He is] the Rock, His work [is] perfect: for all His ways [are] judgment: a God of truth and without iniquity, just and right [is] he".
God cannot simply forgive people, without punishment. Would a human judge be considered just if he let guilty people go if they said "Sorry"? We call it a "slap on the wrist", and we are outraged (and rightly so).
We cannot pay the punishment ourselves. This is "works righteousness". If we can pay the punishment ourselves, then we can "earn" our salvation. In a sense, God would "owe" us salvation. You don't thank your boss for your paycheck (well, you might say "Thank you" when he hands you the check). It's yours. If he doesn't give it to you, he is a thief. And you don't have gratitude. You worked hard for that check. In some sense, you are equal (in that you deal equitably). He barters for your work, and you barter for pay. That is not how we relate to the creator of the universe.
So God paid the price Himself. He poured out His wrath on His own Son. Jesus' death reveals the magnitude of our crimes against God. It reveals God's love, that He would do that for us. So God is just. And He is love. Merciful. Gracious.
Consider 2 Corinthians 5:20c-21: "be ye reconciled to God. For He hath made Him {Jesus} [to be] sin for us, who knew no sin; that we might be made the righteousness of God in Him."
This is the great exchange. Our sins were assigned to Jesus, and He paid the price for those sins: beaten, and removed from the sight of God (Matthew 27:46). At the same time, Jesus' righteous life is assigned to us (we'll ignore imputed versus infused righteousness for now).