Ok, so I feel like my character is too perfect. I try to make her have flaws but it's not working so well. I reread my story so far and I found that most of them are all kinda typical and the same as any other cheesy story.
One: the most common mistake is to confuse personality flaws for character flaws. Personality flaws are superficial e.g talks loudly on phone or chews with an open mouth. Character flaws need to be deeper and meaningful. Is your character torn between moving away to another state for her career and taking care of her ill mother who can't travel with her? Then in due course of the story the character might find out that she would rather move to the new state and focus on her career but can't, not because she cares for her mother but in fact doesn't want her mother to leave all her property for her younger sibling.
But it's up to you to not make the reader hate her despite such an awful way of thinking.
Two: the flaws don't have to be force-fed to the reader. They need to be organic and not feel unnecessary. If they feel cheesy and forced then maybe they need not be mentioned at all.
Three: the flaws are flaws. They are there. Hidden or visible. It's the writing that makes them known. Is it necessary to list each and every flaw in the first chapter? Maybe not. Reveal slowly.
Use research and reference
Visual artists now that the best shortcut to making a drawing more realistic is to use research and reference. Here is an example (from Scott McCloud's Making Comics) of the difference between a gas station drawn purely from the imagination, and one based on reference images:
No matter how good your imagination is, the details of the real world are always more realistic.
In your case, find some real people (historical characters, actors, singers) and read some interviews, or (parts of) biographies. See if there are any odd details that you can use as inspiration for the details of your character's life and personality.
In the specific case of giving a character flaws, it's probably best to look for an outside perspective, since people can rarely speak honestly about their own flaws. Look for things that people say to each other in the heat of an argument, or about each other in a private conversation.
Finally, while details are a good place to start adding realism, ultimately you'll have to dig up the foundations as well. Look at the gas station in the image, to make it more realistic, the whole layout needs to be re-arranged. That's what drives the design of a gas station, so that's where the realism comes from. In your case, a tacked-on character flaw like being a bit vain or shallow will likely just make the character unlikeable, and less interesting. A better approach would be to look at the fundamentals of her character, and what the story will do to her character, and build the flaws and positives from there.
Nevertheless, stealing details from the real world can help you work inwards to a realistic character.
Give yourself constraints
Imagine a science fiction story where people travel between the stars. Now imagine that the author gives herself the constraint that the travel cannot exceed the speed of light. This heightens the realism, because it limits the author in what she can do. It may help the story if the characters can travel from A to B in a week, but she can't do that. She has to work around the constraint.
The real world throws up constraints, so a story that works around constraints feels more realistic. It doesn't really matter what the constraints are.
The constraints depend on the genre, but a simple way to introduce them is just to dismiss your first solution. If it's about a bank robbery, write a first draft, and then make something go wrong with the plan. If it's a meet-cute in a supermarket, make him get a phone call half way through the conversation and leave, after which she has to find him again.
For character flaws, the character is the constraint. Set up a situation where the reader knows exactly what the character should do (say you love him, forgive her, call the police) and then have them not do it.
If you do this to much, it becomes frustrating. But if you do it once, the rest of the story can just be about dealing with the consequences. The next time around, the character conquers their flaws, and the tension is relieved.
Live the part
Method actors heighten the realism in their performances by living the part. Living your life as the character and getting a sense of all the details that your imagination doesn't supply you with. You can be a method writer. See if you can dress as the character and go to the shops as her. See how people's responses change when you do.
I wouldn't recommend acting out serious character flaws, but you can find simple exponents of a basic flaw. For instance, you can act out vanity by wearing more revealing clothes than you normally would, or arrogance by wearing your most expensive clothes and taking a taxi somewhere.
The first question I would ask is: what is your story about? Is there a theme that it's trying to address? Furthermore, is the story more about the character and how the character changes, or about things that happen in the world around her?
The degree to which a flaw is "deep" depends greatly on where the main conflict of the story is. I know this is a really vague answer, but it's about all I can give without any specifics.
I've heard that a good character has strengths and weaknesses, motivation, and backstory. If you flush out a backstory, you will have given your character experiences that shape who they are. How would _______ event affect them as a person? You could the real-life research method in another answer along with this to get a realistic effect. But if you have a good backstory/background that directly ties into the character flaws, it probably won't seem cheesy unless you're copying from someone else (but it seems like you are trying to avoid that).
The things we don't write well are the things that we don't observe well. If your characters don't have flaws, it's because you don't like to see the flaws in yourself and others.
Try taking an objective, non-judgemental, deep look at the weaknesses of yourself and the people closest to you. Are you greedy, selfish, quick to anger, slow to forgive? We all are, at some points or times, it's just that most of us have learned to fight or suppress those tendencies.
Once you can do a good job observing those flaws in real life, you'll be able to write believable flaws into your characters. Meditate on yourself at your worst --your least proud moments --and then write less shielded, less suppressed, more catastrophic versions of those moments into your narrative.
Nel here! If you think the character is too perfect than, depending on the setting, she can be bullied for something like a visible scar(like on her face)from some kind of surgery. She could have a really meaningful flaw like, idono, rising slight paranoia! Yeah, probably not. Maybe Making her be insecure or having a deep change of heart. Make sure she impacts the reader in some way!