Skip to content

Latest commit

ย 

History

History
120 lines (93 loc) ยท 3.97 KB

File metadata and controls

120 lines (93 loc) ยท 3.97 KB

๋ฐ์ดํ„ฐ์™€ ์ €์žฅ ๊ตฌ์กฐ

์ €์žฅ ์›์น™

MVP์—์„œ๋Š” ์บก์ฒ˜ ํŒŒ์ผ์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํด๋” ๊ตฌ์กฐ๋กœ ์ €์žฅํ•œ๋‹ค. ์•ฑ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋งŒ ๋ฌถ์–ด๋‘์ง€ ์•Š๋Š”๋‹ค.

๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ

Trace/
  captures/
    2026-05-17/
      2026-05-17_14-32-08.png
      2026-05-17_14-35-21.png
  thumbnails/
    2026-05-17/
      2026-05-17_14-32-08.jpg
      2026-05-17_14-35-21.jpg
  metadata.json
  settings.json

์บก์ฒ˜ ํŒŒ์ผ๋ช…

๊ธฐ๋ณธ ํ˜•์‹:

YYYY-MM-DD_HH-mm-ss.png

์ถฉ๋Œ ์‹œ:

YYYY-MM-DD_HH-mm-ss-2.png
YYYY-MM-DD_HH-mm-ss-3.png

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

metadata.json์€ ํžˆ์Šคํ† ๋ฆฌ ํ‘œ์‹œ๋ฅผ ์œ„ํ•œ ์ตœ์†Œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.

์˜ˆ์‹œ:

{
  "captures": [
    {
      "id": "2026-05-17_14-32-08",
      "title": "2026-05-17_14-32-08",
      "filePath": "captures/2026-05-17/2026-05-17_14-32-08.png",
      "thumbnailPath": "thumbnails/2026-05-17/2026-05-17_14-32-08.jpg",
      "createdAt": "2026-05-17T14:32:08+09:00",
      "width": 1280,
      "height": 720,
      "captureMode": "deliverToApp",
      "deliveredAppName": "Slack",
      "deliveryState": "delivered",
      "isPinned": false,
      "isBookmarked": false
    }
  ]
}

์“ฐ๊ธฐ ์ •์ฑ…:

  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ์ž„์‹œ ํŒŒ์ผ์— ๋จผ์ € ์“ด ๋’ค ๊ต์ฒดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์›์ž์ ์œผ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค.
  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ์— ์‹คํŒจํ•ด๋„ ์›๋ณธ PNG ์ €์žฅ์ด ์„ฑ๊ณตํ–ˆ๋‹ค๋ฉด ์บก์ฒ˜ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์•ฑ ์‹œ์ž‘ ์‹œ metadata.json์ด ์†์ƒ๋˜์–ด ์ฝ์„ ์ˆ˜ ์—†์œผ๋ฉด ๋ฐฑ์—… ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋นˆ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ๋ณต๊ตฌํ•œ๋‹ค.
  • ๊ฐ™์€ id๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ํŒŒ์ผ๋ช… ์ถฉ๋Œ ์ฒ˜๋ฆฌ ๊ทœ์น™๊ณผ ๋™์ผํ•˜๊ฒŒ suffix๋ฅผ ๋ถ™์—ฌ ์ƒˆ id๋ฅผ ๋งŒ๋“ ๋‹ค.
  • ์ด๋ฆ„ ํŽธ์ง‘์€ ์›๋ณธ PNG ํŒŒ์ผ๋ช…๊ณผ ์ธ๋„ค์ผ ํŒŒ์ผ๋ช…์„ ํ•จ๊ป˜ ๋ณ€๊ฒฝํ•˜๊ณ  filePath, thumbnailPath, title์„ ๊ฐฑ์‹ ํ•œ๋‹ค.
  • ์‚ญ์ œ๋Š” ์›๋ณธ PNG, ์ธ๋„ค์ผ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ํ•จ๊ป˜ ์ œ๊ฑฐํ•œ๋‹ค.
  • ๊ณ ์ •๊ณผ ๋ถ๋งˆํฌ๋Š” ํŒŒ์ผ ์ด๋™ ์—†์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ”Œ๋ž˜๊ทธ๋งŒ ๊ฐฑ์‹ ํ•œ๋‹ค.

์„ค์ •

settings.json์€ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ์ €์žฅํ•œ๋‹ค. ํ˜„์žฌ ์„ ํƒ๋œ ์ €์žฅ ์œ„์น˜๋Š” ์•ฑ ์„ค์ •์—๋„ ๊ธฐ๋กํ•ด ์žฌ์‹คํ–‰ ์‹œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์„ ํƒํ•œ ์œ„์น˜์˜ settings.json์„ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

์˜ˆ์‹œ:

{
  "saveDirectory": "~/Pictures/Trace",
  "globalShortcut": "command+shift+2",
  "copyToClipboardByDefault": true,
  "basicCaptureShortcut": "command+shift+2",
  "deliveryCaptureShortcut": "command+shift+3",
  "basicCaptureAction": "copyAndSave",
  "deliveryCaptureAction": "copySaveAndDeliver",
  "deliveryTargetMode": "chooseEachTime",
  "fixedDeliveryAppBundleIdentifier": "com.apple.TextEdit",
  "fixedDeliveryAppName": "TextEdit",
  "fixedDeliveryAppWindowMode": "mostRecentWindow"
}

ํžˆ์Šคํ† ๋ฆฌ ํ‘œ์‹œ ๊ธฐ์ค€

MVP์—์„œ๋Š” ํ˜„์žฌ ์„ ํƒ๋œ ์ €์žฅ ์œ„์น˜ ์•„๋ž˜์˜ metadata.json์„ ๊ธฐ์ค€์œผ๋กœ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

์ •์ฑ…:

  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์ตœ์‹ ์ˆœ์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค.
  • ํŒŒ์ผ์ด ์‚ญ์ œ๋œ ํ•ญ๋ชฉ์€ ๋ˆ„๋ฝ ์ƒํƒœ๋กœ ํ‘œ์‹œํ•œ๋‹ค.
  • ์•ฑ ๋ฐ–์—์„œ ์ƒˆ ํŒŒ์ผ์„ ํด๋”์— ๋„ฃ์–ด๋„ ์ž๋™์œผ๋กœ ํžˆ์Šคํ† ๋ฆฌ์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ €์žฅ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋ฉด ์ƒˆ ์œ„์น˜์˜ metadata.json์„ ์ฝ์–ด ํ•ด๋‹น ์œ„์น˜์˜ ํžˆ์Šคํ† ๋ฆฌ๋งŒ ํ‘œ์‹œํ•œ๋‹ค.
  • ์ €์žฅ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ ๊ธฐ์กด ์œ„์น˜์˜ ์บก์ฒ˜ ํŒŒ์ผ์ด๋‚˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ ์œ„์น˜๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๋ณ‘ํ•ฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ด์ „ ์ €์žฅ ์œ„์น˜๋ฅผ ๋‹ค์‹œ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ์œ„์น˜์— ๋‚จ์•„ ์žˆ๋Š” metadata.json ๊ธฐ์ค€์˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋‹ค์‹œ ํ‘œ์‹œํ•œ๋‹ค.
  • ํ˜„์žฌ ์ €์žฅ ์œ„์น˜์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ์ด ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉด ๋ˆ„๋ฝ ์ƒํƒœ๋กœ ํ‘œ์‹œํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ Finder์—์„œ ์—ด ๋•Œ ์‹คํŒจ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

์ธ๋„ค์ผ

ํžˆ์Šคํ† ๋ฆฌ UI ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์›๋ณธ ์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋Œ€๋กœ ๋ชฉ๋ก์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ •์ฑ…:

  • ์บก์ฒ˜ ์ €์žฅ ์‹œ ์ธ๋„ค์ผ์„ ํ•จ๊ป˜ ์ƒ์„ฑํ•œ๋‹ค.
  • ์ธ๋„ค์ผ์€ ์›๋ณธ๊ณผ ๋ณ„๋„ ํด๋”์— ์ €์žฅํ•œ๋‹ค.
  • ์ธ๋„ค์ผ ์ƒ์„ฑ์— ์‹คํŒจํ•ด๋„ ์›๋ณธ ์ €์žฅ์€ ์„ฑ๊ณต์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.