Boolean messing up UV
It's already passed 11 months, and what I understand for 11 months is boolean messing up topology and should be avoided as possible.

However sometimes it's really helpful to create really complicated geometry, and there are some ways to fix the messed geometry.

One way I worked was fill triangulated faces instead of NGON face, which NGON means the face that has 5 or more vertices, works fine in my case.

If the shape you want to create is possible to make without boolean, it's better to not using it, however if you really needed it, do carefully while treating the NGON faces that generated after boolean operation.