Tickets can be purchased offline at a bus terminal, online with a smartphone app, or online on a website. If you purchase online, you’ll need to retrieve a physical ticket at a terminal before boarding or scan your smartphone when entering the bus. If you need to pick up a physical ticket, make sure you bring the debit/credit card used to make the transaction and you might need to know the matching phone number as well to prove you are the ticket purchaser.
If you are early or buses are running late, you might be lucky and can ride on an earlier bus if the stop you are at is the last departure point, as some buses will pick up passengers at several points before heading toward the destination. The bus company should also be the same. Various bus companies bid for certain routes or times on certain routes, which means one or several companies could be servicing the route you wish to take. If your ticket is for bus company A and the earlier bus is from company B, don't expect to get on the earlier B company bus.
The main way people purchase tickets is through smartphone apps. The company T Money has the [공식]시외버스 티머니 app for intercity buses (Google Play, App Store) and the separate [공식]고속버스 티머니 app for expresses buses (Google Play, App Store). These apps are Korean language only and have been region restricted in the past and possibly now as well. The T Money ticket website is available in Korean, English, Chinese, and Japanese. As these two apps are nearly identical, the color scheme is slightly different with the intercity bus app using a green motif and the express bus using a blue motif.
The Cash Bee company has the app [공식]전국 시외버스 승차권 통합 예매(버스타고) 버스타고, or 버스타고 for short, which the title says is for intercity buses. Korean, English, Chinese, Japanese languages are supported on the app (Google Play, App Store). Their ticketing website has the same languages as well.
Express bus tickets can also be purchased on the Kobus website (alternative website). The site is available in Korea, English, Chinese, and Japanese but you’ll need to click a button in Korean in order to select another language. Here is a cropped screen capture of the top right of the page with the dropdown language menu opened.