'keyboard from scratch' registering key presses
What you describe is basically the way the 8 bit micros used to do it, before keyboards all got dedicated microcontrollers (which just did the same thing anyway).

Human user keyboard input isn't very fast. If you scan the key matrix once every 20 msec, and make it a rule that you only count the key as being pressed if you see it pressed on two consecutive scans, you will eliminate key-bounce.