Korean names today have different rules than they had in the past. This article mainly covers South Korea's. The North Korean one could be different

Number of parts of a name 
Korean names have two parts. One is the family name and the other is the given name.

"Park Chan-Ho" is a name of a Korean person. Park is the family name, and Chan-Ho is the given name. In the Korean language, the family name comes first, and the given name comes second. (It is like writing Smith John, instead of John Smith.) Most Koreans feel uneasy when they are called in the reverse way or by only family name.

Marriage and children
Married men and women usually keep their full personal names, and children take the father's family name. So, a son of Ha Hi-Ra (female) and Choi Su-Jong (male) will be Choi something.

Nicknames 
Although Koreans have nicknames, these usually come from their personal characteristics like appearance, a physical defect, or a word with a similar pronunciation to their names. They are different from the nicknames in the Western sense such as Bob, Bill, Liz and Kate. Unfavorable nicknames are more common than favorable ones. It is very rare for an adult to be called by a nickname.

The way of addressing someone

For the very first time or in a formal situation
Koreans call someone with Si (氏 means Mr., Mrs. or Miss, the most universal), Yang (孃 means Miss, used when the person is younger than the speaker), Goon (it means Mr., used when the person is younger than the speaker) after the family name, the given name or the full name.

In close relationships

Speaking to a younger person

Koreans call someone by only the given name itself or with the vocative postpositional word (Ya - In case the last syllable is open, or A - In case the last syllable is closed)

Speaking to an older person
Male Koreans often call older males 형 (Hyeong) and older females 누나 (Nu-na). Female Koreans call older males 오빠 (O-ppa) and older females 언니 (Eon-ni) after the given name.

In the family

Speaking to a younger person
Koreans call someone by only the given name itself or with the vocative postpositional word (Ya - In case the last syllable is open, or A - In case the last syllable is closed).

Speaking to an older person
Koreans call someone using the word that indicates their blood relation instead of their name.

Examples: 아버지 (A-beo-ji, means father), 아빠 (A-ppa, means dad in a casual way), 어머니 (Eo-meo-ni, means mother), 엄마 (eom-ma, means mom), 형 (hyeong, means male's elder brother), 누나 (Nu-na, male's elder sister), 오빠 (O-ppa, means female's elder brother), 언니 (Eon-ni, female's elder sister), 남동생 (Nam-Dong-Saeng, means the younger brother of a person regardless of the person's gender), 여동생 (Yeo-Dong-Saeng, means the younger sister of a person regardless of the person's gender)

At work
Koreans may speak to someone using the job title instead of their name. 

For example, 사장 (Sa-Jang, means the president of a company) and 과장 (Gua-Jang, the head of a department).

Speaking to a person in a lower rank
Koreans call someone with the job title after his family name, for example 박과장 (Park Gua-Jang).

Speaking to a higher-ranking person
Koreans add 님 (Nim, the suffix showing respect) after the job title or by the combination like the family name + the job title + Nim.

For example, 사장님 (Sa-Jang Nim), 과장님 (Gua-Jang Nim) or 박과장님 (Park Gua-Jang Nim)

Lengths, pronunciations, etc. 
The family name is typically a single syllable, and the given name two syllables. There is no middle name in the Western sense. Each syllable in Korean name (including family names) usually has its Chinese character. But its pronunciation is considerably different from the one in China. In case of the given name, Koreans place great importance on the meaning of each Chinese character. Often naming centers take charge of naming a new baby. 

Korean culture