If you're already using a J-Link programmer in your embedded development, you can use it to interface directly with the target device serial port over the J-Link USB connection. This is extremely handy, especially if your hardware design connects RX/TX pins to the programming header.
Sometimes you don't have extra pins for TX/RX, the UART is already in use, or you don't want to upset critical timing by printing out messages. Real Time Transfer (RTT) is perfect in these situations. It uses the J-Link programmer to transfer console debugging output, without getting a UART involved at all. Good news, it's easy to use with Zephyr!
Your target hardware can be in a different part of the world while you develop your Zephyr app. Segger tunnel mode on the J-Link programmer means it doesn't matter if your hardware is on the desk in front of you, or back at the office.