NoRμ νμ λ Όλ¬Έμ© κ·Έλνλ₯Ό λΉ λ₯΄κ³ μ½κ² λ§λ€κΈ° μν΄ μ€κ³λ Python κΈ°λ° λ―Έλ μ€ν¬λ¦½νΈ μΈμ΄μ λλ€.
κΈ°μ‘΄μ κ·Έλν μμ± λꡬλ€μ λ κ°μ§ κ·Ήλ¨μ μμμ΅λλ€:
- Excel: GUI κΈ°λ°μΌλ‘ μ½μ§λ§ μλνμ λ°λ³΅ μμ μ μ·¨μ½
- Matplotlib: κ°λ ₯νμ§λ§ μ§μ μ₯λ²½μ΄ λκ³ λ¬Έλ²μ΄ 볡μ‘
NoRμ μ΄ λ κ°μ§ μ¬μ΄μ μ€κ°μ μ μ°Ύκ³ μ νμμ΅λλ€. λꡬλ μ½κ² μ κ·Όν μ μμΌλ©΄μλ, μ½λ κΈ°λ°μΌλ‘ μ μ°νκ² κ·Έλνλ₯Ό μμ±ν μ μλ κ°λ¨νκ³ μ§κ΄μ μΈ νκ΅μ΄ μ€ν¬λ¦½νΈ μΈμ΄λ₯Ό μ 곡ν©λλ€.
- νλͺ : NoR Team
- λ©€λ²:
-
μ§κ΄μ μΈ νκ΅μ΄ λ¬Έλ²
κ·Έλνμμ± "λ΄ κ·Έλν"μ κ°μ μ§κ΄μ μΈ λͺ λ Ήμ΄λ‘ μ½κ² κ·Έλν μμ±- 볡μ‘ν μ€μ μμ΄λ μνλ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€
-
λ€μν κ·Έλν μ§μ
- Line, Bar, Scatter λ± μ£Όμ κ·Έλν μ ν μ§μ
- κ° κ·Έλνλ§λ€ μ μ© ν¨μλ₯Ό ν΅ν΄ μ½κ² μμ± κ°λ₯
-
μ¬μ΄ μ΅μ μ‘°μ
- μ λͺ©, κΈκΌ΄, ν¬κΈ° λ±μ λͺ λ Ήμ΄λ‘ μμ λ‘κ² μ€μ
- νκΈ μμ μ΄λ¦ μ§μ (μ: "λΉ¨κ°", "νλ")
-
μ€μκ° κ²°κ³Ό νμΈ
- λͺ λ Ήμ΄ μ€ν μ¦μ κ²°κ³Όλ₯Ό νμΈν μ μλ ꡬ쑰
- λλ²κ·Έ λͺ¨λλ‘ μμΈν λ‘κ·Έ νμΈ κ°λ₯
NoR μμ€ν μ ν¬κ² μΈ κ°μ§ μΆμΌλ‘ ꡬμ±λμ΄ μμ΅λλ€:
-
GUI (React + Tailwind)
- μ½λ μλν°: NoRScript λͺ λ Ήμ΄ μ λ ₯
- μ€ν κ²°κ³Ό μ°½: κ·Έλν μκ°ν
- λ‘κ·Έ λ° μΆλ ₯ νλ©΄: μΈμ΄ μ²λ¦¬ κ΄λ ¨ λ‘κ·Έ
-
μΈμ΄ μ²λ¦¬ (Lang)
- ꡬ문 λΆμ (Parsing)
- μλ―Έ λΆμ (Semantic Analysis)
- μ€ν (Execution)
-
κ·Έλν μμ± (Graph)
- Matplotlib κΈ°λ° μκ°ν
- λ€μν κ·Έλν μ ν μ§μ
- νκΈ μμ λ° μ€νμΌ μ§μ
- CSV λ°μ΄ν° μλ νμ± λ° λ³μλͺ μλ λ±λ‘
- λͺ λ Ήμ΄ μλμμ± λ° μΆμ² κΈ°λ₯
- μ€ν μ΄λ ₯ μ μ₯ λ° μ¦κ²¨μ°ΎκΈ°
- κ·Έλν μ΄λ―Έμ§ λ€μ΄λ‘λ λ° κ³΅μ κΈ°λ₯
- μΉ λ°°ν¬ λ° μ κ·Όμ± κ°μ
# μ μ₯μ ν΄λ‘
git clone https://github.com/your-username/nor.git
# μμ‘΄μ± μ€μΉ
pip install -r requirements.txt
# μ€ν
python main.py- μ΄μλ₯Ό μμ±νκ±°λ κΈ°μ‘΄ μ΄μλ₯Ό νμΈν©λλ€.
- λΈλμΉλ₯Ό μμ±νκ³ μμ ν©λλ€.
- PRμ μμ±νμ¬ κΈ°μ¬ν©λλ€.
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€ νμ λ°°ν¬λ©λλ€. μμΈν λ΄μ©μ LICENSE νμΌμ μ°Έμ‘°νμΈμ.
NoR is a Python-based mini-language designed for quickly and easily creating graphs for academic papers. NoRμ νμ λ Όλ¬Έμ© κ·Έλνλ₯Ό λΉ λ₯΄κ³ μ½κ² λ§λ€κΈ° μν΄ μ€κ³λ Python κΈ°λ° λ―Έλ μ€ν¬λ¦½νΈ μΈμ΄μ λλ€.
/NoR
βββ cli/ # CLI μ€νκΈ° (컀맨λλΌμΈ)
βββ core/ # κ³΅ν΅ μΈν°ν리ν°/λΆμ λ‘μ§
βββ docs/ # νλ‘μ νΈ λ¬Έμ
βββ gui/ # GUI (νλ‘ νΈ + FastAPI μλ²)
βββ lang/ # μ΄ν λΆμ, νμ, λ¬Έλ² μ μ
βββ pyproject.toml
βββ uv.lock
βββ README.md
- `core/`: CLIμ GUI λͺ¨λμμ 곡μ νλ **ν΄μκΈ° λ‘μ§**μ΄ λ€μ΄ μμ΅λλ€. κ΅¬μ‘°κ° νμ₯λλ©΄μ μκΈ΄ ν΅μ¬ λλ ν 리μ
λλ€.
- `lang/`: νμ, λ¬Έλ², ν ν° μ μ λ± μΈμ΄μ ν΅μ¬ κ΅¬μ± μμκ° μμ΅λλ€.
- `gui/`: λ°±μλ (`FastAPI`)μ νλ‘ νΈμλ (`React.js`)κ° ν¨κ» μλ λλ ν 리μ
λλ€. `api_server.py`κ° HTTP APIλ₯Ό μ 곡ν©λλ€.
- `cli/`: CLI μ§μ
μ μ
λλ€. GUI μμ΄ μ€ν μ μ¬μ©ν©λλ€.
# νλ‘μ νΈ μ€ν
> ν΄λΉ νλ‘μ νΈλ python3, uv, Node.js νκ²½μ΄ νμν©λλ€.
- python3μ μ¬μ©ν μ μλ νκ²½μ λ§λ€μ΄μ£ΌμΈμ.
- uvλ₯Ό μ¬μ©ν μ μλ νκ²½μ λ§λ€μ΄μ£ΌμΈμ.
- nodeλ₯Ό μ¬μ©ν μ μλ νκ²½μ λ§λ€μ΄μ£ΌμΈμ.
1. λ ν¬μ§ν 리 ν΄λ‘ λ° νκ²½ μ€λΉ
```bash
git clone <repo_url>
cd NoR
-
.python-versionμ λͺ μλ νμ΄μ¬ μ€μΉ λλ pyenvλ‘ μ€μΉ -
κ°μνκ²½ μμ± λ° νμ±ν
uv venv # κ°μνκ²½ μμ±
activate # PowerShell or Bash λ±μμ νμ±ν# λ°±μλ μ€ν (λ£¨νΈ λλ ν 리μμ)
python -m gui.api_server
# νλ‘ νΈμλ μ€ν (gui λλ ν 리μμ)
cd gui
npm install
npm run devλ£¨νΈ λλ ν 리μμ
python -m cli.nor_cli <script_file> --debugdebug μ΅μ μ λ λ§μ μ 보λ₯Ό λ‘κ·Έμ μ 곡ν©λλ€.
μμ:
python -m cli.nor_cli test_scripts/dot_plot.norμλ‘μ΄ ν¨ν€μ§λ₯Ό νλ‘μ νΈμ μΆκ°νκ±°λ κΈ°μ‘΄ ν¨ν€μ§λ₯Ό μ λ°μ΄νΈ/μ κ±°ν λλ λ€μ μ μ°¨λ₯Ό λ°λ₯΄μΈμ. λͺ¨λ ν¨ν€μ§ κ΄λ ¨ μμ μ κ°μνκ²½μ΄ νμ±νλ μνμμ μ§νν΄μΌ ν©λλ€.
μλ‘μ΄ ν¨ν€μ§λ₯Ό μΆκ°νκ±°λ κΈ°μ‘΄ ν¨ν€μ§λ₯Ό μμ ν λλ λ€μ λͺ λ Ήμ΄λ₯Ό μ¬μ©νμΈμ:
uv pip install <ν¨ν€μ§λͺ
>
uv pip uninstall <ν¨ν€μ§λͺ
>uv syncλ₯Ό μ¬μ©νλ©΄ λͺ¨λ λ³κ²½ μ¬νμ pyproject.tomlκ³Ό uv.lockμ λ°μλ©λλ€.
μμΈν νλ‘μ νΈ λ¬Έμλ λ Έμ νμ΄μ§μμ νμΈνμ€ μ μμ΅λλ€.
- νκΈ κΈ°λ°μ μ§κ΄μ μΈ λ¬Έλ²
- 볡μ‘ν μ€μ μμ΄ κ³ νμ§ κ·Έλν μμ±
- matplotlib, seaborn λ± κ°λ ₯ν μκ°ν λΌμ΄λΈλ¬λ¦¬ νμ©
# μ μ₯μ ν΄λ‘
git clone https://github.com/your-username/nor.git
# μμ‘΄μ± μ€μΉ
uv venv
uv pip install -r requirements.txt# νκΈ μ€ν¬λ¦½νΈλ‘ κ·Έλν μμ±
그리기([1, 2, 3, 4], [1, 4, 9, 16])
μ λͺ©μ€μ ("μ κ³± ν¨μ")
μΆμ΄λ¦μ€μ ("xμΆ", "yμΆ")
μ μ₯("κ·Έλν.png")MIT License
- μ΄μ μμ±
- λΈλμΉ μμ± (
git checkout -b feature/amazing-feature) - λ³κ²½μ¬ν μ»€λ° (
git commit -m 'Add some amazing feature') - λΈλμΉ νΈμ (
git push origin feature/amazing-feature) - Pull Request μμ±
- μ΅νκ²½ (32224802) - GUI μ€κ³ λ° νλ‘μ νΈ λ¬Έμν
- μ΄μ΄κΈΈ (32237627) - κ·Έλν μμ§ κ΅¬ν λ° ν μ€νΈ
- λ₯μ§μ± (32241484) - νμ λ° μΈμ΄ μ€κ³, GitHub μ΄κΈ° μΈν

