PageSourceSearch

https://ai-uplift.vercel.app/_next/static/chunks/9c2261e2765b09ce.js

js ai-uplift.vercel.app collected 2026-10-03 06:13:42 UTC 16,601 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,79196,e=>{"use strict";function t(e){return e>=30?"large":e>=10?"medium":"small"}e.s(["AI_BOOKS",0,[{id:"book-1",title:"Co-Intelligence: Living and Working with AI",author:"Ethan Mollick",description:"AI를 동료처럼 다루는 4가지 원칙. 실무에서 AI 활용을 시작하는 사람에게 가장 많이 추천되는 책.",cover:"https://covers.openlibrary.org/b/isbn/9780593716717-L.jpg",url:"https://www.penguinrandomhouse.com/books/740847/co-intelligence-by-ethan-mollick/"},{id:"book-2",title:"AI Superpowers",author:"Kai-Fu Lee",description:"AI 시대 개인·기업이 어떻게 적응할지를 미·중 산업 현장 사례로 설명.",cover:"https://covers.openlibrary.org/b/isbn/9781328546395-L.jpg",url:"https://www.aisuperpowers.com"},{id:"book-3",title:"Life 3.0",author:"Max Tegmark",description:"AI가 인간 사회·일·경제를 어떻게 바꿀지 거시적 관점에서 정리한 입문서.",cover:"https://covers.openlibrary.org/b/isbn/9781101970317-L.jpg",url:"https://space.mit.edu/home/tegmark/life3.html"},{id:"book-4",title:"The Alignment Problem",author:"Brian Christian",description:"AI를 '의도대로' 동작하게 만드는 정렬 문제 — 출력을 비판적으로 보는 감각을 길러줌.",cover:"https://covers.openlibrary.org/b/isbn/9780393635829-L.jpg",url:"https://brianchristian.org/the-alignment-problem/"},{id:"book-5",title:"Hands-On Machine Learning",author:"Aurélien Géron",description:"코드를 직접 만지며 ML/딥러닝을 익히는 표준 교재. 개발자에게 추천.",cover:"https://covers.openlibrary.org/b/isbn/9781492032649-L.jpg",url:"https://www.oreilly.com/library/view/hands-on-machine-learning/9781492032632/"}],"ATTEMPTS_BY_JOB",0,{developer:[{id:"dev-1",title:"Cursor로 새 컴포넌트 1개 작성",description:"주석으로 props·동작을 명세하고 AI에 1ì°¨ 구현시킨 뒤 손으로 다듬기."},{id:"dev-2",title:"PR diff를 Claude에 붙여넣고 review",description:"리뷰어 관점 코멘트 5개를 받아본 뒤 셀프 리뷰 보강."},{id:"dev-3",title:"Copilot으로 단위 테스트 자동 작성",description:"edge case 테스트 5개를 함수 1개에 대해 생성 후 정리."},{id:"dev-4",title:"Whisper + Claude로 회의 회고 메모",description:"팀 회의 녹취 → 결정·할일·내 액션을 5분 내 정리."},{id:"dev-5",title:"AI 도움으로 SQL 1쿼리 최적화",description:"느린 쿼리 EXPLAIN 결과를 붙이고 인덱스·재작성 옵션 받기."}],designer:[{id:"des-1",title:"v0로 첫 화면 시안 1개 생성",description:"텍스트 1문장으로 시안을 받고 손으로 정리."},{id:"des-2",title:"Midjourney로 무드 보드 만들기",description:"프로젝트 키워드 5개로 이미지 12장 컬렉션 생성."},{id:"des-3",title:"AI에게 디자인 비평 받기",description:"스크린샷 보내고 Hick's law·대비·일관성 관점 피드백 요청."},{id:"des-4",title:"Figma plugin으로 카피 변형 5개",description:"AI 카피 plugin으로 톤 차이 있는 5가지 안 받기."},{id:"des-5",title:"AI로 a11y 문제 점검",description:"디자인 스크린샷에 대해 색대비·터치영역·라벨 누락 검토 요청."}],marketer:[{id:"mkt-1",title:"AI로 광고 카피 5개 변형",description:"타깃·후크·CTA 축으로 5가지 변형 받고 A/B 테스트 후보로."},{id:"mkt-2",title:"Perplexity로 경쟁사 포지셔닝 정리",description:"경쟁사 5ê³³ 페이지 → 슬로건·USP·약점 표로."},{id:"mkt-3",title:"AI로 캠페인 KPI 후보 5개",description:"캠페인 목적 한 문장 → 측정 가능한 KPI 5개 받기."},{id:"mkt-4",title:"고객 인터뷰 노트 → 인사이트 클러스터",description:"노트 5개 붙여넣고 반복 패턴·이상치 요약."},{id:"mkt-5",title:"AI로 뉴스레터 1편 초안",description:"이번 주 주제 3개 → 뉴스레터 헤드라인·본문·CTA."}],pm:[{id:"pm-1",title:"AI로 PRD 초안 1편",description:"feature 한 줄 → 사용자·문제·성공기준·제외 4섹션 초안."},{id:"pm-2",title:"스프린트 회고 자동 정리",description:"팀 코멘트 모두 붙이고 keep/problem/try 분류 받기."},{id:"pm-3",title:"사용자 피드백 → 우선순위 매트릭스",description:"피드백 30개 → impact/effort 표로."},{id:"pm-4",title:"AI로 이해관계자 메일 초안",description:"결정 사항 · 리스크 · 다음 단계 3섹션 한 줄 메일."},{id:"pm-5",title:"릴리스 노트 자동화",description:"PR 제목·설명 묶음 → 사용자 친화적 릴리스 노트."}],planner:[{id:"plan-1",title:"AI에게 사업기획 가설 비판 받기",description:"한 페이지 기획안 → 약점·반례·검증 질문 5개."},{id:"plan-2",title:"AI로 SWOT 1ì°¨ 작성",description:"도메인 키워드만 주고 SWOT 표 초안."},{id:"plan-3",title:"경쟁 제품 분석 매트릭스",description:"경쟁사 5개 → 가격·핵심기능·고객층 표."},{id:"plan-4",title:"AI로 KPI 트리 만들기",description:"비즈니스 목표 1개 → 하위 KPI 트리."},{id:"plan-5",title:"AI로 1페이지 사업계획서",description:"지표·고객·솔루션·재무 4섹션 초안 생성."}],office:[{id:"off-1",title:"AI로 회의록 5분 정리",description:"메모 → 결정 사항·할일·다음 회의 안건."},{id:"off-2",title:"이메일 톤 다듬기 자동화",description:"초안 한 통 → 격식·중립·친근 3가지 톤 변형."},{id:"off-3",title:"엑셀 수식 AI에 물어보기",description:"원하는 ê²°ê
1³¼ 자연어로 → VLOOKUP/INDEX-MATCH 수식 받기."},{id:"off-4",title:"회의 안건 자동 생성",description:"지난 회의 메모 + 이번 주 이슈 → 안건 5개."},{id:"off-5",title:"AI로 자료 한 장 요약 카드",description:"보고서 → 1장 슬라이드용 핵심 카드 3개."}]},"CASES",0,[{id:"case-1",title:"ChatGPT로 회의록 자동 요약",description:"녹취 텍스트를 붙여넣고 결정사항·할일·의문점 3섹션으로 정리시키기.",url:"https://chatgpt.com"},{id:"case-2",title:"Cursor로 코드 리팩터링 1ì°¨ 검토",description:"PR 변경 diff를 Cursor에 보내 누락 케이스·네이밍 후보 받기.",url:"https://cursor.com"},{id:"case-3",title:"Claude로 긴 PDF 핵심 발췌",description:"100페이지 보고서 → 결론·반론·내가 더 알아야 할 5가지로 압축 요청.",url:"https://claude.ai"},{id:"case-4",title:"Notion AI로 회의 안건 초안",description:"프로젝트 페이지에서 다음 회의 안건 초안 자동 생성하기.",url:"https://www.notion.so/help/ai"},{id:"case-5",title:"Perplexity로 사실 확인 검색",description:"근거 출처 링크가 따라붙는 검색 — 일반 구글 검색보다 정리 빠름.",url:"https://www.perplexity.ai"},{id:"case-6",title:"GitHub Copilot으로 테스트 케이스 생성",description:"함수 시그니처에 주석으로 의도 적고 Copilot에게 edge case 테스트 작성 시키기.",url:"https://github.com/features/copilot"},{id:"case-7",title:"Gemini로 스프레드시트 데이터 변환",description:"Google Sheets에서 자연어로 컬럼 변환·요약·중복 제거 지시.",url:"https://workspace.google.com/products/gemini"},{id:"case-8",title:"Whisper로 영상 자막 추출 후 정리",description:"회의 영상 → 자막 추출 → AI에 요약시켜 5분 내 회의록 만들기.",url:"https://openai.com/research/whisper"},{id:"case-9",title:"v0로 프로토타입 UI 빠르게 그리기",description:"텍스트 한 문장으로 React 컴포넌트 시안을 받아 디자인 검토 회의에 사용.",url:"https://v0.app"},{id:"case-10",title:"AI에게 1주일 회고 인터뷰 받기",description:"내 메모를 붙여놓고 '이번 주 내가 놓친 것을 5가지 질문으로 짚어줘' 요청.",url:"https://chatgpt.com"}],"DEFAULT_TIP_SEEDS",0,["회의 직후 녹취 → AI에게 결정사항·할일·다음 회의 안건 3섹션으로 정리시키기","긴 문서 읽기 전 AI에게 '결론·반론·내가 더 알아야 할 5가지'로 압축 요청"],"HABITS",0,[{id:"habit-1",text:"매일 회의록·메모를 AI로 정리한다",weight:10},{id:"habit-2",text:"코드 작성 시 Copilot/Cursor를 활용한다",weight:10},{id:"habit-3",text:"자료 조사 시 Perplexity 같은 AI 검색을 쓴다",weight:10},{id:"habit-4",text:"이메일·문서 초안을 AI로 다듬는다",weight:10},{id:"habit-5",text:"긴 PDF/문서 요약을 AI에 맡긴다",weight:10},{id:"habit-6",text:"AI에게 자기 비판/리뷰를 받는다",weight:10},{id:"habit-7",text:"잘 쓴 프롬프트를 메모해 재사용한다",weight:10},{id:"habit-8",text:"주 1회 이상 새 AI 도구를 시도한다",weight:10},{id:"habit-9",text:"AI 출력 검수용 체크리스트가 있다",weight:10},{id:"habit-10",text:"동료에게 AI 활용법을 공유한다",weight:10}],"SYSTEM_TIPS",0,{large:["AI를 이미 쓰고 있는 동료에게 '하루에 어떻게 쓰는지' 30분 인터뷰 잡기.","이번 주 반복 작업 1개를 골라 AI로 대체할 수 있을지 5분만 시도.","프롬프트 1개를 메모장에 저장하고 매일 한 번씩 쓰기.","AI를 쓰는 사람의 워크플로 영상 1편을 끝까지 보기."],medium:["기존 작업 흐름에 AI 단계를 1개만 끼워넣어 보기 (예: 1ì°¨ 초안 → 본인 다듬기).","이번 주 한 번이라도 'AI 없이 했지만 더 빨랐을 일' 1개 적어두기.","AI 출력을 검수하는 자기만의 체크리스트 5줄 만들기.","프롬프트를 짧게 → 길게 다시 써보고 ê²°ê³¼ 차이 비교."],small:["AI를 쓰는 영역을 새로 1개 더 확장 (예: 코드 → 글쓰기, 글쓰기 → 데이터).","본인의 잘 쓴 프롬프트 5개를 정리해 동료에게 공유.","주 1회 'AI가 한 일 vs 내가 한 일' 비교 회고 5분.","AI 결과를 곧이 쓰지 않고 의도적으로 비판해보는 시간 갖기."]},"categorizeGap",()=>t])},31394,25258,e=>{"use strict";let t=["daily","weekly","monthly"],i=["developer","designer","marketer","pm","planner","office"];e.s(["GAP_CATEGORY_LABELS",0,{large:"격차 큼",medium:"격차 중간",small:"격차 작음"},"JOB_KEYS",0,i,"JOB_LABELS",0,{developer:"개발자",designer:"디자이너",marketer:"마케터",pm:"PM",planner:"기획자",office:"일반사무직"},"MAX_WEEKLY_ATTEMPTS",0,5,"RETRO_WEEKS",0,4,"TODO_CADENCES",0,t,"TODO_CADENCE_LABELS",0,{daily:"1일 Todo",weekly:"1주 Todo",monthly:"1개월 Todo"}],25258);let r="ai-uplift:utilization:v1",o="ai-uplift:todos:v1",n="ai-uplift:customTips:v1",s="ai-uplift:customTipsSeeded:v1",l="ai-uplift:caseChecks:v1",a="ai-uplift:habitChecks:v1",c="ai-uplift:job:v1",d="ai-uplift:weekAttempts:v1",u="ai-uplift:recHistory:v1",p="ai-uplift:name:v1",f="ai-uplift:summaryPhoto:v1";function m(e,t){try{let i=window.localStorage.getItem(e);if(!i)return null;let r=JSON.parse(i);return t(r)}catch{return null}}function h(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function g(e){return"number"==typeof e&&Number.isInteger(e)&&e>=0&&e<=100}function A(){return m(r,e=>e&&"object"==typeof e&&g(e.current)&&g(e.target)?{current:e.current,target:e.target}:null)}function b(e){h(r,e)}function y(e){var i;return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.title&&"boolean"==typeof e.done&&"number"==typeof e.createdAt&&"string"==typeof(i=e.cadence)&&t.includes(i)}function I(){return m(o,e=>Array.isArray(e)?e.filter(y):null)??[]}function x(e){h(o,e)}function v(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.text&&"number"==typeof e.createdAt}function w(){return m(n,e=>Array.isArray(e)?e.filter(v):null)??[]}function k(e){h(n,e)}function S(e){return m(e,e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t={};for(let[i,r]of Object.entries(e))"boolean"==typeof r&&(t[i]=r);return t})??{}}function C(){return S(l)}function T(e){h(l,e)}function j(){return S(a)}function N(e){h(a,e)}function E(){return"1"===window.localStorage.getItem(s)}function P(){try{window.localStorage.setItem(s,"1")}catch{}}function O(e){return"string"==typeof e&&i.includes(e)}function L(){return m(c,e=>O(e)?e:null)}function _(e){h(c,e)}function B(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.weekKey&&"string"==typeof e.text&&"number"==typeof e.createdAt}function K(){return m(d,e=>Array.isArray(e)?e.filter(B):null)??[]}function D(e){h(d,e)}function R(e){return!!e&&"object"==typeof e&&"string"==typeof e.weekKey&&O(e.job)&&"string"==typeof e.attemptId}function M(){return m(u,e=>Array.isArray(e)?e.filter(R):null)??[]}function U(e){h(u,e)}function H(){return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function W(){try{return window.localStorage.getItem(p)??""}catch{return""}}function G(e){try{window.localStorage.setItem(p,e)}catch{}}function J(){try{return window.localStorage.getItem(f)}catch{return null}}function z(e){try{return null==e?window.localStorage.removeItem(f):window.localStorage.setItem(f,e),!0}catch{return!1}}e.s(["UTILIZATION_UPDATED_EVENT",0,"ai-uplift:utilization-updated","loadCaseChecks",()=>C,"loadCustomTips",()=>w,"loadCustomTipsSeeded",()=>E,"loadHabitChecks",()=>j,"loadJob",()=>L,"loadName",()=>W,"loadRecHistory",()=>M,"loadSummaryPhoto",()=>J,"loadTodos",()=>I,"loadUtilization",()=>
1A,"loadWeekAttempts",()=>K,"makeId",()=>H,"markCustomTipsSeeded",()=>P,"saveCaseChecks",()=>T,"saveCustomTips",()=>k,"saveHabitChecks",()=>N,"saveJob",()=>_,"saveName",()=>G,"saveRecHistory",()=>U,"saveSummaryPhoto",()=>z,"saveTodos",()=>x,"saveUtilization",()=>b,"saveWeekAttempts",()=>D],31394)},32580,e=>{"use strict";var t=e.i(43476),i=e.i(71645),r=e.i(79196);function o(){return(0,t.jsx)("ul",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:r.AI_BOOKS.map(e=>(0,t.jsx)(n,{book:e},e.id))})}function n({book:e}){let[r,o]=(0,i.useState)(!1);return(0,t.jsxs)("li",{className:"rounded-lg border border-border bg-background p-4 flex flex-col gap-3",children:[(0,t.jsx)("div",{className:"aspect-[2/3] w-full overflow-hidden rounded-md bg-muted flex items-center justify-center",children:r?(0,t.jsx)("span",{className:"text-xs text-muted-foreground px-3 text-center",children:"표지 이미지를 불러올 수 없습니다"}):(0,t.jsx)("img",{src:e.cover,alt:`${e.title} 표지`,loading:"lazy",onError:()=>o(!0),className:"h-full w-full object-cover"})}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h3",{className:"font-semibold leading-snug",children:e.title}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e.author})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground flex-1",children:e.description}),(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-foreground underline underline-offset-2 hover:opacity-80",children:"자세히 보기 ↗"})]})}e.s(["BookCards",()=>o])},89664,e=>{"use strict";var t=e.i(43476),i=e.i(71645),r=e.i(79196),o=e.i(31394);function n(){let[e,n]=(0,i.useState)(!1),[s,l]=(0,i.useState)({});(0,i.useEffect)(()=>
1{l((0,o.loadCaseChecks)()),n(!0)},[]),(0,i.useEffect)(()=>{e&&(0,o.saveCaseChecks)(s)},[s,e]);let a=r.CASES.length,c=Object.values(s).filter(Boolean).length;return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground",children:["활용한 사례 ",(0,t.jsx)("span",{className:"font-semibold text-foreground",children:c})," / ",a]}),(0,t.jsx)("ul",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:r.CASES.map(e=>{let i=!!s[e.id];return(0,t.jsx)("li",{className:"rounded-lg border border-border bg-background p-4 space-y-2",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("input",{type:"checkbox",id:`check-${e.id}`,checked:i,onChange:()=>{var t;return t=e.id,void l(e=>({...e,[t]:!e[t]}))},"aria-label":`${e.title} 시도함`,className:"mt-1 h-4 w-4 cursor-pointer"}),(0,t.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,t.jsx)("label",{htmlFor:`check-${e.id}`,className:i?"block font-medium line-through text-muted-foreground cursor-pointer":"block font-medium cursor-pointer",children:e.title}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e.description}),(0,t.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"inline-block text-xs text-foreground underline underline-offset-2 hover:opacity-80",children:[new URL(e.url).host," ↗"]})]})]})},e.id)})})]})}e.s(["CaseCards",()=>n])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.