If you are using subdivisions, and there are areas you want to remain sharp in your model, select the edge loops and pull out the right side menu and set your MEAN CREASE. If you want a loop to be exactly as sharp as it is before subdivision, make mean crease 1.00. The more subdivisions you have, the more you may have to create crease islands to keep sharpness between loops. Alternatively, if you are largely happy with the model, you can smooth it using Object > Shade smooth by angle, observing the results, and adding or removing edge sharpness by going into edit mode, selecting a loop or loops (edges) and either choosing Edges > Mark Sharp or Clear Sharp as necessary to get the smoothness you want while retaining your edge definition. Normally, I try to go with Smooth by angle first to see if I can get the desired appearance without creating a bunch of additional geometry.