← 테크곳간 목록으로

스캐터랩 블로그 · 2023. 10. 19.

루다 서버에서 루다의 개인화 메시지를 처리하는 방법

AI 엔지니어링 브리핑

Kotlin 리플렉션과 Hibernate 프록시를 활용해 사용자 정보와 관계 데이터를 개인화 메시지에 안전하게 넣는 방법을 설명한 글이다.

문제 & 배경

문제 & 배경: 생성자 프로퍼티에 붙인 어노테이션이 리플렉션에서 보이지 않았고, 지연 로딩된 Hibernate 객체를 그대로 읽을 때 실제 데이터 대신 프록시가 전달되어 메시지가 만들어지지 않았다.

기술 & 해결책

기술 & 해결책: 어노테이션을 Kotlin의 프로퍼티에 명시적으로 적용하고, Hibernate 프록시 객체는 unproxy로 실제 객체로 바꾼 뒤 리플렉션으로 프로퍼티와 함수를 읽어 토큰과 값을 연결했다.

교훈 & 주의점

교훈 & 주의점: 개인화 메시지를 만들 때는 어노테이션의 적용 위치와 런타임 유지 여부를 확인하고, 지연 로딩 객체는 실제 엔티티로 변환한 뒤 필요한 값을 읽어야 한다.

원문 읽기 ↗
내용이 비슷해요

내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.