There are generally two major ways of setting up a minecraft world for you and a very limited amount of others (1 in your case) to play on. First, you may want to rent a proper server, or second, you can create a local server. For only two people playing a local server might be the better alternative, as it does not cost anything. However, if money is in no way a problem for you, you might find a rented server more convenient.
Rented server
This obviously costs money. There are many different minecraft server hosting services available with varying quality and prices. The creators of minecraft itself offer such a service with Minecraft Realms.
- Setting up such a server can be very easy as many services offer a control panel for you to configure your server without a big amount of knowledge.
- You also have the advantage of your server running 24/7, even if nobody is on the server at the moment, which you may find useful (probably only if you do technical stuff in minecraft).
- Obviously this way your minecraft world is also accessible from anywhere and at all times - however if your internet drops out you can not access your minecraft world.
- Rented servers have less impact on your computer, so if you have very bad hardware and you can barely run minecraft using a rented server might prove helpful for you.
- You can play with more then one friend on these servers at a time normally, but the amount it limited depending on the service you use and the money you want to spend.
Minecraft Realms is probably the easiest to set up, however also not the cheapest with currently 7.19 € (that's EURO not dollar!), less for longer subscriptions. The server hoster I am using (a German service called Nitrado) charges 4.00 € monthly (less for longer subscriptions).
Local server
A local server runs on your own computer or another computer at your place, which means that
- the server is accessible for your always, even if your internet drops out.
- You do not need any additional hardware, so there aren't any costs involved, which is the major advantage.
On the downside it's generally more effort to set up then a rented server and
- it uses your private internet connection for connections to other players then yourself, which, depending on bandwidth and reliability of your internet connection, may lag the game for the other player(s).
- It has more impact on your computer's resources, as the computer has to run both client and server, except if you use another computer in your local network for running the server.
- The amount of other players is not limited theoretically, but practically by your internet connection bandwidth.
- The major disadvantage would be that the minecraft world is available to others only when you start the server. (Note that normally it is not cost-effective to run a server on your computer 24/7 then to rent a server that runs 24/7.) This means your friend will have to wait for you to be online to play on the world.
(A work-around for this last point would be to place the server files in your Dropbox/OneDrive/Google Drive folder (or any other cloud-hosting service's local sync folder) - this way after you shut down the server the changes to the minecraft world will be synchronized with your cloud storage, to which you can invite your friend, which will synchronize the server's files with her computer as well, enabling her to play on the world while you are offline.)
To set up such a local server follow Step 1 of creulcat's answer.
To make both a rented server and a local server accessible only for some players, you have to set up a white list (in case of Minecraft Realms only people you specifically invite to your Realms server can join).