Complete robing-gateway 트러블슈팅 - 전체 시스템 통합 성공
- 테스트 데이터 SQL 작성 과정 및 오류 해결 - UUID 형식 및 role ENUM 값 문제 해결 - 3명 테스트 사용자 데이터 생성 - 전체 시스템 통합 테스트 성공 - 개인화된 응답 시스템 검증 완료
This commit is contained in:
parent
90d0877c29
commit
f9a4ada439
@ -230,8 +230,91 @@ https://ro-being.com/gateway/api/chat
|
|||||||
5. **nginx 프록시 설정**: proxy_pass 끝에 `/` 필수, HTTP/HTTPS 모두 설정
|
5. **nginx 프록시 설정**: proxy_pass 끝에 `/` 필수, HTTP/HTTPS 모두 설정
|
||||||
6. **환경변수 관리**: 서버 .env와 프론트 .env 분리 관리 (VITE_ prefix)
|
6. **환경변수 관리**: 서버 .env와 프론트 .env 분리 관리 (VITE_ prefix)
|
||||||
|
|
||||||
|
## 오후 2시 00분 - 테스트 데이터 생성 및 전체 시스템 통합 완료
|
||||||
|
|
||||||
|
### 테스트 데이터 SQL 작성 문제
|
||||||
|
|
||||||
|
**첫 번째 시도 - UUID 형식 오류**:
|
||||||
|
```sql
|
||||||
|
-- 잘못된 형식 (문자열을 UUID 컬럼에 삽입 시도)
|
||||||
|
INSERT INTO workspaces (id, ...) VALUES ('ws-ivada-001', ...);
|
||||||
|
INSERT INTO users (id, ...) VALUES ('user-happybell80', ...);
|
||||||
|
```
|
||||||
|
|
||||||
|
**두 번째 시도 - role 값 오류**:
|
||||||
|
```sql
|
||||||
|
-- role은 대문자여야 함
|
||||||
|
INSERT INTO workspace_members (..., role, ...) VALUES (..., 'owner', ...); -- X
|
||||||
|
INSERT INTO workspace_members (..., role, ...) VALUES (..., 'OWNER', ...); -- O
|
||||||
|
```
|
||||||
|
|
||||||
|
**최종 수정 버전**:
|
||||||
|
```sql
|
||||||
|
-- 올바른 UUID 형식과 대문자 role
|
||||||
|
INSERT INTO workspaces (id, ...) VALUES
|
||||||
|
('11111111-1111-1111-1111-111111111111'::uuid, ...);
|
||||||
|
|
||||||
|
INSERT INTO users (id, email, name) VALUES
|
||||||
|
('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'::uuid, 'goeun2dc@gmail.com', '김종태'),
|
||||||
|
('bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb'::uuid, '0914eagle@gmail.com', '전희재'),
|
||||||
|
('cccccccc-cccc-cccc-cccc-cccccccccccc'::uuid, 'hhyong91@gmail.com', '황한용');
|
||||||
|
|
||||||
|
INSERT INTO workspace_members (..., role, ...) VALUES
|
||||||
|
(..., 'OWNER', ...), -- 김종태
|
||||||
|
(..., 'MEMBER', ...); -- 전희재, 황한용
|
||||||
|
```
|
||||||
|
|
||||||
|
### 전체 시스템 통합 테스트 결과
|
||||||
|
|
||||||
|
**데이터베이스 상태**:
|
||||||
|
- workspaces: 1개 (ivada-robeing)
|
||||||
|
- users: 3개 (김종태, 전희재, 황한용)
|
||||||
|
- workspace_members: 3개 (모두 rb10508_micro 할당)
|
||||||
|
|
||||||
|
**통합 테스트 성공 (오후 2:13)**:
|
||||||
|
1. **인증 흐름**:
|
||||||
|
- 구글 OAuth 로그인 → auth-server
|
||||||
|
- User ID 발급: `aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa`
|
||||||
|
|
||||||
|
2. **Gateway 라우팅**:
|
||||||
|
- X-User-Id 헤더로 사용자 식별
|
||||||
|
- DB 조회: workspace_members → robing_id 확인
|
||||||
|
- rb10508_micro (192.168.219.52:10508)로 라우팅
|
||||||
|
|
||||||
|
3. **개인화된 응답**:
|
||||||
|
- 요청: "안녕하세요"
|
||||||
|
- 응답: "안녕하세요, 김종태님. 로빙입니다."
|
||||||
|
|
||||||
|
**시스템 구조 검증**:
|
||||||
|
```
|
||||||
|
Frontend → nginx(/gateway/) → Gateway(8100) → DB 조회
|
||||||
|
↓
|
||||||
|
workspace_members
|
||||||
|
↓
|
||||||
|
rb10508_micro → 맞춤 응답
|
||||||
|
```
|
||||||
|
|
||||||
|
## 교훈
|
||||||
|
|
||||||
|
1. **기존 스키마 활용**: 새 테이블 생성보다 기존 구조 재사용이 효율적
|
||||||
|
2. **Docker 네트워킹**: 컨테이너에서 호스트 DB 접근 시 host.docker.internal 사용
|
||||||
|
3. **API 명세 확인**: 프록시 대상 서비스의 정확한 엔드포인트와 요청 형식 사전 확인 필수
|
||||||
|
4. **단계적 구현**: Phase 1에서 기본 기능 구현 후 점진적 기능 추가
|
||||||
|
5. **nginx 프록시 설정**: proxy_pass 끝에 `/` 필수, HTTP/HTTPS 모두 설정
|
||||||
|
6. **환경변수 관리**: 서버 .env와 프론트 .env 분리 관리 (VITE_ prefix)
|
||||||
|
7. **PostgreSQL UUID 타입**: 문자열이 아닌 UUID 형식 사용, `::uuid` 캐스트 필수
|
||||||
|
8. **ENUM 값 확인**: role 같은 ENUM 타입은 대소문자 확인 필수 (OWNER, MEMBER)
|
||||||
|
|
||||||
|
## 최종 성과
|
||||||
|
|
||||||
|
- **완전한 사용자-로빙 매핑 시스템 구축**
|
||||||
|
- **3명의 테스트 사용자로 멀티테넌시 검증**
|
||||||
|
- **Gateway를 통한 지능형 라우팅 구현**
|
||||||
|
- **개인화된 응답 시스템 완성**
|
||||||
|
|
||||||
## 참고 자료
|
## 참고 자료
|
||||||
|
|
||||||
- 서비스 재구조화 계획: `/DOCS/ideas/250807_서비스_재구조화_계획.md`
|
- 서비스 재구조화 계획: `/DOCS/ideas/250807_서비스_재구조화_계획.md`
|
||||||
- Gateway 저장소: `https://git.ro-being.com/ivada_Ro-being/robeing-gateway`
|
- Gateway 저장소: `https://git.ro-being.com/ivada_Ro-being/robeing-gateway`
|
||||||
- 포트 정보: 8100 (현재) → 8000 (프로덕션, frontend-base 대체 시)
|
- 포트 정보: 8100 (현재) → 8000 (프로덕션, frontend-base 대체 시)
|
||||||
|
- 테스트 데이터: `/scripts/test_data.sql`
|
||||||
Loading…
x
Reference in New Issue
Block a user