리액트 스프링 프로젝트의 컨트롤러 반환값에서

1. 모든 컨트롤러의 결과값에 ResponseEntity로 감싸서 반환해야 하는지?
실무에서는 어떻게 사용하는지
보통 ResponseEntity로 반환하지 않고 Dto 반환만 사용도 많이 한다는데 백갤러분들의 고견 여쭙고 싶습니다

2. Void형으로 반환시 불이익이 있는지
ex) 에러 처리가 확실하지 않다

3. 단순 성공/실패 반환시 boolean / String 값중 어떤 값을 선호하는지, 그 이유는?