Windows 11์˜ Click To Do (์œˆ๋„์šฐํ‚ค ๊ธธ๊ฒŒ ๋ˆ„๋ฅด๋ฉด ๋œจ๋Š” ๊ฑฐ) ๋„๊ธฐ/ํ•ด์ œ/๋น„ํ™œ์„ฑํ™”
IT/๊ธฐํƒ€2025. 6. 23. 17:07Windows 11์˜ Click To Do (์œˆ๋„์šฐํ‚ค ๊ธธ๊ฒŒ ๋ˆ„๋ฅด๋ฉด ๋œจ๋Š” ๊ฑฐ) ๋„๊ธฐ/ํ•ด์ œ/๋น„ํ™œ์„ฑํ™”

์ฃผ์˜๊ทธ๋ฃน ์ •์ฑ… ํŽธ์ง‘๊ธฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ (Windows 11 Home ๋“ฑ) ์ด๋ฅผ ์ ์šฉํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋ฐฉ๋ฒ•1. Win+R๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์‹คํ–‰์ฐฝ์ด ๋œจ๋ฉด, gpedit.msc๋ฅผ ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ๋ฅผ ์นฉ๋‹ˆ๋‹ค.2. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ฃน ์ •์ฑ… ํŽธ์ง‘๊ธฐ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.3. ํ™”๋ฉด ์ขŒ์ธก ํŠธ๋ฆฌ์—์„œ Computer Configuration > Administrative Templates > Windows Components > Windows AI (์ปดํ“จํ„ฐ ๊ตฌ์„ฑ > ๊ด€๋ฆฌ ํ…œํ”Œ๋ฆฟ > Windows ๊ตฌ์„ฑ์š”์†Œ > Windows AI)๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.4. ์œ„์™€ ๊ฐ™์ด Disable Click to Do (Click to Do ๋น„ํ™œ์„ฑํ™”)๋ฅผ ๋”๋ธ”ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.5. ์œ„์™€ ๊ฐ™์ด ํŒ์—…์ฐฝ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. Enabled (ํ™œ์„ฑํ™”๋จ)์„ ์„ ํƒ ํ›„ OK (ํ™•์ธ)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ..

Ubuntu 25.04 Wayland์—์„œ VS Code์˜ ํ๋ฆผ ํ˜„์ƒ ๋ฐ ํ•œ๊ธ€ ์ž…๋ ฅ ๊ด€๋ จ
IT/๊ธฐํƒ€2025. 6. 4. 17:27Ubuntu 25.04 Wayland์—์„œ VS Code์˜ ํ๋ฆผ ํ˜„์ƒ ๋ฐ ํ•œ๊ธ€ ์ž…๋ ฅ ๊ด€๋ จ

ํ˜„์žฌ ํ™˜๊ฒฝ์ˆœ์ • Ubuntu 25.04 ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ (Gnome 48, Wayland ์„ธ์…˜, ibus ํ•œ๊ธ€ ์ž…๋ ฅ๊ธฐ)Fractional scaling ์ ์šฉ๋จsnap์ด ์•„๋‹Œ .deb ํŒจํ‚ค์ง€ ํŒŒ์ผ๋กœ ์„ค์น˜ํ•œ VS Code๋ฌธ์ œ ์„ค๋ช…VS Code ์‹คํ–‰ ์‹œ ํ๋ฆฐ(blurry) ํ™”๋ฉด, ์ธํ’‹ ๋ž™ ๋ฐœ์ƒ(์œ„ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ) VS Code์˜ Ozone ํ”Œ๋žซํผ ์˜ต์…˜์„ X11 (Xwayland)๊ฐ€ ์•„๋‹Œ Wayland๋กœ ์ ์šฉ ์‹œ ํ•œ๊ธ€ ์ž…๋ ฅ์ด ๋ถˆ๊ฐ€์ฆ‰, ์„ ํƒ์ง€๊ฐ€ ๋‘ ๊ฐœ์˜€์Šต๋‹ˆ๋‹ค. ํ๋ฆฐ ํ™”๋ฉด๊ณผ ์ธํ’‹ ๋ž™์„ ์ฐธ๊ณ  ์“ฐ๊ฑฐ๋‚˜, ์ €๊ฑธ ๊ณ ์น˜๊ณ  ํ•œ๊ธ€ ์ž…๋ ฅ์„ ํฌ๊ธฐํ•˜๊ฑฐ๋‚˜.๋ชฉํ‘œํ๋ฆฐ ํ™”๋ฉด, ์ธํ’‹ ๋ž™, ํ•œ๊ธ€ ์ž…๋ ฅ ๋ถˆ๊ฐ€ ํ˜„์ƒ์„ ๋ชจ๋‘ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.ํ•ด๊ฒฐ์ฑ…VS Code ์‹คํ–‰ ์‹œ --ozone-platform-hint=wayland --enable-wayland..

ํ”„๋ฆฌํ…๋‹ค๋“œ (Pretendard) ๋ฐ ํŽด์ง„ ๊ณ ๋”•์˜ x → × ํ˜„์ƒ ์ˆ˜์ •ํ•˜๊ธฐ
IT/๊ธฐํƒ€2025. 5. 24. 03:50ํ”„๋ฆฌํ…๋‹ค๋“œ (Pretendard) ๋ฐ ํŽด์ง„ ๊ณ ๋”•์˜ x → × ํ˜„์ƒ ์ˆ˜์ •ํ•˜๊ธฐ

์ธํŠธ๋กœํ”„๋ฆฌํ…๋‹ค๋“œ์™€ ํŽด์ง„ ๊ณ ๋”•์€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ค‘๋ฆฝ์ ์ด๋ฉด์„œ๋„ ๋ฏธ๋ คํ•œ ๋ชจ์–‘์ƒˆ๋ฅผ ๊ฐ–์ถ”์–ด ์‹œ์Šคํ…œ UI๋กœ ์ œ๊ฒฉ์ธ ํฐํŠธ์ž…๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ์ด ํฐํŠธ๋“ค์—๋Š” ์œ„์™€ ๊ฐ™์ด (์ˆซ์ž)x(์ˆซ์ž)๊ฐ€ (์ˆซ์ž)×(์ˆซ์ž)๋กœ ๋Œ€์ฒด๋˜๋Š” '๋ฌธ๋งฅ ๋Œ€์ฒด (calt, ligature ๋“ฑ)' ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ด๊ฑด ์ธ์‡„์— ์ ํ•ฉํ• ์ง€๋Š” ๋ชฐ๋ผ๋„ ํ•œ ๊ธ€์ž ํ•œ ๊ธ€์ž๊ฐ€ ์›๋ณธ ๊ทธ๋Œ€๋กœ์—ฌ์•ผ ํ•˜๋Š” ์‹œ์Šคํ…œ UI์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํ•˜์—ฌ, ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” FontForge๋ผ๋Š” ํฐํŠธ ํŽธ์ง‘ ํˆด์„ ์ด์šฉํ•˜์—ฌ ํŠน์ • ligature๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ํฐํŠธ ์—ด๊ธฐ์ €๋Š” ํŽด์ง„ ๊ณ ๋”• Medium์˜ OTF ๋ฒ„์ „์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.ํฐํŠธ ์ˆ˜์ •ํ•˜๊ธฐ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ Element > Font Info...๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.ํฐํŠธ ์ •๋ณด ์ฐฝ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์ขŒ์ธก Lookups๋ฅผ ํด๋ฆญํ•œ ๋’ค,..

Pintos Project 1-4. Priority Scheduling w/ Priority Condition Variable
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 5. 13. 17:35Pintos Project 1-4. Priority Scheduling w/ Priority Condition Variable

priority-condvar ํ…Œ์ŠคํŠธ๊ฐ€ ๋‚จ์•˜๋‹ค์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Pintos์˜ ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง ๊ตฌํ˜„์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์ธ priority-condvar ๋ฐ ๊ด€๋ จ ๊ฐœ๋…์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ mutex์™€ semaphore, condition variable์— ๋Œ€ํ•œ ํฌ์ŠคํŠธ๋ฅผ ์ฝ๊ณ  ์™€์ฃผ์‹œ๊ธฐ๋ฅผ ๊ถŒํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.์ž ๊น, Priority Scheduling์—์„œ Condition Variable์€?๋Œ€๋žต์ ์ธ ๊ตฌ์กฐ๋Š” ์œ„์™€ ๊ฐ™์œผ๋ฉฐ, ์•„๋ž˜๊ฐ€ ๋ฐ”๋กœ synch.h์— ์œ„์น˜ํ•œ ์ปจ๋””์…˜ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.๋ฌธ์ œ ์ƒํ™ฉPintos๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„์„ ์ ํ˜• FIFO ์ •์ฑ…์œผ๋กœ ์Šค๋ ˆ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋˜์–ด ์žˆ์—ˆ๊ณ , ์ง€๊ธˆ๊นŒ์ง€ ์ €ํฌ๋Š” ์ด๋ฅผ ์„ ์ ํ˜• ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง์œผ๋กœ ๊ณ ์น˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ synch.c/h์˜ ํ•จ์ˆ˜๋“ค์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์€ ์ฑ„ ๋‚ด๋ฒ„๋ ค๋‘๊ณ  ์žˆ์—ˆ์ง€์š”. syn..

Pintos Project 1-3. Priority Scheduling w/ Priority Donation
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 5. 13. 16:16Pintos Project 1-3. Priority Scheduling w/ Priority Donation

์ธํŠธ๋กœ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง์—์„œ ์ค‘์š”ํ•œ ๋˜ ๋‹ค๋ฅธ ๊ฐœ๋…์€ ์šฐ์„ ์ˆœ์œ„ ์—ญ์ „(inversion)/๊ธฐ๋ถ€(donation)์ž…๋‹ˆ๋‹ค. ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„ ์Šค๋ ˆ๋“œ๊ฐ€ ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๋ฎคํ…์Šค๋ฅผ ํš๋“ํ•˜๊ณ  ์˜ค๋žซ๋™์•ˆ ๋†“์ง€ ์•Š์œผ๋ฉด, ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ์Šค๋ ˆ๋“œ๋Š” ๊ณ„์† ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์šฐ์„ ์ˆœ์œ„ ์—ญ์ „ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„ ์ˆœ์œ„ ์ƒ์† ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฎคํ…์Šค๋ฅผ ํš๋“ํ•œ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„ ์Šค๋ ˆ๋“œ๋Š” ๊ทธ ๋ฎคํ…์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ์Šค๋ ˆ๋“œ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ƒ์†๋ฐ›์•„ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฎคํ…์Šค๋ฅผ ํ•ด์ œํ•˜๋ฉด ์›๋ž˜์˜ ์šฐ์„ ์ˆœ์œ„๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ mutex์™€ semaphore, condition variable์— ๋Œ€ํ•œ ํฌ์ŠคํŠธ๋ฅผ ์ฝ๊ณ  ์™€์ฃผ์‹œ๊ธฐ๋ฅผ ๊ถŒํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.์šฐ์„ ์ˆœ์œ„ ์—ญ์ „์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•ฉ์‹œ๋‹ค.์‹ฑ๊ธ€์ฝ”..

Pintos Project 1-2. Priority Scheduling
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 5. 12. 23:10Pintos Project 1-2. Priority Scheduling

์ธํŠธ๋กœPintos ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๋Š” ๋‘ ๋ฒˆ์งธ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด์ „ ๊ธ€์—์„œ timer_sleep ํ•จ์ˆ˜์˜ Busy Waiting ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ํšจ์œจ์ ์ธ Sleep ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” '์•Œ๋žŒ ์‹œ๊ณ„' ํŒŒํŠธ๋ฅผ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” OS์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ์Šค์ผ€์ค„๋ง(Scheduling), ๊ทธ ์ค‘์—์„œ๋„ ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง(Priority Scheduling)์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ mutex์™€ semaphore, condition variable์— ๋Œ€ํ•œ ํฌ์ŠคํŠธ๋ฅผ ์ฝ๊ณ  ์™€์ฃผ์‹œ๊ธฐ๋ฅผ ๊ถŒํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.์Šค์ผ€์ค„๋ง์ด๋ž€?๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ(๋˜๋Š” ํ”„๋กœ์„ธ์Šค)๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์„ ๋•Œ, CPU๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์–ด๋–ค ์Šค๋ ˆ๋“œ์—๊ฒŒ CPU๋ฅผ ํ• ๋‹นํ• ..

Pintos Prerequisite: Mutex์™€ Semaphore, Condition Variable
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ2025. 5. 12. 22:32Pintos Prerequisite: Mutex์™€ Semaphore, Condition Variable

Mutex์™€ Semaphore, Condition Variable๋Š” ๋™๊ธฐํ™”/๋™์‹œ์„ฑ ์ œ์–ด์—์„œ ์•„์ฃผ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. Mutex์™€ Semaphore๊ฐ€ ๋งˆ์น˜ ๊ตํ†ต ์ฒด์ฆ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์ฐฐ๊ด€์ด๋‚˜ ์‹ ํ˜ธ๋“ฑ๊ณผ ๊ฐ™๋‹ค๋ฉด, Condition Variable์€ ์‹ ํ˜ธ๊ฐ€ ๋ฐ”๋€Œ๊ธธ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ฐจ๋Ÿ‰๋“ค์˜ ์ •์ง€์„  ๊ฐ™์€ ์กด์žฌ์ž…๋‹ˆ๋‹ค. Condition Variable์€ ์–ด๋–ค ์กฐ๊ฑด์ด ๋งŒ์กฑ๋  ๋•Œ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ํ•ด์ฃผ๋Š” ๋™๊ธฐํ™” ๋„๊ตฌ์ด๊ธฐ์—, ์ด๋ฅผ ๊ตํ†ต ์‹ ํ˜ธ์— ๋น„์œ ํ•˜๋ฉด, ์ฐจ๋“ค์ด ์‹ ํ˜ธ๊ฐ€ ์ดˆ๋ก๋ถˆ๋กœ ๋ฐ”๋€Œ๊ธฐ ์ „๊นŒ์ง€ ์ •์ง€์„ ์—์„œ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํ™ฉ์ด๋ž‘ ๋น„์Šทํ•˜๊ฑฐ๋“ ์š”.Mutex (Mutual Exclusion)Mutex๋Š” ํ•œ๊ตญ์–ด๋กœ "์ƒํ˜ธ ๋ฐฐํƒ€(๋ฐฐ์ œ)"๋กœ ๋ฒˆ์—ญ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ณต์œ  ์ž์›์— ๋Œ€ํ•ด ์˜ค์ง ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์ ‘๊ทผํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋งˆ์น˜ ํ™”์žฅ..

Pintos Project 1-1. Busy Waiting vs. Sleep/Wakeup
IT/์ปดํ“จํŒ…์  ์‚ฌ๊ณ 2025. 5. 12. 15:46Pintos Project 1-1. Busy Waiting vs. Sleep/Wakeup

์ธํŠธ๋กœํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ 9์ฃผ์ฐจ, Pintos ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐฐ์šฐ๊ณ  ๋А๋‚€ ์ ๋“ค์„ ๊ณต์œ ํ•˜๋Š” ์‹œ๋ฆฌ์ฆˆ์˜ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž…๋‹ˆ๋‹ค. Pintos ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ก ์œผ๋กœ๋งŒ ๋ฐฐ์šฐ๋˜ ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๊ฐœ๋…๋“ค์„ ์ง์ ‘ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ ๊นŠ์ด ์ดํ•ดํ•  ์•„์ฃผ ์ข‹์€ ๊ธฐํšŒ์ธ๋ฐ์š”. ๊ทธ ์ฒซ ๋ฒˆ์งธ ํŒŒํŠธ์ธ '์•Œ๋žŒ ์‹œ๊ณ„(Alarm Clock)' ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.์ฐธ๊ณ : ์ €ํฌ๋Š” ์Šคํƒ ํฌ๋“œ๋Œ€ CS 112/212์˜ ์˜ค๋ฆฌ์ง€๋„ Pintos๊ฐ€ ์•„๋‹Œ, x86-64์— ๋งž์ถ˜ Pintos-KAIST๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํฌ์ŠคํŠธ ๋˜ํ•œ ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.๊ณผ์ œ ๋ชฉํ‘œ: timer_sleep() ๊ฐœ์„ ์ €ํฌ๊ฐ€ ๋‹ค๋ฃฐ ํ•จ์ˆ˜๋Š” devices/timer.c์— ์ •์˜๋œ void timer_sleep(int64_t ticks)์ž…๋‹ˆ๋‹ค. ์ตœ์ดˆ๋กœ ๋ฐ›์•˜์„ ๋‹น์‹œ ๊ธฐ๋ณธ ๊ตฌ..

SF UI Display ํฐํŠธ (OTF)
IT/๊ธฐํƒ€2025. 5. 11. 16:44SF UI Display ํฐํŠธ (OTF)

์‹œ์Šคํ…œ UI๋‚˜ ํ”„๋ ˆ์  ํ…Œ์ด์…˜์— ์ ํ•ฉํ•œ SF UI Display OTF์ž…๋‹ˆ๋‹ค. ์••์ถ• ์•”ํ˜ธ 123

Ubuntu์— APT๋กœ Firefox Developer Edition ์„ค์น˜
IT/๊ธฐํƒ€2025. 5. 10. 14:36Ubuntu์— APT๋กœ Firefox Developer Edition ์„ค์น˜

Ubuntu์—์„œ๋„ Windows์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Firefox Developer Edition์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์•ˆํƒ€๊น๊ฒŒ๋„ ์•„๋ž˜์™€ ๊ฐ™์ด .tar.xz ์••์ถ• ํ˜•ํƒœ๋กœ ๋ฐฐํฌ๋˜๊ธฐ์— ์ด๋ฅผ /opt/firefox ๊ฐ™์€ ๊ณณ์— ์ง์ ‘ ํ’€๊ณ  ๋ฐ์Šคํฌํ†ฑ ์—”ํŠธ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๋“ฑ ๋ถˆํŽธํ•œ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Windows์ชฝ์— ๋น„์œ ํ•˜์ž๋ฉด ๋งˆ์น˜ ํฌํ„ฐ๋ธ” ZIP ํŒŒ์ผ์„ ๋ฐ›์•„๋‹ค๊ฐ€ ํŠน์ • ๊ฒฝ๋กœ์— ํ’€๊ณ  ๋ฐ”ํƒ•ํ™”๋ฉด์— EXE ๋ฐ”๋กœ๊ฐ€๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ์„ค์น˜ ์ž์ฒด๋„ ๋ฒˆ๊ฑฐ๋กญ์ง€๋งŒ ์ž๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ์•ˆ๋œ๋‹ค๋Š” ์ ์ด ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.๋‹ค๋งŒ ์ตœ๊ทผ์— APT๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋‚ด์–ด ํฌ์ŠคํŠธ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค.์„ค์น˜ ๋ฐฉ๋ฒ• (APT ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž)APT ํ‚ค ์ €์žฅ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑsudo install -d -m 0755 /etc/apt/keyringsMozil..

C์–ธ์–ด๋กœ ํŒŒ์‹ฑํ•˜๊ธฐ
IT/๊ธฐํƒ€2025. 5. 7. 16:40C์–ธ์–ด๋กœ ํŒŒ์‹ฑํ•˜๊ธฐ

์ด๋ฒˆ ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ 8์ฃผ์ฐจ์—์„œ web proxy lab ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ C์–ธ์–ด๋กœ HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ํŒŒ์‹ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•œ ์ค„์ด๋ฉด ๋๋‚  ์ž‘์—…๋“ค์ด C์—์„œ๋Š” ์™œ ์ด๋ฆฌ ์–ด๋ ต๊ณ , ๋ฒ„๊ทธ๋Š” ์™œ ์ด๋ฆฌ ์ž์ฃผ ๋‚˜ํƒ€๋‚˜๋Š”์ง€ ์ ˆ์‹คํžˆ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ๋งŽ์€ ๋ถ„๋“ค์ด ๋น„์Šทํ•œ ๊ฒฝํ—˜์„ ํ•˜์…จ๊ฑฐ๋‚˜, ์•ž์œผ๋กœ ๊ฒช๊ฒŒ ๋˜์‹œ๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ C์–ธ์–ด์—์„œ์˜ ํŒŒ์‹ฑ ์ž‘์—…์ด ์™œ ์œ ๋… ๊นŒ๋‹ค๋กœ์šด์ง€, ๊ทธ๋ฆฌ๊ณ  ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ—ค์ณ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์„์ง€์— ๋Œ€ํ•œ ์ œ ๊ฒฝํ—˜๊ณผ ํŒ์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.C์–ธ์–ด ํŒŒ์‹ฑ, ์™œ ์ด๋ ‡๊ฒŒ ์–ด๋ ค์šด ๊ฑธ๊นŒ์š”?'๋งจ์†์œผ๋กœ ์ ˆ๋ฒฝ ํƒ€๊ธฐ' - ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ: C๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ๊ณต๊ฐ„์„ ๋‚ด๊ณ , ๊ทธ ๊ณต๊ฐ„์„ ์ฐธ์กฐ, ์—ฐ์‚ฐ, ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ง์ ‘ ํ•œ๋‹ค๋Š” ๊ทธ ์ž์ฒด๊ฐ€ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ, ์ด..

์›น ํ”„๋ก์‹œ ๋žฉ: ๋‹ค๋œ ์บ์‹œ์— ํ•ด์‹œ ๋ผ์–น๊ธฐ (djb2 ํ•ด์‹œ + ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ)
IT/๊ธฐํƒ€2025. 5. 6. 11:46์›น ํ”„๋ก์‹œ ๋žฉ: ๋‹ค๋œ ์บ์‹œ์— ํ•ด์‹œ ๋ผ์–น๊ธฐ (djb2 ํ•ด์‹œ + ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ)

ํ‚ค์›Œ๋“œ: djb2 ํ•ด์‹œ, ํ•ด์‹œโ€ฏ+โ€ฏ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(LRU), Readerโ€‘Writer Lock, MAX_CACHE_SIZE, MAX_OBJECT_SIZE1. ์™œ ๋ณ„๋„์˜ ์บ์‹œ๊ฐ€ ํ•„์š”ํ•œ๊ฐ€?ํ”„๋ก์‹œ ์„œ๋ฒ„์—์„œ ์ธ๋ฉ”๋ชจ๋ฆฌ ์บ์‹ฑ์ด๋ž€? ๋™์ผ ๊ฐ์ฒด ์žฌ์š”์ฒญ ์‹œ, ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.์ €ํฌ ์ด๋ฒˆ 8์ฃผ์ฐจ ์›น ํ”„๋ก์‹œ ๋žฉ์˜ ์บ์‹ฑ ๋ถ€๋ถ„์˜ ์š”๊ตฌ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.์ธ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋‹ค์ค‘ ์ฝ๊ธฐ, ๋‹จ์ผ ์“ฐ๊ธฐ ๋ณด์žฅ → ์‚ฌ์‹ค์ƒ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๊ตฌํ˜„์ด ๊ฐ•์ œLRU ์ •์ฑ…์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ (๋˜๋Š” ์ง€์ •๋œ ์šฉ๋Ÿ‰์„ ๋งž์ถœ ๋•Œ๊นŒ์ง€) ๊ฐ์ฒด ์ž๋™ ํ‡ด์ถœ์ œ ๊ฐœ์ธ์ ์œผ๋กœ ๋ชฉํ‘œํ•˜์˜€๋˜ ์ถ”๊ฐ€ ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ๋„ ๋น ๋ฅธ ์‘๋‹ต์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด O(1) ํƒ์ƒ‰์‘๋‹ต ํ—ค๋”๊นŒ์ง€ ํ†ต์งธ๋กœ ์บ์‹œ (์žฌ์ „์†ก ์‹œ ์™„์ „ ๋™์ผํ•œ ์‘๋‹ต ๊ฐ€๋Šฅํ•˜๋„๋ก)์ผ๋ฐ˜์ ..

image