No it is not required for every variable, only for those that need to be visible for UE. For example if you want to have a variable editable in the UE editor it needs to be a UPROPERTY, but if it is just a internal varaible for a class it is not required.