[P-Reinforce] 2026-04-20: Processed 5 New Knowledge Gems (Tetris Engineering Lessons)
This commit is contained in:
Vendored
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
Vendored
+33
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"file-explorer": true,
|
||||
"global-search": true,
|
||||
"switcher": true,
|
||||
"graph": true,
|
||||
"backlink": true,
|
||||
"canvas": true,
|
||||
"outgoing-link": true,
|
||||
"tag-pane": true,
|
||||
"footnotes": false,
|
||||
"properties": true,
|
||||
"page-preview": true,
|
||||
"daily-notes": true,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": false,
|
||||
"editor-status": true,
|
||||
"bookmarks": true,
|
||||
"markdown-importer": false,
|
||||
"zk-prefixer": false,
|
||||
"random-note": false,
|
||||
"outline": true,
|
||||
"word-count": true,
|
||||
"slides": false,
|
||||
"audio-recorder": false,
|
||||
"workspaces": false,
|
||||
"file-recovery": true,
|
||||
"publish": false,
|
||||
"sync": true,
|
||||
"bases": true,
|
||||
"webviewer": false
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"collapse-filter": true,
|
||||
"search": "",
|
||||
"showTags": false,
|
||||
"showAttachments": false,
|
||||
"hideUnresolved": false,
|
||||
"showOrphans": true,
|
||||
"collapse-color-groups": true,
|
||||
"colorGroups": [],
|
||||
"collapse-display": true,
|
||||
"showArrow": false,
|
||||
"textFadeMultiplier": 0,
|
||||
"nodeSizeMultiplier": 1,
|
||||
"lineSizeMultiplier": 1,
|
||||
"collapse-forces": true,
|
||||
"centerStrength": 0.518713248970312,
|
||||
"repelStrength": 10,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 250,
|
||||
"scale": 0.08317427835927536,
|
||||
"close": false
|
||||
}
|
||||
Vendored
+187
@@ -0,0 +1,187 @@
|
||||
{
|
||||
"main": {
|
||||
"id": "59f0bd68c638b9ae",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "6e3e7f0212dd6d2e",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "5e19c94f304a33d1",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "graph",
|
||||
"state": {},
|
||||
"icon": "lucide-git-fork",
|
||||
"title": "그래프 뷰"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
},
|
||||
"left": {
|
||||
"id": "b20f341b7d225db0",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "76facd68bdc37a30",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "697d93dc46e83f99",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "파일 탐색기"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "14386382787eb545",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical"
|
||||
},
|
||||
"icon": "lucide-search",
|
||||
"title": "검색"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6544f7f2d2bdb927",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "bookmarks",
|
||||
"state": {},
|
||||
"icon": "lucide-bookmark",
|
||||
"title": "북마크"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300
|
||||
},
|
||||
"right": {
|
||||
"id": "eb1afd59f22726e4",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "cff2bf89b29bbdad",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "a06f05e29da92edb",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
"showSearch": false,
|
||||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "백링크"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "461414a74ff42c5f",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outgoing-link",
|
||||
"state": {
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-going-out",
|
||||
"title": "나가는 링크"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "2c463caabad51324",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "tag",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"useHierarchy": true,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-tags",
|
||||
"title": "태그"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "e863614ec11ec6c0",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "all-properties",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-archive",
|
||||
"title": "모든 속성"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "0f1cc972aeac180a",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"followCursor": false,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "개요"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"switcher:빠른 전환기 열기": false,
|
||||
"graph:그래프 뷰 열기": false,
|
||||
"canvas:새 캔버스 만들기": false,
|
||||
"daily-notes:오늘의 일일 노트 열기": false,
|
||||
"templates:템플릿 삽입": false,
|
||||
"command-palette:명령어 팔레트 열기": false,
|
||||
"bases:새 베이스 생성하기": false
|
||||
}
|
||||
},
|
||||
"active": "5e19c94f304a33d1",
|
||||
"lastOpenFiles": [
|
||||
"Systemic_Simulation_Principles.md",
|
||||
"DevOps_Environment_Setup.md",
|
||||
"Separation_of_Concerns.md",
|
||||
"Single_Source_of_Truth.md",
|
||||
"WebWorker_Performance.md"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 개발 환경 및 실행 프로세스 관리 (DevOps & Setup)
|
||||
category: DevOps
|
||||
tags: [DevOps, Environment, CI/CD, Process Management]
|
||||
created: 2026-04-20
|
||||
---
|
||||
|
||||
# 개발 환경 및 실행 프로세스 관리
|
||||
|
||||
## 🎯 개요 (Overview)
|
||||
코딩 완성도만큼이나 중요한 **실행 환경(Runtime Environment)**과 **설정 파일(Configuration)**의 무결성을 확보하여, '내 컴퓨터에선 되는데 왜 저기선 안 되지?'라는 문제를 해결하는 프로세스입니다.
|
||||
|
||||
## 🚀 필수 체크리스트 (Checklist)
|
||||
- **의존성 관리**: `npm install` 등 패키지 무결성 확인.
|
||||
- **물리적 파일 구조**: `index.html` 등 필수 진입점 파일 존재 확인.
|
||||
- **보안 및 권한**: OS 레벨의 실행 정책(`Execution Policy`) 및 권한 설정.
|
||||
|
||||
## 💡 레슨 런 (Lesson Learned)
|
||||
> [!NOTE]
|
||||
> **"운영 환경에 대한 이해는 코딩 능력의 절반이다."**
|
||||
> 논리적 로직의 완성뿐만 아니라, 그것이 실제로 구동되는 물리적 인프라 설정을 문서화하고 자동화하는 능력이 필수적입니다.
|
||||
|
||||
## 🔗 연결된 지식
|
||||
- [[Systemic_Simulation_Principles]]
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: 시스템 아키텍처와 관심사 분리 (Separation of Concerns)
|
||||
category: Software Architecture
|
||||
tags: [Architecture, SoC, Modular Design, Design Pattern]
|
||||
created: 2026-04-20
|
||||
---
|
||||
|
||||
# 시스템 아키텍처와 관심사 분리 (SoC)
|
||||
|
||||
## 🎯 개요 (Overview)
|
||||
복잡한 소프트웨어 시스템을 역할별로 구분된 독립적인 모듈로 나누어, 유지보수성과 확장성을 극대화하는 설계 철학입니다.
|
||||
|
||||
## 🚀 계층구조 예시 (Layering Example)
|
||||
1. **Logic Engine**: 순수 비즈니스 로직 및 규칙 수행 (예: `gameWorker.js`)
|
||||
2. **State Manager**: 데이터의 중앙 집중 처리 (예: `TetrisGame.jsx`)
|
||||
3. **View Layer**: 사용자 인터페이스 표현 및 렌더링 (예: React Components)
|
||||
|
||||
## 💡 레슨 런 (Lesson Learned)
|
||||
> [!IMPORTANT]
|
||||
> **"코드의 경계가 명확할 때 시스템은 비로소 건강해진다."**
|
||||
> 기능을 추가할 때 기존 코드를 수정하기보다 새로운 모듈을 덧붙일 수 있는 구조를 고민해야 합니다.
|
||||
|
||||
## 🔗 연결된 지식
|
||||
- [[WebWorker_Performance]]
|
||||
- [[Single_Source_of_Truth]]
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 상태 관리의 단일 진실 공급원 (Single Source of Truth)
|
||||
category: Software Architecture
|
||||
tags: [State Management, Data Consistency, Redux, Architecture]
|
||||
created: 2026-04-20
|
||||
---
|
||||
|
||||
# 상태 관리의 단일 진실 공급원 (Single Source of Truth)
|
||||
|
||||
## 🎯 개요 (Overview)
|
||||
시스템의 핵심 데이터를 중앙 집중식으로 관리하여, 데이터 불일치(Inconsistency) 현상을 원천 차단하고 예측 가능한 데이터 흐름을 확보하는 설계 원칙입니다.
|
||||
|
||||
## 🚀 주요 원칙 (Key Principles)
|
||||
- **단일 지점 정의 (Defined at Single Point)**: 상태는 오직 한 곳에서만 정의되고 관리되어야 합니다.
|
||||
- **예측 가능성 (Predictability)**: 상태 변경은 정해진 규칙(Action/Setter)을 통해서만 발생하여 디버깅을 용이하게 합니다.
|
||||
|
||||
## 💡 레슨 런 (Lesson Learned)
|
||||
> [!TIP]
|
||||
> **"상태는 오직 한 곳에서만 정의하고, 모든 로직은 그 상태를 읽고 쓰는 방식으로 동작해야 한다."**
|
||||
> 코드의 파편화를 막기 위해 데이터의 책임 범위(Responsibility)를 명확히 하는 것이 대규모 프로젝트 성공의 열쇠입니다.
|
||||
|
||||
## 🔗 연결된 지식
|
||||
- [[Separation_of_Concerns]]
|
||||
- [[Domain-Driven Design (DDD)]]
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 시스템 시뮬레이션 설계 원리
|
||||
category: Systemic Modeling & Fun
|
||||
tags: [Simulation, Physics Engine, Systemic Modeling, Ruleset]
|
||||
created: 2026-04-20
|
||||
---
|
||||
|
||||
# 시스템 시뮬레이션 설계 원리
|
||||
|
||||
## 🎯 개요 (Overview)
|
||||
현실 세계의 물리 법칙이나 비즈니스 규칙을 수학적으로 정의하고, 이를 절대적으로 우회할 수 없는 시스템 내의 법(Law)으로 구축하는 설계 기법입니다.
|
||||
|
||||
## 🚀 핵심 메커니즘 (Mechanisms)
|
||||
- **규칙 강제 (Ruleset Enforcement)**: 모든 상태 변화는 사전에 정의된 물리 엔진 함수(`checkCollision` 등)를 거쳐야만 합니다.
|
||||
- **수학적 모델링**: 변화를 시각적 묘사가 아닌 데이터와 수식으로 먼저 증명합니다.
|
||||
|
||||
## 💡 레슨 런 (Lesson Learned)
|
||||
> [!TIP]
|
||||
> **"모든 시뮬레이션은 수학적 규칙을 절대 우회할 수 없도록 강제해야 한다."**
|
||||
> 이를 통해 단순한 게임을 넘어 자율주행, 물리 엔진 등 고도의 결정론적 시스템 모델링이 가능해집니다.
|
||||
|
||||
## 🔗 연결된 지식
|
||||
- [[WebWorker_Performance]]
|
||||
- [[Separation_of_Concerns]]
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: WebWorker를 이용한 고성능 아키텍처 설계
|
||||
category: Web & Performance
|
||||
tags: [Web Worker, Concurrency, Performance, UI responsiveness]
|
||||
created: 2026-04-20
|
||||
---
|
||||
|
||||
# WebWorker를 이용한 고성능 아키텍처 설계
|
||||
|
||||
## 🎯 개요 (Overview)
|
||||
실시간 상태 변화가 매우 빈번한 애플리케이션(예: 게임, 시뮬레이션)에서 UI 스레드와 복잡한 연산 로직을 분리하여 **프레임 드롭(Jank)**을 방지하는 아키텍처 설계 기법입니다.
|
||||
|
||||
## 🚀 주요 원칙 (Key Principles)
|
||||
- **스레드 분리 (Thread Isolation)**: 무거운 계산은 백그라운드 스레드(Web Worker)에서 수행하고, 메인 스레드는 렌더링에만 집중합니다.
|
||||
- **메시징 기반 통신 (Messaging Architecture)**: `postMessage`와 `onmessage`를 통해 비동기적으로 데이터를 주고받아 결합도를 낮춥니다.
|
||||
|
||||
## 💡 레슨 런 (Lesson Learned)
|
||||
> [!IMPORTANT]
|
||||
> **"성능 병목 현상은 종종 '스레딩(Threading)'의 문제이다."**
|
||||
> 복잡한 물리 계산이나 루프가 UI 응답성을 해치지 않도록, 연산 엔진을 완전히 별도의 스레드로 격리하는 것이 부드러운 UX의 핵심입니다.
|
||||
|
||||
## 🔗 연결된 지식
|
||||
- [[Separation_of_Concerns]]
|
||||
- [[Systemic_Simulation_Principles]]
|
||||
Reference in New Issue
Block a user