Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Monitor Launcher v2.0.1

Windows ๋‹ค์ค‘ ๋ชจ๋‹ˆํ„ฐ ํ™˜๊ฒฝ์—์„œ ์•ฑ ์‹คํ–‰๊ณผ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ฐฝ ๋ฐฐ์น˜๋ฅผ ๋ณต์›ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ์œ ํ‹ธ๋ฆฌํ‹ฐ

.NET Platform License

๐Ÿ“– ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

Monitor Launcher๋Š” ๋‹ค์ค‘ ๋ชจ๋‹ˆํ„ฐ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ Windows ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์„ ์›ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ์—์„œ ์›ํ•˜๋Š” ์ฐฝ ์ƒํƒœ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

์™œ ํ•„์š”ํ•œ๊ฐ€์š”?

  • ์—ฌ๋Ÿฌ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ์ด ํ•ญ์ƒ ๊ธฐ๋ณธ ๋ชจ๋‹ˆํ„ฐ์—์„œ๋งŒ ์‹คํ–‰๋˜๋Š” ๋ฌธ์ œ
  • ํŠน์ • ์ž‘์—…์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํ•ญ์ƒ ํŠน์ • ๋ชจ๋‹ˆํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  • ๊ฒŒ์ž„, ๊ฐœ๋ฐœ ๋„๊ตฌ, ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด ๋“ฑ์„ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ชจ๋‹ˆํ„ฐ์— ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • ํ”„๋กœํ•„์„ ์ €์žฅํ•˜์—ฌ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์›ํด๋ฆญ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ

์ฃผ์š” ํŠน์ง•

  • ๐Ÿ–ฅ๏ธ ์ž๋™ ๋ชจ๋‹ˆํ„ฐ ๊ฐ์ง€: ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ํ•ด์ƒ๋„ ์ •๋ณด ํ‘œ์‹œ
  • ๐ŸŽฏ ์ •ํ™•ํ•œ ์ฐฝ ์œ„์น˜ ์ œ์–ด: Win32 API๋ฅผ ํ™œ์šฉํ•œ ๊ฐ•๋ ฅํ•œ ์ฐฝ ์œ„์น˜ ์ œ์–ด
  • โšก ๊ฒฝ๋Ÿ‰ ๋ฐ ๊ณ ์„ฑ๋Šฅ: CPU ์‚ฌ์šฉ๋Ÿ‰ ์ตœ์ ํ™” (0.5-3%), ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ 25-35MB
  • ๐Ÿ’พ ํ”„๋กœํ•„ ์ €์žฅ: ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์„ค์ •์„ ํ”„๋กœํ•„๋กœ ์ €์žฅํ•˜์—ฌ ๋น ๋ฅธ ์‹คํ–‰
  • ๐Ÿ”„ ์ง€์†์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง: ํ”„๋กœ๊ทธ๋žจ์ด ์ฐฝ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ์ž๋™์œผ๋กœ ์›ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋กœ ์žฌ๋ฐฐ์น˜
  • ๐ŸŽจ ์ง๊ด€์ ์ธ UI: ๊ฐ„๋‹จํ•˜๊ณ  ๊น”๋”ํ•œ Windows Forms ์ธํ„ฐํŽ˜์ด์Šค
  • ๐Ÿ”” ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด ์ง€์›: ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ ๋ฐ ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜์„ ํ†ตํ•œ ๋น ๋ฅธ ์ ‘๊ทผ

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋ชจ๋‹ˆํ„ฐ ๊ฐ์ง€ ๋ฐ ์„ ํƒ: ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์ž๋™ ๊ฐ์ง€ํ•˜๊ณ  ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์œ„์น˜ ์ œ์–ด: ์‹คํ–‰ ํŒŒ์ผ์„ ์„ ํƒํ•œ ๋ชจ๋‹ˆํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœํ•„(์ฆ๊ฒจ์ฐพ๊ธฐ) ๊ธฐ๋Šฅ: ํ”„๋กœ๊ทธ๋žจ ๊ฒฝ๋กœ, ๋ชจ๋‹ˆํ„ฐ, ์ฐฝ ์ƒํƒœ๋ฅผ ํ”„๋กœํ•„๋กœ ์ €์žฅํ•˜์—ฌ ์›ํด๋ฆญ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ธฐ๋Šฅ: ์—ฌ๋Ÿฌ ์•ฑ ์ฐฝ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ํ•˜๋‚˜์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋กœ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐฝ ์ƒํƒœ ์ œ์–ด: ์ „์ฒดํ™”๋ฉด, ์ฐฝ๋ชจ๋“œ, ๋ณต์› ์˜ต์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด ์ง€์›: ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ ๋ฐ ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜์„ ํ†ตํ•œ ๋น ๋ฅธ ์ ‘๊ทผ
  • ์ž๋™ ์ฐฝ ์œ„์น˜ ๋ชจ๋‹ˆํ„ฐ๋ง: ํ”„๋กœ๊ทธ๋žจ์ด ์ฐฝ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ์ž๋™์œผ๋กœ ์›ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋กœ ์žฌ๋ฐฐ์น˜
  • ์œ ์—ฐํ•œ ์‹คํ–‰ ๋Œ€์ƒ ์ง€์›: .exe, .lnk, URL/์…ธ ์‹คํ–‰ ๋Œ€์ƒ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํŒŒ์ผ ๊ตฌ์กฐ

MonitorLauncher/
โ”œโ”€โ”€ MonitorLauncher.csproj  # ํ”„๋กœ์ ํŠธ ํŒŒ์ผ
โ”œโ”€โ”€ app.manifest            # ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์š”๊ตฌ ์„ค์ •
โ”œโ”€โ”€ Program.cs              # ์ง„์ž…์ 
โ”œโ”€โ”€ MainForm.cs             # ๋ฉ”์ธ UI ๋ฐ ๋กœ์ง
โ”œโ”€โ”€ AppLauncherService.cs   # ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋ฐ ์ฐฝ ์ด๋™ ์กฐ์ •
โ”œโ”€โ”€ WorkspaceRestoreService.cs # ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ณต์› ๋ฐ ์ฐฝ ๋ชจ์œผ๊ธฐ
โ”œโ”€โ”€ WindowCaptureService.cs # ํ˜„์žฌ ์—ด๋ ค ์žˆ๋Š” ์ฐฝ ์บก์ฒ˜
โ”œโ”€โ”€ LaunchRequest.cs        # ์‹คํ–‰ ์š”์ฒญ ๋ชจ๋ธ
โ”œโ”€โ”€ LaunchResult.cs         # ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ชจ๋ธ
โ”œโ”€โ”€ WorkspaceProfile.cs     # ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ €์žฅ/๋กœ๋“œ
โ”œโ”€โ”€ AppWindowProfile.cs     # ์›Œํฌ์ŠคํŽ˜์ด์Šค ์•ฑ ์ฐฝ ๋ชจ๋ธ
โ”œโ”€โ”€ CapturedWindowInfo.cs   # ์บก์ฒ˜๋œ ์ฐฝ ์ •๋ณด
โ”œโ”€โ”€ AppWindowState.cs       # ์ฐฝ ์ƒํƒœ enum
โ”œโ”€โ”€ Win32Api.cs             # Win32 API ๋ž˜ํผ
โ”œโ”€โ”€ WindowController.cs     # ์ฐฝ ์œ„์น˜ ์ œ์–ด ๋กœ์ง
โ”œโ”€โ”€ Profile.cs              # ํ”„๋กœํ•„ ์ €์žฅ/๋กœ๋“œ
โ”œโ”€โ”€ Resources/              # ์•ฑ ๋กœ๊ณ , ์•ฑ ์•„์ด์ฝ˜, ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ ๋ฆฌ์†Œ์Šค
โ”œโ”€โ”€ tasks/                  # ์ž‘์—… ๊ธฐ๋ก
โ””โ”€โ”€ README.md               # ์ด ํŒŒ์ผ

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

์š”๊ตฌ์‚ฌํ•ญ

  • Windows 10 ๋˜๋Š” Windows 11
  • .NET 8.0 Runtime (๋‹ค์šด๋กœ๋“œ)
  • ๊ด€๋ฆฌ์ž ๊ถŒํ•œ (์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด๋ฅผ ์œ„ํ•ด ๊ถŒ์žฅ)

์„ค์น˜ ๋ฐฉ๋ฒ•

๋ฐฉ๋ฒ• 1: GitHub Releases์—์„œ ๋‹ค์šด๋กœ๋“œ (๊ถŒ์žฅ)

  1. Releases ํŽ˜์ด์ง€์—์„œ ์ตœ์‹  ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ
  2. MonitorLauncher.exe ์‹คํ–‰
  3. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ ๊ถŒ์žฅ

๋ฐฉ๋ฒ• 2: ์†Œ์Šค์—์„œ ๋นŒ๋“œ

# ์ €์žฅ์†Œ ํด๋ก 
git clone https://github.com/your-username/MonitorLauncher.git
cd MonitorLauncher

# ๋นŒ๋“œ
dotnet build MonitorLauncher.csproj -c Release

# ์‹คํ–‰ ํŒŒ์ผ ์œ„์น˜
# bin/Release/net8.0-windows/MonitorLauncher.exe

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

๊ธฐ๋ณธ ์‚ฌ์šฉ

  1. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค (๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๊ถŒ์žฅ)
  2. ๋ชจ๋‹ˆํ„ฐ ์„ ํƒ: ๋“œ๋กญ๋‹ค์šด์—์„œ ์›ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ ์„ ํƒ
  3. ์‹คํ–‰ ํŒŒ์ผ ์ง€์ •: "์ฐพ์•„๋ณด๊ธฐ..." ๋ฒ„ํŠผ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์„ ํƒ
  4. ์ธ์ž ์ž…๋ ฅ (์„ ํƒ): ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํ•„์š”ํ•œ ์ธ์ž ์ž…๋ ฅ
  5. ์ฐฝ ์ƒํƒœ ์„ ํƒ: ์ „์ฒดํ™”๋ฉด, ์ฐฝ๋ชจ๋“œ, ๋ณต์› ์ค‘ ์„ ํƒ
  6. ์‹คํ–‰ ๋ฒ„ํŠผ ํด๋ฆญ

ํ”„๋กœํ•„ ์ €์žฅ ๋ฐ ์‚ฌ์šฉ

ํ”„๋กœํ•„ ์ €์žฅ:

  1. ํ”„๋กœ๊ทธ๋žจ ๊ฒฝ๋กœ, ๋ชจ๋‹ˆํ„ฐ, ์ฐฝ ์ƒํƒœ๋ฅผ ์„ค์ •
  2. "ํ”„๋กœํ•„ ์ €์žฅ" ๋ฒ„ํŠผ ํด๋ฆญ
  3. ํ”„๋กœํ•„ ์ด๋ฆ„ ์ž…๋ ฅ (์˜ˆ: "๊ฒŒ์ž„ - ๋ชจ๋‹ˆํ„ฐ 2")

ํ”„๋กœํ•„ ์‹คํ–‰:

  • ํ”„๋กœํ•„ ๋ชฉ๋ก์—์„œ ๋”๋ธ”ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์„ค์ •์œผ๋กœ ์ฆ‰์‹œ ์‹คํ–‰
  • ๋˜๋Š” ํ”„๋กœํ•„ ์„ ํƒ ํ›„ "์‹คํ–‰" ๋ฒ„ํŠผ ํด๋ฆญ

ํ”„๋กœํ•„ ์‚ญ์ œ:

  • ํ”„๋กœํ•„ ์„ ํƒ ํ›„ "ํ”„๋กœํ•„ ์‚ญ์ œ" ๋ฒ„ํŠผ ํด๋ฆญ

์›Œํฌ์ŠคํŽ˜์ด์Šค ์ €์žฅ ๋ฐ ๋ณต์›

์›Œํฌ์ŠคํŽ˜์ด์Šค ์ €์žฅ:

  1. ๋ณต์›ํ•˜๊ณ  ์‹ถ์€ ์•ฑ ์ฐฝ์„ ์›ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ์™€ ์œ„์น˜์— ๋ฐฐ์น˜
  2. ์›Œํฌ์ŠคํŽ˜์ด์Šค ํƒญ์—์„œ "ํ˜„์žฌ ๋ฐฐ์น˜ ๊ฐ€์ ธ์˜ค๊ธฐ" ํด๋ฆญ
  3. ํฌํ•จํ•  ์ฐฝ๋งŒ ์ฒดํฌ
  4. ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ด๋ฆ„ ์ž…๋ ฅ ํ›„ "์ €์žฅ" ํด๋ฆญ
  5. ๊ฐ™์€ ์ด๋ฆ„์ด ์žˆ์œผ๋ฉด ๋ฎ์–ด์“ฐ๊ธฐ ์—ฌ๋ถ€ ํ™•์ธ (๊ธฐ๋ณธ ์„ ํƒ์€ "์•„๋‹ˆ์š”")

์›Œํฌ์ŠคํŽ˜์ด์Šค ์‹คํ–‰:

  • ์ €์žฅ๋œ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์„ ํƒ ํ›„ "์‹คํ–‰" ํด๋ฆญ
  • ๋˜๋Š” ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด์˜ "์›Œํฌ์ŠคํŽ˜์ด์Šค ์‹คํ–‰"์—์„œ ๋ฐ”๋กœ ์‹คํ–‰
  • ๋ณต์› ์ค‘์—๋Š” ํŠธ๋ ˆ์ด์™€ ํผ์—์„œ ์ค‘๋ณต ๋ณต์›์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค๋ช…๊ณผ ์ €์žฅ๋œ ์‹คํ–‰ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ œ๋ชฉ์ด ๊ฐ™์€ ์ฐฝ์„ ์šฐ์„  ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ๋ณต์›ํ•œ ์ฐฝ์€ ๊ฐ™์€ ๋ณต์› ์ž‘์—…์—์„œ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ œ๋ชฉ์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ๋™์ผํ•œ ์ฐฝ์€ ์ •ํ™•ํ•œ ๋Œ€์‘์ด ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ฑ ์ž์ฒด๊ฐ€ ์ƒˆ ์ฐฝ ์ƒ์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ถ€์กฑํ•œ ์ฐฝ์€ ๋ณต์› ์‹คํŒจ๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋™ ์‹คํŒจ์™€ ์ €์žฅ๋œ ๋ชจ๋‹ˆํ„ฐ ๋ถ€์žฌ๋กœ ์ธํ•œ ์ฃผ ๋ชจ๋‹ˆํ„ฐ ๋Œ€์ฒด๋Š” ๋ณต์› ๊ฒฐ๊ณผ์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํ™”๋ฉด ๋ฐ– ์ฐฝ ๋ณต๊ตฌ:

  • ์›Œํฌ์ŠคํŽ˜์ด์Šค ํƒญ์—์„œ "ํ™”๋ฉด ๋ฐ– ์ฐฝ ๋ณต๊ตฌ" ๋ฒ„ํŠผ ํด๋ฆญ
  • ๋ชจ๋‹ˆํ„ฐ ์‚ฌ์ด ๋นˆ ๊ณต๊ฐ„์„ ํฌํ•จํ•ด ์ œ๋ชฉ ์˜์—ญ์— ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜ ํฌ๊ธฐ๊ฐ€ ๋น„์ •์ƒ์ธ ์ฐฝ์„ ์ฃผ ๋ชจ๋‹ˆํ„ฐ ์ค‘์•™์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์™€ Windows Terminal๋„ ์ €์žฅ ๋Œ€์ƒ์— ํฌํ•จํ•˜๋ฉฐ, ๋ฐ”ํƒ•ํ™”๋ฉด๊ณผ ์ž‘์—… ํ‘œ์‹œ์ค„์€ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์€ ํ™”๋ฉด์—์„œ๋Š” ์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋กคํ•˜์—ฌ ํ•˜๋‹จ ๊ธฐ๋Šฅ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows ํšŒ๊ท€ ๊ฒ€์ฆ ์ ˆ์ฐจ๋Š” workspace-regression.md๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด ์‚ฌ์šฉ

  • ์ฐฝ์„ ๋‹ซ์„ ๋•Œ "๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰" ์„ ํƒ ์‹œ ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด๋กœ ์ด๋™
  • ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ ๋”๋ธ”ํด๋ฆญ์œผ๋กœ ์ฐฝ ํ‘œ์‹œ/์ˆจ๊น€
  • ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ ์šฐํด๋ฆญ์œผ๋กœ ๋ฉ”๋‰ด ์ ‘๊ทผ
  • ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด์˜ "ํ”„๋กœํ•„ ์‹คํ–‰"์—์„œ ์ €์žฅ๋œ ํ”„๋กœํ•„์„ ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ
  • ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด์˜ "์›Œํฌ์ŠคํŽ˜์ด์Šค ์‹คํ–‰"์—์„œ ์ €์žฅ๋œ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ

ํ”„๋กœํ•„ ์ €์žฅ ์œ„์น˜

ํ”„๋กœํ•„์€ ๋‹ค์Œ ์œ„์น˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค:

%APPDATA%\MonitorLauncher\profiles.json

ํ”„๋กœํ•„ ํŒŒ์ผ์„ ๋ฐฑ์—…ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ๋ณต์‚ฌํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›Œํฌ์ŠคํŽ˜์ด์Šค๋Š” ๋‹ค์Œ ์œ„์น˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค:

%APPDATA%\MonitorLauncher\workspaces.json

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

  • ์–ธ์–ด: C# 12.0
  • ํ”„๋ ˆ์ž„์›Œํฌ: .NET 8.0
  • UI: Windows Forms
  • API: Win32 API (P/Invoke)
  • ๋นŒ๋“œ ์‹œ์Šคํ…œ: MSBuild / .NET SDK

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

MonitorLauncher/
โ”œโ”€โ”€ MonitorLauncher.csproj  # ํ”„๋กœ์ ํŠธ ํŒŒ์ผ
โ”œโ”€โ”€ app.manifest            # ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์š”๊ตฌ ์„ค์ •
โ”œโ”€โ”€ Program.cs              # ์ง„์ž…์ 
โ”œโ”€โ”€ MainForm.cs             # ๋ฉ”์ธ UI ๋ฐ ๋กœ์ง
โ”œโ”€โ”€ AppLauncherService.cs   # ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋ฐ ์ฐฝ ์ด๋™ ์กฐ์ •
โ”œโ”€โ”€ WorkspaceRestoreService.cs # ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ณต์› ๋ฐ ์ฐฝ ๋ชจ์œผ๊ธฐ
โ”œโ”€โ”€ WindowCaptureService.cs # ํ˜„์žฌ ์—ด๋ ค ์žˆ๋Š” ์ฐฝ ์บก์ฒ˜
โ”œโ”€โ”€ LaunchRequest.cs        # ์‹คํ–‰ ์š”์ฒญ ๋ชจ๋ธ
โ”œโ”€โ”€ LaunchResult.cs         # ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ชจ๋ธ
โ”œโ”€โ”€ WorkspaceProfile.cs     # ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ €์žฅ/๋กœ๋“œ
โ”œโ”€โ”€ AppWindowProfile.cs     # ์›Œํฌ์ŠคํŽ˜์ด์Šค ์•ฑ ์ฐฝ ๋ชจ๋ธ
โ”œโ”€โ”€ CapturedWindowInfo.cs   # ์บก์ฒ˜๋œ ์ฐฝ ์ •๋ณด
โ”œโ”€โ”€ AppWindowState.cs       # ์ฐฝ ์ƒํƒœ enum
โ”œโ”€โ”€ Win32Api.cs             # Win32 API ๋ž˜ํผ
โ”œโ”€โ”€ WindowController.cs     # ์ฐฝ ์œ„์น˜ ์ œ์–ด ๋กœ์ง
โ”œโ”€โ”€ Profile.cs              # ํ”„๋กœํ•„ ์ €์žฅ/๋กœ๋“œ
โ”œโ”€โ”€ Resources/              # ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
โ”‚   โ”œโ”€โ”€ logo.png           # ์•ฑ ๋กœ๊ณ 
โ”‚   โ””โ”€โ”€ favicon.ico        # ์•ฑ/ํผ/ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜
โ”œโ”€โ”€ tasks/                  # ์ž‘์—… ๊ธฐ๋ก ๋ฐ ๊ตํ›ˆ
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/
โ”‚       โ””โ”€โ”€ build.yml      # GitHub Actions ๋นŒ๋“œ ์„ค์ •
โ””โ”€โ”€ README.md              # ์ด ํŒŒ์ผ

โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ ๋ฐ ์ œํ•œ์‚ฌํ•ญ

์ง€์› ์ œํ•œ

  • UWP ์•ฑ: Windows ์Šคํ† ์–ด ์•ฑ์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํ”Œ๋ž˜์‹œ ์Šคํฌ๋ฆฐ: ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์˜ ์Šคํ”Œ๋ž˜์‹œ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ธํ•ด ์ฐฝ ์œ„์น˜ ์ œ์–ด๊ฐ€ ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ์ž ๊ถŒํ•œ: ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์–ดํ•˜๋ ค๋ฉด ๋Ÿฐ์ฒ˜๋„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฐ์ฒ˜ํ˜• ์•ฑ/๊ฒŒ์ž„: ์ž์‹ ํ”„๋กœ์„ธ์Šค์—์„œ ์‹ค์ œ ์ฐฝ์„ ๋„์šฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐœ์„ ๋œ fallback์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, 100% ๋ณด์žฅ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
  • ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ณต์›: ์•ฑ์ด ์‹คํ–‰ ํ›„ ์ฐฝ ์ œ๋ชฉ์ด๋‚˜ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ๋ฅผ ํฌ๊ฒŒ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ ์ผ๋ถ€ ์ฐฝ์€ ์ž๋™ ๊ฐ์ง€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ถŒ์žฅ ์‚ฌํ•ญ

  • ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์‹คํ–‰: ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ ์ฐฝ ์ œ์–ด๋ฅผ ์œ„ํ•ด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœํ•„ ๋ฐฑ์—…: ์ค‘์š”ํ•œ ํ”„๋กœํ•„์€ ์ •๊ธฐ์ ์œผ๋กœ ๋ฐฑ์—…ํ•˜์„ธ์š” (%APPDATA%\MonitorLauncher\profiles.json)

๐Ÿ”ง ๊ฐœ๋ฐœ ๋ฐ ๊ธฐ์—ฌ

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

# .NET 8.0 SDK ์„ค์น˜ ํ•„์š”
dotnet --version  # 8.0.x ํ™•์ธ

# ํ”„๋กœ์ ํŠธ ๋ณต์ œ
git clone https://github.com/your-username/MonitorLauncher.git
cd MonitorLauncher

# ์˜์กด์„ฑ ๋ณต์›
dotnet restore

# ๋นŒ๋“œ
dotnet build

# ์‹คํ–‰
dotnet run

๊ธฐ์—ฌ ๋ฐฉ๋ฒ•

  1. ์ด ์ €์žฅ์†Œ๋ฅผ Fork
  2. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ (git checkout -b feature/AmazingFeature)
  3. ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ปค๋ฐ‹ (git commit -m 'Add some AmazingFeature')
  4. ๋ธŒ๋žœ์น˜์— Push (git push origin feature/AmazingFeature)
  5. Pull Request ์ƒ์„ฑ

๋ฒ„๊ทธ ๋ฆฌํฌํŠธ

๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜์…จ๋‹ค๋ฉด Issues์— ๋ฆฌํฌํŠธํ•ด์ฃผ์„ธ์š”.

๐Ÿ“ ๋ณ€๊ฒฝ ์ด๋ ฅ

์ตœ๊ทผ ์ฃผ์š” ์—…๋ฐ์ดํŠธ

  • v2.0.1: ์ฐฝ ์ค‘๋ณต ๋ณต์› ๋ฐฉ์ง€, ํ™”๋ฉด ๋ฐ– ์ฐฝ ๋ณต๊ตฌ ๊ฐœ์„ , ๋ณต์› ๊ฒฐ๊ณผ ์•ˆ๋‚ด ๋ฐ ์ž‘์€ ํ™”๋ฉด ๋Œ€์‘ (๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ)
  • v2.0.0: ์—ฌ๋Ÿฌ ์•ฑ ์ฐฝ ๋ฐฐ์น˜๋ฅผ ์ €์žฅ/๋ณต์›ํ•˜๋Š” ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋งค๋‹ˆ์ € MVP ์ถ”๊ฐ€
  • v1.2.6: ๋ชจ๋‹ˆํ„ฐ ์—ฐ๊ฒฐ ๋ณ€๊ฒฝ ํ›„ ์‹คํ–‰/ํ”„๋กœํ•„ ์ €์žฅ ์•ˆ์ „์„ฑ ๊ฐ•ํ™”, ํ”„๋กœํ•„ ์‚ญ์ œ ์ €์žฅ ํ๋ฆ„ ๋ณด์™„
  • v1.2.5: ์…ธ ์‹คํ–‰ ์ฐฝ ์ถ”์  ์•ˆ์ •ํ™”, ์ฐฝ ๋ณด์ • ๋ฃจํ”„ ์ˆ˜์ •, ์ƒˆ ์ฐฝ ์ด๋™ ์„ฑ๊ณต ํŒ์ • ๊ฐœ์„ 
  • v1.2.4: ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋กœ์ง ์„œ๋น„์Šค ๋ถ„๋ฆฌ, ์‹คํ–‰ ์š”์ฒญ/๊ฒฐ๊ณผ ๋ชจ๋ธ ์ถ”๊ฐ€, MainForm ์ฑ…์ž„ ์ •๋ฆฌ
  • v1.2.3: ์•ฑ ๋กœ๊ณ  ์ถ”๊ฐ€, GitHub Actions ์ž๋™ ๋นŒ๋“œ/๋ฆด๋ฆฌ์Šค ์„ค์ •
  • v1.2.2: ์„ฑ๋Šฅ ์ตœ์ ํ™” (CPU ์‚ฌ์šฉ๋Ÿ‰ 40% ๊ฐ์†Œ), ์ฐฝ ์œ„์น˜ ์ œ์–ด ๊ฐ•ํ™”
  • v1.1.0: ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด ๊ธฐ๋Šฅ, ์ฐฝ ์ƒํƒœ ์˜ต์…˜ ๊ฐœ์„ 

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ์ˆ˜์ •, ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ™ ๊ฐ์‚ฌ์˜ ๋ง

์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์‹œ๊ณ  ๊ธฐ์—ฌํ•ด์ฃผ์‹œ๋Š” ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


โญ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด Star๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”! โญ

Made with โค๏ธ for Windows users

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages