PostgreSQL 테이블 구조
작성일: 2025-08-20
최종 수정일: 2025-09-11
데이터베이스: main_db
1. 조직 관련 테이블
company
- 용도: 회사 정보
- Primary Key: id (UUID)
- 레코드: 2개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
회사 ID |
| name |
VARCHAR(255) |
NO |
|
회사명 |
| url |
VARCHAR(255) |
YES |
|
회사 URL |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
team
- 용도: 팀 정보
- Primary Key: id (UUID)
- 레코드: 2개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
팀 ID |
| company_id |
UUID |
NO |
|
회사 ID (FK → company) |
| name |
VARCHAR(32) |
NO |
|
팀 이름 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
user
- 용도: 시스템 사용자 정보
- Primary Key: id (UUID)
- 레코드: 1개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
사용자 ID |
| team_id |
UUID |
NO |
|
팀 ID (FK → team) |
| email |
VARCHAR(255) |
NO |
|
이메일 (UNIQUE) |
| name |
VARCHAR(255) |
YES |
|
사용자명 |
| picture |
VARCHAR(500) |
YES |
|
프로필 이미지 |
| oauth_provider |
VARCHAR(50) |
YES |
|
OAuth 제공자 |
| oauth_id |
VARCHAR(255) |
YES |
|
OAuth ID |
| is_active |
BOOLEAN |
YES |
|
활성 상태 |
| last_login_at |
TIMESTAMPTZ |
YES |
|
마지막 로그인 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
| username |
VARCHAR(64) |
YES |
|
사용자명 |
workspace_member
- 용도: 워크스페이스 멤버십
- Primary Key: id (UUID)
- 레코드: 0개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
멤버십 ID |
| user_id |
UUID |
NO |
|
사용자 ID (FK → user) |
| role |
user_role |
NO |
GUEST |
역할 (OWNER/MEMBER/GUEST) |
| is_active |
BOOLEAN |
YES |
|
활성 상태 |
| joined_at |
TIMESTAMP |
YES |
CURRENT_TIMESTAMP |
가입 시각 |
| updated_at |
TIMESTAMP |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
2. 제품 및 로빙 테이블
product
- 용도: 제품 정보
- Primary Key: id (UUID)
- 레코드: 1개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
제품 ID |
| name |
VARCHAR(32) |
NO |
|
제품명 |
| app_id |
VARCHAR(16) |
YES |
|
앱 ID |
| scope |
JSON |
YES |
|
권한 범위 |
| description |
VARCHAR(256) |
YES |
|
설명 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
robeing
- 용도: 로빙 엔티티 정보
- Primary Key: id (UUID)
- 레코드: 2개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
로빙 ID |
| product_id |
UUID |
NO |
|
제품 ID (FK → product) |
| team_id |
UUID |
NO |
|
팀 ID (FK → team) |
| name |
VARCHAR(32) |
YES |
|
로빙 이름 |
| level |
INTEGER |
YES |
1 |
레벨 |
| experience |
INTEGER |
YES |
0 |
경험치 |
| memory |
INTEGER |
YES |
10 |
메모리 스탯 |
| compute |
INTEGER |
YES |
10 |
연산 스탯 |
| react |
INTEGER |
YES |
10 |
반응 스탯 |
| empathy |
INTEGER |
YES |
10 |
공감 스탯 |
| leadership |
INTEGER |
YES |
10 |
리더십 스탯 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
| robeing_container_id |
VARCHAR(64) |
YES |
|
컨테이너 ID |
| robeing_container_url |
VARCHAR(128) |
YES |
|
컨테이너 URL |
3. Slack 통합 테이블
slack_workspace
- 용도: Slack 워크스페이스 정보
- Primary Key: id (UUID)
- 레코드: 2개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
워크스페이스 ID |
| team_id |
UUID |
NO |
|
팀 ID (FK → team) |
| slack_team_id |
VARCHAR(32) |
YES |
|
Slack 팀 ID |
| bot_token |
VARCHAR(255) |
YES |
|
봇 토큰 |
| is_enterprise_install |
BOOLEAN |
YES |
|
엔터프라이즈 설치 |
| is_active |
BOOLEAN |
YES |
|
활성 상태 |
| installed_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
설치 시각 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
4. 사용자 설정 및 토큰 테이블
user_preference
- 용도: 사용자 개인 설정
- Primary Key: id (INTEGER)
- 레코드: 0개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
INTEGER |
NO |
|
설정 ID |
| user_id |
UUID |
NO |
|
사용자 ID (FK → user) |
| slack_user_id |
VARCHAR(32) |
YES |
|
Slack 사용자 ID |
| news_keywords |
VARCHAR(128)[] |
YES |
|
뉴스 키워드 |
| email_filter |
VARCHAR(128)[] |
YES |
|
이메일 필터 |
| briefing_enabled |
BOOLEAN |
YES |
true |
브리핑 활성화 |
| briefing_time |
TIME |
YES |
09:00:00 |
브리핑 시간 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
gmail_token
- 용도: Gmail OAuth 토큰
- Primary Key: id (UUID)
- 레코드: 0개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
토큰 ID |
| user_id |
UUID |
NO |
|
사용자 ID (FK → user) |
| token_data |
JSONB |
YES |
|
토큰 데이터 |
| oauth_config |
JSONB |
YES |
|
OAuth 설정 |
| scopes |
JSONB |
YES |
|
권한 범위 |
| metadata |
JSONB |
YES |
|
메타데이터 |
| expiry |
TIMESTAMP |
YES |
|
만료 시각 |
| is_equipped |
BOOLEAN |
YES |
false |
장착 상태 |
| equipped_to |
VARCHAR(50) |
YES |
|
장착 대상 |
| token_type |
VARCHAR |
YES |
Bearer |
토큰 타입 |
| expires_at |
DOUBLE PRECISION |
YES |
|
만료 시간 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
5. 로그 및 데이터 테이블
conversation_log
- 용도: 대화 기록
- Primary Key: id (INTEGER)
- 레코드: 0개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
INTEGER |
NO |
|
로그 ID |
| user_id |
UUID |
NO |
|
사용자 ID (FK → user) |
| channel_id |
VARCHAR(16) |
YES |
|
채널 ID |
| message |
VARCHAR |
YES |
|
사용자 메시지 |
| response |
VARCHAR |
YES |
|
응답 메시지 |
| intent |
VARCHAR(256) |
YES |
|
의도 분석 |
| confidence |
DOUBLE PRECISION |
YES |
|
신뢰도 |
| thread_ts |
VARCHAR(128) |
YES |
|
스레드 타임스탬프 |
| timestamp |
TIMESTAMPTZ |
YES |
|
대화 시각 |
| channel_type |
VARCHAR(32) |
YES |
|
채널 타입 |
news
- 용도: 뉴스 데이터
- Primary Key: id (UUID)
- 레코드: 0개
| 컬럼명 |
타입 |
NULL |
기본값 |
설명 |
| id |
UUID |
NO |
|
뉴스 ID |
| user_id |
UUID |
YES |
|
사용자 ID (FK → user) |
| data |
JSONB |
YES |
|
뉴스 데이터 |
| created_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
생성 시각 |
| updated_at |
TIMESTAMPTZ |
YES |
CURRENT_TIMESTAMP |
수정 시각 |
6. 기타 정보
Custom Types
- user_role: ENUM (OWNER, MEMBER, GUEST)
Functions
- update_column_updated_at: 모든 테이블의 updated_at 자동 갱신 트리거
외래키 관계
| 테이블 |
컬럼 |
참조 테이블 |
참조 컬럼 |
| team |
company_id |
company |
id |
| user |
team_id |
team |
id |
| robeing |
product_id |
product |
id |
| robeing |
team_id |
team |
id |
| slack_workspace |
team_id |
team |
id |
| workspace_member |
user_id |
user |
id |
| conversation_log |
user_id |
user |
id |
| gmail_token |
user_id |
user |
id |
| news |
user_id |
user |
id |
| user_preference |
user_id |
user |
id |
주의사항
데이터베이스 정보
- 소유자: 모든 테이블 robeings 소유
- 타임스탬프: TIMESTAMPTZ 사용 (WITH TIME ZONE)
- 자동 갱신: update_column_updated_at 트리거로 updated_at 자동 관리
- UUID 기반: 주요 테이블 모두 UUID 사용
현재 데이터 상태 (2025-09-11)
- company: 2개
- team: 2개
- user: 1개
- product: 1개
- robeing: 2개
- slack_workspace: 2개
- 나머지 테이블: 비어있음
문서 끝