how to correct topology after boolean operation?
First triangulate the model.
After that, add a subdivison modifier, with simple and one with Catmull-Clark selected. Then do loopcuts, where you want to have sharp edges. Slide the loopcuts till the edges, but not on them, just a little bit before.
You have to play a little bit with the strengt of the modfiere.