As a foreigner in Korea, people don't expect you to know all these rules, but it helps to try! How you address someone depends on their age, social position, relationship to you, whether they are male or female, and sometimes whether you are male or female, too. In particular, the importance of the 'respect your elders' rule in Korean culture means that you need to be careful about how you address older people.
I've put together a guide to as many of the various ways of addressing other people in Korean that I can think of ... Although, even after two years in Korea I still get totally confused by it and make mistakes! I usually call my friends by their first names or English nicknames, but try to use Korean forms of address for anyone else.
A male can call a slightly older female 누나 (big sister)
A female can call a slightly older female 언니 (big sister)
A male can call a slightly older male 형 (big brother)
A female can call a slightly older male 오빠* (big brother)
*Be careful. Some girls call their boyfriends '오빠'. It has implications!
You may add these 'big brother/sister' words to the end of the person's name, eg. '지은언니', to make it clear who you are addressing (or talking about).
Close friends may call younger/same age friends by their first name plus -아/-야, depending on whether the name ends in a vowel or a consonant, eg. '준우야!' or '서은아!'. This is not so much a form of address, but more like a way of getting someone's attention, like saying 'Hey Junwoo!'.
Adults may call a friend's young child by the child's first name plus the cute ending -이, eg. '수빈이!', or more normally for an older child add -아/-야 to their name.
A student may call a senior student 선배님, as 선배 means senior, and -님 is a respectful suffix. This could be in many contexts, eg. a freshman at university addressing a final year student, a young sports player addressing a pro, or someone in a work place addressing a more experienced colleague who has a mentoring role.
A student should call their teacher 선생님 (teacher). In fact, students will often call other staff at school '선생님', regardless of whether the person is actually a teacher or not.
Teachers can call their students by the student's full name.
Always use the person's job title plus 님 (honorific suffix used to address superiors) if you are addressing someone at work who is in a superior position.
사장님 boss, president of a company
팀장님 team leader, department manager
원장님 hagwon director (could also refer to directors of other workplaces ending in -원)
교장님 head teacher, principal of a school
In schools, kindergartens and hagwons, teachers may call eachother 선생님 (teacher), or in some places 샘 for short, but this is a kind of nickname word.
In professional situationsStaff may call a customer or client 고객님 (고객 client + 님 respectful suffix)
A company may sometimes address a letter to a customer using the customer's full name plus -귀하
Teachers may call their students' mothers 어머님 (a respectful form of the word mother).
Random strangers in the street
You can get someone's attention by calling out '저기요!' ('Excuse me, hey you over there!'), but if you really need to use some kind of address to them:
You can call a middle-aged person 아줌마 (auntie) or 아저씨 (uncle). You can also use these words to address middle-aged staff in restaurants or shops, but sometimes it can sound a bit rude so be careful. It's fine to use '아줌마' and '아저씨' to talk about those people in the third person, though.
You can call a really a old person (like so old they won't be offended if you call them a grandparent)
할머니 (grandma) or 할아버지 (grandpa).
You can call a school kid 학생 (student). Sometimes old people call me '학생', even though I left uni years ago - Makes me feel like I must look young!
If you are a young woman, you may hear some old people call you 아가씨, which is an old-fashioned sounding way of saying 'miss' or 'young lady'.
Most basic way to be politeIn many cases, you can just call a person by their first or full name plus -씨, eg. '민수씨'. This is something like Mr. or Ms., and is best used for people who are younger than you or who don't hold a superior position. This is the simplest thing to learn, because it doesn't depend on age, gender or the person's relationship to you, so it's a good way to be polite if you're not sure what else to say. You can't go far wrong if you use '-씨'. Even if it does sound a bit wrong, people will at least understand that you are trying to be polite!
Well this turned out to be a pretty long post! If you notice something I've missed, please leave a comment below. Are you as confused by all this as I am?