Best practice to separate content per city I'm trying to find the best practice to separate user content per country/city in a way that allows the user to select the country or city once so that whenever he adds content it will be automatically assigned to this city/country
and when searching, the results will be related to currently select city too.
so it's more like a global choice across the website.

How is this best achieved usually in drupal,, I used taxonomy to classify content per city.. but this doesn't feel like the solution.
Any guidance is highly appreciated.
You said you already had a taxonomy vocabulary holding the countries and cities. This sounds like a good start. You can add a term reference field to the user profile, so that users can select their locations from the same vocabulary.

One idea (which could work without coding) is that you use Entity Reference for referencing terms from this vocabulary on nodes. Then you can use Entityreference prepopulate to fill out the reference fields automatically based on a value in the URI's query string. As the last step you will need to render the content creation links and make sure the URIs contain the taxonomy term selected on the current user's profile. You can do that e.g. with Page Manager alongside with Panels by adding a New custom content pane, where you can use keywords from the User context which you need to add manually to the page.