Skip to content

해커톤 과정에서 발견한 이슈, 개선점 정리 #12

@mjkhub

Description

@mjkhub

📌 해커톤 과정에서 발견한 이슈들입니다.

개선할점

  • 프롬프트 추상화 → 게스트 프롬프트를 하나로 두고, 데이터를 주입하는 방식으로 개선
  • POST /api/chats 호출시, 해당 스레드에 속한 채팅들의 timestamp가 갱신되는 것 같음.
    DB에 값이 그렇게 반영된지 확인을해보니 데이터베이스 레벨에서 timeStamp 값이 갱신 되어있음
    → Spring AI chat - memory - repository의 동작여부를 조금 더 자세히 알아봐야할 것 같음
    • 내부 쿼리를 열어보는게 필요하다 디버그 레벨에서
  • spring_ai_chat_table을 커스터마이징할 수 있는지 여부, 프론트엔드의 요청에 따라 게스트의 정보를 넣어주는 과정에서 ChatGuset라는 엔티티를 설정했음. 그런데, 트랜잭션, 동시성 문제등으로 Chat 테이블의 데이터 개수와 ChatGuset의 데이터 개수가 달라지는 상황이 있었음.
    • 아마도 프론트엔드에서 guest를 요청을 할 때, 채팅을 여러번 보내서 . . .? 그런 상황이 발생했던 것 같음
    • 그걸 떠나서 지금 상황에서는 guestCode를 도입하지 않거나 커스터마이징 하는 것이 필요함
  • chat 테이블에 (conversationId, timeStamp)가 동시에 들어가는 상황이 발생한다면?
    물론 이런 상황은 동일한 채팅방에 동시에 채팅을 넣는 즉 API를 직접 호출하는 방식이 아니면 발생하지 않음.
    그렇지만 알아야할것은 결국 hibernate의 쿼리가 네이티브 쿼리로 변경되어서 전송되고, 쿼리 파라미터에 쿼리를 넣는건 JavaThread임. 그래서 이런 상황이 발생하면 ? DB에서는 예외를 던지고 애플리케이션에 전송될수 밖에없음

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions