If you are starting afresh, yes you would need both a domain and hosting. If not, you probably have both already and can continue to use your current domain and hosting provider(s).
A domain is your web address, and you see it typically in this format: www.your-website.com. You need to pay to make that domain yours, sadly there’s no lifetime pricing for it and you need to pay per year to keep it yours.
Hosting is renting space on the internet for your website to sit on and be accessed by anyone with connection to the internet. Usually you pay per month or per year, the latter being cheaper.