I sometimes hear this phrase but I don't understand what the grammar/meaning is. It's a construction with 보다, right? I didn't find anything for A/V + 나보다 or 보나보다 or anything like that. Where does it come from?
The grammar that you are seeking is ㄴ/은/는가 보다, but it is usually shortened to 나 보다. Its basic meaning is "I guess...", however you should use it only when you have a clear evidence to support your guess.
Ex: 지금 야채가 없나 봐요. -> I think(I guess) there is no vegetable now.
You guess it because, let's say, usually the vegetables are sold out at time slots of the speaking moment, which is a clear fact understood by experience, instead of feeling only.
Ex: 그 걸 봤나 봐. -> I guess he saw that.
It has two meaning: One is "than," and the other is "to guess."
The first 보다 is used with comparison:
"more (adjective) than (phrase/noun)" "(phrase/noun)보다 더 (adjective)하다."
The second 보다 is ending expression:
"~하나보다," "한가보다." 하나보다 means "To guess something/someone does ~." 한가보다 means "To guess something/someone is~."
올 해는 작년보다 덜 춥다.
This year is less cold than the last.
진수는 나보다 달리기를 더 잘한다.
진수 is better at running than me.
날씨가 추운 것 보니, 겨울이 왔나보다.
The weather is cold, guess winter has come.
There is an expression: ~한 것 보니, ~한가보다. Means "I see that~, so I guess~"
A: 배가 너무 고프다
B: 운동을 너무 열심히 했나보다
A: I'm so hungry
B: guess you worked out so hard.