Conversation
* refactor(security): update permitted endpoints and remove ChatController - Updated SecurityConfig to restrict access by removing the chat endpoint from the permitted list. - Deleted ChatController as it is no longer needed in the application. * refactor(quiz): rename quiz class and delete quiz choice * feat: add & fix mock data * feat: rebase 마무리 * feat(data loader): add scene rank data * fix: accept review --------- Co-authored-by: DaehyeonKim <qwertypotter@gachon.ac.kr>
* refactor(security): update permitted endpoints and remove ChatController - Updated SecurityConfig to restrict access by removing the chat endpoint from the permitted list. - Deleted ChatController as it is no longer needed in the application. * feat(quiz): get quiz list * fix: order by quiz id * fix(quiz): 정답을 프론트로 내려주지 않도록 수정, 객관식 채점 시 정답 올바르게 파싱하도록 수정 --------- Co-authored-by: DaehyeonKim <qwertypotter@gachon.ac.kr>
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 이 Pull Request는 Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
이 PR은 프로젝트의 README.md 파일을 대대적으로 업데이트하여 프로젝트의 개요, 기술 스택, 아키텍처, API 명세 등 상세한 정보를 포함하도록 개선했습니다. 문서의 내용이 매우 상세하고 체계적으로 정리되어 프로젝트를 이해하는 데 큰 도움이 됩니다. 몇 가지 링크 오류, 데이터 모델의 잠재적 불일치, 문서상의 표현 오류 등을 발견하여 수정을 제안합니다. 특히 데이터 모델의 정합성과 관련된 부분은 프로젝트의 핵심 원칙인 'Consistency'와 직결되므로 검토가 필요해 보입니다.
| SCENE_INFORMATION { | ||
| Long id PK | ||
| Long default_alignment_id FK | ||
| String title | ||
| String eng_title | ||
| String category "기계공학 | 의공학 등" | ||
| Long participants_count | ||
| String description | ||
| String asset_path | ||
| String thumbnail_url | ||
| } |
There was a problem hiding this comment.
ERD에서 SCENE_INFORMATION 테이블의 default_alignment_id 필드가 ALIGNMENT 테이블의 ID를 참조하는 것으로 보입니다. 하지만 ALIGNMENT 테이블은 user_id를 가지고 있어 사용자별로 데이터가 관리됩니다. 이 구조에서는 특정 씬(Scene)의 '기본(default)' 배치가 특정 사용자의 소유가 되는 모순이 발생할 수 있습니다. 이는 프로젝트의 핵심 원칙인 데이터 정합성(Consistency)에 영향을 줄 수 있는 설계 문제입니다.
다음과 같은 대안을 고려해볼 수 있습니다:
user_idNull 허용: 기본 배치를 위한ALIGNMENT레코드에서는user_id를NULL로 설정합니다.- 별도 테이블 생성:
DEFAULT_ALIGNMENT와 같이 사용자 정보가 없는 별도의 테이블을 만들어 기본 배치 정보를 관리합니다. - 시스템 사용자 활용: '시스템' 역할을 하는 특수 사용자를 만들고, 모든 기본 배치의
user_id를 해당 시스템 사용자의 ID로 지정합니다.
There was a problem hiding this comment.
이건 시스템 사용자를 활용하는 방식을 초반에 기획하여 데이터모델링을 진행했습니다.
구현 단계에서는 빠른 구현을 위해서 default 배치를 가지는 gltf를 전달하는 방식으로 구현하였으나, 추후 CMS의 확장성을 위해서 창구를 열어둔 것입니다.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
@gemini-code-assist /review |
There was a problem hiding this comment.
Code Review
이번 PR은 프로젝트의 README.md 파일을 상세한 내용으로 업데이트하는 변경 사항을 담고 있습니다. 전반적으로 프로젝트의 구조, 기술 스택, API 엔드포인트 등이 체계적으로 잘 정리되어 있어 프로젝트를 이해하는 데 큰 도움이 됩니다. 다만, 문서의 정확성을 높이기 위해 몇 가지 수정이 필요한 부분을 발견했습니다. 일부 기술 스택 버전이나 모델명이 현재 존재하지 않는 값으로 기재되어 있고, 깨진 링크도 포함되어 있습니다. 이에 대한 수정 제안을 리뷰 코멘트로 남겼으니 확인 부탁드립니다.
| # backend No newline at end of file | ||
| # 🌐 SIMVEX - 나에게 쉽게 보이는, 3D 학습 플랫폼 | ||
|
|
||
| > 이 프로젝트는 2026년 `제4회 2026 블레이버스 MVP 개발 해커톤` 에서 아이템1 부문에서 `대상`을 수상한 프로젝트입니다. |
There was a problem hiding this comment.
소개 문구에 2026년이라는 미래 시점이 언급되어 있어 혼동을 줄 수 있습니다. 실제 수상 연도가 아니라면 [YEAR]와 같은 플레이스홀더로 변경하거나, 연도를 제거하는 것을 고려해 보세요.
> 이 프로젝트는 2026년 `제4회 2026 블레이버스 MVP 개발 해커톤` 에서 아이템1 부문에서 `대상`을 수상한 프로젝트입니다.| > 이 프로젝트는 2026년 `제4회 2026 블레이버스 MVP 개발 해커톤` 에서 아이템1 부문에서 `대상`을 수상한 프로젝트입니다. | |
| > 이 프로젝트는 `블레이버스 MVP 개발 해커톤`에서 아이템1 부문 `대상`을 수상한 프로젝트입니다. |
| ### Core | ||
|
|
||
| - **Java 21** | ||
| - **Spring Boot 4.0.2** |
|
|
||
| ### AI & Tools | ||
|
|
||
| - **OpenAI API** (GPT-5-mini / text-embedding-004) |
There was a problem hiding this comment.
AI 기술 스택에 기재된 GPT-5-mini와 text-embedding-004는 현재 존재하지 않는 모델명으로 보입니다. 실제 사용하고 있는 모델명(예: gpt-4o-mini)으로 수정하여 문서의 정확성을 높이는 것이 좋겠습니다.
- **OpenAI API** (GPT-5-mini / text-embedding-004)| - **OpenAI API** (GPT-5-mini / text-embedding-004) | |
| - **OpenAI API** (e.g., gpt-4o-mini / text-embedding-3-small) |
| - 🟨 **3D 에셋 도메인**: `Component`, `Alignment`, `Reference` — 씬 조립과 배치를 관리 | ||
| - ⬜ **배치/통계 도메인** _(점선)_: `SceneStatistics` — 배치 작업으로 집계되는 통계 데이터 | ||
|
|
||
| > 참고: 대략적인 전체 데이터모델 구성도는 [여기](./docs/datamodel.png)를 확인하세요. |
No description provided.