uso de @property e @synthesise?

Eu estava me perguntando qual era o ponto de @property e @synthesise. No momento eu uso o seguinte para declarar algo:

//Class.m
#import "Class.h"

CCNode *node;

@implementation
//init, etc..

Mas eu vi outros usarem:

@property (nonatomic, etc..) CCNode* node;
@synthesise (nonatomic, etc..) node;
//I am not too sure on how this type of declaration works, please correct me on how it's done.

Ambos parecem funcionar da mesma maneira, quais são as vantagens do método @property e @synthesise? Eles fazem coisas diferentes, em caso afirmativo, o que?

questionAnswers(5)

yourAnswerToTheQuestion