Nobody is 100% good or 100% evil. Your characters shouldn’t be either.
As a writer, you’ve probably thought out your plot and have begun writing a character. We all know that heroes have to have at least one flaw. Superman has kryptonite. Harry Potter’s Scar burned-also he’s a teenager and a bit moody. Katniss doesn’t connect well with people. Bilbo Baggins often underestimates himself.
One thing you may want to think extra carefully about is you supporting characters. Often the most interesting stories have a really bad bad-guy. But there are other characters that are either not labeled, or initially presented as bad or good, and later reveal complicated qualities. Find the human element in every character, and you have found a believable motivation for his/her actions. For example in Lord of the Rings, Sauron is a total jerk-face, but Gollum was partly misunderstood. In Harry Potter and the Prisoner of Azkaban Dobby the house-elf works for a horrid family, and keeps trying to maim Harry, and yet he helps Harry in the end. It isn’t until we understand Dobby’s story that we understand his motivations, and come to love him.
What would you do in your characters shoes? What sort of life have they lived? It never hurts to create a back-story even for support characters. I like to keep post-it notes or a spreadsheet on the characteristics of key characters in my story. Even if you only include hints at the back-story in the body of your work, understanding the character yourself will help you to make more realistic and believable people. Someone that your reader can understand, if not relate to.