Try to think about what the different options are for various types of disobedience. Almost always there will be a different option to shouting and smacking- and often the calmer option works better because it looks more impressive
A few possible scenarios:
you tell him to stop playing with something/throwing something, he refuses: briskly and cheerfully remove object and start talking about something else
if the object can't be moved, then move him
you tell him to come, he ignores you: briskly and calmly take him by the hand and walk on whilst starting to talk about something else
he whines: ignore him, sing to yourself, put some music on
he has a tantrum: make sure he cannot damage any property or seriously injure himself, then leave him to it
he hits or kicks you: put him down so he can't get at you, or alternatively hold him calmly but firmly
you don't need to scare him, eventually, he will work out that whatever it may seem like at the time, it is what mummy wants that ends up getting done: if mummy has said we are going out, we will be going out; if mummy has said you must not play with this thing, this thing disappears
the calmer you can manage to stay, the more all-powerful you will seem
I found I got on a lot better once I decided that it didn't matter if mine obeyed instantly or cheerfully or at a command: every time I got my way (even if it meant lifting a screaming flailing dc out of the door), I chalked that up as a success. Cheered me up at the time, and left dc with an enduring well, fairly enduring sense of my authority.
Of course, there will be times when nothing seems to work- and times when you simply can't live up to your best standards. But if you can cut down a little bit on the conflicts then it will start getting easier.