Google Drive-synchronized floating Post-it memo pad for Windows, macOS, and Linux
Project description
Memo-Bot v1.5.8 ๐
๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๊ธฐ๋ฐ์ ์๋ฒฝํ ๋๊ธฐํ๋๋ ํฌ๋ก์ค ํ๋ซํผ ํฌ์คํธ์ ๋ฉ๋ชจ์ฅ์ ๋๋ค. ์๋๋ก์ด๋(Flutter)์ ๋ฐ์คํฌํฑ(Windows, macOS, Linux - Python/PyWebView) ํ๊ฒฝ์ ์ง์ํ๋ฉฐ, ์ฌ์ฉ์์ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ **์จ๊ฒจ์ง ์ฑ ํด๋ (Application Data Folder)**๋ฅผ ์ด์ฉํด ๋ณด์์ด ๋งค์ฐ ๋ฐ์ด๋๊ณ ๊น๋ํ ๋๊ธฐํ๋ฅผ ์ํํฉ๋๋ค.
๐จ ๊ธฐ์ ์คํ ๋ฐ ํน์ง
- Desktop Client: Python + PyWebView (HTML/JS/CSS). OS ๋ด์ฅ ์น๋ทฐ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ฐฐํฌ ํ์ผ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๊ฐ ์ต์ํ๋ฉ๋๋ค.
- Mobile Client (Android): Flutter (Material 3 ๋คํฌ ๋ชจ๋). ๋ชจ๋ํ๊ณ ์ ๋ คํ ํฌ์คํธ์ ๋ฆฌ์คํธ ๋ฐ ํธ์ง ์ธํฐํ์ด์ค ์ ๊ณต.
- Sync Engine: Google Drive AppData API. ์ฌ์ฉ์์ ํ์ผ ๋ชฉ๋ก์ ๋
ธ์ถ๋์ง ์๋ ๊ณ ์ ์ฑ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ณ , ํ์ผ์
appProperties๋ฉํ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ์ฌ ํธ๋ํฝ ์๋ชจ๊ฐ ๋งค์ฐ ์ ๊ณ ๋ฐ์์ด ๋น ๋ฅธ ๋๊ธฐํ๋ฅผ ์ง์ํฉ๋๋ค.
๐ ๋ฐ์ดํฐ ์ ์ฅ ๊ฒฝ๋ก ๋ฐ ํ์ผ ํฌ๋งท
๋ฉ๋ชจ๋ฅผ ์์ฑํ๊ณ ์ ์ฅํ๋ฉด ๊ฐ ๋ฉ๋ชจ๋ ๋ก์ปฌ ์ปดํจํฐ์ ๊ฐ๋ณ JSON ํ์ผ ํํ๋ก ์ ์ฅ๋ฉ๋๋ค.
1. ๋ก์ปฌ ์ ์ฅ ๊ฒฝ๋ก
- Windows:
C:\Users\<์ฌ์ฉ์๋ช >\.memobot\notes\ - macOS / Linux:
~/.memobot/notes/
2. ํ์ผ ํ์ ๋ฐ ์ด๋ฆ
- ๊ฐ ๋ฉ๋ชจ๋น
note_<๊ณ ์ ID>.jsonํ์์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. (์:note_a1b2c3d4.json)
3. JSON ๋ฐ์ดํฐ ๊ตฌ์กฐ ์์
๋ฉ๋ชจ์ ๋ด์ฉ, ์์, ์ขํ ๋ฐ ํฌ๊ธฐ, ํ๊ทธ ์ ๋ณด๋ฟ๋ง ์๋๋ผ ์ฒจ๋ถ๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๊น์ง ๋จ์ผ JSON ํ์ผ ๋ด์ ๋ณด๊ดํฉ๋๋ค.
{
"id": "a1b2c3d4-...",
"content": "๋ฉ๋ชจ ๋ด์ฉ์
๋๋ค. #ํ๊ทธ",
"color": "yellow",
"tags": ["ํ๊ทธ"],
"x": 120,
"y": 250,
"width": 250,
"height": 250,
"is_folded": false,
"on_top": true,
"updated_at": "2026-06-04T12:57:08Z",
"image": "data:image/png;base64,iVBORw0KGgoAAA..." // ์ฒจ๋ถ๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ (Base64 ์ธ์ฝ๋ฉ)
}
[!NOTE] ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋๊ธฐํ๊ฐ ์คํ๋๋ฉด ๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ์จ๊ฒจ์ง ์ฑ ์ ์ฉ ์ ์ฅ์(AppData Folder) ํด๋์๋ ๋ก์ปฌ๊ณผ ๋์ผํ ํ์ผ๋ช ๋ฐ JSON ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก ์ ์ฅ ๋ฐ ๋๊ธฐํ๋ฉ๋๋ค.
๐ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ API ์ค์ (OAuth 2.0)
์์ชฝ ํ๋ซํผ์์ ๋๊ธฐํ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ธฐ ์ํด Google Cloud Console์์ OAuth 2.0 ์๊ฒฉ ์ฆ๋ช ์ ์ค์ ํด์ผ ํฉ๋๋ค.
-
Google Cloud Console ์ ์:
- Google Cloud Console์ ๊ตฌ๊ธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํฉ๋๋ค.
- ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค (์:
Memo-Bot).
-
Google Drive API ํ์ฑํ:
- API ๋ฐ ์๋น์ค > ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค.
Google Drive API๋ฅผ ๊ฒ์ํ๊ณ ์ฌ์ฉ(Enable) ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
-
OAuth ๋์ ํ๋ฉด ์ค์ :
- API ๋ฐ ์๋น์ค > OAuth ๋์ ํ๋ฉด์ผ๋ก ์ด๋ํฉ๋๋ค.
- User Type์ **์ธ๋ถ(External)**๋ก ์ ํํ๊ณ ์์ฑ์ ๋๋ฆ ๋๋ค.
- ํ์ ์ ๋ณด(์ฑ ์ด๋ฆ, ์ด๋ฉ์ผ ๋ฑ)๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ๋ฒ์(Scopes) ์ค์ ๋จ๊ณ์์
.../auth/drive.appdata๋ฒ์๋ฅผ ์ถ๊ฐํฉ๋๋ค (๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ์ฑ ์ ์ฉ ์จ๊ฒจ์ง ํด๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ถํ). - ํ ์คํธ ์ฌ์ฉ์ (Test Users) ๋ฑ๋ก ๋จ๊ณ์์ ๋๊ธฐํ ํ ์คํธ์ ์ฌ์ฉํ ๋ณธ์ธ์ ๊ตฌ๊ธ ์ด๋ฉ์ผ์ ๋ฐ๋์ ์ถ๊ฐํฉ๋๋ค.
[!IMPORTANT] OAuth ๋์ ํ๋ฉด์ ํผ๋ธ๋ฆฌ์ฑ ์ํ๊ฐ ํ ์คํธ(Testing) ๋ชจ๋์ธ ๊ฒฝ์ฐ, ํ ์คํธ ์ฌ์ฉ์๋ก ์ด๋ฉ์ผ ๊ณ์ ์ด ๋ฑ๋ก๋์ด ์์ด์ผ๋ง ๊ตฌ๊ธ ๋ก๊ทธ์ธ์ด ์ ์ ์ฒ๋ฆฌ๋๊ณ ์ฐจ๋จ ์๋ฌ(403 access_denied)๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
- ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด(Credentials) ์์ฑ:
- API ๋ฐ ์๋น์ค > ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ก ์ด๋ํฉ๋๋ค.
- ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๋ง๋ค๊ธฐ > OAuth ํด๋ผ์ด์ธํธ ID๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ **๋ฐ์คํฌํฑ ์ฑ(Desktop App)**์ผ๋ก ์ ํํ๊ณ ์ด๋ฆ์ ์ ๋ ฅ ํ ์์ฑํฉ๋๋ค.
- ์์ฑ๋ ํด๋ผ์ด์ธํธ ID์ JSON ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
๐ป ๋ฐ์คํฌํฑ ์ฑ ์คํ ๋ฐ ๋ฐฐํฌ (Python)
1. ์๊ฒฉ ์ฆ๋ช ํ์ผ ๋ฐฐ์น
๋ค์ด๋ก๋๋ฐ์ ํด๋ผ์ด์ธํธ ๋น๋ฐ๋ฒํธ JSON ํ์ผ์ client_secrets.json์ผ๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ์ฌ ๋ค์ ๊ฒฝ๋ก์ ์ ์ฅํฉ๋๋ค.
- Windows:
C:\Users\<์ฌ์ฉ์๋ช >\.memobot\client_secrets.json - macOS/Linux:
~/.memobot/client_secrets.json
2. ๊ฐ๋ฐ์ ๋ชจ๋ ๋ก์ปฌ ์คํ
cd desktop
# ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# ์์กด์ฑ ํจํค์ง ์ค์น
pip install -e .
# ์ฑ ์คํ
memobot
3. PyPI ๋ฐฐํฌ์ฉ ๋น๋ ๋ฐ ์ ๋ก๋
ํจํค์ง ์ฒญ์, ๋น๋, ์ ๋ก๋๋ฅผ ์ผ๊ด์ ์ผ๋ก ์๋ ์ฒ๋ฆฌํด์ฃผ๋ ๋ฐฐ์น ์คํฌ๋ฆฝํธ๊ฐ ์ ๊ณต๋ฉ๋๋ค:
# Windows ํ๊ฒฝ์์ ๋น๋ ๋ฐ ๋ฐฐํฌ ๋ฐฐ์นํ์ผ ์คํ
./publish_pypi.bat
- ์คํ ์ ๊ธฐ์กด ๋น๋ ์์ ํ์ผ๋ค์ ๋ชจ๋ ์ด๊ธฐํํ๊ณ ,
build๋ฐtwine๋ชจ๋์ ์๋์ผ๋ก ์ต์ ์ค์น/์ ๊ทธ๋ ์ด๋ํ ํ ๋น๋๋ฅผ ์ํํฉ๋๋ค. - ๋น๋ ์๋ฃ ํ [1] TestPyPI ์ ๋ก๋, [2] ๊ณต์ PyPI ์ ๋ก๋, [3] ์ ๋ก๋ ์์ด ๋น๋๋ง ์ํ ์ค ํ๋๋ฅผ ์ ํํด ์งํํ ์ ์์ต๋๋ค.
- ๋ฐฐํฌ ์๋ฃ ์ ์ฌ์ฉ์๋
pip install memobot๋ช ๋ น์ด๋ง์ผ๋ก ํฌ๋ก์ค ํ๋ซํผ(Windows, macOS, Linux) ํ๊ฒฝ์ ์ค์นํ๊ณmemobot๋ช ๋ น์ด๋ก ์ฆ์ ์ฑ์ ์คํํ ์ ์์ต๋๋ค.
4. PyPI ํจํค์ง ๊ด๋ฆฌ ๋ฐฉ๋ฒ (์ค์น, ์ ๋ฐ์ดํธ, ์ญ์ )
์ผ๋ฐ ์ฌ์ฉ์๋ ํ์ด์ฌ์ด ์ค์น๋ ํ๊ฒฝ์์ ์๋์ pip ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ํจํค์ง๋ฅผ ํธ๋ฆฌํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ค์น (Install):
pip install memobot
- ์คํ (Run):
์ค์น ํ ํฐ๋ฏธ๋์ด๋ ๋ช
๋ น ํ๋กฌํํธ์์ ์๋ ๋ช
๋ น์ ์คํํ๋ฉด ๋ฐ์คํฌํฑ ์ฑ์ด ์คํ๋ฉ๋๋ค (์๋์ฐ ํ๊ฒฝ์์๋ ๊ฒ์์ ์ฝ์์ฐฝ ์์ด ๋ฐฑ๊ทธ๋ผ์ด๋์ฉ ์ฑ์ผ๋ก ์คํ๋ฉ๋๋ค).
memobot
- ์ต์ ๋ฒ์ ์
๋ฐ์ดํธ (Update):
pip install --upgrade memobot
- ์ญ์ (Uninstall):
pip uninstall memobot
๐ฑ ๋ชจ๋ฐ์ผ ์ฑ ์คํ (Flutter Android)
1. Flutter ์์กด์ฑ ๊ตฌ์ฑ
cd mobile
flutter pub get
2. ์๋๋ก์ด๋ ํ๋ซํผ ์ค์
๊ตฌ๊ธ ๋ก๊ทธ์ธ ์ฐ๋์ ์ํด ์๋๋ก์ด๋ ์ฑ์ ํจํค์ง๋ช ๊ณผ ๋๋ฒ๊ทธ ์๋ช ํค(SHA-1)๋ฅผ Google Cloud Console์ ๋์ผ ํ๋ก์ ํธ์ ๋ฑ๋กํด์ผ ํฉ๋๋ค.
- OAuth ํด๋ผ์ด์ธํธ ID ์ถ๊ฐ ์์ฑ:
- Google Cloud Console > ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด > OAuth ํด๋ผ์ด์ธํธ ID ์์ฑ.
- ์ ํ์ Android๋ก ์ ํํฉ๋๋ค.
- ํจํค์ง ์ด๋ฆ ์
๋ ฅ (์:
com.example.memobot). - ๊ฐ๋ฐ์ฉ SHA-1 ์ง๋ฌธ ์ธ์ฆ์๋ฅผ ์
๋ ฅํฉ๋๋ค (JDK์
keytool์ ํตํด ์กฐํ ๊ฐ๋ฅ).
- ์๋น์ค ํ์ผ ๋ค์ด๋ก๋:
- ํ์์ ๋ฐ๋ผ Firebase์ ๊ฒฐํฉํ์ฌ ์ฌ์ฉํ ๊ฒฝ์ฐ
google-services.json์mobile/android/app/์๋์ ๋ฐฐ์นํ ์ ์์ผ๋, ๋ณธ ๊ตฌํ์์๋google_sign_inํจํค์ง๊ฐ ํด๋ผ์ด์ธํธ ID๋ฅผ ํตํด ์ง์ ๋์ํ๋ฏ๋ก ์ต์ํ์ ์ค์ ๋ง์ผ๋ก ์๋ ๊ฐ๋ฅํฉ๋๋ค.
- ํ์์ ๋ฐ๋ผ Firebase์ ๊ฒฐํฉํ์ฌ ์ฌ์ฉํ ๊ฒฝ์ฐ
3. ์ฑ ์คํ
flutter run
๐ก ํ๋ซํผ๋ณ ์ฐธ๊ณ ์ฌํญ (macOS / Android / Linux)
๐ macOS (๋งฅ) ํ๊ฒฝ์์์ ์ ์์
- ๋ฌด์ค์ ์ฆ์ ์คํ: macOS์๋ ๋ ๋๋ง ๋ฐฑ์๋์ธ Cocoa
WKWebView๊ฐ OS ๋ ๋ฒจ์์ ์๋ฒฝํ๊ฒ ๋ด์ฅ๋์ด ์์ด, ์ถ๊ฐ์ ์ธ ํจํค์ง ์ค์น ์์ดpip install memobotํ์ ์ฆ์ ์คํ ๊ฐ๋ฅํฉ๋๋ค. - ์๋์ฐ ์ ์ฉ ์คํ์ผ ์ฐจ์ด: ์์
ํ์์ค(Taskbar)์์ ์ฐฝ ์์ด์ฝ ์จ๊ธฐ๊ธฐ, OS ๋ค์ดํฐ๋ธ ๊ทธ๋ฆผ์ ์ ๊ฑฐ, ์๋์ฐ ์คํ์ผ ๊ฐ์ ๋ณ๊ฒฝ ๋ฑ Win32 API ๋ฐ DWM(Desktop Window Manager)์ ์ง์ ์ ์ดํ๋ ์ผ๋ถ ๋ค์ดํฐ๋ธ ์ต์ ํ ๊ธฐ๋ฅ์ ์๋์ฐ์์๋ง ์๋ํ๋ฉฐ, macOS์์๋
pywebviewํ์ค ์ฐฝ ํํ๋ก ๋ ๋๋ง๋ฉ๋๋ค.
๐ค Android (์๋๋ก์ด๋) ํ๊ฒฝ์์์ ์ ์์
- ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๊ฒฝ๊ณ ์ฐฝ ์ฐํ (์ต์ด 1ํ): ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ์ฝ์์ OAuth ๋์ ํ๋ฉด์ด [์ฑ ๊ฒ์ (In Production / ๋ฐฐํฌ)] ์ํ์ด์ง๋ง ์์ง ๊ตฌ๊ธ์ ๊ณต์ ๋ธ๋๋ ๊ฒ์(Verification)๋ฅผ ์๋ฃํ์ง ์์๊ธฐ ๋๋ฌธ์, ์ต์ด ๋ก๊ทธ์ธ ์ "์ด ์ฑ์ Google์ ํ์ธ์ ๋ฐ์ง ์์์ต๋๋ค (This app isn't verified)" ๊ฒฝ๊ณ ์ฐฝ์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ ๋นํฉํ์ง ๋ง์๊ณ [๊ณ ๊ธ (Advanced)] -> **[Memo-Bot(์ผ)๋ก ์ด๋ (์์ ํ์ง ์์)]**์ ํด๋ฆญํ์ฌ ๋ก๊ทธ์ธ์ ์๋ฃํด ์ฃผ์๋ฉด ๋ฉ๋๋ค. (๋ฐฐํฌ ์ํ์ด๋ฏ๋ก ํน์ ํ ์คํธ ์ฌ์ฉ์๋ก ๋ฑ๋กํ์ง ์์ ๊ณ์ ์์๋ ์ฐ๋ ๋ฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.)
- ๋๊ธฐํ ์ฃผ๊ธฐ: ๋ชจ๋ฐ์ผ ์ฑ์ ๊ณผ๋ํ ๋ฐฐํฐ๋ฆฌ ์๋ชจ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐฑ๊ทธ๋ผ์ด๋ ํธ์ ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ๋ฐ์คํฌํฑ์์ ์์ ํ ๋ด์ฉ์ ๋ถ๋ฌ์ค๊ณ ์ถ์ ๋, ์ฑ ๋ฉ์ธ ํ๋ฉด ์๋จ์์ ์๋๋ก ๋น๊ฒจ์ ์๋ก๊ณ ์นจ(Pull to Refresh)ํ๊ฑฐ๋ ๋๊ธฐํ ๋ฒํผ์ ๋๋ฌ ๋์ ๋๊ธฐํ๋ฅผ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
๐ง Linux (๋ฆฌ๋ ์ค) ํ๊ฒฝ์์์ ์ ์์
- ์น ๋ ๋๋ฌ ํจํค์ง ์ค์น ํ์: ๋ฆฌ๋
์ค ๋ฐ์คํฌํฑ ํ๊ฒฝ์์๋ ์น ์ฐฝ์ ๋ ๋๋งํ๊ธฐ ์ํด GTK WebKit2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
pip์ค์น ์ ์๋ OS ํจํค์ง๋ฅผ ๋จผ์ ์ค์นํด ์ฃผ์ธ์:# Ubuntu / Debian ๊ณ์ด sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-webkit2-4.1
๐ ๋๊ธฐํ ๋ฐ ์ถฉ๋ ๋ฐฉ์ง ์ธ๋ถ ์ค๊ณ
- Tombstoning (์ํํธ ์ญ์ ): ์ฌ์ฉ์๊ฐ ์ฑ ๋ด์์ ๋ฉ๋ชจ๋ฅผ ์ญ์ ํ๋ฉด ํ์ผ์ด ์ฆ์ ์๊ตฌ ์ญ์ ๋์ง ์๊ณ ๋ด๋ถ ํ๋๊ฐ
is_deleted: true๋ก ๊ฐฑ์ ๋ฉ๋๋ค. ์ด๋ ๋ค๋ฅธ ๋๋ฐ์ด์ค๊ฐ ๋๊ธฐํ ์์ ์ ํด๋น ๋ฉ๋ชจ๋ฅผ ๋ก์ปฌ์์๋ ๋๊ฐ์ด ์ง์์ฃผ๋๋ก ์ ๋ํ๋ฉฐ, ์๋ฒฝํ ์ญ์ ์ ํ๋ฅผ ์ ๊ณตํฉ๋๋ค. - Last-Write-Wins (์ต์ข
์ฐ๊ธฐ ์ฐ์ ): ์คํ๋ผ์ธ ์์ ์ ํฌํจํ์ฌ ์๋ก ๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ๊ฐ์ ํฌ์คํธ์์ ์์ ํ ๊ฒฝ์ฐ, JSON ๋ด๋ถ์
updated_atํ์์คํฌํ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ๋ฆ๊ฒ ํธ์ง๋ ์ต์ข ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฎ์ด์๋๋ค.
๐ ์ ๋ฐ์ดํธ ๋ด์ญ (Changelog)
v1.5.8 (2026-06-29)
- ์๋ ์์ ์ ๋งค๋์ ์ฐฝ ์๋ ์คํ ์ต์ ์ถ๊ฐ: ์ค์ ํ๋ฉด์์ Windows ๋ถํ ์ ๋ฉ๋ชจ ๊ด๋ฆฌ์ ์ฐฝ์ ์๋์ผ๋ก ์ด๊ฑฐ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ํธ๋ ์ด๋ก๋ง ์คํํ ์ง ์ ํํ ์ ์๋ ์ฒดํฌ๋ฐ์ค ์ค์ ์ ์ถ๊ฐํ์ต๋๋ค.
- ํธ๋ ์ด ์์ด์ฝ ์ปจํ ์คํธ ๋ฉ๋ด ๊ฐ์ : ํธ๋ ์ด ๋ฉ๋ด ์ต์๋จ์ "์ค์ " ๋ฉ๋ด๋ฅผ ์ถ๊ฐํ๊ณ ๋ฐ๋ก ์๋ ๊ตฌ๋ถ์ (Separator)์ ๋ฐฐ์นํ์ฌ ์ค์ ์ฐฝ ์ง์ ์ด ํจ์ฌ ์์ํด์ก์ต๋๋ค.
- ๋ค๊ตญ์ด ํ์งํ: ์ ์ค์ ์ ๋ํด 7๊ฐ ์ธ์ด(ํ๊ตญ์ด, ์์ด, ์ผ๋ณธ์ด, ์ค๊ตญ์ด, ๋ฌ์์์ด, ํ๋์ค์ด, ์ดํ๋ฆฌ์์ด) ๋ฒ์ญ์ ๋ชจ๋ ๊ตฌํํ์ต๋๋ค.
v1.5.7 (2026-06-27)
- ํด์ํ๊ทธ ๋ฒํผ ๋ฌด๋ฐ์ ์ธ๋ถ ๋๋ฒ๊น : ํด์ํ๊ทธ ๋ชฉ๋ก ํ์ ์ ์ด๊ธฐํ ์ํ, ๋ฒํผ ์ฟผ๋ฆฌ ์ฌ๋ถ, ๋ก๋ ์๋ฌ(Try-Catch ๋ด ์์ธ)๋ฅผ ํ์ด์ฌ ํฐ๋ฏธ๋ ๋ก๊ทธ๋ก ์ค์๊ฐ ์ ์กํ๋ ์์ธ JS ๋๋ฒ๊น ๋ก๊น ์ ๊ตฌํํ์ต๋๋ค.
v1.5.6 (2026-06-27)
- ํด์ํ๊ทธ ๋ฒํผ ๋ฌด๋ฐ์ ์ค๋ฅ ์์ (์บ์ ๋ฐฉ์ง): WebView2 ๋ธ๋ผ์ฐ์ ์บ์๋ก ์ธํด ํด์ํ๊ทธ ์ถ๊ฐ ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ๋ฐ์๋์ง ์๋ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด
note.html์ ์บ์ ๋ฒ์คํ ํ๋ผ๋ฏธํฐ(note.js?v=155)๋ฅผ ๋์ ํ์ต๋๋ค.
v1.5.5 (2026-06-27)
- ํด์ํ๊ทธ ํต ์ ํ ๊ธฐ๋ฅ ๊ตฌํ: ํฌ์คํธ์ ํ๋จ ์ค์ผ์ค(์ค์บ์ฆ) ๋ฒํผ ์์
#๋ฒํผ์ ์ ์คํ์ฌ, ๊ธฐ์กด ๋ฉ๋ชจ๋ค์ ๋ฑ๋ก๋ ๋ชจ๋ ํด์ํ๊ทธ ๋ชฉ๋ก์ ํ๋์ ๋ณด๊ณ ๋ค์ค ์ ํํ์ฌ ํ์ฌ ๋ฉ๋ชจ ๋ณธ๋ฌธ์ ์ฆ์ ๋ฑ๋ก/ํด์ ํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
v1.5.4 (2026-06-27)
- ์คํ๋ผ์ธ ํ๊ฒฝ ๋ฆฌ์์ค ๋ด์ฅํ (CDN ์์กด์ฑ ์ ๊ฑฐ): ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ์ฐจ๋จ๋ ํ๊ฒฝ์์๋ UI ์์ด์ฝ๊ณผ ํฐํธ๊ฐ ์๋ฒฝํ๊ฒ ๋
ธ์ถ๋๋๋ก FontAwesome 6.4.0 ๋ฐ Google Fonts(Inter, Outfit, Noto Sans KR/JP/SC), Vis.js ๊ทธ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, Highlight.js ํ
๋ง CSS๋ฅผ ๋ก์ปฌ ํจํค์ง(
ui/libs)์ ๋ด์ฅํ์ต๋๋ค. @font-face๋ก์ปฌ ์นํฐํธ ๋งคํ์ ์ถ๊ฐํ๊ณ ๋ชจ๋ HTML ํ ํ๋ฆฟ์ ์ธ๋ถ CDN<link>์ฐธ์กฐ๋ฅผ ํจํค์ง ๋ด ์๋ ๊ฒฝ๋ก๋ก ์์ ํ์ฌ ์์ ํ ์คํ๋ผ์ธ ๋ ๋ฆฝ ์คํ์ ์ง์ํฉ๋๋ค.
v1.5.3 (2026-06-27)
- ๋ฉํฐ๋ชจ๋ํฐ ํ๊ฒฝ ๋ฉ๋ชจ ๋๋๊ทธ ๋ฐ ๋ณต์ ์ค๋ฅ ์์ (๋ง์ฐ์ค ์ด๊ธ๋จ ๋ฐ ํ๋ฉด ์ดํ ํ์ ํด๊ฒฐ)
v1.5.2 (2026-06-27)
- ํต๋ฉ๋ชจ ์คํฌ๋ฆฐ์ท ์บก์ณ ๋ถ์ฌ๋ฃ๊ธฐ ๋ค์ด ํ์ ์์ : ๋์ฉ๋ Base64 ์ด๋ฏธ์ง ์ ์ก ์ ๋ฐ์ํ๋ WebView2/WPF IPC ํฌ๋์๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ํด๋ฆฝ๋ณด๋ ์ด๋ฏธ์ง ๊ฐ์ง ์ JS์์ ํ๋๊ทธ๋ง ์ ์กํ๊ณ Python ๋ฐฑ์๋(
PIL.ImageGrab)์์ ์ง์ ํด๋ฆฝ๋ณด๋ ๋ฐ์ดํฐ๋ฅผ ๊ธ์ด์ ์ ์ฅํ๋๋ก ๊ตฌ์กฐ๋ฅผ ์ต์ ํํ์ต๋๋ค. - ์ค์ ํฌ์ปค์ค ํดํ ๋ฒ๊ทธ ์์ : WebView2 ์ต์ด ๋ก๋ ์ ์ฒซ ๋ฒ์งธ ์์ ํฌ์ปค์ค๋ก ์ธํด ๋ค์ดํฐ๋ธ ํดํ์ด ํ๋ฉด์ ๊ณ ์ ๋๋ ๋ฌธ์ ๋ฅผ
app.js์์ 100ms ์ง์ฐ ํblur()๋ฐfocus()์ฒ๋ฆฌ์ ํค๋ ๋ฒํผ๋ค์tabindex="-1"์ค์ ์ผ๋ก ์๋ฒฝํ๊ฒ ํด๊ฒฐํ์ต๋๋ค. - ์ค๋ ๋-์ธ์ดํ ์ฐฝ ์๋ฉธ ์ ์ฉ: ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์์ ์ง์
window.destroy()๋ฅผ ํธ์ถํ ๋ ๋ฐ์ํ๋ ์ ๊ทผ์ฑ ์ถฉ๋ ํฌ๋์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด Win32PostMessageW(hwnd, WM_CLOSE, 0, 0)๋ฉ์์ง ์ก์ ๋ฐฉ์์ผ๋ก ์ฐฝ์ ๋ซ๋๋ก ๊ฐ์ ํ์ต๋๋ค. - ๋จ์ถํค ์ฌ๋ฑ๋ก ๋ฝ ํ์ ํด๊ฒฐ: ์ค์ ์ฐฝ์์ ํซํค(๋จ์ถํค) ๋ณ๊ฒฝ ์ ๋น ๋ฅธ ์๋๋ก ์ค๋ณต ๋ฑ๋ก์ด ์ํ๋๋ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด Unregister ํ ์ ์ ํ ์ง์ฐ(0.05์ด)์ ๋์ด ๊ต์ฐฉ ์ํ๋ฅผ ์๋ฐฉํ์ต๋๋ค.
- ํต๋ฉ๋ชจ UX ๊ฐ์ : ํต๋ฉ๋ชจ ์ฐฝ์ ํฌ์ปค์ค๊ฐ ์๋ ์ํ์์
ESCํค๋ฅผ ๋๋ฅด๋ฉด ์ฐฝ์ด ๋ซํ๋๋ก ํ๊ณ , ๋ฉ๋ชจ ์์ฑ ํEnterํค๋ฅผ ๋๋ฅด๋ฉด ๋ฉ๋ชจ๊ฐ ์์ฑ๋จ๊ณผ ๋์์ ํต๋ฉ๋ชจ ์ฐฝ์ด ์ฆ์ ๋ซํ๋๋ก ๊ฐ์ ํ์ต๋๋ค.
v1.5.1 (2026-06-26)
- ๊ทธ๋ฃน ํด๋ ์ฐฝ ์๋จ ๊ณ ์ (Pin) ๊ธฐ๋ฅ ์ถ๊ฐ: ๊ทธ๋ฃน ํด๋ ์ฐฝ ํ์ดํ๋ฐ์ ํ ๋ฒํผ์ ์ถ๊ฐํ์ฌ ํญ์ ์(Always on Top)๋ก ๊ณ ์ ํ ์ ์์ต๋๋ค. ๊ณ ์ ์ ํ ์์์ด ๋นจ๊ฐ์์ผ๋ก ํ์๋ฉ๋๋ค.
- ๊ทธ๋ฃน ํด๋ ์ฐฝ ๋ฐฐ๊ฒฝ์ ์ ์ฉ: ํฌ๋ช ๋ ๋ฏธ์ง์ ํ๊ฒฝ์์ ํ์ ๋์ ๊น๋ํ ๋คํฌ ๋ค์ด๋น(#1a1a2e) ๋ฐฐ๊ฒฝ์ด ํ์๋ฉ๋๋ค.
- ๋งค๋์ ์ฐฝ ๋๋ธํด๋ฆญ ๋์ ๋ณต์: ๋งค๋์ ์ฐฝ์์ ์ ํ ๋ฉ๋ชจ๋ฅผ ๋๋ธํด๋ฆญํ๋ฉด ํผ์น ๋ฉ๋ชจ ์ํ๋ก ์ ํ๋๊ณ , ์ฑ๊ธํด๋ฆญ์ ๋ฉ๋ชจ ์์น๋ก ์ด๋ํ๋ ๊ธฐ์กด UX๋ก ๋ณต์ํ์ต๋๋ค.
- 64๋นํธ ์๋จ ๊ณ ์ ๋ฒ๊ทธ ์์ : 64๋นํธ Windows์์
SetWindowPosctypes ํธ์ถ ์argtypes/restype๋ฏธ์ ์ธ์ผ๋ก ํฌ์ธํฐ ๊ฐ์ด ์๋ ค ์๋จ ๊ณ ์ ์ด ๋ฌดํจํ๋๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค. - ์ ์ญ ๋จ์ถํค ๋ฑ๋ก ์ค๋ฅ ๋ฌด์: ์ด๋ฏธ ๋ฑ๋ก๋ ๋จ์ถํค ์ถฉ๋ ์ ์ฑ ์์์ด ์ค๋จ๋์ง ์๋๋ก ์์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฐํํ์ต๋๋ค.
v1.5.0 (2026-06-26)
- ๋ง๊ทธ๋ท ๋ํน/๊ทธ๋ฃนํ ๊ธฐ๋ฅ ์์ฑ: ๋ชจ๋ํฐ ๊ฐ์ฅ์๋ฆฌ์์ 2๊ฐ ์ด์์ ๋ฉ๋ชจ๋ฅผ ๊ฒน์ณ ๊ทธ๋ฃน์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ธ๋ก ๋ฐฉํฅ ์ ๊ฐ: ์/ํ/์ข/์ฐ ์ด๋์ ๋ํนํ๋ ๋ฉ๋ชจ ๋ชฉ๋ก์ด ์ฝ๊ธฐ ํธํ ์ธ๋ก(์๋์ชฝ) ๋ฐฉํฅ์ผ๋ก ๋ถ๋๋ฝ๊ฒ ํผ์ณ์ง๋๋ค.
- ์ฒซ ๋ฒ์งธ ๋ฉ๋ชจ ์ ๊ทผ์ฑ ๊ฐ์ : ๊ทธ๋ฃน์ ํผ์ณค์ ๋ ์ฒซ ๋ฒ์งธ ๋ฉ๋ชจ(๋ฆฌ๋) ์ฐฝ์ด ํ์ฅ๋์ด ๊ทธ๋ฃน๋ช ๊ณผ ๋ฉ๋ชจ ์ ๋ชฉ์ด ๋ชจ๋ ํ์๋๋ฉฐ, ๊ฐ๋ณ ํด๋ฆญ์ผ๋ก ์ธ๋ํนํ ์ ์์ต๋๋ค.
- ์์ฒด ์ปค์คํ ๋ชจ๋ฌ ์ ์ฉ: ๊ทธ๋ฃน๋ช ์ง์ ์ ํ๋ฉด ๊ฐ์ฅ์๋ฆฌ์์ ๊ธฐ๋ณธ ํ์ ์ด ์๋ฆฌ๊ฑฐ๋ ์ธ์ฝ๋ฉ์ด ๊นจ์ง๋ ํ์์ ์์ฒด ์ ์ HTML ๋ชจ๋ฌ๋ก ์๋ฒฝํ ํด๊ฒฐํ์ต๋๋ค.
- DPI ๋๋๊ทธ ์ค์ฐจ ์์ : ์๋์ฐ ๋์คํ๋ ์ด ๋ฐฐ์จ(125%, 150% ๋ฑ) ํ๊ฒฝ์์ ๋ฉ๋ชจ ์ด๋ ์ ๋ง์ฐ์ค ํฌ์ธํฐ์ ์ฐฝ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ด์ง๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค.
v1.4.9 (2026-06-26)
- ๋ฐ์คํฌํ ์ฑ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์์ : ๋ฆด๋ฆฌ์ฆ ์ ์ด์ ๋ฒ์ ์คํํ์ผ์ด ํจ๊ป ์ ๋ก๋๋๋ ๋ฌธ์ ์์ .
- ํธ์ง ๋ชจ๋ ์ง์ UX ๊ฐ์ : ๋ฐํํ๋ฉด ๋ฉ๋ชจ ํธ์ง ๋ชจ๋ ์ง์ ์ ๊ธฐ๋ณธ "์ํด๋ฆญ"์ผ๋ก ๋ณ๊ฒฝ.
- UI ๋ ์ด์์ ์์ ์ฑ ๊ฐํ:
- ๋ฉ๋ชจ ๋ทฐ ๋ชจ๋์ ํธ์ง ๋ชจ๋ ์ ํ ์ ๋ฐ์ํ๋ ๋ฏธ์ธํ ํ๋ฉด ๊ฟ๋ ๊ฑฐ๋ฆผ(Layout Shift) ํ์ ์ ๊ฑฐ.
- ๋ฐํํ๋ฉด ๋ฉ๋ชจ ํฌ๊ธฐ ์กฐ์ ์ ๋ฉ๋์ ์ฐฝ์ด ๋ถํ์ํ๊ฒ ํ๋ค๋ฆฌ๋ฉฐ ๋ฆฌ๋ ๋๋ง๋๋ ์ฑ๋ฅ ๋ฌธ์ ํด๊ฒฐ (์์ ์์น/ํฌ๊ธฐ ์กฐ์ ์์๋ ๋๊ธฐํ ์ ํธ ์ ์ธ ๋ฐ ์ต์ข ์์ ์๊ฐ ๋ฏธ๊ฐฑ์ ).
- ๋ฉ๋์ ์ฐฝ ๋ด ์ ํ ๋ฉ๋ชจ ๋ชฉ๋ก์์ '๋ฐํํ๋ฉด์์ ์คํฐ์ปค ์ด๊ธฐ' ์์ด์ฝ์ด ๋ค์ดํฐ๋ธ ํฌ๊ธฐ ์กฐ์ ํธ๋ค์ ๊ฐ๋ ค์ ธ ํด๋ฆญํ ์ ์๋ ๋ฌธ์ ์์ .
v1.4.0 (2026-06-21)
- ์๋๋ก์ด๋ ์นด๋ฉ๋ผ & STT ๋ฉ๋ชจ ์์ ฏ ์ถ๊ฐ:
- ์ค๋งํธํฐ ๋ฐํํ๋ฉด์์ ์ฆ์ ๋ฉ๋ชจ๋ฅผ ์์ฑํ ์ ์๋ ๋์ผ ๋ฒํผ(์นด๋ฉ๋ผ/์์ฑ) ๋ค์ดํฐ๋ธ ์์ ฏ์ ์ถ์ํ์ต๋๋ค.
- ์์ ฏ์์ ์นด๋ฉ๋ผ ์์ด์ฝ์ ๋๋ฅด๋ฉด ์ฑ์ด ์ฆ์ ์นด๋ฉ๋ผ๋ฅผ ์ด๊ณ ์ดฌ์๋ ์ฌ์ง์ ํฌํจํ๋ ์๋ก์ด ํด๋ผ๋ก์ด๋ ์คํ์ผ ๋ฉ๋ชจ๋ฅผ ์ฝ๋๋ค.
- ์์ ฏ์์ ๋ง์ดํฌ(STT) ์์ด์ฝ์ ๋๋ฅด๋ฉด
#์์ฑ๋ฉ๋ชจํ๊ทธ๊ฐ ๋ฌ๋ฆฐ ์ ๋ฉ๋ชจ๊ฐ ์ด๋ฆฌ๋ฉฐ ์ฆ์ ์์ฑ์ ํ ์คํธ๋ก ๋ฐ์ ์ ์ ์ ์์ต๋๋ค.
v1.3.40 (2026-06-15)
- ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐ์คํฌํฑ ์ธ๋ผ์ธ ์ด๋ฏธ์ง ํธํ์ฑ ๊ตฌํ:
- ๋ฐ์คํฌํฑ์ ์ ์ฉ๋ ์ธ๋ผ์ธ ์ด๋ฏธ์ง ๊ตฌ๋ฌธ(
@[[์ด๋ฏธ์ง]])์ ๋ชจ๋ฐ์ผ ์ฑ์์๋ ๋์ผํ๊ฒ ์ง์ํฉ๋๋ค. - ๋ชจ๋ฐ์ผ ๋ชฉ๋ก ์นด๋์ ๋ณธ๋ฌธ ๋ด์ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ํ
์คํธ ์์ญ ๋ด์
WidgetSpan์ ์ฌ์ฉํด ์ธ๋ผ์ธ์ผ๋ก ๋ ๋๋งํ๊ณ , ์๋ํฐ์์ ์ด๋ฏธ์ง ์ฒจ๋ถ ์@[[์ด๋ฏธ์ง]]ํ๊ทธ๋ฅผ ์ปค์ ์์ญ์ ์๋์ผ๋ก ์ฝ์ ํฉ๋๋ค. - ์ด๋ฏธ์ง ์ญ์ ์ ๋ณธ๋ฌธ ๋ด
@[[์ด๋ฏธ์ง]]ํ๊ทธ๊ฐ ์๋์ผ๋ก ํจ๊ป ์ ๋ฆฌ๋๋๋ก ๊ฐ์ ํ์์ต๋๋ค. - ์ธ๋ถ ๊ณต์ ์์ ์ ์ด๋ฏธ์ง ๋ฉ๋ชจ์
@[[์ด๋ฏธ์ง]]ํ๊ทธ๋ฅผ ๊ธฐ๋ณธ ์ฝ์ ํ๋๋ก ์ฐ๋ํ์ต๋๋ค.
- ๋ฐ์คํฌํฑ์ ์ ์ฉ๋ ์ธ๋ผ์ธ ์ด๋ฏธ์ง ๊ตฌ๋ฌธ(
- ๋จ์ถํค ์ปค์คํ
์ค์ ๋ฐ ์ค๋ณต ๋ฐฉ์ง ๊ธฐ๋ฅ ์์ฑ:
- ์ค์ ํ๋ฉด์์ ๋จ์ถํค๋ฅผ ์ค์๊ฐ์ผ๋ก ์ง์ ๋ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ฉฐ, ์ค๋ณต ๋จ์ถํค ์ ๋ ฅ์ ์ฐจ๋จํ๋ ๊ธฐ๋ฅ์ ํ์ฌํ์ต๋๋ค.
- ๋จ์ถํค ์๋ด ์ฐฝ ๋ฐ ๋งค๋์ ํ์ ๊ฐ์ด๋์ ๋ณ๊ฒฝ๋ ์ฌ์ฉ์ ๋จ์ถํค ์ ๋ณด๊ฐ ์ค์๊ฐ์ผ๋ก ๋์ ์ฐ๋๋๋๋ก ์๋ฃํ์ต๋๋ค.
- ๋์๋ณด๋์ ํ๊ทธ ํํฐ "์ ์ฒด" ๋ฒํผ ๋ฏธ๋์ ์ค๋ฅ ๋ฐ ํญ์์ ํดํ ๊ฒน์นจ ํ์์ ํด๊ฒฐํ๊ณ ์ค์ ์ฐฝ์ ๋์ด๋ฅผ 860px๋ก ํ๋ํ์ฌ ์ฌ์ฉ์ฑ์ ์ฆ๋ํ์ต๋๋ค.
v1.3.39 (2026-06-14)
-
๋จ์ถํค ๋งค๋์ ๋์ ์ฐ๋ ๋ฐ ๋ค๊ตญ์ด ๊ฐฑ์ :
- ๋จ์ถํค ๋ฐ ๋ณธ๋ฌธ ์ด๋ฏธ์ง ์ฝ์ ์๋ด ์ฐฝ์ ๋ค๊ตญ์ด๋ก ์ถ๊ฐ ๊ฐฑ์ ํ๊ณ ๋จ์ถํค ๋งค๋์ ํฌ๊ธฐ๋ฅผ ํ๋ํ์์ต๋๋ค.
-
๋ฒ์ ๋ณ๊ฒฝ ์ ๋จ์ถํค ํ์ ์๋ ๋ฆฌ์ :
- ์ฑ ๋ฒ์ ์ด ๋ณ๊ฒฝ๋๋ฉด 7์ผ ๋นํ์ ์ค์ ์ ๋ฌด์ํ๊ณ ๋จ์ถํค ์๋ด ํ์ ์ด ๋ฌด์กฐ๊ฑด ํ์๋๋๋ก ๊ฐ์ ํ์ต๋๋ค.
localStorage์ ๋ง์ง๋ง์ผ๋ก ํ์ ์ด ํ์๋ ๋ฒ์ ์ ์ ์ฅํ์ฌ ๋ฒ์ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ๊ฐ์งํฉ๋๋ค.- Python API
get_app_version()์ ์ถ๊ฐํ์ฌ JS์์ ํ์ฌ ์ฑ ๋ฒ์ ์ ์กฐํํ ์ ์๋๋ก ํ์ต๋๋ค.
v1.3.37 (2026-06-14)
- ๋จ์ถํค ํ์
๋ณต๊ตฌ, ๋งค๋์ ์ฐฝ ๋ฐฐ์น ๋ฐ ๋์ด ์ต์ ํ, ์ ๋ฉ๋ชจ ํ์
์์น ๊ฐ์ :
- ๋์๋ณด๋์ ๋ถ๋ฆฌ๋์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋จ๋ ๋จ์ถํค ์๋ด ํ์ ์ฐฝ์ ๋ค์ ๋งค๋์ ์ฐฝ ๋ด๋ถ์ ๋ชจ๋ฌ ํ์ ๋ ์ด์์์ผ๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
- ๋งค๋์ ๋์๋ณด๋ ์ฐฝ์ ๊ธฐ๋ณธ ๋์ด๋ฅผ 600px์์ 750px๋ก ์ถฉ๋ถํ ๋์ฌ ๋ด๋ถ ํ์ ์ฐฝ์ด ๋ด์ฉ์ ๋ง์ด ๊ฐ๋ฆฌ์ง ์๋๋ก ์ฌ์ฉ์ฑ์ ๊ฐ์ ํ์ต๋๋ค.
- ๋งค๋์ ์ฐฝ์ด ์คํ๋ ๋ ํ๋ฉด์ ์ ์ค์์ ๋จ๋๋ก ๋ฐฐ์น ์ขํ ๊ณ์ฐ์ ์ฐ๋ํ์ต๋๋ค.
- ์ ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์์ฑํ ๋ ํ๋ฉด ์ค์์ด ์๋ ํ๋ฉด์ ์ฐ์ธก ์์ญ(๊ฐ์ฅ์๋ฆฌ ๋ฐฉํฅ) ์ค์์ ํ์ ๋๋๋ก ์๋ ๋ฐฐ์น ์ขํ๋ฅผ ๊ฐ์ ํ์ฌ ํ๋ฉด ๊ฐ๋ฆผ์ ์ต์ํํ์ต๋๋ค.
v1.3.36 (2026-06-14)
- ๋ชจ๋ฐ์ผ ๋ฒ์ ๋ฉ๋ชจ ํธ์ง๊ธฐ ํด๋ฐ ์ค๋ฒํ๋ก์ฐ ๋ฌธ์ ํด๊ฒฐ ๋ฐ ๋ฒ์ ํ์ ๋๊ธฐํ:
- ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ(Android ์๋ฎฌ๋ ์ดํฐ ๋ฑ)์์ ๋ฉ๋ชจ ํธ์ง ์ฐฝ(
_NoteEditorSheet)์ ์ด์์ ๋ ์๋จ ํด๋ฐ๊ฐ ๊ฐ๋ก๋ก ๋์ณRIGHT OVERFLOWED BY 40 PIXELS๋ ์ด์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค. - ๊ธฐ์กด ๋จ์ผ ํ ๊ตฌ์ฑ์ **'ํ ๋ง ์์ ์ ํ ํ'**๊ณผ **'์ก์ ๋ฒํผ ํ'**์ 2๋จ ๋ ์ด์์์ผ๋ก ๋ถ๋ฆฌํ์ต๋๋ค.
- ๋ชจ๋ ์ก์
์์ด์ฝ ๋ฒํผ(์ ์ฅ ์ฒดํฌ ๋ฒํผ ํฌํจ)์
visualDensity: VisualDensity.compact,constraints: BoxConstraints(),padding: EdgeInsets.all(6)์์ฑ์ ๊ท ์ผํ๊ฒ ์ ์ฉํ์ฌ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ๊ฐ๋ก ํด์๋(320dp ์ด์)์์ ์ค๋ฒํ๋ก์ฐ ์์ด ๋ ๋๋ง๋๋๋ก ์์ ํ์ต๋๋ค. - ๋ชจ๋ฐ์ผ ๋ฒ์ ํค๋์ ๋ฒ์ ํ์๋ฅผ ํ๋์ฝ๋ฉ๋
V1.2์์ ๋น๋ ๋ฒ์ ์ธV1.3.36์ผ๋ก ๋๊ธฐํํ์ต๋๋ค.
- ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ(Android ์๋ฎฌ๋ ์ดํฐ ๋ฑ)์์ ๋ฉ๋ชจ ํธ์ง ์ฐฝ(
v1.3.35 (2026-06-11)
- ์
๋ ฅ ํ๋ฌ๊ทธ์ธ ํ์ผ ์ ํ ๋ชจ๋ฌ ๋ฐ ๋งค๋์ ์ ํ/ํผ์นจ ๊ทธ๋ฃน ์ ๋ ฌ ์์ :
- Windows ํ๊ฒฝ์ ์ค์ ์ฐฝ์์ "์ ๋ ฅ ํ๋ฌ๊ทธ์ธ ์ค์ " ์, ํด๋ ๋ฒํผ์ ๋๋ฌ๋ ํ์ผ ์ ํ ๋ชจ๋ฌ์ฐฝ(create_file_dialog)์ด ๋จ์ง ์๊ณ invalid file filter (*.py) ์๋ฌ๊ฐ ๋ฐ์ํ๋ PyWebView ๋ฒ๊ทธ ์์ .
- ๊ด๋ฆฌ์ ๋์๋ณด๋ ์ฐฝ์ ์ ํ ๋ฉ๋ชจ์ ํผ์น ๋ฉ๋ชจ๋ฅผ ๊ตฌํํ์ฌ ๊น๋ํ๊ฒ ์ ๋ฆฌํด์ฃผ๋ "๊ทธ๋ฃน ์ ๋ ฌ ๋ ์ด์์ ๋ชจ๋" ๋ฒํผ ๋ฐ ์ง์ ์ค์ ์ํ ์ฐ๋ ์ถ๊ฐ.
v1.3.34 (2026-06-11)
- ๋จ์ถํค ๋ฐ ๋ณธ๋ฌธ ์ก์
๊ณ ๋ํ & ๊ด๋ฆฌ์ ๋ ์ด์์ ๋ฒ๊ทธ ์์ :
- Windows ํ๊ฒฝ์์ ์ธ์ ์ด๋์๋ ์ ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ ์ญ ๋จ์ถํค(
Ctrl+N) ๊ตฌํ (์ค์ ํ๋ฉด์์ ๊ฐ๋ณ ๋จ์ถํค ํ์ฑํ ์ฌ๋ถ ์ค์๊ฐ ์ฐ๋). - ๋ฉ๋ชจ ์ฐฝ ํค๋ ์ข์ธก์ ์ ๋ฉ๋ชจ๋ฅผ ๋ง์ฐ์ค ํด๋ฆญ์ผ๋ก ๋ฐ๋ก ์ด ์ ์๋
+์์ด์ฝ ์ถ๊ฐ. - ๋ฉ๋ชจ ๋ณธ๋ฌธ ์ฐ์ธก ์๋จ์ ๋ฉ๋ชจ ์ ์ฒด ๋ด์ฉ์ ํด๋ฆฝ๋ณด๋๋ก ๋ณต์ฌํ๋ ํ๋กํ
๋ณต์ฌ ๋ฒํผ ์ถ๊ฐ (์ ํ ์์ ํ
๋ง์ ๋ง์ถฐ ํฌ๋ช
๋์ ํ์ ์๊ฐ์ด ์กฐํ๋กญ๊ฒ ์๋ ๋ณด์ ๋๋ฉฐ, ๋ณต์ฌ ์ฑ๊ณต ์ ์๊ฐ ํผ๋๋ฐฑ์ผ๋ก ์ฒดํฌ ์์ด์ฝ(
โ) ์ผ์ ํ์). - ๊ธฐ๋ณธ ์์ ํ๋ฌ๊ทธ์ธ 3์ข
(
datetime_plugin,meeting_minutes_plugin,book_search_plugin)์ ๋ฉ๋ชจ๋ด ์ค์ ์ธ์ด(ํ๊ตญ์ด, ์์ด, ์ผ๋ณธ์ด, ์ค๊ตญ์ด)๋ฅผ ๋์ ์ผ๋ก ๊ฐ์งํ์ฌ ํ์ํ๋ ๋ค๊ตญ์ด ์ง์ ์ค๊ณ ์ ์ฉ. - ๊ด๋ฆฌ์ ์ฐฝ์์ ํญ์ ์ ํํ๋ค๊ฐ ๋ก์ปฌ ๋ฉ๋ชจ ํญ์ผ๋ก ๋๋์์ฌ ๋ Grid ๋ฐ๋ํ ์ ๋ ฌ ๋ ์ด์์์ด ๊นจ์ง๊ณ ์ผ๋ ฌ๋ก ํฌ๊ฐ์ง๋ CSS/JS display ์ด๊ธฐํ ๋ฒ๊ทธ ํด๊ฒฐ.
- Windows ํ๊ฒฝ์์ ์ธ์ ์ด๋์๋ ์ ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ ์ญ ๋จ์ถํค(
v1.3.33 (2026-06-11)
- ํ๋ฌ๊ทธ์ธ ํด๋ ๊ฒฉ๋ฆฌ ๋ฐ ๊ธฐ๋ฅ ๊ณ ๋ํ:
- ํ๋ฌ๊ทธ์ธ ์ ์ฅ ํด๋๋ฅผ ์คํ ํ์ผ ๊ฒฝ๋ก ๊ธฐ์ค์
pluginsํด๋๋ก ๊ณ ์ . - ์ค์ ๋ฉ๋ด(Settings)์์๋ ์ต๋ 5๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ฌ๋กฏ์ ์ง์ (๋ฑ๋ก)ํ ์ ์๋๋ก ์ ํ ์ ์ง.
- ๋ฉ๋ชจ ์ฐฝ์ ํ๋ฌ๊ทธ์ธ ๋ฉ๋ด(Popover) ๋ฐ ์ธ๋ผ์ธ ํค์๋ ๋จ์ถ ์ปค๋งจ๋(
//triggerName//) ์ ๋ ฅ ์,pluginsํด๋ ๋ด์ ์์นํ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ์ ๋์ ์ผ๋ก ๊ฐ์งํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ์ . - ์ฌ๋กฏ ๋ฑ๋ก ์ ์ธ๋ถ ๊ฒฝ๋ก ํ์ผ์ ์ ํํ๋ฉด ์๋์ผ๋ก
pluginsํด๋๋ก ๋ณต์ฌ ๋ฐ ํ์ผ๋ช ๊ธฐ๋ฐ์ผ๋ก ๋ฑ๋ก๋๋๋ก ๊ฐ์ .
- ํ๋ฌ๊ทธ์ธ ์ ์ฅ ํด๋๋ฅผ ์คํ ํ์ผ ๊ฒฝ๋ก ๊ธฐ์ค์
v1.3.32 (2026-06-11)
- ์
๋ ฅ ํ๋ฌ๊ทธ์ธ(Input Plugin) ์์คํ
ํ์ฌ:
- Python ํด๋์ค ๊ธฐ๋ฐ์ ํ๋ฌ๊ทธ์ธ ๋์ ๋ก๋ ๋ฐ ์ค์๊ฐ ํซ๋ฆฌ๋ก๋ ๊ธฐ๋ฅ ๊ตฌํ.
- ๋จ์ ํ
์คํธ ์ฝ์
/๊ฐ๊ณตํ(
text), ๋ํํ ์ ๋ ฅ ๋ง๋ฒ์ฌ ํผ(form), ์ค์๊ฐ ์ธ๋ถ API ๋์ ๊ฒ์(search)์ 3๊ฐ์ง ํต์ฌ ํ๋ฌ๊ทธ์ธ ์คํค๋ง์ ๊ธฐ๋ณธ ์ํ ํ๋ฌ๊ทธ์ธ 3์ข ๋ฐฐํฌ. - ๋ฉ๋ชจ ์๋ํฐ ๋ด์์
//triggerName//์ธ๋ผ์ธ ์ ๋ ฅ์ ํตํด ํ๋ฌ๊ทธ์ธ์ ๋จ์ถ ํธ์ถํ๋ ์ค์๊ฐ ๊ฐ์ง ๊ธฐ๋ฅ ๊ตฌํ. - ํ๋ฌ๊ทธ์ธ ์์ ์ฝ์
์
{{placeholder}}ํญ ์ด๋ ๋ฐ ๋ธ๋ก ์ง์ ์ง์ (Tab-stop Placeholder Navigation).
v1.3.31 (2026-06-11)
- ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐ์คํฌํฑ 10์ ํ
๋ง ์ปฌ๋ฌ ํ๋ ํธ ๋์ ํ์ฅ:
- ๊ธฐ์กด 5์์์ ์ฃผํฉ(Orange), ๋ฏผํธ(Teal), ์ฅ๋ฏธ(Rose), ๋ผ๋ฒค๋(Lavender), ํ์(Gray)์ 5๊ฐ์ง ์ธ๋ จ๋ ํ์คํ ํค ์์์ ์ถ๊ฐํ์ฌ ์ด 10๊ฐ์ง ์์์ ์ง์ํ๋๋ก ๋ฐ์คํฌํฑ๊ณผ ๋ชจ๋ฐ์ผ ์ฑ(Flutter)์ ๋์ ๊ฐฑ์ ํ์ต๋๋ค.
- ๋ฐ์คํฌํฑ ์์ ์ ํ UI ๊ฐ์ํ: ๊ฐ๋ก๋ก 5๊ฐ ๋์ด๋๋ ์์ ๋ฒํผ๋ค์ 1๊ฐ์ ํ๋ ํธ ์์ด์ฝ ๋ฒํผ์ผ๋ก ์ถ์ํ๊ณ , ํด๋ฆญ ์ 10์์ ์ปฌ๋ฌ์นฉ์ด ๋ฐ๋ํ ๋ฐฐ์ด๋ก ๊น๋ํ๊ฒ ์ด๋ฆฌ๋ ํ์ค๋ฒ(Popover) ๋๋กญ๋ค์ด ์ฐฝ์ ๊ตฌํํ์ต๋๋ค.
- ๋ชจ๋ฐ์ผ ์ฑ(Flutter) ํธํ์ฑ ๋ฐ ํ ์คํธ ์์ ํ: ๋ชจ๋ฐ์ผ์์๋ 10์์ด ๊ฐ๋ก ์คํฌ๋กค๋ก ์ ํ ๊ฐ๋ฅํ๋ฉฐ, Flutter Analyzer ๋ฐ ๊ธฐ์กด widget_test.dart ์์ค ๋ด์ ๋น๋ ์๋ฌ๋ฅผ ์๋ฒฝํ ํด์ํ์ต๋๋ค.
- ์ฃ์งํญ ๊ฒน์นจ ํ์ ์ ๋ฐ ์ ์ด ๋ฐ ํธ๋ค ๊ฐ์ง ์์ธ ์ฒ๋ฆฌ:
- Windows์ DWM ๊ทธ๋ฆผ์ ๋ง์ง ๋๋ ๋ณด์ด์ง ์๋ ํ
๋๋ฆฌ ํฝ์
์ค์ฐจ๋ก ์ธํด ๋ฐ์ํ๋ ์ฃ์งํญ(Edge Tab)์ ์ํ/์ข์ฐ ๋ฏธ์ธ ๊ฒน์นจ ๋ฒ๊ทธ๋ฅผ 4px์ ๋ฌผ๋ฆฌ์ ์ ๋ ฌ ๊ฐ๊ฒฉ ๋ฒํผ(
spacing = 4)๋ฅผ ์ ์ฉํ์ฌ ์๋ฒฝํ๊ฒ ํด์ํ์ต๋๋ค. - ํฌ๊ธฐ ์กฐ์ ์ด๋ ๊ณ ์ ๊ธฐ๋ฅ์ ๋๋ฅด์ง ์๊ณ ์ฆ๊ฐ ์ฃ์งํญ์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์๋์ฐ ํธ๋ค(
hwnd)์ด ์ฆ๊ฐ ํด์ํ(Resolution)๋์ด ์ค์ฐจ ์์ด ์ค๋ ๋๋๋ก ๋ฐฑ์๋ ์์ ์ฅ์น๋ฅผ ๋ณํฉํ์ต๋๋ค.
- Windows์ DWM ๊ทธ๋ฆผ์ ๋ง์ง ๋๋ ๋ณด์ด์ง ์๋ ํ
๋๋ฆฌ ํฝ์
์ค์ฐจ๋ก ์ธํด ๋ฐ์ํ๋ ์ฃ์งํญ(Edge Tab)์ ์ํ/์ข์ฐ ๋ฏธ์ธ ๊ฒน์นจ ๋ฒ๊ทธ๋ฅผ 4px์ ๋ฌผ๋ฆฌ์ ์ ๋ ฌ ๊ฐ๊ฒฉ ๋ฒํผ(
- ๋ฉ๋ชจ ๊ฐ๋กํญ ํฌ๊ธฐ ์กฐ์ ์ผ๊ด์ฑ ํต์ผ:
- ๋ฉ๋ชจ๋ฅผ ์ ์์ ๋์ ํ์ ๋ ์กฐ์ ํ ์ ์๋ ๊ฐ๋กํญ์ ์ต์๊ฐ์
140px๋ก ์ํธ ์ผ์น์์ผ ์ ๊ธฐ/ํด๊ธฐ ์ํ ์ ํ ์์ ๋ ์ด์์ ์ด๊ธ๋จ์ ์ต์ ํํ์ต๋๋ค.
- ๋ฉ๋ชจ๋ฅผ ์ ์์ ๋์ ํ์ ๋ ์กฐ์ ํ ์ ์๋ ๊ฐ๋กํญ์ ์ต์๊ฐ์
v1.3.30 (2026-06-11)
- ํ๋ฉด ๊ฐ์ฅ์๋ฆฌ ๋ํน ๊ธฐ๋ฅ์ ์ ์ ๋ช
์นญ์ '์ฃ์งํญ(Edge Tab)'์ผ๋ก ๋ช
๋ช
๋ฐ ๊ธฐ๋ฅ ๊ณ ๋ํ:
- ํ๋ฉด ์ข์ธก, ์ฐ์ธก, ์๋จ ๊ฐ์ฅ์๋ฆฌ์ ๋๋๊ทธ ์ ์ฑ ๊ฐํผ ์์ธ ๋ชจ์์ผ๋ก ๋ฌ๋ผ๋ถ๋ ์ค๋ ๊ธฐ๋ฅ์ **'์ฃ์งํญ(Edge Tab)'**์ผ๋ก ๊ณต์ ์ ์ํ์ต๋๋ค.
- ์ข/์ฐ์ธก ์ฌ์ด๋ ์ฃ์งํญ ๋ผ๋ฒจ ๊ฐ๋ ์ฑ ๊ณ ๋ํ: WebView2 ๋ ๋๋ง ์์ง์์ 90๋ ํ์ ์ ํฐํธ๊ฐ ๊นจ์ง๊ฑฐ๋ ์๋ต๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ๊ทธ๋ ์ด์ค์ผ์ผ ์ํฐ์จ๋ฆฌ์ด์ฑ ๋ฐ 3D GPU ๊ฐ์ ์ต์ ์ ์ฐ๋ํ์ฌ ๊ธ์๊ฐ ๋งค์ฐ ๊นจ๋ํ๊ณ ์ ๋ช ํ๊ฒ ๋ ๋๋ง๋๋๋ก ๊ฐ์ ํ์ต๋๋ค.
- ํฐํธ ์คํ์ผ ์ฝคํฉํธ ์ต์ ํ: ์ฃ์งํญ์ ๋ผ๋ฒจ ํฌ๊ธฐ๋ฅผ
11px, ์ธ๋ฏธ๋ณผ๋(font-weight: 600)๋ก ์ถ์ ๋ฐ ๋ฏธ๋๋ฉํ๊ฒ ์ค๊ณํ์ฌ ๊น๋ํ ์ธ๊ด์ ์์ฑํ์ต๋๋ค. - ์ค๋ฆฌ์ง๋ ๋จ์ ํ ๋ง ๋ฐ ๊ณ ๋๋น ์์ ์ ์ง: ํฌ๋ช ๋ ์ ๊ฑฐ์ ํจ๊ป ๋ฉ๋ชจ์ฅ ๋ณธ์ฐ์ ์ค๋ฆฌ์ง๋ ์๋ฆฌ๋ ์ปฌ๋ฌ๋ฅผ ๊ทธ๋๋ก ์ ์ฉํด ์ผ์ฒด๊ฐ์ ๊ทน๋ํํ์ต๋๋ค.
- ์ฃ์งํญ ๊ฒน์นจ ๋ฐฉ์ง (Non-Overlapping Snap): ์ฌ๋ฌ ๊ฐ์ ๋ฉ๋ชจ๊ฐ ๋์ผํ ์ฃ์ง ์์ญ์ ๋ํน๋ ๋, ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ฒน์ณ์ง์ง ์๊ณ ๋น์ด ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณต๊ฐ์ ์์ฐจ์ ์ผ๋ก ์ ๋ ฌ๋๋๋ก ์ถฉ๋ ๋ฐฉ์ง ๊ณต๊ฐ ๋ถ๋ฐฐ(Interval Snap) ๋ก์ง์ ์ฐ๋ํ์ต๋๋ค.
v1.3.28 (2026-06-09)
- ๋ค๊ตญ์ด ์ค์ ํ๋ฉด ๋ฒ์ญ ๋งคํ ๋ฒ๊ทธ ์์ :
- ์ค์ ์ฐฝ์ ์ผ๋ถ ์ต์ (ํ๋ก๊ทธ๋จ ์คํ ์ค์ , OS ์์ ์ ์๋ ์คํ, ์ฌ์ฉํ ๋ชจ๋ธ ๋ฑ)์ data-i18n ์์ฑ์ด ์ค๋ณต๋๊ฑฐ๋ ์๋ชป ์ง์ ๋์ด ์ผ์ด ๋ฑ ๋ค๋ฅธ ์ธ์ด ์ ํ ์ ๋ผ๋ฒจ ํ ์คํธ๊ฐ ์๋ฑํ ๋ด์ฉ์ผ๋ก ์ถ๋ ฅ๋๋ ์ค๋ฅ๋ฅผ ๊ฐ๋ณ ๋งคํ ํค ์ ์ค์ ํตํด ํด๊ฒฐํ์ต๋๋ค.
v1.3.27 (2026-06-09)
- ๋ค๊ตญ์ด ์ค์ ๋ฐ ์ค์๊ฐ ๋ฒ์ญ ๋๊ธฐํ:
- ์ค์ ๋ฉ๋ด์ "์ธ์ด ์ค์ (Language)" ๋๋กญ๋ค์ด์ ์ถ๊ฐํ๊ณ , ํ๊ตญ์ด, ์์ด, ์ค๊ตญ์ด, ์ผ์ด, ๋ฌ์์์ด, ํ๋์ค์ด, ์ดํ๋ฆฌ์์ด 7๊ฐ ๊ตญ์ด ํฉ ์ง์์ ์ ์คํ์์ต๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ธ์ด ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ๋ฉ์ธ ๋์๋ณด๋ ๋ฐ ๋ ์๋ ๋ชจ๋ ์คํฐ์ปค ๋ฉ๋ชจ ์ฐฝ์ ์๋ก๊ณ ์นจ ์์ด ์ค์๊ฐ์ผ๋ก ๋ค๊ตญ์ด ๋ฒ์ญ์ด ์ ํ ๋ฐ ๊ฐฑ์ ๋๋๋ก ๊ฐ์ ํ์์ต๋๋ค.
- ๋น๋(PyInstaller) ๋ฐ ๋ฐฐํฌ ํจํค์ง ๊ตฌ์ฑ์ ์ธ์ด ๋ฆฌ์์ค(
languages/*)๊ฐ ๋๋ฝ๋์ง ์๋๋ก ๋์ ๋ฐํ์ ๊ฒฝ๋ก ํด๊ฒฐ ๋ฐ ์ค์ ์ ๋ณด์ํ์์ต๋๋ค.
- ์ด์ํ ๋ฉ๋ชจ ์ฐฝ ์ ๊ธ ํด์ /๋ซ๊ธฐ ๋ฒํผ ์๋ฆผ ๋ฌธ์ ๊ฐ์ :
- ์คํฐ์ปค ์ฐฝ์ ์ธ๋ก ๋์ด๊ฐ 180px ์ดํ๋ก ์ข์์ก์ ๋, ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ๋ฐ ํ์ธ์ฐฝ์ ์ ๊ธ ์์ด์ฝ์ ์จ๊ธฐ๊ณ ์์๋ฅผ ๊ฐ๋ก(row)๋ก ์ปดํฉํธํ๊ฒ ์ ๋ ฌํ๋ ๋ฐ์ํ CSS ๊ณ ๋ํ๋ฅผ ํตํด ํด์ /๋ซ๊ธฐ ๋ฒํผ์ด ๋ณด์ด์ง ์๊ฑฐ๋ ์๋ฆฌ์ง ์๋๋ก ์๋ฒฝํ ๋์ํ์์ต๋๋ค.
v1.3.26 (2026-06-09)
- ํ๊ธ ์
๋ ฅ ์ํ์์์ ๊ธ๋ก๋ฒ ๋จ์ถํค ์๋ ์คํจ ๋ฒ๊ทธ ํด๊ฒฐ:
- ๊ฐ๋ณ ๋ฉ๋ชจ ์คํฐ์ปค ์ฐฝ์ด๋ ๋งค๋์ ๋์๋ณด๋ ๋ด์์ ํ๊ธ ์
๋ ฅ ๋ชจ๋๋ก ์ค์ ๋์ด ์์ ๋,
Ctrl+L(์ ๊ธฐ/ํด๊ธฐ),Ctrl+D(์ญ์ ),Ctrl+P(๊ณ ์ ),Ctrl+N(์ ๋ฉ๋ชจ),Ctrl+S(๋๊ธฐํ) ๋ฑ์ ๋จ์ถํค๊ฐ ์๋ํ์ง ์๋ ์น๋ช ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. - ๋ธ๋ผ์ฐ์ keydown ์ด๋ฒคํธ์
e.keyํ๋ณ ์ธ์ ํค๋ณด๋์ ๋ฌผ๋ฆฌ์ ์์น๋ฅผ ๋ํ๋ด๋e.codeํ๋ณ ๊ฒ์ฌ๋ฅผ ๋ณํฉํ์ฌ ์ ๋ ฅ ์ํ์ 100% ๋ฌด๊ดํ๊ฒ ๋จ์ถํค๊ฐ ์ฆ๊ฐ ์คํ๋๋๋ก ๋ณด์ํ์ต๋๋ค.
- ๊ฐ๋ณ ๋ฉ๋ชจ ์คํฐ์ปค ์ฐฝ์ด๋ ๋งค๋์ ๋์๋ณด๋ ๋ด์์ ํ๊ธ ์
๋ ฅ ๋ชจ๋๋ก ์ค์ ๋์ด ์์ ๋,
v1.3.25 (2026-06-08)
- ๊ด๊ณ ๊ทธ๋ํ ๋ด 'AI ์ฐ๊ฒฐ ์ถ์ฒ' ๋ฉ๋ด ๋ฐ ์๋ ์ํค๋งํฌ ์ฐ๋ ๊ธฐ๋ฅ ์ ์ค (PyPI ๋ฐฐํฌ ์๋ฃ):
- ๊ด๊ณ ๊ทธ๋ํ(Relationship Graph) ์๋จ์ [AI ์ฐ๊ฒฐ ์ถ์ฒ] ๋ฒํผ์ ์๋ก ๋ฐฐ์นํ๊ณ , ์ด๋ฅผ ํตํด ์๋ฏธ๋ก ์ ์ธ ๊ด๋ จ์ฑ์ ๊น์ง๋ง ์์ง ์ํค๋งํฌ(
[[ ]])๋ก ์ฐ๊ฒฐ๋์ง ์์ ๋ฉ๋ชจ ์์ AI ๋ถ์(Gemini / Ollama)์ ํตํด ์ถ์ฒ๋ฐ๋ ์ ์ฉ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ต๋๋ค. - ๋น๋๊ธฐ ๋ถ์ ์ค์๋ ์ธ๋ จ๋ ๊ธ๋์ค๋ชจํผ์ฆ ์คํผ๋ ๋ก๋๊ฐ ์งํ ์ํฉ์ ์๋ดํ๋ฉฐ, AI๊ฐ ํ์ํด ๋ธ ์ฐ๊ด ๋ฉ๋ชจ ๋ฆฌ์คํธ์ ์ถ์ฒ ์ด์ ๋ฅผ ์ ์ฉ ๋ชจ๋ฌ ์ฐฝ์ ์ ๋ ฌํ์ฌ ์๊ฐํํฉ๋๋ค.
- [์ฐ๊ฒฐ ์ ์ฉ] ํด๋ฆญ ์ ๋ฐฑ์๋ ๋จ์์ ๋์ ๋ฉ๋ชจ ํ์ผ ๋ด์ฉ ๋์๋ฝ์
[[๋์๋ฉ๋ชจ]]์ํค๋งํฌ๋ฅผ ๊น๋ํ๊ฒ ์ถ๊ฐํฉ๋๋ค. - ์ ์ฉ ์๋ฃ ์ ๋์๋ณด๋ ๊ด๊ณ ๊ทธ๋ํ์ ์ด๋ ค ์๋ ๋ชจ๋ ์คํฐ์ปค ๋ฉ๋ชจ ์ฐฝ์ด ์ค์๊ฐ์ผ๋ก ๋๊ธฐํ๋์ด ์ฆ์ ํ๋ฉด์ ์ค์ ์ด ์ฐ๊ฒฐ๋๊ณ ํ ์คํธ๊ฐ ๊ฐฑ์ ๋ฉ๋๋ค.
- PyPI ๋ฐฐํฌ: ๋ณธ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ PyPI memobot v1.3.25 ํจํค์ง๋ก ์ฑ๊ณต์ ์ผ๋ก ์ ๋ก๋ ๋ฐ ๋ฐฐํฌ ์๋ฃ๋์์ต๋๋ค.
- ๊ด๊ณ ๊ทธ๋ํ(Relationship Graph) ์๋จ์ [AI ์ฐ๊ฒฐ ์ถ์ฒ] ๋ฒํผ์ ์๋ก ๋ฐฐ์นํ๊ณ , ์ด๋ฅผ ํตํด ์๋ฏธ๋ก ์ ์ธ ๊ด๋ จ์ฑ์ ๊น์ง๋ง ์์ง ์ํค๋งํฌ(
v1.3.24 (2026-06-08)
- ๋ฉ๋ฌด ๋งค๋์ (๋์๋ณด๋) ์คํ ์ ๋จ์ถํค ์๋ด ํ์
์ ์ค:
- ์ฑ์ ํต์ฌ ํธ์ ๊ธฐ๋ฅ์ธ ํต๋ฉ๋ชจ HUD ๋จ์ถํค(
Ctrl+Shift+Space), ๋งค๋์ ์ฐฝ ๋ณต์ ๋จ์ถํค(Ctrl+O) ๋ฐ ๊ฐ์ข ์๋ํฐ ๋จ์ถํค๋ฅผ ์ฌ์ฉ์๊ฐ ๋ณด๋ค ์ง๊ด์ ์ผ๋ก ํ์ ํ ์ ์๋๋ก ๋์๋ณด๋ ํ์ ์ฐฝ์ ๊ตฌํํ์ต๋๋ค. - ํ์
์ฐฝ ํ๋จ์ [7์ผ ๋์ ์ด ํ์
๋ณด์ง ์๊ธฐ] ์ฒดํฌ๋ฐ์ค๋ฅผ ์น์ด, ์ฒดํฌ ํ ์น์ธ ์
localStorage์บ์ ๋ง๋ฃ ์๊ฐ์ 7์ผ ํ๋ก ์ฐ์ฅํ์ฌ ๋ฒ๊ฑฐ๋ก์์ ๋์ด์ฃผ๋ ์ค๋งํธ ์ํ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฑ์ ํต์ฌ ํธ์ ๊ธฐ๋ฅ์ธ ํต๋ฉ๋ชจ HUD ๋จ์ถํค(
v1.3.23 (2026-06-08)
- ๊ด๊ณ ๊ทธ๋ํ ๋๋๊ทธ ์ ๋ฐ์ํ๋ ๋ฌผ๋ฆฌ ๊ถค๋ ๊ณต์ (ํ์ ) ์ต์ :
- ๋๋๊ทธ ๋์ ์ค์ ๋ ธ๋๋ค์ด ์ด๋ค ํ ์ค์ฌ์ ์ ์ถ์ผ๋ก ๋ฑ ๊ธ๋ฑ ๊ธ ๋งด๋๊ฑฐ๋ ๊ณต์ ํ๋ ค๋ ๋ฌผ๋ฆฌ ๋ฒ์น์ ๋ฌธ์ (๊ตฌ์ฌ๋ ฅ ๊ณผ๋ค ๋ฐ ๊ฐ์ ์จ ๋ถ์กฑ)๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
- ๊ตฌ์ฌ๋ ฅ ์ต์
(
centralGravity)์0.01๋ก ๊ทน์ํํ์ฌ ๊ณต์ ํ์์ ๊ทผ๋ณธ ์์ธ์ ์์ด์ต๋๋ค. - ์ด๋ ์๋์ง์ ๊ฐ์ ๋ฅผ ์ง๋ฐฐํ๋
damping๊ณ์๋ฅผ0.09์์0.85๋ก ๊ทน๋ํํ์ฌ ๋ฌผ๋ฆฌํ์ ์ ์ฑ์ ํฌ๊ฒ ์ฃผ์์ต๋๋ค. ์ด๋ก์จ ๋๋๊ทธ๋ฅผ ๋ฉ์ถ๊ฑฐ๋ ๋ ธ๋๋ฅผ ๋์์ ๋ ์ถค์ถ๋ฏ ํ์ ํ์ง ์๊ณ ๊ด์ฑ์ด ์ฆ๊ฐ ์์๋์ด ์ค๋ฌด์คํ๊ฒ ์ ์งํฉ๋๋ค. - ์ฐ๊ฒฐ์ ํ์ฑ ๊ณ์(
springConstant)์ ์ฒ๋ ฅ ๊ณ์(gravitationalConstant)๋ฅผ ์ํํ์ฌ ๋ ธ๋๋ค์ด ์ง๋์น๊ฒ ํ๊ฒจ๋๊ฐ์ง ์๋๋ก ๋ฏธ์ธ ์กฐ์ ํ์ต๋๋ค.
v1.3.22 (2026-06-08)
- ๊ด๊ณ ๊ทธ๋ํ ๋ฌดํ ๊ณต์ /์ง๋ ์๋ฐฉ ๋ฐฉ์ ๊ฐํ:
- ์๋ฎฌ๋ ์ด์
์์ ํ(
stabilized) ์ด๋ฒคํธ๊ฐ ์๋ ดํ์ง ์๋ ๋ฃจํ(์: ์ํ ์ฐธ์กฐ ๊ตฌ์กฐ)์์๋ ์์ ๋ฐ์ํ์ง ์๋ ํน์ฑ์ด ์์ด ์ฌ์ ํ ๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. - ์ด๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ๋ฐฉ์งํ๊ธฐ ์ํด, ๊ทธ๋ํ ๋ก๋ ์ 2์ด(2000ms) ํ์ ๊ฐ์ ๋ก ๋ฌผ๋ฆฌ ์ฐ์ฐ์ ์ ์ง์ํค๋ ๊ฐ์ ํ์ด๋จธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ๋ํ ๋๋๊ทธ๊ฐ ๋๋ ์์ (
dragEnd)์์๋ 1์ด(1000ms)์ ๊ด์ฑ ์ฌ์ ๋ฅผ ์ค ๋ค ๊ฐ์ ๋ก ๋ฌผ๋ฆฌ๋ฅผ ๋นํ์ฑํํ์ฌ, ์ต์ข ์์น์ ์จ์ ํ ๊ณ ์ ๋๋๋ก ์ ์ด๋ฅผ ๋์ฑ ๊ฒฌ๊ณ ํ ๊ฐ์ ํ์ต๋๋ค.
- ์๋ฎฌ๋ ์ด์
์์ ํ(
v1.3.21 (2026-06-08)
- ๊ด๊ณ ๊ทธ๋ํ ๋ฌดํ ๊ณต์ /์ง๋ ํ์ ํด๊ฒฐ:
- ๊ด๊ณ ๊ทธ๋ํ๊ฐ ๋ฌผ๋ฆฌ ์์ง ์ฐ์ฐ์ ์ํด ๊ณ์ ํ์ ๋ฐ ๊ณต์ ํ๋ฉฐ ์ง๋ํ๋ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, vis.js Network ์๋ฎฌ๋ ์ด์
์์ ํ(
stabilized) ๋ฐ ๋๋๊ทธ ์ข ๋ฃ(dragEnd) ์์ ์ ๋ฌผ๋ฆฌ ํจ๊ณผ(physics: false)๋ฅผ ๋๊ณ ๊ทธ ์๋ฆฌ์ ๋ ธ๋๋ค์ ๊ณ ์ ์ํค๋๋ก ๊ฐ์ ํ์ต๋๋ค. - ๋๋๊ทธ ์์(
dragStart) ์์ ์๋ ๋ค์ ๋ฌผ๋ฆฌ๋ฅผ ์ผ์ ์ฐ๊ฒฐ๋ ๋ ธ๋๋ค์ด ์ํธ์์ฉํ๋ฉฐ ๋๋ ค์ค๋๋ก ์์ฐ์ค๋ฝ๊ฒ ์ฐ๋ํ์ต๋๋ค.
- ๊ด๊ณ ๊ทธ๋ํ๊ฐ ๋ฌผ๋ฆฌ ์์ง ์ฐ์ฐ์ ์ํด ๊ณ์ ํ์ ๋ฐ ๊ณต์ ํ๋ฉฐ ์ง๋ํ๋ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, vis.js Network ์๋ฎฌ๋ ์ด์
์์ ํ(
v1.3.20 (2026-06-08)
- ๋์๋ณด๋ ํด์ํ๊ทธ ํํฐ ์ ๊ธฐ/ํด๊ธฐ ๊ธฐ๋ฅ ๋ฐ ๊ตฌ๋ฌธ ์ค๋ฅ ํด๊ฒฐ:
- ํด์ํ๊ทธ ํํฐ ํ ๊ธ: ๋์๋ณด๋ ๋ฉ์ธ ํ๋ฉด ์๋จ ๊ฒ์์ฐฝ ์์ ํด์ํ๊ทธ ํํฐ ์์ญ
#ํํฐ์ ์จ/์คํํ ์ ์๋ ํ ๊ธ ๋ฒํผ์ ์ถ๊ฐํ์ฌ, ํ๊ทธ ๊ฐ์๊ฐ ๋์ด๋ ์ฐฝ์ ๋ง์ด ์ฐจ์งํ๋ ์๊ฐ์ ํผ๋ก๊ฐ์ ๊ฐ์ ํ์ต๋๋ค. - ํํฐ ์ํ ์์ํ: ์ ํ/ํผ์นจ ์ํ๊ฐ
localStorage๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ์บ์์ ์์์ ์ผ๋ก ์ ์ฅ๋์ด, ์ฑ ์ฌ์คํ ๋ฐ ์๋ก๊ณ ์นจ ์์๋ ์ด์ ์ค์ ์ด ๊ทธ๋๋ก ๋ณต์๋ฉ๋๋ค. - app.js ๊ตฌ๋ฌธ ์ค๋ฅ ์์ : ํ ๊ธ ์คํฌ๋ฆฝํธ ๊ฒฐํฉ ์ ๋ฐ์ํ๋ ๊ดํธ ๊ตฌ๋ฌธ ์๋ฌ๋ฅผ ํด๊ฒฐํ์ฌ ๋ฐํ์ ์์ ์ฑ์ ํ๋ณดํ์ต๋๋ค.
- ํด์ํ๊ทธ ํํฐ ํ ๊ธ: ๋์๋ณด๋ ๋ฉ์ธ ํ๋ฉด ์๋จ ๊ฒ์์ฐฝ ์์ ํด์ํ๊ทธ ํํฐ ์์ญ
v1.3.19 (2026-06-08)
- ์ ๊ท ํธ์ ๊ธฐ๋ฅ 3์ข
๊ตฌํ ์๋ฃ:
- ๊ธ๋ก๋ฒ ํต ์บก์ฒ HUD (๋ฐ์คํฌํฑ ์ ์ฉ):
Ctrl+Shift+Space๋จ์ถํค๋ก ์ ์ค์์ ๋ฏธ๋ ๊ธ๋์ค๋ชจํผ์ฆ ์ ๋ ฅ์ฐฝ์ ๋์ 1์ด ๋ง์ ์ ๋ฉ๋ชจ๋ฅผ ๊ธฐ๋กํ๋ ํต ์บก์ฒ ํ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. - ์ํค๋งํฌ ๊ด๊ณ ๊ทธ๋ํ ๋ทฐ (๋ฐ์คํฌํฑ ์ ์ฉ): Vis.js ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ ์์ง์ ์ฐ๋ํ์ฌ, ๋ฉ๋ชจ๋ค ๊ฐ์ ์ํค๋งํฌ(
[[๋์]]) ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ์ฐ๊ฒฐ์ (Edge)๊ณผ ๋ ธ๋(Node) ํํ์ ์๊ฐ์ ์ธํฐ๋ํฐ๋ธ ๋งต์ผ๋ก ์ ๊ณตํฉ๋๋ค. ๋ ธ๋ ๋๋ธํด๋ฆญ ์ ํด๋น ๋ฉ๋ชจ ์ฐฝ์ด ์ฆ์ ์ด๋ฆฝ๋๋ค. - AI ์ค๋งํธ ํ๊ทธ ์ถ์ฒ & ํ ์ค ์์ฝ (๋ฐ์คํฌํฑ/๋ชจ๋ฐ์ผ ๊ณตํต): AI ๋ถ์์ ํตํด ๋ณธ๋ฌธ ๋ด์ฉ์ ๋ถํฉํ๋ ํด์ํ๊ทธ๋ฅผ ์๋ ์ถ์ฒํ๊ณ , 50์ ๋ด์ธ์ ์์ฝ๋ฌธ(
summaryํ๋)์ ์์ฑ ๋ฐ ์ ์ฅํฉ๋๋ค. ๋์๋ณด๋ ์นด๋ ๋ทฐ์์ ํ ์ค ์์ฝ ์ดํค๋ฆญ ๋ฐฐ์ง๋ฅผ ํ์ํ๋ฉฐ, ๋ฐ์คํฌํฑ๊ณผ ๋ชจ๋ฐ์ผ ๊ฐ ์๋ฒฝํ ๋๊ธฐํ๋ฉ๋๋ค.
- ๊ธ๋ก๋ฒ ํต ์บก์ฒ HUD (๋ฐ์คํฌํฑ ์ ์ฉ):
v1.3.18 (2026-06-07)
- ํ ๊ธฐ๊ธฐ ์คํ ์ค๋ฅ ๋ฐ ํธํ์ฑ ๋ํญ ๊ฐ์ :
- WebView2 ๋ฐํ์ ๋๋ฝ ์์ธ ์ฒ๋ฆฌ: Windows 10/11 ํ๊ฒฝ์์ Microsoft Edge WebView2 Runtime์ด ๋ฏธ์ค์น/์์๋์ด ์ฑ์ด ์ฆ์ ์ข ๋ฃ๋๋ ๋ฌธ์ ๋ฅผ ๋ณด์ํ์ฌ, ๊ตฌ๋ ์คํจ ์ ์๋ฆผ์ฐฝ์ ๋์ฐ๊ณ ์ค์น ํ์ด์ง๋ก ๋ฐ๋ก ์ฐ๊ฒฐํด์ฃผ๋ ๋ค์ดํฐ๋ธ ๋ค์ด๋ก๋ ๊ฐ์ด๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- 64๋นํธ Windows ํฌ๋์(Access Violation) ๋ฐฉ์ง: 64๋นํธ OS์์
SetWindowLongWAPI ํธ์ถ ์ ํธ๋ค ํฌ์ธํฐ(HWND)๊ฐ ์ ๋จ๋์ด ํ๋ก๊ทธ๋จ์ด ๋น์ ์ ์ข ๋ฃ๋๋ ๋ฒ๊ทธ๋ฅผ ์๋ ์ํคํ ์ฒ ํ๋ณ์ ํตํดSetWindowLongPtrWํธ์ถ๋ก ๊ต์ฒดํ์ฌ ํด๊ฒฐํ์ต๋๋ค. - PyInstaller hiddenimports ๋๋ฝ ๋ณด์:
webview.platforms.winforms,pystray,PIL,ctypes,winreg๋ฑ ๋ฐํ์ ๋ ๋๋ง ๋๋ผ์ด๋ฒ ๋ฐ ํ์ ๋ชจ๋๋ค์ ์คํ ๋ฐ์ด๋๋ฆฌ์ ํ์คํ ๋๋ดํ์ฌ ํ๊ฒฝ ์ ์ฝ ์๋ ๊ตฌ๋์ ํ๋ณดํ์ต๋๋ค. - ํ๋์ฝ๋ฉ๋ ๊ฐ๋ฐ์ ๊ณ์ ๊ฒฝ๋ก ์ ๊ฑฐ: ๊ฐ์ด๋ ๋ด ํน์ ๊ฐ์ธํ ๊ฒฝ๋ก๋ฅผ ํ๋ ์ด์คํ๋ ๋ฐ ๋์ ๊ณ์ ๋ช
๊ฐ์ง(API ๋ธ๋ฆฟ์ง
get_secrets_path()) ํํ๋ก ๋ณ๊ฒฝํ์ฌ ๊ฐ๋ ์ฑ์ ๋์์ต๋๋ค.
v1.3.17 (2026-06-07)
- ์์ ๋ฉ๋ชจ ํฌ๊ธฐ์์์ ํ์ธ์ฐฝ(์ค๋ฒ๋ ์ด) ์๋ฆผ ํ์ ํด๊ฒฐ:
- ๋ฉ๋ชจ ์ฐฝ์ ๋์ด๊ฐ ๋ํญ ์์์ง ์ํ์์ ์ ๊ธ ํด์ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ์ค๋ฒ๋ ์ด๋ ์ญ์ ํ์ธ ํ์ ๋ฑ์ด ๋ฐ ๋, ํ๋จ์ ํ์ธ/์ทจ์ ๋ฒํผ์ด ์ฐฝ ํ๋จ๋ถ ๋ฐ์ผ๋ก ๋ฐ๋ ค๋ ๋ณด์ด์ง ์๋ ์๋ฆผ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค.
- ์ฐฝ์ ๋์ด๊ฐ 240px ์ดํ๊ฐ ๋๋ฉด ํ์ ์์์ ์ฌ๋ฐฑ(padding/gap), ๊ธ๊ผด ํฌ๊ธฐ, ์์ด์ฝ ํฌ๊ธฐ ๋ฑ์ ๋ํญ ์ฌ๋ฆผํ๊ฒ ์กฐ์ ํ๋ ๋ฐ์ํ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ , ์คํฌ๋กค ๊ฐ๋ฅํ๋๋ก ๋ ์ด์์์ ๋ณด์ํ์ต๋๋ค.
v1.3.16 (2026-06-07)
- ๋น๋ฐ๋ฒํธ ์์ ์ ๊ธฐ์กด ๋น๋ฐ๋ฒํธ ๊ฒ์ฆ ๋จ๊ณ ์ถ๊ฐ:
- ์ค์ ๋ฉ๋ด์์ ์ ๊ธ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ก ์์ ํ๊ฑฐ๋ ํด์ ํ๋ ค๊ณ ํ ๋, ํ์ธ์ด ํจ๋ถ๋ก ์ ๊ทผํด ๋ณ๊ฒฝํ์ง ๋ชปํ๋๋ก ๊ธฐ์กด ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ํ์ธ ๋ํ์์๋ฅผ ํ์์ ์ผ๋ก ๊ฑฐ์น๋๋ก ์ค๊ณํ์ต๋๋ค.
- ์ด ๊ธฐ๋ฅ์ ๋ฐ์คํฌํฑ ์ค์ ์ฐฝ(JS
prompt๋ค์ด์ผ๋ก๊ทธ) ๋ฐ ๋ชจ๋ฐ์ผ(Flutter Android overlay) ์์ชฝ ๋ชจ๋์ ๊ณตํต ์ ์ฉ๋์์ผ๋ฉฐ, ๊ฒ์ฆ์ ํต๊ณผํด์ผ๋ง ์ ๋น๋ฐ๋ฒํธ๋ก์ ์ ์ฅ์ด ์น์ธ๋ฉ๋๋ค.
v1.3.15 (2026-06-07)
- ๋ฉ๋ชจ ๋น๋ฐ๋ฒํธ ์ ๊ธ ๊ธฐ๋ฅ ์ถ๊ฐ (ํฌ๋ก์ค ํ๋ซํผ ์ฐ๋):
- ๋ฐ์คํฌํฑ ๋ฐ ๋ชจ๋ฐ์ผ(Android) ์์ชฝ ์ฑ ๋ชจ๋์ ๊ฐ๋ณ ๋ฉ๋ชจ ๋น๋ฐ๋ฒํธ ์ ๊ธ ๊ธฐ๋ฅ์ ๋์ ํ์ต๋๋ค.
- ์ค์ ๋ฉ๋ด์์ ์ฌ์ฉํ ์ ๊ธ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ๋ณ ๊ธฐ๊ธฐ์ ์ง์ ํ ์ ์์ผ๋ฉฐ(๋น๋ฐ๋ฒํธ๋ ๋๊ธฐํ๋์ง ์๊ณ ๊ฐ ๊ธฐ๊ธฐ๋ณ ๋ก์ปฌ ๋ณด์ ์ค์ ์๋ง ๋ ๋ฆฝ ์ ์ฅ), ์๋ํฐ ํด๋ฐ์ ์๋ก ๋ฐฐ์น๋ ์๋ฌผ์ ํ ๊ธ ๋ฒํผ์ ํตํด ํน์ ๋ฉ๋ชจ๋ฅผ ์ ๊ทธ๊ฑฐ๋ ํด์ ํ ์ ์์ต๋๋ค.
- ๋ณด์์ ์ํด ์ ๊ธด ๋ฉ๋ชจ๋ ๋์๋ณด๋ ๋ฆฌ์คํธ์์ ๋ง์คํน(
๐ ์ ๊ธด ๋ฉ๋ชจ์ ๋๋ค.) ์ฒ๋ฆฌ๋๊ณ , ์ค์ ๋ณธ๋ฌธ ์ฝํ ์ธ ์ ๋ฏธ๋์ด ๋ฐ์ดํฐ(์ด๋ฏธ์ง/์ค๋์ค)๋ ๊ฒ์ฆ ์๋ฃ ์ ๊น์ง ๋ฐฑ์๋์ ํด๋ผ์ด์ธํธ ๋จ ๋ชจ๋์์ ์์ ํ ์ฐจ๋จ๋์ด ์ ์ถ์ ๋ฐฉ์งํฉ๋๋ค. - ๋ฉ๋ชจ์ ์ ๊ธ ์ฌ๋ถ ์ํ(
is_locked)๋ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋๊ธฐํ๋ฅผ ํตํด ์๋ฐฉํฅ์ผ๋ก ์๋ ์ฐ๋ ๋ฐ ๊ณต์ ๋ฉ๋๋ค.
v1.3.14 (2026-06-07)
- ์ค์ ์ฐฝ ๋
๋ฆฝ ํ์
๋ถ๋ฆฌ:
- ๊ธฐ์กด ๋ฉ๋ชจ ๋งค๋์ (Dashboard) ๋ด๋ถ ๋ ์ด์ด ๋ชจ๋ฌ๋ก ๋์ฐ๋ ์ค์ ์ฐฝ์ ๋
๋ฆฝ๋ ๋ณ๋ ์ธ๋ถ ํ์
์ฐฝ(ํฌ๊ธฐ
450x620๊ณ ์ , ํ์ดํ๋ฐ๋ฅผ ๊ฐ์ง ์๋์ฐ)์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์คํํ๋๋ก ๊ฐ์ ํ์ต๋๋ค. - ์ด๋ฅผ ํตํด ๋งค๋์ ์ฐฝ์ ํฌ๊ธฐ ์ ํ์ผ๋ก ์ธํด ์ค์ ๋ฉ๋ด ํ๋จ ๋ฐ ์ฐ์ธก ํญ๋ชฉ๋ค์ด ํ๋ฉด์์ ์๋ฆฌ๋ ํ์์ ์๋ฒฝํ ํด๊ฒฐํ์ต๋๋ค.
- ๊ธฐ์กด ์ค์ API ๋ฐ ์ด๋ฒคํธ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋๋ก ์ด์ ๋ฐ ํ์ฉํ์ฌ ์ค์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ก์ปฌ ๋ฉ๋ชจ, ๋งค๋์ , ๊ฐ๋ณ ๋ฉ๋ชจ ์๋์ฐ์ ์ค์๊ฐ์ผ๋ก ์ฆ์ ๋๊ธฐํ๋ฉ๋๋ค.
- ๊ธฐ์กด ๋ฉ๋ชจ ๋งค๋์ (Dashboard) ๋ด๋ถ ๋ ์ด์ด ๋ชจ๋ฌ๋ก ๋์ฐ๋ ์ค์ ์ฐฝ์ ๋
๋ฆฝ๋ ๋ณ๋ ์ธ๋ถ ํ์
์ฐฝ(ํฌ๊ธฐ
v1.3.13 (2026-06-07)
- ์์ ์ ๋ ฌ ๋๋๊ทธ ๊ฐ์ ๋ฐ ๋ถํ์ํ ๋ก๊ทธ/๊ฒฝ๊ณ ์ ๊ฑฐ:
- ์ ํ ๋ฉ๋ชจ๊ฐ ์์(Magnetic) ์ ๋ ฌ ์ํ๋ก ๋ฌ๋ผ๋ถ์ด ์์ ๋ ๋ง์ฐ์ค ๋๋๊ทธ๋ฅผ ํตํด ๋งค๋๋ฝ๊ฒ ๋ผ์ด๋ผ ์ ์๋ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด, ๋์ ๋ง์ฐ์ค ์์ง์์ ์ถ์ ํ๋ ๋ ผ๋ฆฌ์ ์ขํ๊ณ(Logical Coordinates) ์์คํ ์ ๋์ ํ์ต๋๋ค. ์ด์ ์์ ๊ณ ์ ์ ์ผ๋ก๋ถํฐ ๋ง์ฐ์ค๋ฅผ 15px ์ด์ ์ด๋ํ๋ฉด ๋ถ๋๋ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ์ค๋ ์ด ํ๋ฆฌ๋ฉฐ ์ด๋ํ ์ ์์ต๋๋ค.
- ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋๊ธฐํ API ์ด๊ธฐํ ์ ํฐ๋ฏธ๋์ ๋ถํ์ํ๊ฒ ์ถ๋ ฅ๋๋
file_cache is only supported with oauth2client<4.0.0๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผcache_discovery=False์ค์ ์ ํตํด ์ต์ ํ๊ณ ์ด๊ธฐํ ๋์์ ์ต์ ํํ์ต๋๋ค.
v1.3.12 (2026-06-07)
- ์ํค๋งํฌ ํฌ๋งท ์์ ๋ฐ ์์
ํ์์ค ๊ฐ๋ณ ๋ฉ๋ชจ ๋
ธ์ถ ๋ฐฉ์ง:
- ์ํค๋งํฌ ๋ณต์ฌ ์ ๊ธฐ์กด ID ๋ฐ ์ ๋ชฉ ์กฐํฉ ๋ฐฉ์(
[[noteId|Title]])์์ ๋์ค์ ์ด๊ณ ๋ช ํํ[[NoteTitle]]ํํ๋ก ๋ณต์ฌ๋๋๋ก ์์ ํ ํ, ๋ฉ๋ชจ ๋ณธ๋ฌธ ํ์ฑ ๋ฐ ํด๋ฆญ ๋ค๋น๊ฒ์ด์ ์์๋ ๋๊ดํธ ๊ธฐํธ([[,]])๋ฅผ ์๋ ์ ๊ฑฐํด ์ฌ๋ฐ๋ฅด๊ฒ ๋งค์นญ๋๋๋ก ๋ณด์ํ์ต๋๋ค. - Windows ํ๊ฒฝ์์ ๊ฐ๋ณ ํฌ์คํธ์ ๋ฉ๋ชจ ์ฐฝ๋ค์ด ์์
ํ์์ค(Taskbar)์ ์ฐํ์ฃฝ์ ์์ฑ๋๋ ํ์์ ์ฐจ๋จํ๊ณ , ์ค์ง ๋ฉ์ธ "๋ฉ๋ชจ ๊ด๋ฆฌ์(Memo-Bot Manager)" ๋์๋ณด๋ ์ฐฝ๋ง ์์
ํ์์ค์ ๋
ธ์ถ๋๋๋ก ์คํ์ผ๋ง(
WS_EX_TOOLWINDOW๋ฐShowInTaskbar = False)์ ์์ ํ์์ต๋๋ค.
- ์ํค๋งํฌ ๋ณต์ฌ ์ ๊ธฐ์กด ID ๋ฐ ์ ๋ชฉ ์กฐํฉ ๋ฐฉ์(
v1.3.11 (2026-06-07)
- ํด์ํ๊ทธ/์ํค๋งํฌ ๊ฒ์ ๋ฐ ์ํค๋งํฌ ๋ณต์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ: ๋์๋ณด๋ ๋ฉ์ธ ํ๋ฉด์์
#ํ๊ทธ๊ฒ์์ด ๋๋[[์ํค๋งํฌ]]๊ฒ์์ด ํจํด์ ์ธ์ํ๋ ์ง๋ฅํ ํํฐ๋ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ๋ํ ๊ฐ๋ณ ๋ฉ๋ชจ ํค๋์ "์ํค๋งํฌ ๋ณต์ฌ" ๋จ์ถ๋ฅผ ์๋ก ๋ฐฐ์นํ์ฌ ํด๋ฆญ ์[[noteId|Title]]ํฌ๋งท์ ๋งํฌ๋ค์ด ๋งํฌ๊ฐ ์ํฐ์น๋ก ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ๋๊ณ , ์ฑ๊ณต ์ ์ฒดํฌ ์์ด์ฝ์ผ๋ก 1์ด๊ฐ ์๊ฐ์ ํผ๋๋ฐฑ(ํ๋์ ์ ๋๋ฉ์ด์ )์ ์ฃผ๋๋ก ์ฌ์ฉ์ฑ์ ๊ฐํํ์ต๋๋ค.
v1.3.10 (2026-06-06)
- ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ(noconsole) ๊ธฐ๋ณธํ: PyInstaller ๋น๋ ์์ PyPI ํจํค์ง ๋ฐฐํฌ ์ ์๋์ฐ ํ๊ฒฝ์์ ํฐ๋ฏธ๋ ์ฐฝ ์์ด ๋ฐฑ๊ทธ๋ผ์ด๋์ฉ GUI ์ฑ์ผ๋ก ์ฆ์ ์คํ๋๋๋ก ์ค์ ์ ์ต์ ํํ์ต๋๋ค (
--noconsole๋ฐgui_scripts์ ์ฉ).
v1.3.9 (2026-06-06)
- ๋ฉ๋ชจ ๊ด๋ฆฌ์ ์ด๊ธฐ ๋ก๋ ๋ฐ ๋ ์ด์ค ์ปจ๋์
ํด๊ฒฐ: ๋งค๋์ ์ฐฝ ์ฒซ ์คํ ์
window.pywebview๊ฐ์ฒด๊ฐ ์์ง ๋ธ๋ผ์ฐ์ ์ ์์ฑ๋์ง ์์์ ๋ ์น ๋ชจ๋๋ก ์ฑ๊ธํ๊ฒ ์ฐจ๋จ๋์ด ๋ก์ปฌ ๋ฉ๋ชจ ๋ชฉ๋ก์ด ํ๋ฉด์ ๋ํ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด,pywebviewready์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฑ๋ก ๋ฐ ๋๊ธฐ ๋ก์ง์ ์ ๋ฉด ์ต์ ํํ์ฌ ์์ ์ ์ผ๋ก ๋ก์ปฌ ๋ฉ๋ชจ๋ฅผ ์ด๊ธฐ ํ๋ฉด์ ๋ก๋ํฉ๋๋ค.
v1.3.8 (2026-06-06)
- ๋์๋ณด๋ ์ด๊ธฐํ ์ ๋ก์ปฌ ๋ฉ๋ชจ ์๋ ๋ก๋ ์์ : ์ฑ ์คํ ์
pywebviewready์ด๋ฒคํธ๊ฐ ๋ฆฌ์ค๋ ๋ฑ๋ก ์ ์ ์ด๋ฏธ ํธ์ถ๋์ด ๋์๋ณด๋๊ฐ ์ฒ์ ์ผ์ก์ ๋ ๋ก์ปฌ ๋ฉ๋ชจ ๋ชฉ๋ก์ด ์๋์ผ๋ก ๋ํ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค. ์ด์ ์น๋ทฐ API ๋ก๋ ์ฌ๋ถ๋ฅผ ์ฆ์ ๊ฒ์ฌํ์ฌ ๋ฉ๋ชจ ๋ก๋ฉ์ด ๋ฐ๋ก ์คํ๋ฉ๋๋ค. - ์ํฌํธ ์ค๋ฅ ์์ (NameError: time): ๋ซ๊ธฐ ์ง์ฐ ์ฒ๋ฆฌ(
defer_hide) ํจ์ ๋ด์์time.sleepํธ์ถ ์time๋ชจ๋์ด ๊ธ๋ก๋ฒ ์ํฌํธ๋์ด ์์ง ์์ ๋ฐ์ํ๋ NameError ๋ฒ๊ทธ ๋ฐ ์ด๋ก ์ธํด ๋ซ๊ธฐ ๋์์ด ์์ ๋ถ๊ฐ๋ฅํด์ง๋ ์ค๋์์ ์์ ํ์ต๋๋ค.
v1.3.7 (2026-06-06)
- ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ํญ ๋ชฉ๋ก ๋ ์ด์์ ๊ฐ์ ๋ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์์ : ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ๋ฉ๋ชจ ๊ด๋ฆฌ ํ
์ด๋ธ์์ ์ฒซ ๋ฒ์งธ ์ด(๋ฉ๋ชจ ๋ฏธ๋ฆฌ๋ณด๊ธฐ)์ ๋๋น๊ฐ ๋ค๋ฅธ ์ด์ ๊ณ ์ ๋๋น๋ก ์ธํด ๊ทน๋๋ก ์ถ์๋์ด
#...์ด๋๋ฉ...์ฒ๋ผ ํ ๊ธ์์ ๋ง์ค์ํ๋ก๋ง ๋ณด์ด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด ๋น์จ์ ๊ณ ์ ํ๋ ๋์ ์ ์ฐํ๊ฒ ์ค์ ํ๊ณ ๋ฐ์ํ ๋ ์ด์์์ ๋์ ํ์์ผ๋ฉฐ, ๋งํฌ๋ค์ด ํค๋ ๊ธฐํธ(์:##,#)๋ฅผ ์ ์ธํ๊ณ ์ถ๋ ฅํ๋๋ก ํ ์คํธ ์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
v1.3.6 (2026-06-06)
- ๋ฉ๋ชจ ๊ด๋ฆฌ์ ์ฐฝ ๋ซ๊ธฐ ๋ฌดํ ๋ฃจํ ๋ฒ๊ทธ ์์ : Windows ํ๊ฒฝ์์ ๋ฉ๋ชจ ๊ด๋ฆฌ์ ์ฐฝ์ ๋ซ์ ํธ๋ ์ด ์์ด์ฝ์ผ๋ก ์จ๊ธธ ๋, pywebview์
hide()๋์์ด ๋ด๋ถ์ ์ผ๋กclosing์ด๋ฒคํธ๋ฅผ ์ฌ๋ฐํ์ฌ ๋ฌดํ ๋ซ๊ธฐ ๋ฃจํ(์๋์ฐ๊ฐ ์ด๋ฆฌ์๋ง์ ๋ฐ๋ก ์ฌ๋ผ์ง๋ ํ์)๊ฐ ๋ฐ์ํ๋ ํ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ํ ๋ฝ(is_hiding_manager)์ ๋์ ํ์ฌ ์์ธ ์ฒ๋ฆฌํ์ต๋๋ค.
v1.3.5 (2026-06-06)
- ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋ฉ๋ชจ ์ฒซ ์ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ง์: ๋ก์ปฌ์ ๋ค์ด๋ก๋๋์ง ์์ ํด๋ผ์ฐ๋ ์ ์ฉ ๋ฉ๋ชจ๋ ๋์๋ณด๋์ ํด๋ผ์ฐ๋ ํญ ๋ชฉ๋ก์์ ๋ณธ๋ฌธ ์ฒซ ์ค ๋ด์ฉ์ ๋ฏธ๋ฆฌ ์งง๊ฒ ๋ณผ ์ ์๋๋ก ๊ฐ์ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด ๋๊ธฐํ ์ ๋ฉ๋ชจ์ ์ฒซ ์ค ํ
์คํธ๋ฅผ ๋๋ผ์ด๋ธ ํ์ผ์
appProperties๋ฉํ๋ฐ์ดํฐ์ ํจ๊ป ์ค์ด ๋ณด๋ด๊ณ , ๋ชฉ๋ก ๋ ๋๋ง ์ ์ด๋ฅผ ํ์ฑํด ์ถ๋ ฅํ๋๋ก ์ฐ๋ํ์ต๋๋ค.
v1.3.4 (2026-06-06)
- ๋จ์ถํค ๋ฒ์(Scope) ์ต์ ํ: ์ ๋ฉ๋ชจ ์ถ๊ฐ(
Ctrl+N) ๋ฐ ๋๊ธฐํ(Ctrl+S) ๋จ์ถํค๊ฐ ๋ฉ๋ชจ ๊ด๋ฆฌ์ ๋์๋ณด๋๊ฐ ์ด๋ฆฌ๊ณ ํฌ์ปค์ค๋์์ ๋๋ง ์๋ํ๋๋ก ๋ฒ์๋ฅผ ๊ฐ๋๊ณ , ๊ฐ๋ณ ๋ฉ๋ชจ ์ญ์ (Ctrl+D), ํญ์ ์ ํ ๊ธ(Ctrl+P), ์ ๊ธฐ ํ ๊ธ(Ctrl+L)์ ๊ฐ๋ณ ๋ฉ๋ชจ ์ฐฝ์ด ํ์ฑํ๋์ด ์์ ๋๋ง ๋ฐ์ํ๋๋ก ๊ฐ์ ํ์ฌ ๋จ์ถํค ์ถฉ๋์ ๋ฐฉ์งํ์ต๋๋ค. - ๊ธ๋ก๋ฒ ๋จ์ถํค ์ง์ (Windows): ๊ด๋ฆฌ์ ์ฐฝ์ด ๋ซํ ์๊ฑฐ๋(ํธ๋ ์ด ์์ด์ฝ ์ํ) ๋ฐฑ๊ทธ๋ผ์ด๋์ ์์ ๋๋ ์ธ์ ๋ ์ง
Ctrl+O๋ฅผ ๋๋ฅด๋ฉด ๋ฉ๋ชจ ๊ด๋ฆฌ์๊ฐ ์ต์๋จ์ผ๋ก ๋ณต์ ๋ฐ ๊ฐ์ ํฌ์ปค์ฑ๋๋๋ก Windows API(RegisterHotKey)๋ฅผ ์ฐ๋ํ ๊ธ๋ก๋ฒ ๋จ์ถํค ์ค๋ ๋๋ฅผ ์ ์ฉํ์ต๋๋ค. ์ค์ ์์ ๋จ์ถํค๋ฅผ ๋นํ์ฑํํ๋ฉด ์์คํ ๋ฑ๋ก๋ ์ค์๊ฐ ํด์ ๋ฉ๋๋ค.
v1.3.3 (2026-06-06)
- ๋ฒํผ ๋ฏธ๋๋ฉํ ๋ฐ ๋์๋ง ๊ฐ์ด๋ ์ถ๊ฐ: ๋์๋ณด๋ ์ ์ด ๋ฒํผ์ ์ฌ๋ฆผํ๊ณ ๋ฏธ๋๋ฉํ๊ฒ ๋์์ธ์ ์กฐ์ ํ๊ณ , ํด์ํ๊ทธ, ๋ฉ๋ชจ๋งํฌ(WikiLinks), AI(Gemini) ์ค์ ๋ฐ ์ฌ์ฉ๋ฒ์ ์์ธ ์๋ดํ๋ ๋์๋ง ๊ฐ์ด๋ ๋ชจ๋ฌ์ ํ์ฌํ์ต๋๋ค.
v1.3.2 (2026-06-06)
- Gemini API ํค ๋ค์ค ์
๋ ฅ UI ๊ฐ์ : ๋จ์ผ ์
๋ ฅ์ฐฝ์ ์ผํ๋ก ๊ธธ๊ฒ ๋์ดํด์ผ ํ๋ ๊ธฐ์กด ๋ฐฉ์ ๋์ , ์ค์ ์ฐฝ์์ ํ ์นธ์ ํค ํ๋์ฉ ๊น๋ํ๊ฒ ๋ฑ๋กํ ์ ์๋๋ก ๋ค์ค ํค ๋์ ์ถ๊ฐ(
+)/์ญ์ (ํด์งํต) ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ต๋๋ค. ๊ธฐ์กด ๋ฐฑ์๋ ์๋ ํค ์ํ(rotation) ์๊ณ ๋ฆฌ์ฆ๊ณผ 100% ํ์ ํธํ๋ฉ๋๋ค.
v1.3.1 (2026-06-05)
- ์ต๋์์ธ ์คํ์ผ ์ํค๋งํฌ
[[ ]]์ฐ๋: ๋ฉ๋ชจ ๋ณธ๋ฌธ ๋ด ๋๊ดํธ ๋งํฌ([[๋ฉ๋ชจ ์ ๋ชฉ]]) ํด๋ฆญ ์ ํด๋น ๋ฉ๋ชจ ์ฐฝ์ ์ฆ์ ํฌ์ปค์คํ๊ณ , ๋ฉ๋ชจ๊ฐ ์๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ฒซ ์ค ์ ๋ชฉ์ ๊ฐ์ง ์ ๊ท ๋ฉ๋ชจ๋ฅผ ์์ฑํด ์ฐ๋ํด์ฃผ๋ WikiLinks ๊ธฐ๋ฅ์ ํ์ฌํ์ต๋๋ค. - ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ์ญ์ ๋ ๋ฉ๋ชจ ์์ ์ญ์ : ๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ๋๊ธฐํ ์, ์ด๋ฏธ ์ํํธ ์ญ์ (Tombstone) ์ฒ๋ฆฌ๋ ์ญ์ ๋๊ธฐ ๋ฉ๋ชจ๊ฐ ๋๊ธฐํ ๋ชฉ๋ก์ ๋จ์ ์์กดํ๋ ํ์์ ๋ฐฉ์งํ๋๋ก ์๊ฒฉ ๋ฐ ๋ก์ปฌ์์ ์๊ตฌ ์ญ์ ์ฒ๋ฆฌํ๋ ๋ฃจํด์ ๋ณด๊ฐํ์ต๋๋ค.
- ๊ธฐ๋ณธ ์ฐ์ปด ๋ฉ๋ชจ ๋นํ์ฑํ: ์ฑ ์ฒ์ ์คํ ์ ๋ก์ปฌ ์ ์ฅ์์ ๊ธฐ๋ณธ์ผ๋ก ์์ฑ๋๋ 2๊ฐ์ ํํ ๋ฆฌ์ผ ์ฑ๊ฒฉ์ ๊ฐ์ด๋ ๋ฉ๋ชจ๊ฐ ์์ฑ๋์ง ์๋๋ก ์์ ํ์ฌ ๋ ๊น๋ํ ์์ ํ๋ฉด์ ์ ๊ณตํฉ๋๋ค.
- ๋ ์ง ํฌ๋งท ๋ณ๊ฒฝ: ๋ฉ๋ชจ ์์ฑ ๋ฐ ์
๋ฐ์ดํธ ์, ์๊ฐ(์/๋ถ/์ด) ์ ๋ณด๋ง ๋
ธ์ถ๋๋ ํ๋ฉด์ ๋
-์-์ผ ์ ๋ณด๊ฐ ํจ๊ป ๋
ธ์ถ๋๋๋ก ๋ ์ง ํ์ ํฌ๋งท์ ์์ ํ์ต๋๋ค (
YYYY-MM-DD HH:MM:SS). - ํํฐ ์ด๊ธฐํ ์๋ํ: ํด์ํ๊ทธ๋ ๋ฉ๋ชจ ๋ด์ฉ์ ์์ ํ ํ ์ ์ฅ ์, ํธ์งํ ๋ฉ๋ชจ๊ฐ ํ์ฌ ๊ฒ์ ๋๋ ํ๊ทธ ํํฐ ๋๋ฌธ์ ๋ณด์ด์ง ์๋ ํ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ํํฐ๋ฅผ ์๋์ผ๋ก '์ ์ฒด'๋ก ์ด๊ธฐํํ์ฌ ๋ฐฉ๊ธ ์์ ํ ๋ฉ๋ชจ๊ฐ ๋์๋ณด๋์ ์ฆ์ ๋ ธ์ถ๋๋๋ก ๊ฐ์ ํ์ต๋๋ค.
- ์ฌ๋ฆผ ์นด๋ ๋ทฐ & ํ ์คํฌ๋กค ์ง์: ๋์๋ณด๋์์ ์ ํ ์ํ์ ๋ฉ๋ชจ ์นด๋๋ฅผ ๋ํญ ์ฌ๋ฆผํ(38px)ํ๊ณ ์ ํ ์ํ์์๋ ๋ฉ๋ชจ ๋ณธ๋ฌธ ์ฒซ ๋ฒ์งธ ์ค์ด ์๋จ์ ๋ ธ์ถ๋๋๋ก ์ต์ ํํ์ต๋๋ค. ์ถ๊ฐ๋ก, ์คํฌ๋กค๋ฐ ๋ ธ์ถ ์์ด ๋ง์ฐ์ค ํ ์คํฌ๋กค์ ๊ฐ์งํด ๊ฐํธํ๊ฒ ์ค๋ฅด๋ด๋ฆด ์ ์๋๋ก ํธ์์ฑ์ ๊ฐํํ์ต๋๋ค.
- ๋ฒ์ ๋ฑ์ง ์ถ๊ฐ: ๋งค๋์ ์ฐฝ ํค๋์ ๋ก๊ณ ์ฐ์ธก์ ๋ฉ์ธ ํ
๋ง์ ์กฐํ๋ก์ด Glassmorphism ์คํ์ผ์ ๋ฒ์ ๋ฑ์ง(
v1.3.1)๋ฅผ ๋ถ์ฐฉํ์ต๋๋ค.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memobot-1.5.8.tar.gz.
File metadata
- Download URL: memobot-1.5.8.tar.gz
- Upload date:
- Size: 3.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b4752e1f3d9aff3d8b14a0a8c3df5002c532b8cd015e308e17ca205b0475a33
|
|
| MD5 |
29fe630f46e544e8cbca1af5c9ef6527
|
|
| BLAKE2b-256 |
8509dda6e75ba69d239252e15f1d9b5e6b763a4b71ac32dfb1e5bf20e960609f
|
File details
Details for the file memobot-1.5.8-py3-none-any.whl.
File metadata
- Download URL: memobot-1.5.8-py3-none-any.whl
- Upload date:
- Size: 3.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab80122173fe0a7b29939283e0bdf4e72759eaa08dc65307b48f661795ff6053
|
|
| MD5 |
c57584622e29ee65baab62f78ec22bc1
|
|
| BLAKE2b-256 |
ea410480d8b8a64bdd3995ef43688d584e3edcadad079e6b3d2fc95b230ee87a
|