In terms of Computer Programming, people around me mostly say 'side effect', when they talk about something that will happen behind the scenes, and it sounds pretty negative. However, when I read some documents, I've seen 'drawbacks' as the almost same meaning(I guess). So.. what's different and which one's more casual term and more formal term?
As the Cambridge Dictionary entry that you quoted says, a side-effect refers to any effect that happens in addition to the intended effect of an action. Side-effects may be negative, but they are not necessarily so.
In the world of pharmaceuticals, for example, side-effects are generally regarded as negative, but on occasion the side-effect can be beneficial. The drug finasteride is intended to calm down an enlarged prostate, and it has a side-effect of slowing the progress of male pattern baldness. For many men, this side effect is desirable, and so finasteride can be prescribed to men with healthy prostates, just to get the side-effect of slowing down male pattern baldness. One could argue that in this case reducing baldness is the main, or intended, effect and any stabilising effect on the prostate (which would be beneficial) is a side-effect.
When writing software, side-effects can in principle be beneficial, but most experienced programmers try to avoid even beneficial side-effects, because these effects are not obvious to anybody who might later need to make changes to the code. The side-effect may be beneficial at the time the code was originally written, but be inappropriate if the code is modified without an understanding of the side-effect.
A drawback is different in two ways. First, it is a feature of a situation or course of action: it is not necessarily an effect of an action. Here are some examples where a drawback is not an effect:
I like living in a city, but the noise and pollution are major drawbacks.
One of the drawbacks of this solution is that it only works in 70% of cases.
Second, a drawback is always, unequivocally, negative.
I am not a native speaker. I have been working on the Computer Programming for a long time.
IMO, a side-effect is something generated unintentionally while you are trying to add some features or fix some defects. It could be bad, good or it doesn't matter at all. Most of time, side-effects are annoying. Rarely, they are nice.
Well, a drawback is an aspect of something or someone that makes them less acceptable than they would otherwise be. It's a negative thing, I think.