1️⃣ AI 관련 질문


ai의 성능이 나날이 좋아지고 있지만, 현업에 적용되기엔 확실한 한계가 있다고도 알고 있습니다! 현업에서 ai가 어떻게 활용되고 있는지, 앞으로 어떻게 활용될 것이라 생각하시는지 궁금합니다!

2️⃣ 엔티티, DTO 검증 책임 관련 질문


현재 Spring Boot 기반 프로젝트에서 @Column(nullable = false)로 설정한 필드가 있는데, DTO에서 따로 @NotNull 검증을 하지 않아도 되는지 궁금했습니다. 예를 들어, 엔티티에선 null을 허용하지 않는데 DTO에선 별도로 검증하지 않아도 되는 건지, 아니면 명시적으로 DTO에서도 꼭 검증해야 하는 건지 궁금합니다.

현재는 엔티티에서 @Column(nullable = false) 설정을 해둔 상태입니다. 하지만 DTO에는 아직 @NotNull 같은 Bean Validation 어노테이션을 붙이지 않았습니다. 그래서 컨트롤러에서 DTO를 받을 때 유효성 검사를 어떻게 구성하는 게 좋은지 고민 중입니다.

제가 생각한 방향은 DB 제약조건과 무관하게 DTO에서는 명시적으로 @NotNull을 걸어주는 게 맞지만 어차피 DB에서 예외가 터지기 때문에 굳이 DTO에서 또 한 번 검증하지 않아도 된다는 것입니다.

두 가지 의견이 엇갈릴 수 있어서, 어떤 방식이 실무적으로 더 바람직한지, 그리고 이유가 있다면 설명해주시면 감사하겠습니다!

3️⃣ DB 성능 관련 질문


현재 저희는 만다라트 서비스를 개발하고 있으며, 테이블은 만다라트, 상위 목표, 하위 목표, 히스토리로 구성되어 있습니다. 각 테이블은 계층적으로 참조하고 있고, 히스토리 테이블에서는 유저 정보를 조회해야 해서 총 다섯 개의 테이블을 조인하는 쿼리가 발생합니다.

이처럼 다단계 조인이 필요한 상황에서 조회 성능이나 쿼리 비용 측면에서 주의할 점이 있을지, 인덱스 설계나 조회 쿼리 튜닝 측면에서 어떤 접근을 하시는지 궁금합니다. 또한, 조회 빈도가 높은 경우라면 구조를 다르게 가져가야 하는지도 고민이 되는데, 보통 현업에서는 이런 경우 어떤 방식으로 최적화를 고려하시는지 조언을 얻고 싶습니다.