ë¡ë§¨í í¬
POPULAR POSTS
-
[Notion] ë ¸ì íì´ì§ ë§í¬ 걸기 ê¿í
[Notion] ë ¸ì íì´ì§ ë§í¬ 걸기 ê¿í
2020.05.02ë ¸ì ìì @(ê³¨ë± ì´)ì´ë /Link ë¨ì¶í¤ë¥¼ ì ë ¥íì¬ ê¸°ì¡´ì ìì±íë ë ¸ì íì´ì§ë¥¼ ë°ë¡ ë§í¬í ì ìë¤. ìì ì ìì±í´ë ë ¸ì íì´ì§ì ì ëª©ì´ ì íí 기ìµëì§ ììë í¤ìëë§ ì ë ¥íë©´ ì°ê´ íì´ì§ë¤ì´ ë¨ê¸° ë문ì í¸ë¦¬íë¤. ë ¸ì ì ì¬ì©íë©´ì ê°ì¥ ë§ìì ëë ê¸°ë¥ ì¤ íëë¤. ì¤ëì ë ¸ì ì ë§í¬ ì½ì ê³¼ ê´ë ¨í ììí í 3ê°ì§ë¥¼ ìê°íê³ ì íë¤. ð¡ í 1. @ ë¨ì¶í¤ë¡ ë ¸ì íì´ì§ ë§í¬ 걸기 ì¼ë°ì ì¸ ìë¹ì¤ìì @(ê³¨ë± ì´, at)ë ë³´íµ í¹ì ì¬ëì í¸ì¶í ë ì¬ì©íë¤. íì§ë§ ë ¸ì ìì ì¬ëì ë¬¼ë¡ ë ì§(Date), ë ¸ì íì´ì§(Page)ê¹ì§ ë§í¬í ì ìë¤. â¶@ ì ë ¥ í â·ë§í¬íê³ ì¶ì íì´ì§ ì 목/í¤ìë를 ì ë ¥íë©´ ì°ê´ íì´ì§ë¤ì´ ëíëë¤. â¸ì/ìë ë°©í¥í¤ë¡ ìíë íì´ì§ë¥¼ ì íí ë¤ â¹ìí°(.. -
[ìëë¡ì§ Nas] í¬í¸ ê°ë°© ìì´ ì격ìì ëì¤ SMB ì ìí기 - Tailscale
[ìëë¡ì§ Nas] í¬í¸ ê°ë°© ìì´ ì격ìì ëì¤ SMB ì ìí기 - Tailscale
2024.06.10ì격(ì¸ë¶) ë¤í¸ìí¬ìì SMBì ì ìíë ¤ë©´ 139, 445(ë§¥ë¶ ì°ê²° ì) ë±ì í¬í¸ë¥¼ ê°ë°©í´ì¼ ëë¤. íì§ë§ ì´ë¬í í¬í¸ë¤ì ë³´ìì ì·¨ì½í기 ë문ì 기본ì ì¼ë¡ SMB íë¡í ì½ì ë¡ì»¬ ë¤í¸ìí¬ììë§ ì¬ì©íë ê²ì ê¶ì¥íë¤. 보ì ì·¨ì½ì±ì ìµìííë©´ì ì격ìì ì ê·¼íë ¤ë©´ ë¡ì»¬ ë¤í¸ìí¬ì VPNì 구ì¶íë ê²ì´ ì¢ë¤. OpenVPN, WireGuard ë± ì¬ì¤ VPNì 구ì¶íë ì¬ë¬ ê°ì§ ë°©ë²ì´ ìëë° Tailscaleì ì¬ì©íë ê² ê°ì¥ í¸ë¦¬íë¤. Tailscaleì WireGuard를 ì´ì©í ì¬ì¤ Mesh Network ìë¹ì¤ë¤. Tailscaleì ì°ê²°ë ì¥ì¹ë ê°ì ë¤í¸ìí¬ì ìë ê²ì²ë¼ ìëíë¤. Tailscaleì ì¤ì ì´ ê±°ì íì ìê³ SSO ë¡ê·¸ì¸ì ì¬ì©íë¯ë¡ ë³´ì 문ì ê° ë°ìí ì¼ë ì ë¤... -
íë³´ í¬ì¤í°ì ì¬ì©íë©´ ì¢ì ì ë£/ë¬´ë£ ì¤êµì´ í°í¸(ìì²´) 모ì
íë³´ í¬ì¤í°ì ì¬ì©íë©´ ì¢ì ì ë£/ë¬´ë£ ì¤êµì´ í°í¸(ìì²´) 모ì
2020.08.16íë³´ í¬ì¤í°, SNS ì´ë¯¸ì§ ë±ì ì ìí ë ì´ë¤ í°í¸ë¥¼ ì¬ì©íëì ë°ë¼ ë¶ìê¸°ê° í ë¬ë¼ì§ë¤. ì ë¬íë ¤ë ë©ìì§ì í¤ì¤ë§¤ëì ì ë§ë í°í¸ë¥¼ ì ì íë ê±´ ê·¸ë§í¼ ì¤ìíë¤. íê¸ í°í¸ë ì¡°ê¸ë§ ê²ìí´ë³´ë©´ ë¤ìí ì 보를 ì»ì ì ìì§ë§ ìì¸ë¡ ì¤êµì´ í°í¸ ê´ë ¨ ì ë³´ë ë³ë¡ ìë¤. ì¤ëì ì¤êµ ë§ì¼í ë±ì ì ì©íê² ì¸ ì ìë ì ë£/ë¬´ë£ ì¤êµì´ í°í¸ë¥¼ ìê°íê³ ì íë¤. 1. 무ê²ê° ìë ì¤êµì´ í°í¸ ðº ä¼è®¾æ é¢é» (UISDC - íì íì²´) í°í¸ ì´ë¦: ä¼è®¾æ é¢é» í°í¸ ì ìì¬: UISDC í°í¸ í¤ìë: ìëê°, 무ê²ê° ë¼ì´ì ì¤: 무ë£, ìì ì ì¼ë¡ ì¬ì© ê°ë¥ ê¸ë¦¬í ê°ì: 7194 ë¤ì´ë¡ë : ë§í¬ ä¼è®¾æ é¢é»ë ìëì§ë¥¼ ë°ì°íë ë¯í ì¤íì¼ì í°í¸ë¤. ì¤ë¬¸ Simhei(é»ä½) ì체를 ë°íì¼ë¡ íì 굵기를 ì£¼ê³ .. -
[ìëë¡ì§ Nas] ëì¤ ë©ì¸ íëëì¤í¬ êµì²´í기
[ìëë¡ì§ Nas] ëì¤ ë©ì¸ íëëì¤í¬ êµì²´í기
2024.11.13ì¼ë§ ì 6ë ê° ì¬ì©íë Western Digital íëëì¤í¬ê° ì¬ë§íë¤. ì²ìì 볼륨 충ë ê´ë ¨ ë©ìì§ê° ë¨ëë, ê²°êµ ì¸ìì¡°ì°¨ ì ëë ìíì ì´ë¥´ë ë¤. ë¤íí ë©ì¸ íëëì¤í¬(1ë² ëë¼ì´ë¸ ë² ì´)ê° ìëë¼ì DSMì 문ì ìì´ ì¬ì©í ì ììë¤. ë©ì¸ íëëì¤í¬ ì©ëì 4TB ë°ì ì ë¼ì íì ë¶ì¡±íë¤ê³ ëê¼ìëë°, ì´ ì°¸ì í¨ì¬ í° ì©ëì íëëì¤í¬ë¡ ë°ê¿ì¤¬ë¤.  DSM ì¤ì , íì¼ ë± ê¸°ì¡´ ë°ì´í°ë ê·¸ëë¡ ì ì§íë©´ì íëëì¤í¬ë¥¼ êµì²´íë ¤ë©´ íëëì¤í¬ ë³µì¬ê¸°(HDD ëí¹ì¤í ì´ì )를 ì´ì©í ë°©ë²ì´ ê°ì¥ ê¹ëíë¤. íëëì¤í¬ ë³µì¬ê¸°ë 2~3ë§ìì´ë©´ 구매í ì ìê³ ë³µì¬ ê³¼ì ë ë²í¼ í ë²ë§ ë르면 ëë ì ëë¡ ì½ë¤. ì¤ëì DSM ë©ì¸ íëëì¤í¬ êµì²´ ê³¼ì ì ìê°í´ë³´ë ¤ê³ íë¤.   íëëì¤í¬ ë³µì¬?.. -
[DevTools] ESLint 9 Flat Config + Prettier ì¤ì (TypeScript, React)
[DevTools] ESLint 9 Flat Config + Prettier ì¤ì (TypeScript, React)
2024.06.30Flat ConfigESLint 8.21.0 ë²ì ë¶í° êµ¬ì± íì¼ì í° ë³íê° ìê²¼ë¤. 기존 .eslintrc íì¼ ëì íë« êµ¬ì±(Flat Config)ì ì¬ì©íë eslint.config.js íìì´ ìë¡ ëì ë ê². íë« êµ¬ì±ì extendsë overrides ê°ì ê³ì¸µ 구조ìì´ ê° êµ¬ì±ì ì´ë£¨ë ê°ì²´ë¤ì í¬í¨í 1ì°¨ì ë°°ì´ë¡ íííë¤. ì´ë¥¼ íµí´ ê·ì¹ì ì¸ë¶íí´ì¼ íë ìí©ìì ë ì ì°íê² ëìí ì ìê² ëë¤. e.g., êµ¬ì± ê°ì²´ 1-ìë°ì¤í¬ë¦½í¸ ê·ì¹, êµ¬ì± ê°ì²´ 2-íì ì¤í¬ë¦½í¸ ê·ì¹Â íìí íë¬ê·¸ì¸ì ì§ì import í í ì¬ì©íë ë°©ìì¼ë¡ ë³ê²½ë¼ì ì¢ ìì±ì ë ëª ííê² ê´ë¦¬í ì ìë¤.// eslint.config.js íì¼ ììimport eslint from '@eslint/js';i.. -
[macOS] 맥ìì Windows ì¤ì¹(ë¶í ) USB ë§ë¤ê¸°
[macOS] 맥ìì Windows ì¤ì¹(ë¶í ) USB ë§ë¤ê¸°
2024.05.15ì¼ë§ ì Windows 11 ë¶í USB를 ì¬ì©í ì¼ì´ ìê²¼ë¤. ìëì°ë¥¼ ì¬ì©íë¤ë©´ ê³µìì ì¼ë¡ ì ê³µëë ì¤ì¹ 미ëì´ ë§ë¤ê¸°(Windows Media Creation Tool) ë구를 ì¬ì©íë©´ ì½ê² ë§ë¤ ì ìì§ë§, ìì½ê²ë 맥(macOS) ì¬ì©ì를 ìí ë구ë ë°ë¡ ì ê³µíì§ ìëë¤. í¨ë¬ë ì¦(Parallels)ë¡ ìëì° ì¤ì¹ 미ëì´ ë§ë¤ê¸° ë구를 ì¤íí´ ë´¤ì§ë§ USB를 ì¸ìíì§ ëª»íë 문ì ê° ììë¤. ê·¸ë¬ë ì¤ WinDiskWriterë¼ë ì ì©í ë구를 ë°ê²¬í´ì ìê°í´ë³¼ê¹ íë¤.  ê°ì¥ ëì ëë 기ë¥ì TPM ì°íì ì¤ì¹ ì´ë¯¸ì§ ìë ë¶í ì´ë¤. 맥ì ë´ì¥ë ëì¤í¬ ì í¸ë¦¬í°ë 기본ì ì¼ë¡ HFS+, FAT32, ExFATë§ ì§ìíë©°, ìëì°ìì ì¬ì©íë NTFS íìì í¬ë§·ì ì½ì ìë ìì§ë§ ì°ê¸°ë¥¼ ì§ì..
LATEST POSTS
-
[CSS] ìì ë§¥ë½ Stacking Context
[CSS] ìì ë§¥ë½ Stacking Context
2025.02.26TL;DR기본ì ì¼ë¡ ììë¤ì DOM ììì ë°ë¼ ìì¸ë¤.positioned(position â static) ììë non-positioned(position = static) ììë³´ë¤ ìì ìì¸ë¤.positioned ììë¤ ì¤ z-index ê°ì´ ëììë¡ ìì ìì¸ë¤.ìë¡ì´ ìì 맥ë½ì´ ìì±ëë©´ ìì ììë í´ë¹ ë§¥ë½ ììì ììê° ê²°ì ëë¤.  ì¤ëª ìì 맥ë½(Stacking Context)ì HTML ììë¤ì ê°ìì zì¶(ê¹ì´) ë°©í¥ì¼ë¡ ë°°ì¹íë ê°ë ì´ë¤. 기본ì ì¼ë¡ ììë¤ì DOM ììì ë°ë¼ ìì¸ë¤. ì¦, ë¤ì ì ìí ììì¼ìë¡ íë©´ìì ìì ìì¹íë¤. positionì ì ì©í ìì(positioned)ë positionì ì ì©íì§ ìì ìì(non-positioned)ë³´ë¤ ìì ìì¸ë¤. posit.. -
[Nas] ìëë¡ì§ ëì¤ìì Cloudflare DDNS ì¬ì©í기 (ë커 ë°©ì)
[Nas] ìëë¡ì§ ëì¤ìì Cloudflare DDNS ì¬ì©í기 (ë커 ë°©ì)
2025.02.10ëë©ì¸ ë¤ììë²ë¡ Cloudflare를 ì¬ì©íë¤ë©´ Cloudflare API를 íì©í´ì DDNS 기ë¥ì 무ë£ë¡ ì¬ì©í ì ìë¤. ë³ëì í´ë¼ì´ì¸í¸ íë¡ê·¸ë¨ ìì´ API í¸ì¶ë§ì¼ë¡ ê°í¸íê² ì¤ì í ì ìê³ , ìì ì ëë©ì¸ì ê·¸ëë¡ íì©í ì ìë ì¥ì ì´ ìë¤. ë°ë©´, DuckDNS ê°ì ìë¹ì¤ë *.duckdns.org ííì ìë¸ëë©ì¸ë§ ì ê³µíë¯ë¡ ìíë ëë©ì¸ì ì§ì ì¬ì©í ì ìë¤. ìëë¡ì§ Nasìì Cloudflare를 ì°ëíë ë°©ë²ì í¬ê² ìì ì¤ì¼ì¤ë¬ì ì¤í¬ë¦½í¸ë¥¼ ë±ë¡íë ë°©ìê³¼ Docker 컨í ì´ë를 ì¤ííë ë°©ìì´ ìë¤. ë ë°©ë² ëª¨ë ì¤ì íëë° í¬ê² ì´ë µì§ ìì§ë§ íê²½ë³ì를 íµí´ ì¤ì ì ê´ë¦¬í기 ì©ì´í Docker ë°©ìì ì¶ì²íë¤. 기본ì ì¼ë¡ 1ê° ëë©ì¸(example.com)ì ëí ì¬.. -
[React] 리ì¡í¸ 19 ì ë°ì´í¸ ë´ì© íºì보기
[React] 리ì¡í¸ 19 ì ë°ì´í¸ ë´ì© íºì보기
2025.02.082024ë 12ì React 19ì stable ë²ì ì´ ì¶ìëë¤. 리ì¡í¸ ê³µì ë¸ë¡ê·¸ë¥¼ ì°¸ê³ í´ì React 19ì 주ì ë³ê²½ ì¬íì ì ë¦¬í´ ë´¤ë¤. ìë¡ê² ì ë³´ì¸ í ì ê°ì¢ 문ìì ìì 를 ì°¸ê³ í´ì ì´í´í기 ì½ëë¡ ë¶ì° ì¤ëª ì ë§ë¶ìë¤. 공ì문ìì 기존 ì¬ì©ì를 ìí ë§ì´ê·¸ë ì´ì ê°ì´ëë ìì¸íê² ëììì¼ë ì°¸ê³ íì.  useTransitionuseTransitionì ì£¼ë¡ ë¬´ê±°ì´ ìì ì ìí ì ë°ì´í¸ë¥¼ ë®ì ì°ì ììë¡ ì§ì íì¬ UI ë¸ë¡í¹ì ë°©ì§í ë ì¬ì©íë¤. React 18 ë²ì ê¹ì§ startTransition ì½ë°±ì íì ë기ì ì´ì´ì¼ íë ì ì½ì´ ììë¤. ë문ì ì½ë°± ììì ë¹ë기 í¸ì¶ ê°ì ìì ì ìíí ì ììë¤. React 19ë¶í´ startTransition ì½ë°± ììì ë¹ë기 ì²ë¦¬ë ê°ë¥í´ì¡.. -
[í¬ë¡¬ íì¥] íì´ì§ 목차를 íì ì¼ë¡ íìí´ì£¼ë - Smart TOC
[í¬ë¡¬ íì¥] íì´ì§ 목차를 íì ì¼ë¡ íìí´ì£¼ë - Smart TOC
2025.02.03긴 ë´ì©ì ì½ë¤ ë³´ë©´ ì´ì ëë ë¤ì ë¨ë½ì¼ë¡ ì´ëí´ì¼ í ëê° ë§ë¤. íì§ë§ ë§¤ë² ë§ì°ì¤ë¡ ì¤í¬ë¡¤í´ì ìíë ë¨ë½ì 찾기 ë²ê±°ë¡ê¸° ë문ì ìì 목ì 기ì¤ì¼ë¡ íìíë©´ í¨ì¬ ì½ê² ì°¾ì ì ìë¤. ì´ë° ìì 목ë¤ì 목차ìì íëì íì¸í ì ìë¤. ìí¤í¼ëì ê°ì ì¬ì´í¸ë ì¬ì´ëë°ì 목차를 ì ê³µíê³ íì¬ ë³´ê³ ìë ë¨ë½ì ìì 목ì êµµê² ê°ì¡° íìëë¤. ìì½ê²ë ë§ì ì¬ì´í¸ë ìí¤í¼ëì ê°ì 목차를 ë°ë¡ ì ê³µíì§ ìëë¤. Smart TOC ë¼ë í¬ë¡¬ ë¶ê°ê¸°ë¥ì ì¬ì©íë©´ íì¬ íì´ì§ì ì 목 íê·¸(h1, h2, ...)를 기ì¤ì¼ë¡ ì¬ì´ëë° í¹ì íë¡í ë©ë´ ííë¡ ëª©ì°¨ë¥¼ ë³¼ ì ìë¤.  ë¶ê°ê¸°ë¥ì ì¤ì¹íê³ í´ë°ì ìë Smart TOC ìì´ì½ì í´ë¦íë©´ 목차 íë¡í ë©ë´ê° íìëë¤. íë¡í ë©ë´ ìì¹ë ëëê·¸í´ì .. -
Cloudflare DNS ë ì½ë ì¤ì ë°©ë² (í°ì¤í 리, Vercel ë± ì¤ë¥ í´ê²°)
Cloudflare DNS ë ì½ë ì¤ì ë°©ë² (í°ì¤í 리, Vercel ë± ì¤ë¥ í´ê²°)
2025.02.02ì¼ë§ ì ëë©ì¸ ë¤ì ìë²(DNS)를 AWS Route 53ìì Cloudflareë¡ ì®ê²¼ë¤. Route 53ì í¸ì¤í ììë¹ ë§¤ì ï¼0.5 ë¹ì©ì´ ë°ìíê³ (ì¶ê° í¸ì¤í ììì ï¼0.1) 100ë§ ì¿¼ë¦¬ë¹ ï¼0.4 ëì§ ê³¼ê¸ì´ ì ì©ëë¤. ë°ë©´, Cloudflareë ì´ë¬í ë¹ì© ìì´ ë¬´ë£ë¡ ì¬ì©í ì ìë¤. ëí Cloudflare íë¡ì±ì íì±ííë©´ ë³ë ì¤ì ìì´ CDNì ì¬ì©í ì ìê³ ì¹ ì í리ì¼ì´ì ë°©íë²½(WAF), DDoS ë³´í¸ ë± ë¤ìí ë³´ì 기ë¥ë 무ë£ë¡ ì ê³µíë¤. ê·ëª¨ê° í¬ì§ ìì ì¹ì¬ì´í¸ë¼ë©´ ë¹ì©/ê¸°ë¥ ë©´ìì Cloudflareê° ë ì í©íë¤ê³ íë¨íë¤. ì¤ëì í°ì¤í 리, Vercel ë±ì DNS ë ì½ë를 ì¤ì í ë ë°ìíë 문ì ì í´ê²° ë°©ë²ì ëí´ ì ë¦¬í´ ë´¤ë¤.  í°ì¤í 리ë ì½ë ì¤ì ì í.. -
[Next.js] Dynamic Routes ë¤ì´ë믹 ë¼ì°í¸
[Next.js] Dynamic Routes ë¤ì´ë믹 ë¼ì°í¸
2025.01.31TL;DR[slug] : ë¨ì¼ ê²½ë¡ ì¸ê·¸ë¨¼í¸ í¬ì°©[...slug] : ë¤ì¤ ê²½ë¡ ì¸ê·¸ë¨¼í¸ í¬ì°©(Catch-All)[[...slug]] : ë£¨í¸ ê²½ë¡ë¥¼ í¬í¨í 모ë ê²½ë¡ë¥¼ ì íì ì¼ë¡ í¬ì°©(Optional Catch-All)  Dynamic Segmentsì íí ì¸ê·¸ë¨¼í¸ ì´ë¦ì 미리 ì ì ìì ë í´ë ì´ë¦ì ëê´í¸ë¡ ê°ì¸ë©´ ë¤ì´ë믹 ì¸ê·¸ë¨¼í¸ë¡ ìë. ì¸ê·¸ë¨¼í¸ ì´ë¦ì layout, page ëë route íì¼ìì params íë¡ì¼ë¡ ê° ì¡°í ê°ë¥. RouteURL ExampleParamsapp/blog/[slug]/page.js/blog/a{ slug: 'a' }app/blog/[slug]/page.js/blog/b{ slug: 'b' }ë£¨í¸ ê²½ë¡(blog/)ì íì´ì§ ìì¼ë©´ ì ê·¼ ë¶ê°.  Catch-..