Skip to content

update README#50

Merged
joonamin merged 11 commits intomainfrom
develop
Mar 2, 2026
Merged

update README#50
joonamin merged 11 commits intomainfrom
develop

Conversation

@joonamin
Copy link
Copy Markdown
Collaborator

@joonamin joonamin commented Mar 2, 2026

No description provided.

sezeme and others added 9 commits February 9, 2026 22:15
* 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>
@joonamin joonamin self-assigned this Mar 2, 2026
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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는 README.md 파일을 전면적으로 업데이트하여 SIMVEX 백엔드 프로젝트에 대한 포괄적인 문서를 제공합니다. 프로젝트의 목적, 주요 기능, 기술 스택, 개발 환경 설정, 시스템 아키텍처, 데이터 모델, API 엔드포인트 및 테스트 전략을 상세하게 설명함으로써, 새로운 기여자나 이해 관계자들이 프로젝트를 빠르게 이해하고 시작할 수 있도록 돕습니다.

Highlights

  • 프로젝트 소개 상세화: SIMVEX 백엔드 프로젝트의 비전, 목표, 그리고 해커톤 수상 이력을 포함한 상세한 소개를 추가했습니다.
  • 주요 기능 명시: 인증, 3D 씬 학습, AI 어시스턴트, 퀴즈 시스템, 씬 조립 및 동기화, 활동 기록, 씬 랭킹 등 백엔드의 핵심 기능을 구체적으로 설명했습니다.
  • 기술 스택 정리: Java 21, Spring Boot, PostgreSQL, OpenAI API, Docker 등 프로젝트에 사용된 핵심 기술 스택을 명확히 제시했습니다.
  • 개발 환경 설정 가이드: 로컬 Gradle 및 Docker Compose를 이용한 프로젝트 실행 방법과 필수 환경 변수 설정 가이드를 제공했습니다.
  • 시스템 아키텍처 및 데이터 모델 시각화: Mermaid 다이어그램을 활용하여 시스템 아키텍처와 ERD(데이터 모델)를 시각적으로 표현하여 이해도를 높였습니다.
  • API 엔드포인트 문서화: 인증, 씬 학습, AI 대화, 퀴즈, 활동 기록, 에셋 동기화 등 주요 API 엔드포인트를 상세히 문서화했습니다.
  • 프로젝트 구조 및 테스트 전략 설명: 백엔드 프로젝트의 디렉토리 구조와 통합 테스트, 시나리오 테스트, 서비스 테스트 등 다양한 테스트 케이스 목록을 설명했습니다.
Changelog
  • README.md
    • 기존의 간략한 내용을 SIMVEX 백엔드 프로젝트의 상세한 소개, 기능, 기술 스택, 아키텍처, 데이터 모델, API 엔드포인트, 환경 설정 및 테스트 가이드를 포함하는 포괄적인 문서로 전면 개편했습니다.
Activity
  • 이 Pull Request에 대한 활동은 아직 없습니다.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이 PR은 프로젝트의 README.md 파일을 대대적으로 업데이트하여 프로젝트의 개요, 기술 스택, 아키텍처, API 명세 등 상세한 정보를 포함하도록 개선했습니다. 문서의 내용이 매우 상세하고 체계적으로 정리되어 프로젝트를 이해하는 데 큰 도움이 됩니다. 몇 가지 링크 오류, 데이터 모델의 잠재적 불일치, 문서상의 표현 오류 등을 발견하여 수정을 제안합니다. 특히 데이터 모델의 정합성과 관련된 부분은 프로젝트의 핵심 원칙인 'Consistency'와 직결되므로 검토가 필요해 보입니다.

Comment on lines +193 to +203
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
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

ERD에서 SCENE_INFORMATION 테이블의 default_alignment_id 필드가 ALIGNMENT 테이블의 ID를 참조하는 것으로 보입니다. 하지만 ALIGNMENT 테이블은 user_id를 가지고 있어 사용자별로 데이터가 관리됩니다. 이 구조에서는 특정 씬(Scene)의 '기본(default)' 배치가 특정 사용자의 소유가 되는 모순이 발생할 수 있습니다. 이는 프로젝트의 핵심 원칙인 데이터 정합성(Consistency)에 영향을 줄 수 있는 설계 문제입니다.

다음과 같은 대안을 고려해볼 수 있습니다:

  1. user_id Null 허용: 기본 배치를 위한 ALIGNMENT 레코드에서는 user_idNULL로 설정합니다.
  2. 별도 테이블 생성: DEFAULT_ALIGNMENT와 같이 사용자 정보가 없는 별도의 테이블을 만들어 기본 배치 정보를 관리합니다.
  3. 시스템 사용자 활용: '시스템' 역할을 하는 특수 사용자를 만들고, 모든 기본 배치의 user_id를 해당 시스템 사용자의 ID로 지정합니다.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이건 시스템 사용자를 활용하는 방식을 초반에 기획하여 데이터모델링을 진행했습니다.
구현 단계에서는 빠른 구현을 위해서 default 배치를 가지는 gltf를 전달하는 방식으로 구현하였으나, 추후 CMS의 확장성을 위해서 창구를 열어둔 것입니다.

joonamin and others added 2 commits March 2, 2026 17:39
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@joonamin
Copy link
Copy Markdown
Collaborator Author

joonamin commented Mar 2, 2026

@gemini-code-assist /review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 프로젝트의 README.md 파일을 상세한 내용으로 업데이트하는 변경 사항을 담고 있습니다. 전반적으로 프로젝트의 구조, 기술 스택, API 엔드포인트 등이 체계적으로 잘 정리되어 있어 프로젝트를 이해하는 데 큰 도움이 됩니다. 다만, 문서의 정확성을 높이기 위해 몇 가지 수정이 필요한 부분을 발견했습니다. 일부 기술 스택 버전이나 모델명이 현재 존재하지 않는 값으로 기재되어 있고, 깨진 링크도 포함되어 있습니다. 이에 대한 수정 제안을 리뷰 코멘트로 남겼으니 확인 부탁드립니다.

# backend No newline at end of file
# 🌐 SIMVEX - 나에게 쉽게 보이는, 3D 학습 플랫폼

> 이 프로젝트는 2026년 `제4회 2026 블레이버스 MVP 개발 해커톤` 에서 아이템1 부문에서 `대상`을 수상한 프로젝트입니다.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

소개 문구에 2026년이라는 미래 시점이 언급되어 있어 혼동을 줄 수 있습니다. 실제 수상 연도가 아니라면 [YEAR]와 같은 플레이스홀더로 변경하거나, 연도를 제거하는 것을 고려해 보세요.

> 이 프로젝트는 2026년 `제4회 2026 블레이버스 MVP 개발 해커톤` 에서 아이템1 부문에서 `대상`을 수상한 프로젝트입니다.
Suggested change
> 이 프로젝트는 2026년 `제4회 2026 블레이버스 MVP 개발 해커톤` 에서 아이템1 부문에서 `대상`을 수상한 프로젝트입니다.
> 이 프로젝트는 `블레이버스 MVP 개발 해커톤`에서 아이템1 부문 `대상`을 수상한 프로젝트입니다.

### Core

- **Java 21**
- **Spring Boot 4.0.2**
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

기술 스택에 언급된 Spring Boot 4.0.2는 아직 출시되지 않은 버전입니다. 프로젝트에서 사용하는 실제 버전으로 수정해야 정확한 정보를 전달할 수 있습니다. 예를 들어, 현재 안정 버전인 3.x대로 수정하는 것을 제안합니다.

- **Spring Boot 4.0.2**
Suggested change
- **Spring Boot 4.0.2**
- **Spring Boot 3.x**


### AI & Tools

- **OpenAI API** (GPT-5-mini / text-embedding-004)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

AI 기술 스택에 기재된 GPT-5-minitext-embedding-004는 현재 존재하지 않는 모델명으로 보입니다. 실제 사용하고 있는 모델명(예: gpt-4o-mini)으로 수정하여 문서의 정확성을 높이는 것이 좋겠습니다.

- **OpenAI API** (GPT-5-mini / text-embedding-004)
Suggested change
- **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)를 확인하세요.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

ERD 섹션에 포함된 데이터 모델 구성도 링크([여기](./docs/datamodel.png))가 현재 저장소에 존재하지 않는 파일을 가리키고 있어 깨진 링크로 보입니다. 파일을 추가하거나, 링크를 제거하여 문서를 정리하는 것을 권장합니다.

> 참고: 대략적인 전체 데이터모델 구성도는 [여기](./docs/datamodel.png)를 확인하세요.

@joonamin joonamin merged commit 57115f9 into main Mar 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants