Contrast marker vs subject marker
Although both sets of particles are equivalent to the subject in English, they function in Korean as markers for either the topic of the sentence (은/는) or the subject of the sentence (가/이).
The topic marker (은/는) has three main functions:
(1) Talk about general or habitual information concerning a noun.
Ex: 저는 민지이고 대학생입니다. I'm Minji and I'm a college student.
(2) Change the topic of conversation
Ex: 제가 사과 먹고 친주는 포도 먹어요. I'm eating apples and my friend is eating grapes.
(3) Show a contrast between two or more topics
Ex: 저는 사과 좋아하지만 친구는 안 좋아해요. I like apples, [however] my friend does not.
The subject marker (가/이) has diverse functions:
1. When the noun precedes the verbs 되다 and 아니다.
그녀는 의사가 되었어요 ( = 됐어요).She became a doctor.
그녀는 나쁜 사람이 아니에요.She is not a bad person.
2. When the noun is a direct object of the verbs 있다, 없다, and 필요하다.
(전) 지금 여자친구가 있어요. I have a girlfriend now.
(전) 지금 돈이 없어요.I don’t have money now.
(전) 지금 차가 필요해요.I need a car now.
3. When the noun is the object or complement of certain verbs that express psychological or emotional states.
(전) 제 여자친구가 좋아요. I like my girlfriend (lit: As for me, my girlfriend is good).
(전) 노래를 잘 부르는 사람이 부러워요.I envy someone who sings very well.
(전) 지진이 너무 무서워요.I am really scared of earthquakes.
4. When the noun plays a focused possessive role.
친구가 마음이 아파요.
My FRIEND’s heart hurts. (not just anybody’s heart)
-vs-
친구 마음이 아파요.
My friend’s heart hurts.
5. To emphasize negation (after verb ending ~ 지 / 하지)
지금 먹고 싶지가 않아요.
I (really) don’t want to eat now.
-vs-
지금 먹고 싶지 않아요.
I don’t want to eat now.
______________________________
Also, they can affect how a person's name is spoken.
For a Korean person's name, if there is a consonant at the end, then : 이름 + 이 + 가
지은 → 지은이가
철수 → 철수가
은선 → 은선이가
영희 → 영희가
한별 → 한별이가
But for a foreigner's name, if there is a consonant at the end: 이름 + 이
John → 존이
Sam → 샘이