Pretend you have a printer with a keypad attached to it - via the keypad you can enter an RGB triplet directly in the printer's native color space and the printer will print a color patch as a result. So, you enter a triplet (say 128, 128, 128) and it prints a patch that is sort of middle gray. Then you measure that patch with a spectrophotometer and you get a spectral response, characterized as a L*a*b* value. You compare that result to what you want, or know, that RGB triplet to represent: say the measured result is L*55, a*1, b*1 but the desired result is L*50, a*0, b*0. You can devise a relationship between the printer's NATIVE response (the patch it printed in response to your input) and the desired response so that when the printer receives an RGB triplet of 128, 128, 128 from the keypad, it will print a patch that measures L*50, a*0, b*0 instead of its native L*55, a*1, b*1 - that relationship is the ICC profile. Say you could load your mapping relationship (profile) on a hypothetical SD card and plug that card into the hypothetical keypad - then, when you enter 128, 128, 128 on the keypad, the keypad would read the profile from the card, beep boop bop and, via the profile, convert that input triplet in the printer's native space (128, 128, 128) into a modified triplet (say, 123, 124, 125) so that it would result in a printed patch of L*50, a*0, b*0 instead of the native L*55, a*1, b*1.
In color management, the input color space (the RGB triplet) is converted to a device-independent value first (the PCS), so that an RGB triplet in one input space that represents the same color in another space (but with different RGB values) is sent to the printer in its native color space as the same native value.
This is an oversimplification, but the point is, to establish the relationship between the native output and the desired output, you need to know the native output. This is what you get when you print a target with no color management.
kirk