has two meanings, one is ‘should have‘ which expresses ‘regret’ your action in the past, the other one is ‘guess’ or ‘predict’.
1. regret : often with 그랬다 together.
라면 먹을걸 (그랬다). I should have eaten instant noodles.
진작 병원에 갈걸 (그랬다). I should have gone to the hospital before.
준다고 할 때 받을걸 (그랬다). I should have taken when she/he said that she/he gave it to me.
옆에 있을 때 좀 더 잘 해 줄걸 (그랬다). I regret I was not that nice to she/he when she/he was with me.
집이 쌀 때 살걸 (그랬다). I should have bought the house when it was cheap.
좀 더 자세히 볼걸 (그랬다). I wish I had looked closely.
엄마 말을 잘 들을걸 (그랬다). I regret I didn’t listen to my mom that well.
2.guess or predict : -(으)ㄹ걸 or -았/었/였을걸. It express “I guess something that is different than what you think.”.
Q: 내일 날씨가 맑겠지? Will it be nice tomorrow’s weather?
A: 내일 비 올걸. It will rain tomorrow.
Q: 이 식당 비쌀 것 같아. This restaurant looks very expensive.
A: 안 비쌀걸. 내 친구들은 자주 가는데… It won’t be, my friends go there very often.
Q: 민호가 올까? Will Minho come?
A: 민호 안 올걸. 오늘 약속 있다고 했어. No, he won’t. He said he has a plan.
Q: 내일 살까? Shall we buy it tomorrow?
A: 내일 되면 값이 오를걸. 지금 세일하니까 그냥 사자. The price will go up tomorrow. It is on sale now, let’s just buy it.