[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference":3,"page-\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference-ko":473,"surroundings\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference-ko":3925},[4],{"title":5,"ignore":6,"path":7,"stem":8,"children":9,"page":25},"문서",true,"\u002Fko\u002Fdocs","ko\u002F01.docs",[10,26,465],{"title":11,"path":12,"stem":13,"children":14,"page":-1},"환영합니다","\u002Fko\u002Fdocs\u002Fwelcome","ko\u002F01.docs\u002F01.welcome\u002F01.index",[15,16],{"title":11,"path":12,"stem":13},{"title":17,"path":18,"stem":19,"children":20,"page":25},"Get Started","\u002Fko\u002Fdocs\u002Fwelcome\u002Fget-started","ko\u002F01.docs\u002F01.welcome\u002F01.get-started",[21],{"title":22,"path":23,"stem":24},"설치","\u002Fko\u002Fdocs\u002Fwelcome\u002Fget-started\u002Finstallation","ko\u002F01.docs\u002F01.welcome\u002F01.get-started\u002F02.installation",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"핵심 도구","\u002Fko\u002Fdocs\u002Fcore","ko\u002F01.docs\u002F02.core",[31,56,68,77,86,94,102,124,156,188,197,205,213,222,231,239,250,271,295,324,354,381,409,436],{"title":32,"path":33,"stem":34,"children":35,"page":25},"MD5","\u002Fko\u002Fdocs\u002Fcore\u002Fmd5","ko\u002F01.docs\u002F02.core\u002F01.md5",[36,40,44,48,52],{"title":37,"path":38,"stem":39},"소개","\u002Fko\u002Fdocs\u002Fcore\u002Fmd5\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F01.md5\u002F01.introduction",{"title":41,"path":42,"stem":43},"기본 사용법","\u002Fko\u002Fdocs\u002Fcore\u002Fmd5\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F01.md5\u002F02.basic-usage",{"title":45,"path":46,"stem":47},"고급 기능","\u002Fko\u002Fdocs\u002Fcore\u002Fmd5\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F01.md5\u002F03.advanced-features",{"title":49,"path":50,"stem":51},"보안 고려사항","\u002Fko\u002Fdocs\u002Fcore\u002Fmd5\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F01.md5\u002F04.security-considerations",{"title":53,"path":54,"stem":55},"API 참조","\u002Fko\u002Fdocs\u002Fcore\u002Fmd5\u002Fapi-reference","ko\u002F01.docs\u002F02.core\u002F01.md5\u002F05.api-reference",{"title":57,"path":58,"stem":59,"children":60,"page":25},"UUID","\u002Fko\u002Fdocs\u002Fcore\u002Fuuid","ko\u002F01.docs\u002F02.core\u002F02.uuid",[61,64],{"title":37,"path":62,"stem":63},"\u002Fko\u002Fdocs\u002Fcore\u002Fuuid\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F02.uuid\u002F01.introduction",{"title":65,"path":66,"stem":67},"API","\u002Fko\u002Fdocs\u002Fcore\u002Fuuid\u002Fapi","ko\u002F01.docs\u002F02.core\u002F02.uuid\u002F02.api",{"title":69,"path":70,"stem":71,"children":72,"page":25},"Beyond Compare","\u002Fko\u002Fdocs\u002Fcore\u002Fbeyond-compare","ko\u002F01.docs\u002F02.core\u002F06.beyond-compare",[73],{"title":74,"path":75,"stem":76},"Introduction","\u002Fko\u002Fdocs\u002Fcore\u002Fbeyond-compare\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F06.beyond-compare\u002F0.introduction",{"title":78,"path":79,"stem":80,"children":81,"page":25},"Clock","\u002Fko\u002Fdocs\u002Fcore\u002Fclock","ko\u002F01.docs\u002F02.core\u002F06.clock",[82],{"title":83,"path":84,"stem":85},"Clock Tool","\u002Fko\u002Fdocs\u002Fcore\u002Fclock\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F06.clock\u002F0.introduction",{"title":87,"path":88,"stem":89,"children":90,"page":25},"Screenshot Tool","\u002Fko\u002Fdocs\u002Fcore\u002Fscreenshot-tool","ko\u002F01.docs\u002F02.core\u002F07.screenshot-tool",[91],{"title":74,"path":92,"stem":93},"\u002Fko\u002Fdocs\u002Fcore\u002Fscreenshot-tool\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F07.screenshot-tool\u002F0.introduction",{"title":95,"path":96,"stem":97,"children":98,"page":25},"Svg Placeholder Generator","\u002Fko\u002Fdocs\u002Fcore\u002Fsvg-placeholder-generator","ko\u002F01.docs\u002F02.core\u002F07.svg-placeholder-generator",[99],{"title":74,"path":100,"stem":101},"\u002Fko\u002Fdocs\u002Fcore\u002Fsvg-placeholder-generator\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F07.svg-placeholder-generator\u002F0.introduction",{"title":103,"path":104,"stem":105,"children":106,"page":25},"Area Converter","\u002Fko\u002Fdocs\u002Fcore\u002Farea-converter","ko\u002F01.docs\u002F02.core\u002F08.area-converter",[107,110,113,116,120],{"title":74,"path":108,"stem":109},"\u002Fko\u002Fdocs\u002Fcore\u002Farea-converter\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F08.area-converter\u002F0.introduction",{"title":41,"path":111,"stem":112},"\u002Fko\u002Fdocs\u002Fcore\u002Farea-converter\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F08.area-converter\u002F02.basic-usage",{"title":45,"path":114,"stem":115},"\u002Fko\u002Fdocs\u002Fcore\u002Farea-converter\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F08.area-converter\u002F03.advanced-features",{"title":117,"path":118,"stem":119},"예시","\u002Fko\u002Fdocs\u002Fcore\u002Farea-converter\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F08.area-converter\u002F04.examples",{"title":121,"path":122,"stem":123},"자주 묻는 질문","\u002Fko\u002Fdocs\u002Fcore\u002Farea-converter\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F08.area-converter\u002F05.faq",{"title":125,"path":126,"stem":127,"children":128,"page":25},"Camera Recorder","\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder",[129,132,136,140,144,148,152],{"title":74,"path":130,"stem":131},"\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F0.introduction",{"title":133,"path":134,"stem":135},"Basic Usage","\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F02.basic-usage",{"title":137,"path":138,"stem":139},"Advanced Features","\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F03.advanced-features",{"title":141,"path":142,"stem":143},"Examples","\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F04.examples",{"title":145,"path":146,"stem":147},"Frequently Asked Questions","\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F05.faq",{"title":149,"path":150,"stem":151},"Related Tools","\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F06.related-tools",{"title":153,"path":154,"stem":155},"Security Considerations","\u002Fko\u002Fdocs\u002Fcore\u002Fcamera-recorder\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F08.camera-recorder\u002F07.security-considerations",{"title":157,"path":158,"stem":159,"children":160,"page":25},"Todo List","\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list","ko\u002F01.docs\u002F02.core\u002F09.todo-list",[161,164,167,170,174,177,181,184],{"title":74,"path":162,"stem":163},"\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F0.introduction",{"title":41,"path":165,"stem":166},"\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F02.basic-usage",{"title":45,"path":168,"stem":169},"\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F03.advanced-features",{"title":171,"path":172,"stem":173},"보안 고려 사항","\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F04.security-considerations",{"title":53,"path":175,"stem":176},"\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fapi-reference","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F05.api-reference",{"title":178,"path":179,"stem":180},"사용 예","\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F06.examples",{"title":121,"path":182,"stem":183},"\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F07.faq",{"title":185,"path":186,"stem":187},"관련 도구","\u002Fko\u002Fdocs\u002Fcore\u002Ftodo-list\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F08.related-tools",{"title":189,"path":190,"stem":191,"children":192,"page":25},"Keycode Info","\u002Fko\u002Fdocs\u002Fcore\u002Fkeycode-info","ko\u002F01.docs\u002F02.core\u002F13.keycode-info",[193],{"title":194,"path":195,"stem":196},"키코드 정보 - 소개","\u002Fko\u002Fdocs\u002Fcore\u002Fkeycode-info\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F13.keycode-info\u002F0.introduction",{"title":198,"path":199,"stem":200,"children":201,"page":25},"Toml To Json","\u002Fko\u002Fdocs\u002Fcore\u002Ftoml-to-json","ko\u002F01.docs\u002F02.core\u002F14.toml-to-json",[202],{"title":74,"path":203,"stem":204},"\u002Fko\u002Fdocs\u002Fcore\u002Ftoml-to-json\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F14.toml-to-json\u002F0.introduction",{"title":206,"path":207,"stem":208,"children":209,"page":25},"Xml To Json","\u002Fko\u002Fdocs\u002Fcore\u002Fxml-to-json","ko\u002F01.docs\u002F02.core\u002F16.xml-to-json",[210],{"title":74,"path":211,"stem":212},"\u002Fko\u002Fdocs\u002Fcore\u002Fxml-to-json\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F16.xml-to-json\u002F0.introduction",{"title":214,"path":215,"stem":216,"children":217,"page":25},"Text Replacer","\u002Fko\u002Fdocs\u002Fcore\u002Ftext-replacer","ko\u002F01.docs\u002F02.core\u002F19.text-replacer",[218],{"title":219,"path":220,"stem":221},"텍스트 교체 도구 - 소개","\u002Fko\u002Fdocs\u002Fcore\u002Ftext-replacer\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F19.text-replacer\u002F01.introduction",{"title":223,"path":224,"stem":225,"children":226,"page":25},"Case Converter","\u002Fko\u002Fdocs\u002Fcore\u002Fcase-converter","ko\u002F01.docs\u002F02.core\u002F20.case-converter",[227],{"title":228,"path":229,"stem":230},"케이스 변환기","\u002Fko\u002Fdocs\u002Fcore\u002Fcase-converter\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F20.case-converter\u002F0.introduction",{"title":232,"path":233,"stem":234,"children":235,"page":25},"Temperature Converter","\u002Fko\u002Fdocs\u002Fcore\u002Ftemperature-converter","ko\u002F01.docs\u002F02.core\u002F20.temperature-converter",[236],{"title":74,"path":237,"stem":238},"\u002Fko\u002Fdocs\u002Fcore\u002Ftemperature-converter\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F20.temperature-converter\u002F0.introduction",{"title":240,"path":241,"stem":242,"children":243,"page":25},"Black Wallpaper","\u002Fko\u002Fdocs\u002Fcore\u002Fblack-wallpaper","ko\u002F01.docs\u002F02.core\u002F23.black-wallpaper",[244,247],{"title":74,"path":245,"stem":246},"\u002Fko\u002Fdocs\u002Fcore\u002Fblack-wallpaper\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F23.black-wallpaper\u002F0.introduction",{"title":41,"path":248,"stem":249},"\u002Fko\u002Fdocs\u002Fcore\u002Fblack-wallpaper\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F23.black-wallpaper\u002F02.basic-usage",{"title":251,"path":252,"stem":253,"children":254,"page":25},"Text Diff","\u002Fko\u002Fdocs\u002Fcore\u002Ftext-diff","ko\u002F01.docs\u002F02.core\u002F23.text-diff",[255,259,263,267],{"title":256,"path":257,"stem":258},"Text Diff 도구 - 소개","\u002Fko\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F23.text-diff\u002F0.introduction",{"title":260,"path":261,"stem":262},"기본 사용법 - Text Diff 도구","\u002Fko\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F23.text-diff\u002F02.basic-usage",{"title":264,"path":265,"stem":266},"고급 기능 - Text Diff 도구","\u002Fko\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F23.text-diff\u002F03.advanced-features",{"title":268,"path":269,"stem":270},"예제 - Text Diff 도구","\u002Fko\u002Fdocs\u002Fcore\u002Ftext-diff\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F23.text-diff\u002F04.examples",{"title":272,"path":273,"stem":274,"children":275,"page":25},"M3u8 Player","\u002Fko\u002Fdocs\u002Fcore\u002Fm3u8-player","ko\u002F01.docs\u002F02.core\u002F26.m3u8-player",[276,279,282,285,288,292],{"title":74,"path":277,"stem":278},"\u002Fko\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F0.introduction",{"title":41,"path":280,"stem":281},"\u002Fko\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F02.basic-usage",{"title":45,"path":283,"stem":284},"\u002Fko\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F03.advanced-features",{"title":53,"path":286,"stem":287},"\u002Fko\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fapi-reference","ko\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F05.api-reference",{"title":289,"path":290,"stem":291},"샘플 코드","\u002Fko\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F06.examples",{"title":121,"path":293,"stem":294},"\u002Fko\u002Fdocs\u002Fcore\u002Fm3u8-player\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F26.m3u8-player\u002F07.faq",{"title":296,"path":297,"stem":298,"children":299,"page":25},"Markdown To Pdf","\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf",[300,303,306,309,312,315,318,321],{"title":74,"path":301,"stem":302},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F0.introduction",{"title":41,"path":304,"stem":305},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F02.basic-usage",{"title":45,"path":307,"stem":308},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F03.advanced-features",{"title":171,"path":310,"stem":311},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F04.security-considerations",{"title":53,"path":313,"stem":314},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fapi-reference","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F05.api-reference",{"title":178,"path":316,"stem":317},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F06.examples",{"title":121,"path":319,"stem":320},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F07.faq",{"title":185,"path":322,"stem":323},"\u002Fko\u002Fdocs\u002Fcore\u002Fmarkdown-to-pdf\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002F27.markdown-to-pdf\u002F08.related-tools",{"title":325,"path":326,"stem":327,"children":328,"page":25},"Screen Dead Pixel Detector","\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector",[329,333,336,339,343,347,351],{"title":330,"path":331,"stem":332},"화면 불량 픽셀 검출기","\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F0.introduction",{"title":41,"path":334,"stem":335},"\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F02.basic-usage",{"title":45,"path":337,"stem":338},"\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F03.advanced-features",{"title":340,"path":341,"stem":342},"보안 및 개인정보","\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F04.security-considerations",{"title":344,"path":345,"stem":346},"사용 예시","\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F06.examples",{"title":348,"path":349,"stem":350},"FAQ","\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F07.faq",{"title":185,"path":352,"stem":353},"\u002Fko\u002Fdocs\u002Fcore\u002Fscreen-dead-pixel-detector\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002F30.screen-dead-pixel-detector\u002F08.related-tools",{"title":355,"path":356,"stem":357,"children":358,"page":25},"Survey Tool","\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool","ko\u002F01.docs\u002F02.core\u002F31.survey-tool",[359,363,366,369,372,375,378],{"title":360,"path":361,"stem":362},"설문조사 도구","\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F0.introduction",{"title":41,"path":364,"stem":365},"\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F02.basic-usage",{"title":45,"path":367,"stem":368},"\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F03.advanced-features",{"title":49,"path":370,"stem":371},"\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F04.security-considerations",{"title":344,"path":373,"stem":374},"\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F06.examples",{"title":348,"path":376,"stem":377},"\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F07.faq",{"title":185,"path":379,"stem":380},"\u002Fko\u002Fdocs\u002Fcore\u002Fsurvey-tool\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002F31.survey-tool\u002F08.related-tools",{"title":382,"path":383,"stem":384,"children":385,"page":25},"Vue Office","\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office","ko\u002F01.docs\u002F02.core\u002F32.vue-office",[386,390,393,396,400,403,406],{"title":387,"path":388,"stem":389},"Vue Office 문서 미리보기","\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F32.vue-office\u002F0.introduction",{"title":41,"path":391,"stem":392},"\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F32.vue-office\u002F02.basic-usage",{"title":45,"path":394,"stem":395},"\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F32.vue-office\u002F03.advanced-features",{"title":397,"path":398,"stem":399},"보안","\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F32.vue-office\u002F04.security-considerations",{"title":344,"path":401,"stem":402},"\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F32.vue-office\u002F06.examples",{"title":348,"path":404,"stem":405},"\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F32.vue-office\u002F07.faq",{"title":185,"path":407,"stem":408},"\u002Fko\u002Fdocs\u002Fcore\u002Fvue-office\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002F32.vue-office\u002F08.related-tools",{"title":410,"path":411,"stem":412,"children":413,"page":25},"Event Calendar","\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar","ko\u002F01.docs\u002F02.core\u002F33.event-calendar",[414,418,421,424,427,430,433],{"title":415,"path":416,"stem":417},"이벤트 캘린더","\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F0.introduction",{"title":41,"path":419,"stem":420},"\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F02.basic-usage",{"title":45,"path":422,"stem":423},"\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F03.advanced-features",{"title":49,"path":425,"stem":426},"\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F04.security-considerations",{"title":344,"path":428,"stem":429},"\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Fexamples","ko\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F06.examples",{"title":348,"path":431,"stem":432},"\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Ffaq","ko\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F07.faq",{"title":185,"path":434,"stem":435},"\u002Fko\u002Fdocs\u002Fcore\u002Fevent-calendar\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002F33.event-calendar\u002F08.related-tools",{"title":437,"path":438,"stem":439,"children":440,"page":25},"Base64","\u002Fko\u002Fdocs\u002Fcore\u002Fbase64","ko\u002F01.docs\u002F02.core\u002Fbase64",[441,444,447,450,453,456,459,462],{"title":74,"path":442,"stem":443},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Fintroduction","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F0.introduction",{"title":41,"path":445,"stem":446},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Fbasic-usage","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F02.basic-usage",{"title":45,"path":448,"stem":449},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Fadvanced-features","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F03.advanced-features",{"title":49,"path":451,"stem":452},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Fsecurity-considerations","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F04.security-considerations",{"title":53,"path":454,"stem":455},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Fapi-reference","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F05.api-reference",{"title":117,"path":457,"stem":458},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Fexamples","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F06.examples",{"title":121,"path":460,"stem":461},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Ffaq","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F07.faq",{"title":185,"path":463,"stem":464},"\u002Fko\u002Fdocs\u002Fcore\u002Fbase64\u002Frelated-tools","ko\u002F01.docs\u002F02.core\u002Fbase64\u002F08.related-tools",{"title":466,"path":467,"stem":468,"children":469,"page":25},"Troubleshooting","\u002Fko\u002Fdocs\u002Ftroubleshooting","ko\u002F01.docs\u002F06.troubleshooting",[470],{"title":121,"path":471,"stem":472},"\u002Fko\u002Fdocs\u002Ftroubleshooting\u002Fcommon-issues","ko\u002F01.docs\u002F06.troubleshooting\u002F01.common-issues",{"id":474,"title":53,"body":475,"description":498,"extension":3920,"meta":3921,"navigation":6,"path":175,"seo":3922,"sitemap":3923,"stem":176,"__hash__":3924},"content_ko\u002Fko\u002F01.docs\u002F02.core\u002F09.todo-list\u002F05.api-reference.md",{"type":476,"value":477,"toc":3881},"minimark",[478,482,487,492,653,657,743,747,751,767,771,959,963,967,1105,1109,1318,1322,1326,1564,1568,1623,1627,1631,1692,1696,2190,2194,2513,2517,2521,2546,2550,2564,2568,2572,2666,2670,2900,2904,2908,3140,3144,3380,3384,3388,3699,3703,3877],[479,480,53],"h1",{"id":481},"api-참조",[483,484,486],"h2",{"id":485},"데이터-구조","데이터 구조",[488,489,491],"h3",{"id":490},"task-객체","Task 객체",[493,494,499],"pre",{"className":495,"code":496,"language":497,"meta":498,"style":498},"language-typescript shiki shiki-themes github-light github-light dark-plus","interface Task {\n  id: string; \u002F\u002F 고유 식별자\n  text: string; \u002F\u002F 작업 설명\n  completed: boolean; \u002F\u002F 완료 상태\n  dueDate?: string; \u002F\u002F 선택적 마감일(ISO 형식)\n  priority: \"low\" | \"medium\" | \"high\"; \u002F\u002F 우선순위\n  createdAt: Date; \u002F\u002F 생성 타임스탬프\n  completedAt?: Date; \u002F\u002F 완료 타임스탬프(완료 시)\n}\n","typescript","",[500,501,502,519,541,556,572,588,616,632,647],"code",{"__ignoreMap":498},[503,504,507,511,515],"span",{"class":505,"line":506},"line",1,[503,508,510],{"class":509},"sGiLm","interface",[503,512,514],{"class":513},"s_0E6"," Task",[503,516,518],{"class":517},"svVIm"," {\n",[503,520,522,526,530,534,537],{"class":505,"line":521},2,[503,523,525],{"class":524},"szM7h","  id",[503,527,529],{"class":528},"sGmsN",":",[503,531,533],{"class":532},"s2-Xe"," string",[503,535,536],{"class":517},"; ",[503,538,540],{"class":539},"sLEZ0","\u002F\u002F 고유 식별자\n",[503,542,544,547,549,551,553],{"class":505,"line":543},3,[503,545,546],{"class":524},"  text",[503,548,529],{"class":528},[503,550,533],{"class":532},[503,552,536],{"class":517},[503,554,555],{"class":539},"\u002F\u002F 작업 설명\n",[503,557,559,562,564,567,569],{"class":505,"line":558},4,[503,560,561],{"class":524},"  completed",[503,563,529],{"class":528},[503,565,566],{"class":532}," boolean",[503,568,536],{"class":517},[503,570,571],{"class":539},"\u002F\u002F 완료 상태\n",[503,573,575,578,581,583,585],{"class":505,"line":574},5,[503,576,577],{"class":524},"  dueDate",[503,579,580],{"class":528},"?:",[503,582,533],{"class":532},[503,584,536],{"class":517},[503,586,587],{"class":539},"\u002F\u002F 선택적 마감일(ISO 형식)\n",[503,589,591,594,596,600,603,606,608,611,613],{"class":505,"line":590},6,[503,592,593],{"class":524},"  priority",[503,595,529],{"class":528},[503,597,599],{"class":598},"sjj1j"," \"low\"",[503,601,602],{"class":528}," |",[503,604,605],{"class":598}," \"medium\"",[503,607,602],{"class":528},[503,609,610],{"class":598}," \"high\"",[503,612,536],{"class":517},[503,614,615],{"class":539},"\u002F\u002F 우선순위\n",[503,617,619,622,624,627,629],{"class":505,"line":618},7,[503,620,621],{"class":524},"  createdAt",[503,623,529],{"class":528},[503,625,626],{"class":513}," Date",[503,628,536],{"class":517},[503,630,631],{"class":539},"\u002F\u002F 생성 타임스탬프\n",[503,633,635,638,640,642,644],{"class":505,"line":634},8,[503,636,637],{"class":524},"  completedAt",[503,639,580],{"class":528},[503,641,626],{"class":513},[503,643,536],{"class":517},[503,645,646],{"class":539},"\u002F\u002F 완료 타임스탬프(완료 시)\n",[503,648,650],{"class":505,"line":649},9,[503,651,652],{"class":517},"}\n",[488,654,656],{"id":655},"historyrecord-객체","HistoryRecord 객체",[493,658,660],{"className":495,"code":659,"language":497,"meta":498,"style":498},"interface HistoryRecord {\n  id: string; \u002F\u002F 고유 식별자\n  action: \"created\" | \"completed\" | \"deleted\" | \"updated\";\n  description: string; \u002F\u002F 사람이 읽을 수 있는 설명\n  timestamp: Date; \u002F\u002F 작업 타임스탬프\n}\n",[500,661,662,671,683,711,725,739],{"__ignoreMap":498},[503,663,664,666,669],{"class":505,"line":506},[503,665,510],{"class":509},[503,667,668],{"class":513}," HistoryRecord",[503,670,518],{"class":517},[503,672,673,675,677,679,681],{"class":505,"line":521},[503,674,525],{"class":524},[503,676,529],{"class":528},[503,678,533],{"class":532},[503,680,536],{"class":517},[503,682,540],{"class":539},[503,684,685,688,690,693,695,698,700,703,705,708],{"class":505,"line":543},[503,686,687],{"class":524},"  action",[503,689,529],{"class":528},[503,691,692],{"class":598}," \"created\"",[503,694,602],{"class":528},[503,696,697],{"class":598}," \"completed\"",[503,699,602],{"class":528},[503,701,702],{"class":598}," \"deleted\"",[503,704,602],{"class":528},[503,706,707],{"class":598}," \"updated\"",[503,709,710],{"class":517},";\n",[503,712,713,716,718,720,722],{"class":505,"line":558},[503,714,715],{"class":524},"  description",[503,717,529],{"class":528},[503,719,533],{"class":532},[503,721,536],{"class":517},[503,723,724],{"class":539},"\u002F\u002F 사람이 읽을 수 있는 설명\n",[503,726,727,730,732,734,736],{"class":505,"line":574},[503,728,729],{"class":524},"  timestamp",[503,731,529],{"class":528},[503,733,626],{"class":513},[503,735,536],{"class":517},[503,737,738],{"class":539},"\u002F\u002F 작업 타임스탬프\n",[503,740,741],{"class":505,"line":590},[503,742,652],{"class":517},[483,744,746],{"id":745},"local-storage-api","Local Storage API",[488,748,750],{"id":749},"저장소-키","저장소 키",[752,753,754,761],"ul",{},[755,756,757,760],"li",{},[500,758,759],{},"todo-tasks",": Task 객체 배열",[755,762,763,766],{},[500,764,765],{},"todo-history",": HistoryRecord 객체 배열",[488,768,770],{"id":769},"데이터-지속성","데이터 지속성",[493,772,776],{"className":773,"code":774,"language":775,"meta":498,"style":498},"language-javascript shiki shiki-themes github-light github-light dark-plus","\u002F\u002F 작업을 로컬 저장소에 저장\nlocalStorage.setItem(\"todo-tasks\", JSON.stringify(tasks));\n\n\u002F\u002F 로컬 저장소에서 작업 불러오기\nconst tasks = JSON.parse(localStorage.getItem(\"todo-tasks\") || \"[]\");\n\n\u002F\u002F 기록을 로컬 저장소에 저장\nlocalStorage.setItem(\"todo-history\", JSON.stringify(history));\n\n\u002F\u002F 로컬 저장소에서 기록 불러오기\nconst history = JSON.parse(localStorage.getItem(\"todo-history\") || \"[]\");\n","javascript",[500,777,778,783,822,827,832,876,880,885,913,917,923],{"__ignoreMap":498},[503,779,780],{"class":505,"line":506},[503,781,782],{"class":539},"\u002F\u002F 작업을 로컬 저장소에 저장\n",[503,784,785,789,792,796,799,802,805,809,811,814,816,819],{"class":505,"line":521},[503,786,788],{"class":787},"szTj3","localStorage",[503,790,791],{"class":517},".",[503,793,795],{"class":794},"sqMzV","setItem",[503,797,798],{"class":517},"(",[503,800,801],{"class":598},"\"todo-tasks\"",[503,803,804],{"class":517},", ",[503,806,808],{"class":807},"sdRU0","JSON",[503,810,791],{"class":517},[503,812,813],{"class":794},"stringify",[503,815,798],{"class":517},[503,817,818],{"class":787},"tasks",[503,820,821],{"class":517},"));\n",[503,823,824],{"class":505,"line":543},[503,825,826],{"emptyLinePlaceholder":6},"\n",[503,828,829],{"class":505,"line":558},[503,830,831],{"class":539},"\u002F\u002F 로컬 저장소에서 작업 불러오기\n",[503,833,834,837,840,843,846,848,851,853,855,857,860,862,864,867,870,873],{"class":505,"line":574},[503,835,836],{"class":509},"const",[503,838,839],{"class":807}," tasks",[503,841,842],{"class":528}," =",[503,844,845],{"class":807}," JSON",[503,847,791],{"class":517},[503,849,850],{"class":794},"parse",[503,852,798],{"class":517},[503,854,788],{"class":787},[503,856,791],{"class":517},[503,858,859],{"class":794},"getItem",[503,861,798],{"class":517},[503,863,801],{"class":598},[503,865,866],{"class":517},") ",[503,868,869],{"class":528},"||",[503,871,872],{"class":598}," \"[]\"",[503,874,875],{"class":517},");\n",[503,877,878],{"class":505,"line":590},[503,879,826],{"emptyLinePlaceholder":6},[503,881,882],{"class":505,"line":618},[503,883,884],{"class":539},"\u002F\u002F 기록을 로컬 저장소에 저장\n",[503,886,887,889,891,893,895,898,900,902,904,906,908,911],{"class":505,"line":634},[503,888,788],{"class":787},[503,890,791],{"class":517},[503,892,795],{"class":794},[503,894,798],{"class":517},[503,896,897],{"class":598},"\"todo-history\"",[503,899,804],{"class":517},[503,901,808],{"class":807},[503,903,791],{"class":517},[503,905,813],{"class":794},[503,907,798],{"class":517},[503,909,910],{"class":787},"history",[503,912,821],{"class":517},[503,914,915],{"class":505,"line":649},[503,916,826],{"emptyLinePlaceholder":6},[503,918,920],{"class":505,"line":919},10,[503,921,922],{"class":539},"\u002F\u002F 로컬 저장소에서 기록 불러오기\n",[503,924,926,928,931,933,935,937,939,941,943,945,947,949,951,953,955,957],{"class":505,"line":925},11,[503,927,836],{"class":509},[503,929,930],{"class":807}," history",[503,932,842],{"class":528},[503,934,845],{"class":807},[503,936,791],{"class":517},[503,938,850],{"class":794},[503,940,798],{"class":517},[503,942,788],{"class":787},[503,944,791],{"class":517},[503,946,859],{"class":794},[503,948,798],{"class":517},[503,950,897],{"class":598},[503,952,866],{"class":517},[503,954,869],{"class":528},[503,956,872],{"class":598},[503,958,875],{"class":517},[483,960,962],{"id":961},"내보내기가져오기-api","내보내기\u002F가져오기 API",[488,964,966],{"id":965},"내보내기-형식","내보내기 형식",[493,968,972],{"className":969,"code":970,"language":971,"meta":498,"style":498},"language-json shiki shiki-themes github-light github-light dark-plus","{\n  \"tasks\": [\n    {\n      \"id\": \"abc123\",\n      \"text\": \"Complete project\",\n      \"completed\": false,\n      \"dueDate\": \"2024-02-15\",\n      \"priority\": \"high\",\n      \"createdAt\": \"2024-02-01T10:00:00.000Z\",\n      \"completedAt\": null\n    }\n  ],\n  \"exportDate\": \"2024-02-01T10:00:00.000Z\"\n}\n","json",[500,973,974,979,988,993,1007,1019,1032,1044,1056,1068,1078,1083,1089,1100],{"__ignoreMap":498},[503,975,976],{"class":505,"line":506},[503,977,978],{"class":517},"{\n",[503,980,981,985],{"class":505,"line":521},[503,982,984],{"class":983},"sSQ6O","  \"tasks\"",[503,986,987],{"class":517},": [\n",[503,989,990],{"class":505,"line":543},[503,991,992],{"class":517},"    {\n",[503,994,995,998,1001,1004],{"class":505,"line":558},[503,996,997],{"class":983},"      \"id\"",[503,999,1000],{"class":517},": ",[503,1002,1003],{"class":598},"\"abc123\"",[503,1005,1006],{"class":517},",\n",[503,1008,1009,1012,1014,1017],{"class":505,"line":574},[503,1010,1011],{"class":983},"      \"text\"",[503,1013,1000],{"class":517},[503,1015,1016],{"class":598},"\"Complete project\"",[503,1018,1006],{"class":517},[503,1020,1021,1024,1026,1030],{"class":505,"line":590},[503,1022,1023],{"class":983},"      \"completed\"",[503,1025,1000],{"class":517},[503,1027,1029],{"class":1028},"sLV08","false",[503,1031,1006],{"class":517},[503,1033,1034,1037,1039,1042],{"class":505,"line":618},[503,1035,1036],{"class":983},"      \"dueDate\"",[503,1038,1000],{"class":517},[503,1040,1041],{"class":598},"\"2024-02-15\"",[503,1043,1006],{"class":517},[503,1045,1046,1049,1051,1054],{"class":505,"line":634},[503,1047,1048],{"class":983},"      \"priority\"",[503,1050,1000],{"class":517},[503,1052,1053],{"class":598},"\"high\"",[503,1055,1006],{"class":517},[503,1057,1058,1061,1063,1066],{"class":505,"line":649},[503,1059,1060],{"class":983},"      \"createdAt\"",[503,1062,1000],{"class":517},[503,1064,1065],{"class":598},"\"2024-02-01T10:00:00.000Z\"",[503,1067,1006],{"class":517},[503,1069,1070,1073,1075],{"class":505,"line":919},[503,1071,1072],{"class":983},"      \"completedAt\"",[503,1074,1000],{"class":517},[503,1076,1077],{"class":1028},"null\n",[503,1079,1080],{"class":505,"line":925},[503,1081,1082],{"class":517},"    }\n",[503,1084,1086],{"class":505,"line":1085},12,[503,1087,1088],{"class":517},"  ],\n",[503,1090,1092,1095,1097],{"class":505,"line":1091},13,[503,1093,1094],{"class":983},"  \"exportDate\"",[503,1096,1000],{"class":517},[503,1098,1099],{"class":598},"\"2024-02-01T10:00:00.000Z\"\n",[503,1101,1103],{"class":505,"line":1102},14,[503,1104,652],{"class":517},[488,1106,1108],{"id":1107},"가져오기-검증","가져오기 검증",[493,1110,1112],{"className":773,"code":1111,"language":775,"meta":498,"style":498},"function validateImportData(data) {\n  if (!data.tasks || !Array.isArray(data.tasks)) {\n    throw new Error(\"Invalid data format: tasks array required\");\n  }\n\n  data.tasks.forEach((task) => {\n    if (!task.id || !task.text || typeof task.completed !== \"boolean\") {\n      throw new Error(\"Invalid task format\");\n    }\n  });\n\n  return true;\n}\n",[500,1113,1114,1130,1173,1191,1196,1200,1227,1275,1291,1295,1300,1304,1314],{"__ignoreMap":498},[503,1115,1116,1119,1122,1124,1127],{"class":505,"line":506},[503,1117,1118],{"class":509},"function",[503,1120,1121],{"class":794}," validateImportData",[503,1123,798],{"class":517},[503,1125,1126],{"class":524},"data",[503,1128,1129],{"class":517},") {\n",[503,1131,1132,1136,1139,1142,1144,1146,1148,1151,1154,1157,1159,1162,1164,1166,1168,1170],{"class":505,"line":521},[503,1133,1135],{"class":1134},"srAhW","  if",[503,1137,1138],{"class":517}," (",[503,1140,1141],{"class":528},"!",[503,1143,1126],{"class":787},[503,1145,791],{"class":517},[503,1147,818],{"class":787},[503,1149,1150],{"class":528}," ||",[503,1152,1153],{"class":528}," !",[503,1155,1156],{"class":787},"Array",[503,1158,791],{"class":517},[503,1160,1161],{"class":794},"isArray",[503,1163,798],{"class":517},[503,1165,1126],{"class":787},[503,1167,791],{"class":517},[503,1169,818],{"class":787},[503,1171,1172],{"class":517},")) {\n",[503,1174,1175,1178,1181,1184,1186,1189],{"class":505,"line":543},[503,1176,1177],{"class":1134},"    throw",[503,1179,1180],{"class":509}," new",[503,1182,1183],{"class":794}," Error",[503,1185,798],{"class":517},[503,1187,1188],{"class":598},"\"Invalid data format: tasks array required\"",[503,1190,875],{"class":517},[503,1192,1193],{"class":505,"line":558},[503,1194,1195],{"class":517},"  }\n",[503,1197,1198],{"class":505,"line":574},[503,1199,826],{"emptyLinePlaceholder":6},[503,1201,1202,1205,1207,1209,1211,1214,1217,1220,1222,1225],{"class":505,"line":590},[503,1203,1204],{"class":787},"  data",[503,1206,791],{"class":517},[503,1208,818],{"class":787},[503,1210,791],{"class":517},[503,1212,1213],{"class":794},"forEach",[503,1215,1216],{"class":517},"((",[503,1218,1219],{"class":524},"task",[503,1221,866],{"class":517},[503,1223,1224],{"class":509},"=>",[503,1226,518],{"class":517},[503,1228,1229,1232,1234,1236,1238,1240,1243,1245,1247,1249,1251,1254,1256,1259,1262,1264,1267,1270,1273],{"class":505,"line":618},[503,1230,1231],{"class":1134},"    if",[503,1233,1138],{"class":517},[503,1235,1141],{"class":528},[503,1237,1219],{"class":787},[503,1239,791],{"class":517},[503,1241,1242],{"class":787},"id",[503,1244,1150],{"class":528},[503,1246,1153],{"class":528},[503,1248,1219],{"class":787},[503,1250,791],{"class":517},[503,1252,1253],{"class":787},"text",[503,1255,1150],{"class":528},[503,1257,1258],{"class":509}," typeof",[503,1260,1261],{"class":787}," task",[503,1263,791],{"class":517},[503,1265,1266],{"class":787},"completed",[503,1268,1269],{"class":528}," !==",[503,1271,1272],{"class":598}," \"boolean\"",[503,1274,1129],{"class":517},[503,1276,1277,1280,1282,1284,1286,1289],{"class":505,"line":634},[503,1278,1279],{"class":1134},"      throw",[503,1281,1180],{"class":509},[503,1283,1183],{"class":794},[503,1285,798],{"class":517},[503,1287,1288],{"class":598},"\"Invalid task format\"",[503,1290,875],{"class":517},[503,1292,1293],{"class":505,"line":649},[503,1294,1082],{"class":517},[503,1296,1297],{"class":505,"line":919},[503,1298,1299],{"class":517},"  });\n",[503,1301,1302],{"class":505,"line":925},[503,1303,826],{"emptyLinePlaceholder":6},[503,1305,1306,1309,1312],{"class":505,"line":1085},[503,1307,1308],{"class":1134},"  return",[503,1310,1311],{"class":1028}," true",[503,1313,710],{"class":517},[503,1315,1316],{"class":505,"line":1091},[503,1317,652],{"class":517},[483,1319,1321],{"id":1320},"이벤트-시스템","이벤트 시스템",[488,1323,1325],{"id":1324},"작업-이벤트","작업 이벤트",[493,1327,1329],{"className":773,"code":1328,"language":775,"meta":498,"style":498},"\u002F\u002F 작업 생성\nwindow.dispatchEvent(\n  new CustomEvent(\"taskCreated\", {\n    detail: { task: newTask },\n  }),\n);\n\n\u002F\u002F 작업 완료\nwindow.dispatchEvent(\n  new CustomEvent(\"taskCompleted\", {\n    detail: { task: completedTask },\n  }),\n);\n\n\u002F\u002F 작업 업데이트\nwindow.dispatchEvent(\n  new CustomEvent(\"taskUpdated\", {\n    detail: { task: updatedTask },\n  }),\n);\n\n\u002F\u002F 작업 삭제\nwindow.dispatchEvent(\n  new CustomEvent(\"taskDeleted\", {\n    detail: { taskId: deletedTaskId },\n  }),\n);\n",[500,1330,1331,1336,1349,1365,1382,1387,1391,1395,1400,1410,1423,1436,1440,1444,1448,1454,1465,1479,1493,1498,1503,1508,1514,1525,1539,1554,1559],{"__ignoreMap":498},[503,1332,1333],{"class":505,"line":506},[503,1334,1335],{"class":539},"\u002F\u002F 작업 생성\n",[503,1337,1338,1341,1343,1346],{"class":505,"line":521},[503,1339,1340],{"class":787},"window",[503,1342,791],{"class":517},[503,1344,1345],{"class":794},"dispatchEvent",[503,1347,1348],{"class":517},"(\n",[503,1350,1351,1354,1357,1359,1362],{"class":505,"line":543},[503,1352,1353],{"class":509},"  new",[503,1355,1356],{"class":794}," CustomEvent",[503,1358,798],{"class":517},[503,1360,1361],{"class":598},"\"taskCreated\"",[503,1363,1364],{"class":517},", {\n",[503,1366,1367,1370,1373,1376,1379],{"class":505,"line":558},[503,1368,1369],{"class":787},"    detail:",[503,1371,1372],{"class":517}," { ",[503,1374,1375],{"class":787},"task:",[503,1377,1378],{"class":787}," newTask",[503,1380,1381],{"class":517}," },\n",[503,1383,1384],{"class":505,"line":574},[503,1385,1386],{"class":517},"  }),\n",[503,1388,1389],{"class":505,"line":590},[503,1390,875],{"class":517},[503,1392,1393],{"class":505,"line":618},[503,1394,826],{"emptyLinePlaceholder":6},[503,1396,1397],{"class":505,"line":634},[503,1398,1399],{"class":539},"\u002F\u002F 작업 완료\n",[503,1401,1402,1404,1406,1408],{"class":505,"line":649},[503,1403,1340],{"class":787},[503,1405,791],{"class":517},[503,1407,1345],{"class":794},[503,1409,1348],{"class":517},[503,1411,1412,1414,1416,1418,1421],{"class":505,"line":919},[503,1413,1353],{"class":509},[503,1415,1356],{"class":794},[503,1417,798],{"class":517},[503,1419,1420],{"class":598},"\"taskCompleted\"",[503,1422,1364],{"class":517},[503,1424,1425,1427,1429,1431,1434],{"class":505,"line":925},[503,1426,1369],{"class":787},[503,1428,1372],{"class":517},[503,1430,1375],{"class":787},[503,1432,1433],{"class":787}," completedTask",[503,1435,1381],{"class":517},[503,1437,1438],{"class":505,"line":1085},[503,1439,1386],{"class":517},[503,1441,1442],{"class":505,"line":1091},[503,1443,875],{"class":517},[503,1445,1446],{"class":505,"line":1102},[503,1447,826],{"emptyLinePlaceholder":6},[503,1449,1451],{"class":505,"line":1450},15,[503,1452,1453],{"class":539},"\u002F\u002F 작업 업데이트\n",[503,1455,1457,1459,1461,1463],{"class":505,"line":1456},16,[503,1458,1340],{"class":787},[503,1460,791],{"class":517},[503,1462,1345],{"class":794},[503,1464,1348],{"class":517},[503,1466,1468,1470,1472,1474,1477],{"class":505,"line":1467},17,[503,1469,1353],{"class":509},[503,1471,1356],{"class":794},[503,1473,798],{"class":517},[503,1475,1476],{"class":598},"\"taskUpdated\"",[503,1478,1364],{"class":517},[503,1480,1482,1484,1486,1488,1491],{"class":505,"line":1481},18,[503,1483,1369],{"class":787},[503,1485,1372],{"class":517},[503,1487,1375],{"class":787},[503,1489,1490],{"class":787}," updatedTask",[503,1492,1381],{"class":517},[503,1494,1496],{"class":505,"line":1495},19,[503,1497,1386],{"class":517},[503,1499,1501],{"class":505,"line":1500},20,[503,1502,875],{"class":517},[503,1504,1506],{"class":505,"line":1505},21,[503,1507,826],{"emptyLinePlaceholder":6},[503,1509,1511],{"class":505,"line":1510},22,[503,1512,1513],{"class":539},"\u002F\u002F 작업 삭제\n",[503,1515,1517,1519,1521,1523],{"class":505,"line":1516},23,[503,1518,1340],{"class":787},[503,1520,791],{"class":517},[503,1522,1345],{"class":794},[503,1524,1348],{"class":517},[503,1526,1528,1530,1532,1534,1537],{"class":505,"line":1527},24,[503,1529,1353],{"class":509},[503,1531,1356],{"class":794},[503,1533,798],{"class":517},[503,1535,1536],{"class":598},"\"taskDeleted\"",[503,1538,1364],{"class":517},[503,1540,1542,1544,1546,1549,1552],{"class":505,"line":1541},25,[503,1543,1369],{"class":787},[503,1545,1372],{"class":517},[503,1547,1548],{"class":787},"taskId:",[503,1550,1551],{"class":787}," deletedTaskId",[503,1553,1381],{"class":517},[503,1555,1557],{"class":505,"line":1556},26,[503,1558,1386],{"class":517},[503,1560,1562],{"class":505,"line":1561},27,[503,1563,875],{"class":517},[488,1565,1567],{"id":1566},"기록-이벤트","기록 이벤트",[493,1569,1571],{"className":773,"code":1570,"language":775,"meta":498,"style":498},"\u002F\u002F 기록 항목 추가\nwindow.dispatchEvent(\n  new CustomEvent(\"historyAdded\", {\n    detail: { record: newRecord },\n  }),\n);\n",[500,1572,1573,1578,1588,1601,1615,1619],{"__ignoreMap":498},[503,1574,1575],{"class":505,"line":506},[503,1576,1577],{"class":539},"\u002F\u002F 기록 항목 추가\n",[503,1579,1580,1582,1584,1586],{"class":505,"line":521},[503,1581,1340],{"class":787},[503,1583,791],{"class":517},[503,1585,1345],{"class":794},[503,1587,1348],{"class":517},[503,1589,1590,1592,1594,1596,1599],{"class":505,"line":543},[503,1591,1353],{"class":509},[503,1593,1356],{"class":794},[503,1595,798],{"class":517},[503,1597,1598],{"class":598},"\"historyAdded\"",[503,1600,1364],{"class":517},[503,1602,1603,1605,1607,1610,1613],{"class":505,"line":558},[503,1604,1369],{"class":787},[503,1606,1372],{"class":517},[503,1608,1609],{"class":787},"record:",[503,1611,1612],{"class":787}," newRecord",[503,1614,1381],{"class":517},[503,1616,1617],{"class":505,"line":574},[503,1618,1386],{"class":517},[503,1620,1621],{"class":505,"line":590},[503,1622,875],{"class":517},[483,1624,1626],{"id":1625},"유틸리티-함수","유틸리티 함수",[488,1628,1630],{"id":1629},"id-생성","ID 생성",[493,1632,1634],{"className":773,"code":1633,"language":775,"meta":498,"style":498},"function generateId() {\n  return Math.random().toString(36).substr(2, 9);\n}\n",[500,1635,1636,1646,1688],{"__ignoreMap":498},[503,1637,1638,1640,1643],{"class":505,"line":506},[503,1639,1118],{"class":509},[503,1641,1642],{"class":794}," generateId",[503,1644,1645],{"class":517},"() {\n",[503,1647,1648,1650,1653,1655,1658,1661,1664,1666,1670,1673,1676,1678,1681,1683,1686],{"class":505,"line":521},[503,1649,1308],{"class":1134},[503,1651,1652],{"class":787}," Math",[503,1654,791],{"class":517},[503,1656,1657],{"class":794},"random",[503,1659,1660],{"class":517},"().",[503,1662,1663],{"class":794},"toString",[503,1665,798],{"class":517},[503,1667,1669],{"class":1668},"sewGd","36",[503,1671,1672],{"class":517},").",[503,1674,1675],{"class":794},"substr",[503,1677,798],{"class":517},[503,1679,1680],{"class":1668},"2",[503,1682,804],{"class":517},[503,1684,1685],{"class":1668},"9",[503,1687,875],{"class":517},[503,1689,1690],{"class":505,"line":543},[503,1691,652],{"class":517},[488,1693,1695],{"id":1694},"날짜-유틸리티","날짜 유틸리티",[493,1697,1699],{"className":773,"code":1698,"language":775,"meta":498,"style":498},"function getTomorrow() {\n  const tomorrow = new Date();\n  tomorrow.setDate(tomorrow.getDate() + 1);\n  return tomorrow.toISOString().split(\"T\")[0];\n}\n\nfunction isOverdue(dueDate) {\n  return new Date(dueDate) \u003C new Date();\n}\n\nfunction formatDate(date) {\n  return new Intl.DateTimeFormat(\"en-US\", {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\",\n  }).format(new Date(date));\n}\n\nfunction formatTimeAgo(date) {\n  const now = new Date();\n  const diff = now.getTime() - date.getTime();\n  const minutes = Math.floor(diff \u002F 60000);\n  const hours = Math.floor(diff \u002F 3600000);\n  const days = Math.floor(diff \u002F 86400000);\n\n  if (days > 0) return `${days} days ago`;\n  if (hours > 0) return `${hours} hours ago`;\n  if (minutes > 0) return `${minutes} minutes ago`;\n  return \"Just now\";\n}\n",[500,1700,1701,1710,1727,1758,1788,1792,1796,1810,1833,1837,1841,1855,1876,1886,1896,1905,1926,1930,1934,1947,1962,1992,2021,2047,2073,2077,2114,2144,2175,2185],{"__ignoreMap":498},[503,1702,1703,1705,1708],{"class":505,"line":506},[503,1704,1118],{"class":509},[503,1706,1707],{"class":794}," getTomorrow",[503,1709,1645],{"class":517},[503,1711,1712,1715,1718,1720,1722,1724],{"class":505,"line":521},[503,1713,1714],{"class":509},"  const",[503,1716,1717],{"class":807}," tomorrow",[503,1719,842],{"class":528},[503,1721,1180],{"class":509},[503,1723,626],{"class":794},[503,1725,1726],{"class":517},"();\n",[503,1728,1729,1732,1734,1737,1739,1742,1744,1747,1750,1753,1756],{"class":505,"line":543},[503,1730,1731],{"class":787},"  tomorrow",[503,1733,791],{"class":517},[503,1735,1736],{"class":794},"setDate",[503,1738,798],{"class":517},[503,1740,1741],{"class":787},"tomorrow",[503,1743,791],{"class":517},[503,1745,1746],{"class":794},"getDate",[503,1748,1749],{"class":517},"() ",[503,1751,1752],{"class":528},"+",[503,1754,1755],{"class":1668}," 1",[503,1757,875],{"class":517},[503,1759,1760,1762,1764,1766,1769,1771,1774,1776,1779,1782,1785],{"class":505,"line":558},[503,1761,1308],{"class":1134},[503,1763,1717],{"class":787},[503,1765,791],{"class":517},[503,1767,1768],{"class":794},"toISOString",[503,1770,1660],{"class":517},[503,1772,1773],{"class":794},"split",[503,1775,798],{"class":517},[503,1777,1778],{"class":598},"\"T\"",[503,1780,1781],{"class":517},")[",[503,1783,1784],{"class":1668},"0",[503,1786,1787],{"class":517},"];\n",[503,1789,1790],{"class":505,"line":574},[503,1791,652],{"class":517},[503,1793,1794],{"class":505,"line":590},[503,1795,826],{"emptyLinePlaceholder":6},[503,1797,1798,1800,1803,1805,1808],{"class":505,"line":618},[503,1799,1118],{"class":509},[503,1801,1802],{"class":794}," isOverdue",[503,1804,798],{"class":517},[503,1806,1807],{"class":524},"dueDate",[503,1809,1129],{"class":517},[503,1811,1812,1814,1816,1818,1820,1822,1824,1827,1829,1831],{"class":505,"line":634},[503,1813,1308],{"class":1134},[503,1815,1180],{"class":509},[503,1817,626],{"class":794},[503,1819,798],{"class":517},[503,1821,1807],{"class":787},[503,1823,866],{"class":517},[503,1825,1826],{"class":528},"\u003C",[503,1828,1180],{"class":509},[503,1830,626],{"class":794},[503,1832,1726],{"class":517},[503,1834,1835],{"class":505,"line":649},[503,1836,652],{"class":517},[503,1838,1839],{"class":505,"line":919},[503,1840,826],{"emptyLinePlaceholder":6},[503,1842,1843,1845,1848,1850,1853],{"class":505,"line":925},[503,1844,1118],{"class":509},[503,1846,1847],{"class":794}," formatDate",[503,1849,798],{"class":517},[503,1851,1852],{"class":524},"date",[503,1854,1129],{"class":517},[503,1856,1857,1859,1861,1864,1866,1869,1871,1874],{"class":505,"line":1085},[503,1858,1308],{"class":1134},[503,1860,1180],{"class":509},[503,1862,1863],{"class":787}," Intl",[503,1865,791],{"class":517},[503,1867,1868],{"class":794},"DateTimeFormat",[503,1870,798],{"class":517},[503,1872,1873],{"class":598},"\"en-US\"",[503,1875,1364],{"class":517},[503,1877,1878,1881,1884],{"class":505,"line":1091},[503,1879,1880],{"class":787},"    year:",[503,1882,1883],{"class":598}," \"numeric\"",[503,1885,1006],{"class":517},[503,1887,1888,1891,1894],{"class":505,"line":1102},[503,1889,1890],{"class":787},"    month:",[503,1892,1893],{"class":598}," \"short\"",[503,1895,1006],{"class":517},[503,1897,1898,1901,1903],{"class":505,"line":1450},[503,1899,1900],{"class":787},"    day:",[503,1902,1883],{"class":598},[503,1904,1006],{"class":517},[503,1906,1907,1910,1913,1915,1918,1920,1922,1924],{"class":505,"line":1456},[503,1908,1909],{"class":517},"  }).",[503,1911,1912],{"class":794},"format",[503,1914,798],{"class":517},[503,1916,1917],{"class":509},"new",[503,1919,626],{"class":794},[503,1921,798],{"class":517},[503,1923,1852],{"class":787},[503,1925,821],{"class":517},[503,1927,1928],{"class":505,"line":1467},[503,1929,652],{"class":517},[503,1931,1932],{"class":505,"line":1481},[503,1933,826],{"emptyLinePlaceholder":6},[503,1935,1936,1938,1941,1943,1945],{"class":505,"line":1495},[503,1937,1118],{"class":509},[503,1939,1940],{"class":794}," formatTimeAgo",[503,1942,798],{"class":517},[503,1944,1852],{"class":524},[503,1946,1129],{"class":517},[503,1948,1949,1951,1954,1956,1958,1960],{"class":505,"line":1500},[503,1950,1714],{"class":509},[503,1952,1953],{"class":807}," now",[503,1955,842],{"class":528},[503,1957,1180],{"class":509},[503,1959,626],{"class":794},[503,1961,1726],{"class":517},[503,1963,1964,1966,1969,1971,1973,1975,1978,1980,1983,1986,1988,1990],{"class":505,"line":1505},[503,1965,1714],{"class":509},[503,1967,1968],{"class":807}," diff",[503,1970,842],{"class":528},[503,1972,1953],{"class":787},[503,1974,791],{"class":517},[503,1976,1977],{"class":794},"getTime",[503,1979,1749],{"class":517},[503,1981,1982],{"class":528},"-",[503,1984,1985],{"class":787}," date",[503,1987,791],{"class":517},[503,1989,1977],{"class":794},[503,1991,1726],{"class":517},[503,1993,1994,1996,1999,2001,2003,2005,2008,2010,2013,2016,2019],{"class":505,"line":1510},[503,1995,1714],{"class":509},[503,1997,1998],{"class":807}," minutes",[503,2000,842],{"class":528},[503,2002,1652],{"class":787},[503,2004,791],{"class":517},[503,2006,2007],{"class":794},"floor",[503,2009,798],{"class":517},[503,2011,2012],{"class":787},"diff",[503,2014,2015],{"class":528}," \u002F",[503,2017,2018],{"class":1668}," 60000",[503,2020,875],{"class":517},[503,2022,2023,2025,2028,2030,2032,2034,2036,2038,2040,2042,2045],{"class":505,"line":1516},[503,2024,1714],{"class":509},[503,2026,2027],{"class":807}," hours",[503,2029,842],{"class":528},[503,2031,1652],{"class":787},[503,2033,791],{"class":517},[503,2035,2007],{"class":794},[503,2037,798],{"class":517},[503,2039,2012],{"class":787},[503,2041,2015],{"class":528},[503,2043,2044],{"class":1668}," 3600000",[503,2046,875],{"class":517},[503,2048,2049,2051,2054,2056,2058,2060,2062,2064,2066,2068,2071],{"class":505,"line":1527},[503,2050,1714],{"class":509},[503,2052,2053],{"class":807}," days",[503,2055,842],{"class":528},[503,2057,1652],{"class":787},[503,2059,791],{"class":517},[503,2061,2007],{"class":794},[503,2063,798],{"class":517},[503,2065,2012],{"class":787},[503,2067,2015],{"class":528},[503,2069,2070],{"class":1668}," 86400000",[503,2072,875],{"class":517},[503,2074,2075],{"class":505,"line":1541},[503,2076,826],{"emptyLinePlaceholder":6},[503,2078,2079,2081,2083,2086,2089,2092,2094,2097,2100,2104,2106,2109,2112],{"class":505,"line":1556},[503,2080,1135],{"class":1134},[503,2082,1138],{"class":517},[503,2084,2085],{"class":787},"days",[503,2087,2088],{"class":528}," >",[503,2090,2091],{"class":1668}," 0",[503,2093,866],{"class":517},[503,2095,2096],{"class":1134},"return",[503,2098,2099],{"class":598}," `",[503,2101,2103],{"class":2102},"s7eq4","${",[503,2105,2085],{"class":787},[503,2107,2108],{"class":2102},"}",[503,2110,2111],{"class":598}," days ago`",[503,2113,710],{"class":517},[503,2115,2116,2118,2120,2123,2125,2127,2129,2131,2133,2135,2137,2139,2142],{"class":505,"line":1561},[503,2117,1135],{"class":1134},[503,2119,1138],{"class":517},[503,2121,2122],{"class":787},"hours",[503,2124,2088],{"class":528},[503,2126,2091],{"class":1668},[503,2128,866],{"class":517},[503,2130,2096],{"class":1134},[503,2132,2099],{"class":598},[503,2134,2103],{"class":2102},[503,2136,2122],{"class":787},[503,2138,2108],{"class":2102},[503,2140,2141],{"class":598}," hours ago`",[503,2143,710],{"class":517},[503,2145,2147,2149,2151,2154,2156,2158,2160,2162,2164,2166,2168,2170,2173],{"class":505,"line":2146},28,[503,2148,1135],{"class":1134},[503,2150,1138],{"class":517},[503,2152,2153],{"class":787},"minutes",[503,2155,2088],{"class":528},[503,2157,2091],{"class":1668},[503,2159,866],{"class":517},[503,2161,2096],{"class":1134},[503,2163,2099],{"class":598},[503,2165,2103],{"class":2102},[503,2167,2153],{"class":787},[503,2169,2108],{"class":2102},[503,2171,2172],{"class":598}," minutes ago`",[503,2174,710],{"class":517},[503,2176,2178,2180,2183],{"class":505,"line":2177},29,[503,2179,1308],{"class":1134},[503,2181,2182],{"class":598}," \"Just now\"",[503,2184,710],{"class":517},[503,2186,2188],{"class":505,"line":2187},30,[503,2189,652],{"class":517},[488,2191,2193],{"id":2192},"작업-정렬","작업 정렬",[493,2195,2197],{"className":773,"code":2196,"language":775,"meta":498,"style":498},"function sortTasks(tasks) {\n  return tasks.sort((a, b) => {\n    \u002F\u002F 우선순위ソート\n    const priorityOrder = { high: 3, medium: 2, low: 1 };\n    const priorityDiff = priorityOrder[b.priority] - priorityOrder[a.priority];\n    if (priorityDiff !== 0) return priorityDiff;\n\n    \u002F\u002F 마감일 정렬\n    if (a.dueDate && b.dueDate) {\n      return new Date(a.dueDate).getTime() - new Date(b.dueDate).getTime();\n    }\n    if (a.dueDate) return -1;\n    if (b.dueDate) return 1;\n\n    \u002F\u002F 생성 시간 정렬\n    return b.createdAt.getTime() - a.createdAt.getTime();\n  });\n}\n",[500,2198,2199,2212,2239,2244,2280,2318,2339,2343,2348,2372,2415,2419,2443,2463,2467,2472,2505,2509],{"__ignoreMap":498},[503,2200,2201,2203,2206,2208,2210],{"class":505,"line":506},[503,2202,1118],{"class":509},[503,2204,2205],{"class":794}," sortTasks",[503,2207,798],{"class":517},[503,2209,818],{"class":524},[503,2211,1129],{"class":517},[503,2213,2214,2216,2218,2220,2223,2225,2228,2230,2233,2235,2237],{"class":505,"line":521},[503,2215,1308],{"class":1134},[503,2217,839],{"class":787},[503,2219,791],{"class":517},[503,2221,2222],{"class":794},"sort",[503,2224,1216],{"class":517},[503,2226,2227],{"class":524},"a",[503,2229,804],{"class":517},[503,2231,2232],{"class":524},"b",[503,2234,866],{"class":517},[503,2236,1224],{"class":509},[503,2238,518],{"class":517},[503,2240,2241],{"class":505,"line":543},[503,2242,2243],{"class":539},"    \u002F\u002F 우선순위ソート\n",[503,2245,2246,2249,2252,2254,2256,2259,2262,2264,2267,2270,2272,2275,2277],{"class":505,"line":558},[503,2247,2248],{"class":509},"    const",[503,2250,2251],{"class":807}," priorityOrder",[503,2253,842],{"class":528},[503,2255,1372],{"class":517},[503,2257,2258],{"class":787},"high:",[503,2260,2261],{"class":1668}," 3",[503,2263,804],{"class":517},[503,2265,2266],{"class":787},"medium:",[503,2268,2269],{"class":1668}," 2",[503,2271,804],{"class":517},[503,2273,2274],{"class":787},"low:",[503,2276,1755],{"class":1668},[503,2278,2279],{"class":517}," };\n",[503,2281,2282,2284,2287,2289,2291,2294,2296,2298,2301,2304,2306,2308,2310,2312,2314,2316],{"class":505,"line":574},[503,2283,2248],{"class":509},[503,2285,2286],{"class":807}," priorityDiff",[503,2288,842],{"class":528},[503,2290,2251],{"class":787},[503,2292,2293],{"class":517},"[",[503,2295,2232],{"class":787},[503,2297,791],{"class":517},[503,2299,2300],{"class":787},"priority",[503,2302,2303],{"class":517},"] ",[503,2305,1982],{"class":528},[503,2307,2251],{"class":787},[503,2309,2293],{"class":517},[503,2311,2227],{"class":787},[503,2313,791],{"class":517},[503,2315,2300],{"class":787},[503,2317,1787],{"class":517},[503,2319,2320,2322,2324,2327,2329,2331,2333,2335,2337],{"class":505,"line":590},[503,2321,1231],{"class":1134},[503,2323,1138],{"class":517},[503,2325,2326],{"class":787},"priorityDiff",[503,2328,1269],{"class":528},[503,2330,2091],{"class":1668},[503,2332,866],{"class":517},[503,2334,2096],{"class":1134},[503,2336,2286],{"class":787},[503,2338,710],{"class":517},[503,2340,2341],{"class":505,"line":618},[503,2342,826],{"emptyLinePlaceholder":6},[503,2344,2345],{"class":505,"line":634},[503,2346,2347],{"class":539},"    \u002F\u002F 마감일 정렬\n",[503,2349,2350,2352,2354,2356,2358,2360,2363,2366,2368,2370],{"class":505,"line":649},[503,2351,1231],{"class":1134},[503,2353,1138],{"class":517},[503,2355,2227],{"class":787},[503,2357,791],{"class":517},[503,2359,1807],{"class":787},[503,2361,2362],{"class":528}," &&",[503,2364,2365],{"class":787}," b",[503,2367,791],{"class":517},[503,2369,1807],{"class":787},[503,2371,1129],{"class":517},[503,2373,2374,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413],{"class":505,"line":919},[503,2375,2376],{"class":1134},"      return",[503,2378,1180],{"class":509},[503,2380,626],{"class":794},[503,2382,798],{"class":517},[503,2384,2227],{"class":787},[503,2386,791],{"class":517},[503,2388,1807],{"class":787},[503,2390,1672],{"class":517},[503,2392,1977],{"class":794},[503,2394,1749],{"class":517},[503,2396,1982],{"class":528},[503,2398,1180],{"class":509},[503,2400,626],{"class":794},[503,2402,798],{"class":517},[503,2404,2232],{"class":787},[503,2406,791],{"class":517},[503,2408,1807],{"class":787},[503,2410,1672],{"class":517},[503,2412,1977],{"class":794},[503,2414,1726],{"class":517},[503,2416,2417],{"class":505,"line":925},[503,2418,1082],{"class":517},[503,2420,2421,2423,2425,2427,2429,2431,2433,2435,2438,2441],{"class":505,"line":1085},[503,2422,1231],{"class":1134},[503,2424,1138],{"class":517},[503,2426,2227],{"class":787},[503,2428,791],{"class":517},[503,2430,1807],{"class":787},[503,2432,866],{"class":517},[503,2434,2096],{"class":1134},[503,2436,2437],{"class":528}," -",[503,2439,2440],{"class":1668},"1",[503,2442,710],{"class":517},[503,2444,2445,2447,2449,2451,2453,2455,2457,2459,2461],{"class":505,"line":1091},[503,2446,1231],{"class":1134},[503,2448,1138],{"class":517},[503,2450,2232],{"class":787},[503,2452,791],{"class":517},[503,2454,1807],{"class":787},[503,2456,866],{"class":517},[503,2458,2096],{"class":1134},[503,2460,1755],{"class":1668},[503,2462,710],{"class":517},[503,2464,2465],{"class":505,"line":1102},[503,2466,826],{"emptyLinePlaceholder":6},[503,2468,2469],{"class":505,"line":1450},[503,2470,2471],{"class":539},"    \u002F\u002F 생성 시간 정렬\n",[503,2473,2474,2477,2479,2481,2484,2486,2488,2490,2492,2495,2497,2499,2501,2503],{"class":505,"line":1456},[503,2475,2476],{"class":1134},"    return",[503,2478,2365],{"class":787},[503,2480,791],{"class":517},[503,2482,2483],{"class":787},"createdAt",[503,2485,791],{"class":517},[503,2487,1977],{"class":794},[503,2489,1749],{"class":517},[503,2491,1982],{"class":528},[503,2493,2494],{"class":787}," a",[503,2496,791],{"class":517},[503,2498,2483],{"class":787},[503,2500,791],{"class":517},[503,2502,1977],{"class":794},[503,2504,1726],{"class":517},[503,2506,2507],{"class":505,"line":1467},[503,2508,1299],{"class":517},[503,2510,2511],{"class":505,"line":1481},[503,2512,652],{"class":517},[483,2514,2516],{"id":2515},"브라우저-호환성","브라우저 호환성",[488,2518,2520],{"id":2519},"필요한-api","필요한 API",[752,2522,2523,2528,2534,2540],{},[755,2524,2525,2527],{},[500,2526,788],{}," — 데이터 지속성",[755,2529,2530,2533],{},[500,2531,2532],{},"JSON.parse\u002Fstringify"," — 데이터 직렬화",[755,2535,2536,2539],{},[500,2537,2538],{},"CustomEvent"," — 이벤트 시스템",[755,2541,2542,2545],{},[500,2543,2544],{},"Intl.DateTimeFormat"," — 날짜 형식",[488,2547,2549],{"id":2548},"지원-브라우저","지원 브라우저",[752,2551,2552,2555,2558,2561],{},[755,2553,2554],{},"Chrome 51+",[755,2556,2557],{},"Firefox 50+",[755,2559,2560],{},"Safari 10+",[755,2562,2563],{},"Edge 12+",[483,2565,2567],{"id":2566},"오류-처리","오류 처리",[488,2569,2571],{"id":2570},"일반적인-오류","일반적인 오류",[493,2573,2575],{"className":773,"code":2574,"language":775,"meta":498,"style":498},"try {\n  const tasks = JSON.parse(localStorage.getItem(\"todo-tasks\"));\n} catch (error) {\n  console.error(\"Failed to load tasks:\", error);\n  \u002F\u002F 빈 배열로 폴백\n  tasks = [];\n}\n",[500,2576,2577,2584,2612,2627,2647,2652,2662],{"__ignoreMap":498},[503,2578,2579,2582],{"class":505,"line":506},[503,2580,2581],{"class":1134},"try",[503,2583,518],{"class":517},[503,2585,2586,2588,2590,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610],{"class":505,"line":521},[503,2587,1714],{"class":509},[503,2589,839],{"class":807},[503,2591,842],{"class":528},[503,2593,845],{"class":807},[503,2595,791],{"class":517},[503,2597,850],{"class":794},[503,2599,798],{"class":517},[503,2601,788],{"class":787},[503,2603,791],{"class":517},[503,2605,859],{"class":794},[503,2607,798],{"class":517},[503,2609,801],{"class":598},[503,2611,821],{"class":517},[503,2613,2614,2617,2620,2622,2625],{"class":505,"line":543},[503,2615,2616],{"class":517},"} ",[503,2618,2619],{"class":1134},"catch",[503,2621,1138],{"class":517},[503,2623,2624],{"class":787},"error",[503,2626,1129],{"class":517},[503,2628,2629,2632,2634,2636,2638,2641,2643,2645],{"class":505,"line":558},[503,2630,2631],{"class":787},"  console",[503,2633,791],{"class":517},[503,2635,2624],{"class":794},[503,2637,798],{"class":517},[503,2639,2640],{"class":598},"\"Failed to load tasks:\"",[503,2642,804],{"class":517},[503,2644,2624],{"class":787},[503,2646,875],{"class":517},[503,2648,2649],{"class":505,"line":574},[503,2650,2651],{"class":539},"  \u002F\u002F 빈 배열로 폴백\n",[503,2653,2654,2657,2659],{"class":505,"line":590},[503,2655,2656],{"class":787},"  tasks",[503,2658,842],{"class":528},[503,2660,2661],{"class":517}," [];\n",[503,2663,2664],{"class":505,"line":618},[503,2665,652],{"class":517},[488,2667,2669],{"id":2668},"데이터-검증","데이터 검증",[493,2671,2673],{"className":773,"code":2672,"language":775,"meta":498,"style":498},"function validateTask(task) {\n  const errors = [];\n\n  if (!task.text || task.text.trim().length === 0) {\n    errors.push(\"Task text is required\");\n  }\n\n  if (![\"low\", \"medium\", \"high\"].includes(task.priority)) {\n    errors.push(\"Invalid priority level\");\n  }\n\n  if (task.dueDate && isNaN(Date.parse(task.dueDate))) {\n    errors.push(\"Invalid due date format\");\n  }\n\n  return errors;\n}\n",[500,2674,2675,2688,2699,2703,2742,2759,2763,2767,2805,2820,2824,2828,2865,2880,2884,2888,2896],{"__ignoreMap":498},[503,2676,2677,2679,2682,2684,2686],{"class":505,"line":506},[503,2678,1118],{"class":509},[503,2680,2681],{"class":794}," validateTask",[503,2683,798],{"class":517},[503,2685,1219],{"class":524},[503,2687,1129],{"class":517},[503,2689,2690,2692,2695,2697],{"class":505,"line":521},[503,2691,1714],{"class":509},[503,2693,2694],{"class":807}," errors",[503,2696,842],{"class":528},[503,2698,2661],{"class":517},[503,2700,2701],{"class":505,"line":543},[503,2702,826],{"emptyLinePlaceholder":6},[503,2704,2705,2707,2709,2711,2713,2715,2717,2719,2721,2723,2725,2727,2730,2732,2735,2738,2740],{"class":505,"line":558},[503,2706,1135],{"class":1134},[503,2708,1138],{"class":517},[503,2710,1141],{"class":528},[503,2712,1219],{"class":787},[503,2714,791],{"class":517},[503,2716,1253],{"class":787},[503,2718,1150],{"class":528},[503,2720,1261],{"class":787},[503,2722,791],{"class":517},[503,2724,1253],{"class":787},[503,2726,791],{"class":517},[503,2728,2729],{"class":794},"trim",[503,2731,1660],{"class":517},[503,2733,2734],{"class":983},"length",[503,2736,2737],{"class":528}," ===",[503,2739,2091],{"class":1668},[503,2741,1129],{"class":517},[503,2743,2744,2747,2749,2752,2754,2757],{"class":505,"line":574},[503,2745,2746],{"class":787},"    errors",[503,2748,791],{"class":517},[503,2750,2751],{"class":794},"push",[503,2753,798],{"class":517},[503,2755,2756],{"class":598},"\"Task text is required\"",[503,2758,875],{"class":517},[503,2760,2761],{"class":505,"line":590},[503,2762,1195],{"class":517},[503,2764,2765],{"class":505,"line":618},[503,2766,826],{"emptyLinePlaceholder":6},[503,2768,2769,2771,2773,2775,2777,2780,2782,2785,2787,2789,2792,2795,2797,2799,2801,2803],{"class":505,"line":634},[503,2770,1135],{"class":1134},[503,2772,1138],{"class":517},[503,2774,1141],{"class":528},[503,2776,2293],{"class":517},[503,2778,2779],{"class":598},"\"low\"",[503,2781,804],{"class":517},[503,2783,2784],{"class":598},"\"medium\"",[503,2786,804],{"class":517},[503,2788,1053],{"class":598},[503,2790,2791],{"class":517},"].",[503,2793,2794],{"class":794},"includes",[503,2796,798],{"class":517},[503,2798,1219],{"class":787},[503,2800,791],{"class":517},[503,2802,2300],{"class":787},[503,2804,1172],{"class":517},[503,2806,2807,2809,2811,2813,2815,2818],{"class":505,"line":649},[503,2808,2746],{"class":787},[503,2810,791],{"class":517},[503,2812,2751],{"class":794},[503,2814,798],{"class":517},[503,2816,2817],{"class":598},"\"Invalid priority level\"",[503,2819,875],{"class":517},[503,2821,2822],{"class":505,"line":919},[503,2823,1195],{"class":517},[503,2825,2826],{"class":505,"line":925},[503,2827,826],{"emptyLinePlaceholder":6},[503,2829,2830,2832,2834,2836,2838,2840,2842,2845,2847,2850,2852,2854,2856,2858,2860,2862],{"class":505,"line":1085},[503,2831,1135],{"class":1134},[503,2833,1138],{"class":517},[503,2835,1219],{"class":787},[503,2837,791],{"class":517},[503,2839,1807],{"class":787},[503,2841,2362],{"class":528},[503,2843,2844],{"class":794}," isNaN",[503,2846,798],{"class":517},[503,2848,2849],{"class":787},"Date",[503,2851,791],{"class":517},[503,2853,850],{"class":794},[503,2855,798],{"class":517},[503,2857,1219],{"class":787},[503,2859,791],{"class":517},[503,2861,1807],{"class":787},[503,2863,2864],{"class":517},"))) {\n",[503,2866,2867,2869,2871,2873,2875,2878],{"class":505,"line":1091},[503,2868,2746],{"class":787},[503,2870,791],{"class":517},[503,2872,2751],{"class":794},[503,2874,798],{"class":517},[503,2876,2877],{"class":598},"\"Invalid due date format\"",[503,2879,875],{"class":517},[503,2881,2882],{"class":505,"line":1102},[503,2883,1195],{"class":517},[503,2885,2886],{"class":505,"line":1450},[503,2887,826],{"emptyLinePlaceholder":6},[503,2889,2890,2892,2894],{"class":505,"line":1456},[503,2891,1308],{"class":1134},[503,2893,2694],{"class":787},[503,2895,710],{"class":517},[503,2897,2898],{"class":505,"line":1467},[503,2899,652],{"class":517},[483,2901,2903],{"id":2902},"성능-고려-사항","성능 고려 사항",[488,2905,2907],{"id":2906},"대량의-작업-목록","대량의 작업 목록",[493,2909,2911],{"className":773,"code":2910,"language":775,"meta":498,"style":498},"\u002F\u002F 큰 목록의 페이지네이션\nfunction getTasksPage(tasks, page = 1, pageSize = 50) {\n  const start = (page - 1) * pageSize;\n  const end = start + pageSize;\n  return tasks.slice(start, end);\n}\n\n\u002F\u002F 가상 스크롤 지원\nfunction getVisibleTasks(tasks, scrollTop, viewportHeight, itemHeight) {\n  const startIndex = Math.floor(scrollTop \u002F itemHeight);\n  const visibleCount = Math.ceil(viewportHeight \u002F itemHeight);\n  return tasks.slice(startIndex, startIndex + visibleCount);\n}\n",[500,2912,2913,2918,2950,2977,2995,3018,3022,3026,3031,3059,3085,3111,3136],{"__ignoreMap":498},[503,2914,2915],{"class":505,"line":506},[503,2916,2917],{"class":539},"\u002F\u002F 큰 목록의 페이지네이션\n",[503,2919,2920,2922,2925,2927,2929,2931,2934,2936,2938,2940,2943,2945,2948],{"class":505,"line":521},[503,2921,1118],{"class":509},[503,2923,2924],{"class":794}," getTasksPage",[503,2926,798],{"class":517},[503,2928,818],{"class":524},[503,2930,804],{"class":517},[503,2932,2933],{"class":524},"page",[503,2935,842],{"class":528},[503,2937,1755],{"class":1668},[503,2939,804],{"class":517},[503,2941,2942],{"class":524},"pageSize",[503,2944,842],{"class":528},[503,2946,2947],{"class":1668}," 50",[503,2949,1129],{"class":517},[503,2951,2952,2954,2957,2959,2961,2963,2965,2967,2969,2972,2975],{"class":505,"line":543},[503,2953,1714],{"class":509},[503,2955,2956],{"class":807}," start",[503,2958,842],{"class":528},[503,2960,1138],{"class":517},[503,2962,2933],{"class":787},[503,2964,2437],{"class":528},[503,2966,1755],{"class":1668},[503,2968,866],{"class":517},[503,2970,2971],{"class":528},"*",[503,2973,2974],{"class":787}," pageSize",[503,2976,710],{"class":517},[503,2978,2979,2981,2984,2986,2988,2991,2993],{"class":505,"line":558},[503,2980,1714],{"class":509},[503,2982,2983],{"class":807}," end",[503,2985,842],{"class":528},[503,2987,2956],{"class":787},[503,2989,2990],{"class":528}," +",[503,2992,2974],{"class":787},[503,2994,710],{"class":517},[503,2996,2997,2999,3001,3003,3006,3008,3011,3013,3016],{"class":505,"line":574},[503,2998,1308],{"class":1134},[503,3000,839],{"class":787},[503,3002,791],{"class":517},[503,3004,3005],{"class":794},"slice",[503,3007,798],{"class":517},[503,3009,3010],{"class":787},"start",[503,3012,804],{"class":517},[503,3014,3015],{"class":787},"end",[503,3017,875],{"class":517},[503,3019,3020],{"class":505,"line":590},[503,3021,652],{"class":517},[503,3023,3024],{"class":505,"line":618},[503,3025,826],{"emptyLinePlaceholder":6},[503,3027,3028],{"class":505,"line":634},[503,3029,3030],{"class":539},"\u002F\u002F 가상 스크롤 지원\n",[503,3032,3033,3035,3038,3040,3042,3044,3047,3049,3052,3054,3057],{"class":505,"line":649},[503,3034,1118],{"class":509},[503,3036,3037],{"class":794}," getVisibleTasks",[503,3039,798],{"class":517},[503,3041,818],{"class":524},[503,3043,804],{"class":517},[503,3045,3046],{"class":524},"scrollTop",[503,3048,804],{"class":517},[503,3050,3051],{"class":524},"viewportHeight",[503,3053,804],{"class":517},[503,3055,3056],{"class":524},"itemHeight",[503,3058,1129],{"class":517},[503,3060,3061,3063,3066,3068,3070,3072,3074,3076,3078,3080,3083],{"class":505,"line":919},[503,3062,1714],{"class":509},[503,3064,3065],{"class":807}," startIndex",[503,3067,842],{"class":528},[503,3069,1652],{"class":787},[503,3071,791],{"class":517},[503,3073,2007],{"class":794},[503,3075,798],{"class":517},[503,3077,3046],{"class":787},[503,3079,2015],{"class":528},[503,3081,3082],{"class":787}," itemHeight",[503,3084,875],{"class":517},[503,3086,3087,3089,3092,3094,3096,3098,3101,3103,3105,3107,3109],{"class":505,"line":925},[503,3088,1714],{"class":509},[503,3090,3091],{"class":807}," visibleCount",[503,3093,842],{"class":528},[503,3095,1652],{"class":787},[503,3097,791],{"class":517},[503,3099,3100],{"class":794},"ceil",[503,3102,798],{"class":517},[503,3104,3051],{"class":787},[503,3106,2015],{"class":528},[503,3108,3082],{"class":787},[503,3110,875],{"class":517},[503,3112,3113,3115,3117,3119,3121,3123,3126,3128,3130,3132,3134],{"class":505,"line":1085},[503,3114,1308],{"class":1134},[503,3116,839],{"class":787},[503,3118,791],{"class":517},[503,3120,3005],{"class":794},[503,3122,798],{"class":517},[503,3124,3125],{"class":787},"startIndex",[503,3127,804],{"class":517},[503,3129,3125],{"class":787},[503,3131,2990],{"class":528},[503,3133,3091],{"class":787},[503,3135,875],{"class":517},[503,3137,3138],{"class":505,"line":1091},[503,3139,652],{"class":517},[488,3141,3143],{"id":3142},"메모리-관리","메모리 관리",[493,3145,3147],{"className":773,"code":3146,"language":775,"meta":498,"style":498},"\u002F\u002F 기록 항목 제한\nfunction addHistoryRecord(history, record, maxRecords = 100) {\n  history.unshift(record);\n  if (history.length > maxRecords) {\n    history = history.slice(0, maxRecords);\n  }\n  return history;\n}\n\n\u002F\u002F 오래된 완료 작업 정리\nfunction cleanupOldTasks(tasks, daysToKeep = 30) {\n  const cutoff = new Date();\n  cutoff.setDate(cutoff.getDate() - daysToKeep);\n\n  return tasks.filter((task) => !task.completed || task.completedAt > cutoff);\n}\n",[500,3148,3149,3154,3182,3198,3217,3240,3244,3252,3256,3260,3265,3288,3303,3330,3334,3376],{"__ignoreMap":498},[503,3150,3151],{"class":505,"line":506},[503,3152,3153],{"class":539},"\u002F\u002F 기록 항목 제한\n",[503,3155,3156,3158,3161,3163,3165,3167,3170,3172,3175,3177,3180],{"class":505,"line":521},[503,3157,1118],{"class":509},[503,3159,3160],{"class":794}," addHistoryRecord",[503,3162,798],{"class":517},[503,3164,910],{"class":524},[503,3166,804],{"class":517},[503,3168,3169],{"class":524},"record",[503,3171,804],{"class":517},[503,3173,3174],{"class":524},"maxRecords",[503,3176,842],{"class":528},[503,3178,3179],{"class":1668}," 100",[503,3181,1129],{"class":517},[503,3183,3184,3187,3189,3192,3194,3196],{"class":505,"line":543},[503,3185,3186],{"class":787},"  history",[503,3188,791],{"class":517},[503,3190,3191],{"class":794},"unshift",[503,3193,798],{"class":517},[503,3195,3169],{"class":787},[503,3197,875],{"class":517},[503,3199,3200,3202,3204,3206,3208,3210,3212,3215],{"class":505,"line":558},[503,3201,1135],{"class":1134},[503,3203,1138],{"class":517},[503,3205,910],{"class":787},[503,3207,791],{"class":517},[503,3209,2734],{"class":983},[503,3211,2088],{"class":528},[503,3213,3214],{"class":787}," maxRecords",[503,3216,1129],{"class":517},[503,3218,3219,3222,3224,3226,3228,3230,3232,3234,3236,3238],{"class":505,"line":574},[503,3220,3221],{"class":787},"    history",[503,3223,842],{"class":528},[503,3225,930],{"class":787},[503,3227,791],{"class":517},[503,3229,3005],{"class":794},[503,3231,798],{"class":517},[503,3233,1784],{"class":1668},[503,3235,804],{"class":517},[503,3237,3174],{"class":787},[503,3239,875],{"class":517},[503,3241,3242],{"class":505,"line":590},[503,3243,1195],{"class":517},[503,3245,3246,3248,3250],{"class":505,"line":618},[503,3247,1308],{"class":1134},[503,3249,930],{"class":787},[503,3251,710],{"class":517},[503,3253,3254],{"class":505,"line":634},[503,3255,652],{"class":517},[503,3257,3258],{"class":505,"line":649},[503,3259,826],{"emptyLinePlaceholder":6},[503,3261,3262],{"class":505,"line":919},[503,3263,3264],{"class":539},"\u002F\u002F 오래된 완료 작업 정리\n",[503,3266,3267,3269,3272,3274,3276,3278,3281,3283,3286],{"class":505,"line":925},[503,3268,1118],{"class":509},[503,3270,3271],{"class":794}," cleanupOldTasks",[503,3273,798],{"class":517},[503,3275,818],{"class":524},[503,3277,804],{"class":517},[503,3279,3280],{"class":524},"daysToKeep",[503,3282,842],{"class":528},[503,3284,3285],{"class":1668}," 30",[503,3287,1129],{"class":517},[503,3289,3290,3292,3295,3297,3299,3301],{"class":505,"line":1085},[503,3291,1714],{"class":509},[503,3293,3294],{"class":807}," cutoff",[503,3296,842],{"class":528},[503,3298,1180],{"class":509},[503,3300,626],{"class":794},[503,3302,1726],{"class":517},[503,3304,3305,3308,3310,3312,3314,3317,3319,3321,3323,3325,3328],{"class":505,"line":1091},[503,3306,3307],{"class":787},"  cutoff",[503,3309,791],{"class":517},[503,3311,1736],{"class":794},[503,3313,798],{"class":517},[503,3315,3316],{"class":787},"cutoff",[503,3318,791],{"class":517},[503,3320,1746],{"class":794},[503,3322,1749],{"class":517},[503,3324,1982],{"class":528},[503,3326,3327],{"class":787}," daysToKeep",[503,3329,875],{"class":517},[503,3331,3332],{"class":505,"line":1102},[503,3333,826],{"emptyLinePlaceholder":6},[503,3335,3336,3338,3340,3342,3345,3347,3349,3351,3353,3355,3357,3359,3361,3363,3365,3367,3370,3372,3374],{"class":505,"line":1450},[503,3337,1308],{"class":1134},[503,3339,839],{"class":787},[503,3341,791],{"class":517},[503,3343,3344],{"class":794},"filter",[503,3346,1216],{"class":517},[503,3348,1219],{"class":524},[503,3350,866],{"class":517},[503,3352,1224],{"class":509},[503,3354,1153],{"class":528},[503,3356,1219],{"class":787},[503,3358,791],{"class":517},[503,3360,1266],{"class":787},[503,3362,1150],{"class":528},[503,3364,1261],{"class":787},[503,3366,791],{"class":517},[503,3368,3369],{"class":787},"completedAt",[503,3371,2088],{"class":528},[503,3373,3294],{"class":787},[503,3375,875],{"class":517},[503,3377,3378],{"class":505,"line":1456},[503,3379,652],{"class":517},[483,3381,3383],{"id":3382},"연동-예","연동 예",[488,3385,3387],{"id":3386},"외부-도구-연동","외부 도구 연동",[493,3389,3391],{"className":773,"code":3390,"language":775,"meta":498,"style":498},"\u002F\u002F 외부 캘린더로 내보내기\nfunction exportToCalendar(tasks) {\n  const calendarEvents = tasks\n    .filter((task) => task.dueDate && !task.completed)\n    .map((task) => ({\n      title: task.text,\n      start: task.dueDate,\n      priority: task.priority,\n    }));\n\n  \u002F\u002F 캘린더 파일 생성 또는 API 전송\n  return calendarEvents;\n}\n\n\u002F\u002F 외부 소스에서 가져오기\nasync function importFromExternal(source) {\n  try {\n    const response = await fetch(source);\n    const data = await response.json();\n\n    if (validateImportData(data)) {\n      return data.tasks;\n    }\n  } catch (error) {\n    console.error(\"Import failed:\", error);\n    throw error;\n  }\n}\n",[500,3392,3393,3398,3411,3423,3457,3475,3488,3501,3514,3519,3523,3528,3536,3540,3544,3549,3567,3574,3595,3614,3618,3633,3645,3649,3662,3682,3691,3695],{"__ignoreMap":498},[503,3394,3395],{"class":505,"line":506},[503,3396,3397],{"class":539},"\u002F\u002F 외부 캘린더로 내보내기\n",[503,3399,3400,3402,3405,3407,3409],{"class":505,"line":521},[503,3401,1118],{"class":509},[503,3403,3404],{"class":794}," exportToCalendar",[503,3406,798],{"class":517},[503,3408,818],{"class":524},[503,3410,1129],{"class":517},[503,3412,3413,3415,3418,3420],{"class":505,"line":543},[503,3414,1714],{"class":509},[503,3416,3417],{"class":807}," calendarEvents",[503,3419,842],{"class":528},[503,3421,3422],{"class":787}," tasks\n",[503,3424,3425,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454],{"class":505,"line":558},[503,3426,3427],{"class":517},"    .",[503,3429,3344],{"class":794},[503,3431,1216],{"class":517},[503,3433,1219],{"class":524},[503,3435,866],{"class":517},[503,3437,1224],{"class":509},[503,3439,1261],{"class":787},[503,3441,791],{"class":517},[503,3443,1807],{"class":787},[503,3445,2362],{"class":528},[503,3447,1153],{"class":528},[503,3449,1219],{"class":787},[503,3451,791],{"class":517},[503,3453,1266],{"class":787},[503,3455,3456],{"class":517},")\n",[503,3458,3459,3461,3464,3466,3468,3470,3472],{"class":505,"line":574},[503,3460,3427],{"class":517},[503,3462,3463],{"class":794},"map",[503,3465,1216],{"class":517},[503,3467,1219],{"class":524},[503,3469,866],{"class":517},[503,3471,1224],{"class":509},[503,3473,3474],{"class":517}," ({\n",[503,3476,3477,3480,3482,3484,3486],{"class":505,"line":590},[503,3478,3479],{"class":787},"      title:",[503,3481,1261],{"class":787},[503,3483,791],{"class":517},[503,3485,1253],{"class":787},[503,3487,1006],{"class":517},[503,3489,3490,3493,3495,3497,3499],{"class":505,"line":618},[503,3491,3492],{"class":787},"      start:",[503,3494,1261],{"class":787},[503,3496,791],{"class":517},[503,3498,1807],{"class":787},[503,3500,1006],{"class":517},[503,3502,3503,3506,3508,3510,3512],{"class":505,"line":634},[503,3504,3505],{"class":787},"      priority:",[503,3507,1261],{"class":787},[503,3509,791],{"class":517},[503,3511,2300],{"class":787},[503,3513,1006],{"class":517},[503,3515,3516],{"class":505,"line":649},[503,3517,3518],{"class":517},"    }));\n",[503,3520,3521],{"class":505,"line":919},[503,3522,826],{"emptyLinePlaceholder":6},[503,3524,3525],{"class":505,"line":925},[503,3526,3527],{"class":539},"  \u002F\u002F 캘린더 파일 생성 또는 API 전송\n",[503,3529,3530,3532,3534],{"class":505,"line":1085},[503,3531,1308],{"class":1134},[503,3533,3417],{"class":787},[503,3535,710],{"class":517},[503,3537,3538],{"class":505,"line":1091},[503,3539,652],{"class":517},[503,3541,3542],{"class":505,"line":1102},[503,3543,826],{"emptyLinePlaceholder":6},[503,3545,3546],{"class":505,"line":1450},[503,3547,3548],{"class":539},"\u002F\u002F 외부 소스에서 가져오기\n",[503,3550,3551,3554,3557,3560,3562,3565],{"class":505,"line":1456},[503,3552,3553],{"class":509},"async",[503,3555,3556],{"class":509}," function",[503,3558,3559],{"class":794}," importFromExternal",[503,3561,798],{"class":517},[503,3563,3564],{"class":524},"source",[503,3566,1129],{"class":517},[503,3568,3569,3572],{"class":505,"line":1467},[503,3570,3571],{"class":1134},"  try",[503,3573,518],{"class":517},[503,3575,3576,3578,3581,3583,3586,3589,3591,3593],{"class":505,"line":1481},[503,3577,2248],{"class":509},[503,3579,3580],{"class":807}," response",[503,3582,842],{"class":528},[503,3584,3585],{"class":1134}," await",[503,3587,3588],{"class":794}," fetch",[503,3590,798],{"class":517},[503,3592,3564],{"class":787},[503,3594,875],{"class":517},[503,3596,3597,3599,3602,3604,3606,3608,3610,3612],{"class":505,"line":1495},[503,3598,2248],{"class":509},[503,3600,3601],{"class":807}," data",[503,3603,842],{"class":528},[503,3605,3585],{"class":1134},[503,3607,3580],{"class":787},[503,3609,791],{"class":517},[503,3611,971],{"class":794},[503,3613,1726],{"class":517},[503,3615,3616],{"class":505,"line":1500},[503,3617,826],{"emptyLinePlaceholder":6},[503,3619,3620,3622,3624,3627,3629,3631],{"class":505,"line":1505},[503,3621,1231],{"class":1134},[503,3623,1138],{"class":517},[503,3625,3626],{"class":794},"validateImportData",[503,3628,798],{"class":517},[503,3630,1126],{"class":787},[503,3632,1172],{"class":517},[503,3634,3635,3637,3639,3641,3643],{"class":505,"line":1510},[503,3636,2376],{"class":1134},[503,3638,3601],{"class":787},[503,3640,791],{"class":517},[503,3642,818],{"class":787},[503,3644,710],{"class":517},[503,3646,3647],{"class":505,"line":1516},[503,3648,1082],{"class":517},[503,3650,3651,3654,3656,3658,3660],{"class":505,"line":1527},[503,3652,3653],{"class":517},"  } ",[503,3655,2619],{"class":1134},[503,3657,1138],{"class":517},[503,3659,2624],{"class":787},[503,3661,1129],{"class":517},[503,3663,3664,3667,3669,3671,3673,3676,3678,3680],{"class":505,"line":1541},[503,3665,3666],{"class":787},"    console",[503,3668,791],{"class":517},[503,3670,2624],{"class":794},[503,3672,798],{"class":517},[503,3674,3675],{"class":598},"\"Import failed:\"",[503,3677,804],{"class":517},[503,3679,2624],{"class":787},[503,3681,875],{"class":517},[503,3683,3684,3686,3689],{"class":505,"line":1556},[503,3685,1177],{"class":1134},[503,3687,3688],{"class":787}," error",[503,3690,710],{"class":517},[503,3692,3693],{"class":505,"line":1561},[503,3694,1195],{"class":517},[503,3696,3697],{"class":505,"line":2146},[503,3698,652],{"class":517},[488,3700,3702],{"id":3701},"webhook-연동","Webhook 연동",[493,3704,3706],{"className":773,"code":3705,"language":775,"meta":498,"style":498},"\u002F\u002F 작업 완료時に Webhook を送信\nasync function sendWebhook(task, webhookUrl) {\n  try {\n    await fetch(webhookUrl, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application\u002Fjson\" },\n      body: JSON.stringify({\n        event: \"taskCompleted\",\n        task: task,\n        timestamp: new Date().toISOString(),\n      }),\n    });\n  } catch (error) {\n    console.error(\"Webhook failed:\", error);\n  }\n}\n",[500,3707,3708,3713,3733,3739,3752,3762,3779,3793,3803,3812,3828,3833,3838,3850,3869,3873],{"__ignoreMap":498},[503,3709,3710],{"class":505,"line":506},[503,3711,3712],{"class":539},"\u002F\u002F 작업 완료時に Webhook を送信\n",[503,3714,3715,3717,3719,3722,3724,3726,3728,3731],{"class":505,"line":521},[503,3716,3553],{"class":509},[503,3718,3556],{"class":509},[503,3720,3721],{"class":794}," sendWebhook",[503,3723,798],{"class":517},[503,3725,1219],{"class":524},[503,3727,804],{"class":517},[503,3729,3730],{"class":524},"webhookUrl",[503,3732,1129],{"class":517},[503,3734,3735,3737],{"class":505,"line":543},[503,3736,3571],{"class":1134},[503,3738,518],{"class":517},[503,3740,3741,3744,3746,3748,3750],{"class":505,"line":558},[503,3742,3743],{"class":1134},"    await",[503,3745,3588],{"class":794},[503,3747,798],{"class":517},[503,3749,3730],{"class":787},[503,3751,1364],{"class":517},[503,3753,3754,3757,3760],{"class":505,"line":574},[503,3755,3756],{"class":787},"      method:",[503,3758,3759],{"class":598}," \"POST\"",[503,3761,1006],{"class":517},[503,3763,3764,3767,3769,3772,3774,3777],{"class":505,"line":590},[503,3765,3766],{"class":787},"      headers:",[503,3768,1372],{"class":517},[503,3770,3771],{"class":598},"\"Content-Type\"",[503,3773,529],{"class":787},[503,3775,3776],{"class":598}," \"application\u002Fjson\"",[503,3778,1381],{"class":517},[503,3780,3781,3784,3786,3788,3790],{"class":505,"line":618},[503,3782,3783],{"class":787},"      body:",[503,3785,845],{"class":807},[503,3787,791],{"class":517},[503,3789,813],{"class":794},[503,3791,3792],{"class":517},"({\n",[503,3794,3795,3798,3801],{"class":505,"line":634},[503,3796,3797],{"class":787},"        event:",[503,3799,3800],{"class":598}," \"taskCompleted\"",[503,3802,1006],{"class":517},[503,3804,3805,3808,3810],{"class":505,"line":649},[503,3806,3807],{"class":787},"        task:",[503,3809,1261],{"class":787},[503,3811,1006],{"class":517},[503,3813,3814,3817,3819,3821,3823,3825],{"class":505,"line":919},[503,3815,3816],{"class":787},"        timestamp:",[503,3818,1180],{"class":509},[503,3820,626],{"class":794},[503,3822,1660],{"class":517},[503,3824,1768],{"class":794},[503,3826,3827],{"class":517},"(),\n",[503,3829,3830],{"class":505,"line":925},[503,3831,3832],{"class":517},"      }),\n",[503,3834,3835],{"class":505,"line":1085},[503,3836,3837],{"class":517},"    });\n",[503,3839,3840,3842,3844,3846,3848],{"class":505,"line":1091},[503,3841,3653],{"class":517},[503,3843,2619],{"class":1134},[503,3845,1138],{"class":517},[503,3847,2624],{"class":787},[503,3849,1129],{"class":517},[503,3851,3852,3854,3856,3858,3860,3863,3865,3867],{"class":505,"line":1102},[503,3853,3666],{"class":787},[503,3855,791],{"class":517},[503,3857,2624],{"class":794},[503,3859,798],{"class":517},[503,3861,3862],{"class":598},"\"Webhook failed:\"",[503,3864,804],{"class":517},[503,3866,2624],{"class":787},[503,3868,875],{"class":517},[503,3870,3871],{"class":505,"line":1450},[503,3872,1195],{"class":517},[503,3874,3875],{"class":505,"line":1456},[503,3876,652],{"class":517},[3878,3879,3880],"style",{},"html pre.shiki code .sGiLm, html code.shiki .sGiLm{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#569CD6}html pre.shiki code .s_0E6, html code.shiki .s_0E6{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#4EC9B0}html pre.shiki code .svVIm, html code.shiki .svVIm{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#D4D4D4}html pre.shiki code .szM7h, html code.shiki .szM7h{--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#9CDCFE}html pre.shiki code .sGmsN, html code.shiki .sGmsN{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#D4D4D4}html pre.shiki code .s2-Xe, html code.shiki .s2-Xe{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#4EC9B0}html pre.shiki code .sLEZ0, html code.shiki .sLEZ0{--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A9955}html pre.shiki code .sjj1j, html code.shiki .sjj1j{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#CE9178}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szTj3, html code.shiki .szTj3{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#9CDCFE}html pre.shiki code .sqMzV, html code.shiki .sqMzV{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#DCDCAA}html pre.shiki code .sdRU0, html code.shiki .sdRU0{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#4FC1FF}html pre.shiki code .sSQ6O, html code.shiki .sSQ6O{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#9CDCFE}html pre.shiki code .sLV08, html code.shiki .sLV08{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#569CD6}html pre.shiki code .srAhW, html code.shiki .srAhW{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#C586C0}html pre.shiki code .sewGd, html code.shiki .sewGd{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#B5CEA8}html pre.shiki code .s7eq4, html code.shiki .s7eq4{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#569CD6}",{"title":498,"searchDepth":521,"depth":521,"links":3882},[3883,3887,3891,3895,3899,3904,3908,3912,3916],{"id":485,"depth":521,"text":486,"children":3884},[3885,3886],{"id":490,"depth":543,"text":491},{"id":655,"depth":543,"text":656},{"id":745,"depth":521,"text":746,"children":3888},[3889,3890],{"id":749,"depth":543,"text":750},{"id":769,"depth":543,"text":770},{"id":961,"depth":521,"text":962,"children":3892},[3893,3894],{"id":965,"depth":543,"text":966},{"id":1107,"depth":543,"text":1108},{"id":1320,"depth":521,"text":1321,"children":3896},[3897,3898],{"id":1324,"depth":543,"text":1325},{"id":1566,"depth":543,"text":1567},{"id":1625,"depth":521,"text":1626,"children":3900},[3901,3902,3903],{"id":1629,"depth":543,"text":1630},{"id":1694,"depth":543,"text":1695},{"id":2192,"depth":543,"text":2193},{"id":2515,"depth":521,"text":2516,"children":3905},[3906,3907],{"id":2519,"depth":543,"text":2520},{"id":2548,"depth":543,"text":2549},{"id":2566,"depth":521,"text":2567,"children":3909},[3910,3911],{"id":2570,"depth":543,"text":2571},{"id":2668,"depth":543,"text":2669},{"id":2902,"depth":521,"text":2903,"children":3913},[3914,3915],{"id":2906,"depth":543,"text":2907},{"id":3142,"depth":543,"text":3143},{"id":3382,"depth":521,"text":3383,"children":3917},[3918,3919],{"id":3386,"depth":543,"text":3387},{"id":3701,"depth":543,"text":3702},"md",{},{"title":53,"description":498},{"loc":175},"wkThGMHFlOCS51tro3rKJ6cFqK50TDxpejzBwYiRr2k",[3926,3926],null]