I have been naive on handling concepts like set or class, or using equivalences of AC. Recently I realized I have to be more careful with some constructions regarding the foundational issues.
Say, for example, construction of algebraic closure for given field or Stone-Cech compactification. These are constructions already verified to be consistent with ZFC.
However suppose I am to construct some mathematical object myself, I would have to verify that the construction doesn't give rise to foundational issues or go against ZFC.
I'd like a reference on axiomatic set theory regarding this issue.
This is a very reasonable concern to have, especially given the blithe way in which the issue is usually treated. Now this blitheness (blithitude? blithiness? blithosity?) is justified, in that after playing around with the subject for a bit one gets a very good sense of what works and what doesn't, but it can be quite off-putting at first.
I think Enderton's book on set theory is a good starting point. Certainly you should first master the material there (from it or another text), and then decide what to do based on your remaining issues (if any).
That said, let me give a quick roadmap you may find helpful:
Personally, I think that there are really three points you need to get fluent in, and then everything else will basically fall into place.
Powerset/Separation constructions: Things like "there is a set of all functions from $A$ to $B$," the construction of the real numbers, or more generally any argument which involves "going up a type" tends to be one of these. Roughly, you use Powerset to "go up to a high enough type" and then use Separation to get rid of all the "junk" you don't care about. It also includes more subtle arguments, like "for every set $A$ there is a well-ordering onto which $A$ does not inject."
Sets vs. classes: you're probably already familiar with the issue that some classes cannot be sets, and this is probably the major source of worry. After understanding the role of Separation as per the above, though, you should be comfortable with the distinction between trying to use "full" comprehension ("the set of all $x$ such that ...") and using "local" comprehension ("the set of all $x$ in $y$ such that ...") - that is, Separation. You should go through some examples of this point, focusing on $(i)$ proving that they cannot be sets and $(ii)$ pinning down where the attempt(s) to build them via Separation, or build analogous things by Separation and derive a similar contradiction, breaks down.
Transfinite recursion/induction (recursion is the construction, induction is the analysis - but this distinction is often ignored, so oh well): this is where the real power of set theory comes in (Choice notwithstanding - it's more exciting, but less fundamental). You should also understand how $(i)$ Replacement is necessary in a way Choice isn't, but $(ii)$ Choice is often necessary as well in setting up the argument (namely, by well-ordering the "requirements" we need to meet so that transfinite recursion/induction can be applied). Some good arguments to cut your teeth on here are: $(i)$ the existence of a Bernstein set, assuming the axiom of choice; $(ii)$ the existence - for each set $A$ - of an ordinal onto which $A$ doesn't surject, not assuming the axiom of choice; and $(iii)$ proving the equivalence between Choice, Zorn's Lemma, and the Well-Ordering Principle; and $(iv)$ the definition and basic properties of the cumulative hierarchy (including that a class is a set iff it only contains elements of bounded rank).
Note that I've left out choice; while extremely powerful and important, I think the first three are the ones that will clarify better how set theory ultimately forms a foundation for mathematics. After you understand the three points above, I think the role of the axiom of choice will become much clearer (especially after understanding transfinite induction, as I've mentioned). This is a pedagogical opinion which many people will disagree with me on, but I do hold it.