I want to stress MooS’ excellent point by saying a few more words regarding that.
I think what is important to note here, is that “isomorphism” is a term that is used for many things and the definition MooS has given captures their common essence (if you interpret “homomorphism” accordingly).
It is the basic idea of category theory which we are talking about: Considering the entirety of all mathematical objects of a certain structure and their structure-preserving maps. In category theory, the entirety is called category, the mathematical objects are called objects and the structure-preserving maps are called morphisms or arrows (and actually need not be set-theoretical maps at all).
In this context, an isomorphism is always a morphism with a two-sided inverse morphism. Take these examples:
If you’re talking linear algebra, you consider linear spaces as mathematical objects and linear maps as structure-preserving maps. Linear maps are also called “homomorphisms”. An isomorphism of linear spaces is a linear map which has a (two-sided) inverse that is also a linear map. It turns out that isomorphisms of linear spaces are exactly bijective linear maps.
If you’re talking order theory, you consider partially ordered sets¹ as mathematical objects and order-preserving maps as structure-preserving maps. An isomorphism of ordered sets is an order-preserving map which has a (two-sided) inverse that is also an order-preserving map. It turns out that isomorphisms of ordered sets are exactly bijective order-preserving maps.
If you’re talking topology, you consider topological spaces as mathematical objects and continuous maps as structure-preserving maps. An isomorphism of topological spaces is a continuous map which has a (two-sided) inverse that is also a continuous map. It turns out that there are bijective continuous maps between topological spaces which are not isomorphisms of topological spaces.
¹: … or lattices or totally ordered sets or preorders or …