This is probably the first word in the Korean tree illustrating 사이시옷. Basically, it is when a ㅅ is inserted to link two parts of a compound word.
The ㅅ in this case (어제+ㅅ+밤) serves as an embedded genitive marker. You can think of it as literally meaning yesterday’s night instead of just yesterday night.
Not even 漢字-derived compound are immune to 사이시옷! Take 숫자, for example. That comes from 수 (數), meaning number and 자 (字), meaning character.
One of the North-South language differences is that there is no 사이시옷 in the North Korean spelling. Therefore last night is 어제밤. Chopsticks are 저가락(instead of 젓가락), toothbrush is 치솔 rather than Southern 칫솔 (although they usually use word "이솔" for a toothbrush). And of course, 숫자 is 수자 there. Here's a screengrab from a North Korean dictionary:
Still, these words are pronunced the same in both countries. The Northern 어제밤 sounds like [어제빰], despite no graphical indication. 저가락 sounds like [저까락], like if ㅅ was there. You can even see in the screenshot above, that the authors noted, that 수자 should be read as 수짜 (발음: [－짜]).
Also 사이시옷 is spelled as 사이시읏 in the North.