Entity 문서
용어 정리
기본 용어 정리
용어 | 정의 |
그룹(Group) | 하나의 수업 단위를 의미. 학생·선생님이 소속될 수 있으며, 해당 그룹과 연관된 채팅방(ChatRoom) 이 존재할 수 있음. |
채팅방(ChatRoom) | 학생과 선생님 간의 N:1 대화가 이루어지는 공간.그룹에 연결될 수도, 연결되지 않을 수도 있음 |
채팅방 참여자(ChatRoomMember) | 해당 채팅방에 실제로 들어와 있는 사람. 학생, 선생님으로 구분 |
메시지(Message) | 채팅방 내에서 주고받는 텍스트/이미지/파일/이모티콘 등. |
세션(Session) | “출석체크”, “액티비티 피드백”, 등, AI가 수행해야 할 대화 주제의 단위를 의미함 |
세션 인스턴스(SessionInstance) | Session(출석체크, 피드백 등)이라는 개념적 템플릿이, 실제 특정 채팅방에서 한 회차로 실행되는 구체적 실체 |
이슈(Issue) | 다양한 도메인(ex. 학습/AI 에이전트/채팅 등)에서 발행된 이슈(이상 징후) 이벤트를 의미 |
실시간 대시보드(RealTimeDashboard) | UI 계층 / 선생님이 여러 학생의 학습 상황을 한눈에 모니터링할 수 있는 화면. |
채팅 대시보드(ChatDashboard) | UI 계층 / 선생님이 여러 학생의 채팅과 학습 상황을 한 눈에 모니터링할 수 있는 화면 |
AI 답변(aiAnswer) | 세션>워크플로우 매니저>액션을 통해 만들어진 LLM 답변을 의미함. |
세션 - AI 사용 설정 관련 용어 정리
용어 | 정의 |
AI 사용 불가 세션 | 세션 테이블에서 use_ai 가 false 상태인 경우
→ 대화 분류를 위한 세션을 만들었으나, 테스트를 위해 임시로 AI 사용을 막아둔 세션일 때 해당 옵션이 설정됨 |
AI 수동 발송 | 채팅방-세션 설정 테이블에서 level이 ‘수동 발송(MANUAL)’인 경우
→ AI 답변을 선생님 컨펌을 거쳐야 발송 |
AI 자동 발송 | 채팅방-세션 설정 테이블에서 level이 ‘자동 발송(AUTO)’인 경우
→ AI 답변을 선생님 승인 없이 즉시 발송 |
AI 사용 안함 | 채팅방-세션 설정 테이블에서 level이 ‘사용 안함(OFF)’인 경우
→ AI 답변을 생성하지 않음 |
바운디드 컨텍스트(BC)
그룹
•
역할: 채팅과는 독립적으로 “수업(그룹)의 라이프사이클”을 관리(그룹 삭제 시 채팅방은 그대로 유지)
•
주요 모델 : Group
•
유즈케이스 예시
◦
그룹 생성/삭제
◦
그룹에 학생/선생님 추가/제거/조회
채팅
•
역할
◦
채팅방과 메시지, 참여자 관리
◦
메시지 전송/읽음/삭제, 알림, “채팅 대시보드” 등 채팅 중심 기능 담당
◦
채팅방 내 세션 설정(특정 AI 세션 사용 여부 등)을 함께 다룰 수 있음
◦
채팅 대시보드(여러 채팅방을 한꺼번에 볼 수 있는 UI)는 채팅 BC가 관리하는 데이터(채팅방·메시지·참여자)를 조회해 표시
▪
“채팅 대시보드”는 도메인 모델(엔티티)이 아닌 애플리케이션 계층에서, 정보를 조회·집계해서 UI로 표현하는 형태
•
주요 모델
◦
ChatRoom, ChatRoomMember, Message, ChatRoomSessionSetting
•
대표 유즈케이스
◦
채팅방 생성/삭제/수정
◦
참여자 추가/제거
◦
메시지 전송/읽음/삭제/수정
◦
세션 설정 생성/수정
◦
채팅 대시보드 조회
모니터링
•
역할
◦
이상 징후(이슈)가 발견되면, 선생님에게 알림을 전송하거나, 이슈 상태를 기록·관리 (예: “이슈 발생/해결 여부”)
◦
AI 도메인, 학습 도메인, 채팅 도메인 등 여러 도메인에서 발생한 이벤트(주로 이슈 조건에 부합하는 이벤트)를 구독
◦
MonitoringIssue로 이슈를 등록/갱신하고, “실시간 대시보드”나 “채팅 대시보드”로 전달될 알림/상태를 담당
▪
알림이 전파되는 위치가 “채팅 대시보드”와 “실시간 대시보드” 모두 될 수 있으므로
•
Monitoring 에서 “이슈 발생”을 감지하고 이벤트를 전파하면 애플리케이션 계층(실시간 대시보드 UI, 채팅 대시보드 UI 등)에서 이를 구독하여 경고를 띄울 수 있음.
•
주요 모델
◦
MonitoringIssue (예: 이슈 식별자, 유형, 상태(OPEN/RESOLVED), 관련 사용자/채팅방/그룹, 발생일시 등)
◦
알림·이슈 상태 관리 로직
•
대표 유즈케이스
◦
이벤트(IssueDetected) 구독 & 이슈 상태 등록
◦
이슈 발생 시, 알림 전송 혹은 표시
◦
이슈 해소(RESOLVE) 처리
AI 에이전트
•
역할
◦
AI 세션(Session), 세션 인스턴스(SessionInstance) 정의 및 관리
◦
AI 자동 응답 로직 (채팅 메시지에 대한 AI 답변)
◦
이상 징후(이슈) 감지(“AI가 해결 못하는 상태” 등) → 이슈 감지 및 이벤트 발행 → 모니터링 BC에서는 해당 이벤트를 받아 후속 처리
•
주요 모델: Session, SessionInstance, SessionInstanceMessage 등
•
주요 기능: AI 응답 생성
•
Chat과 “메시지 주고받기”로 상호작용하지만, “대화 로직/시퀀스”는 AI 에이전트 내부에 존재
유즈 케이스
1. 그룹(Group) BC
그룹
1-1. 그룹 생성
1-2. 그룹 삭제
1-3. 그룹 인원 생성(학생/선생님 추가 및 이관)
1-4. 그룹 인원 삭제(학생/선생님 제거 및 이관)
출석 정보
1-5. 출석 정보 생성 (수업 시작) 5/16일 릴리즈 범위 제외
1-6. 출석 정보 업데이트 (수업 종료) 5/16일 릴리즈 범위 제외
2. 채팅(Chat) BC
채팅방
2-1. 채팅방 생성
2-2. 채팅방 조회
2-3. 채팅방 업데이트 5/16일 릴리즈 범위 제외
채팅방-참여자
2-4. 채팅방 참여자 생성
2-5. 채팅방 참여자 조회
2-6. 채팅방 참여자의 마지막 읽은 메시지 업데이트
2-7. 채팅방 참여자 삭제
(부록) 채팅방 참여자 생성/삭제 트리거별 시나리오 모아보기
메시지
2-8. 메시지 생성
2-9. 메시지 조회
2-10. 메시지 수정 5/16일 릴리즈 범위 제외
2-11. 메시지 삭제 5/16일 릴리즈 범위에서는 BE에서 구조만 우선 고려
채팅방-세션 설정
2-12. 채팅방-세션 설정 생성
2-13. 채팅방-세션 설정 업데이트
이모티콘
2-14. 이모티콘 조회 5/16일 릴리즈 범위 제외
2-15. 이모티콘 메시지 생성 5/16일 릴리즈 범위 제외
3. 모니터링(Monitoring) BC
3-1. 이슈 인스턴스 생성
3-2. 이슈 인스턴스 조회
3-3. 이슈 인스턴스 업데이트
4. AI Agent BC
세션 인스턴스
4-1. 세션 인스턴스 생성 BE에서만 구현
4-2. 세션 인스턴스 조회
AI 답변
4-3. AI 답변 생성
4-4. AI 답변 조회
AI 답변-상태
4-5. AI 답변-상태 생성
AI 답변 - 메시지
4-6. AI 답변 - 메시지 생성
기타
4-7. AI 사용 일시중지/재개
불변식 정리
그룹 (Group)
1.
그룹을 삭제(소프트 삭제)해도, 이미 연결된 채팅방은 그대로 유지된다
•
Group와 ChatRoom은 느슨한 연결. 그룹이 사라져도 ChatRoom 자체가 삭제되진 않음
2.
그룹에는 선생님이 최소 1명 이상 존재해야 한다
•
“수업”이라는 개념상 선생님 없는 그룹은 무효.
•
인원 제거 로직에서 이를 보장
3.
그룹 삭제 후에는 인원 추가/제거가 불가능하다
•
삭제된 그룹은 더 이상 운영되지 않는다는 전제
채팅방 (ChatRoom)
1.
채팅방에는 최소 한 명 이상의 선생님이 존재해야 한다
•
수업(그룹)에서 선생님이 전원 제거되지 않도록 정책을 둠.
•
만약 이 제약을 위반하면 대화 진행이 불가능해진다.
2.
소프트 삭제(deleted_at)된 채팅방에는 새 메시지를 전송할 수 없다
•
이미 비활성 상태가 된 방에는 대화를 이어가지 않는다는 정책
•
UI나 서버 로직에서 전송 자체를 막도록 처리
3.
채팅방 생성 시점에는 “적어도 1명의 참여자”가 있어야 한다
채팅방 참여자 (ChatRoomMember)
1.
(그룹, 채팅방, 사용자) 조합은 중복으로 존재할 수 없다
•
하나의 방에 같은 사용자(아이디)가 또다시 Insert되는 일은 금지
•
기존 참여자가 소프트 삭제 상태에서 다시 입장할 경우 delete된 건 다시 복구하지 않고, 새로운 row를 만듬
2.
참여자가 소프트 삭제된(deleted_at 설정) 이후에는 ‘읽음 상태’나 메시지 전송 등 행동 불가
•
이미 채팅방을 떠난 사람은 그 방의 기능을 이용할 수 없다.
메시지 (Message)
1.
메시지를 작성하는 사람은 ChatRoomMember여야 한다 (외부인 불가)
•
즉, 방에 참여하지 않은 사용자는 메시지 Insert 권한이 없음
•
메시지의 chat_room_member_id가 반드시 유효해야 한다.
2.
삭제된(deleted_at) 메시지는 ‘삭제됨’ 상태로 UI에 표시
•
DB에 레코드는 남지만, 실제 대화에서는 “이 메시지는 삭제되었습니다”로 표기
3.
메시지 삭제 권한은 작성자 본인과 선생님만 갖는다.
•
선생님 권한이 없는 경우, 본인지 작성한 메시지 이외의 상대방 메시지 삭제 불가
4.
메시지 수정 권한은 선생님만 제한적으로 갖는다.
•
일반 학생은 수정 불가
채팅방-세션 설정(chatRoomSessionSetting)
1.
세션 설정 level이 ‘자동 발송 혹은 수동 발송’ 상태일 때만 AI가 자동 응답을 생성한다
•
“level”이 사용 안함인 경우 메시지 생성을 하지 않음