I understand the purpose of having WCF endpoint on the service side, but I don't quite understand the purpose of configuring endpoint on the client side. Is this for duplex connection or something?
An endpoint is effectively a tuple of (address, binding, contract).
The client has all these things, just like the server. (In client side it is address you want to connect to, binding used to talk to the server, contract used for the messages.)