Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
표시
레이아웃
나란히 보기
합쳐 보기
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
비교 단위
스마트
구문
없음
모양 변경
처리
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
8년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
3 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
253 행
복사
5 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
255 행
복사
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<p:cSld>
<p:cSld>
<p:spTree>
<p:spTree>
<p:nvGrpSpPr>
<p:nvGrpSpPr>
<p:cNvPr id="1" name=""/>
<p:cNvPr id="1" name=""/>
<p:cNvGrpSpPr/>
<p:cNvGrpSpPr/>
<p:nvPr/>
<p:nvPr/>
</p:nvGrpSpPr>
</p:nvGrpSpPr>
<p:grpSpPr>
<p:grpSpPr>
<a:xfrm>
<a:xfrm>
<a:off x="0" y="0"/>
<a:off x="0" y="0"/>
<a:ext cx="0" cy="0"/>
<a:ext cx="0" cy="0"/>
<a:chOff x="0" y="0"/>
<a:chOff x="0" y="0"/>
<a:chExt cx="0" cy="0"/>
<a:chExt cx="0" cy="0"/>
</a:xfrm>
</a:xfrm>
</p:grpSpPr>
</p:grpSpPr>
<p:sp>
<p:sp>
<p:nvSpPr>
<p:nvSpPr>
<p:cNvPr id="2" name="Title 1">
<p:cNvPr id="2" name="Title 1">
<a:extLst>
<a:extLst>
<a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
<a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
<a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{517FCC92-0CB3-44B1-984E-0380D8C2D79B}"/>
<a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{517FCC92-0CB3-44B1-984E-0380D8C2D79B}"/>
</a:ext>
</a:ext>
</a:extLst>
</a:extLst>
</p:cNvPr>
</p:cNvPr>
<p:cNvSpPr>
<p:cNvSpPr>
<a:spLocks noGrp="1"/>
<a:spLocks noGrp="1"/>
</p:cNvSpPr>
</p:cNvSpPr>
<p:nvPr>
<p:nvPr>
<p:ph type="ctrTitle"/>
<p:ph type="ctrTitle"/>
</p:nvPr>
</p:nvPr>
</p:nvSpPr>
</p:nvSpPr>
<p:spPr/>
<p:spPr/>
<p:txBody>
<p:txBody>
<a:bodyPr/>
<a:bodyPr/>
<a:lstStyle/>
<a:lstStyle/>
<a:p>
<a:p>
<a:endParaRPr lang="en-GB"/>
<a:endParaRPr lang="en-GB"/>
</a:p>
</a:p>
</p:txBody>
</p:txBody>
</p:sp>
</p:sp>
<p:sp>
<p:sp>
<p:nvSpPr>
<p:nvSpPr>
<p:cNvPr id="3" name="Subtitle 2">
<p:cNvPr id="3" name="Subtitle 2">
<a:extLst>
<a:extLst>
<a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
<a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
<a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{611AA640-41D6-4B10-A4C4-BA6C12700E96}"/>
<a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{611AA640-41D6-4B10-A4C4-BA6C12700E96}"/>
</a:ext>
</a:ext>
</a:extLst>
</a:extLst>
</p:cNvPr>
</p:cNvPr>
<p:cNvSpPr>
<p:cNvSpPr>
<a:spLocks noGrp="1"/>
<a:spLocks noGrp="1"/>
</p:cNvSpPr>
</p:cNvSpPr>
<p:nvPr>
<p:nvPr>
<p:ph type="subTitle" idx="1"/>
<p:ph type="subTitle" idx="1"/>
</p:nvPr>
</p:nvPr>
</p:nvSpPr>
</p:nvSpPr>
<p:spPr/>
<p:spPr/>
<p:txBody>
<p:txBody>
<a:bodyPr/>
<a:bodyPr/>
<a:lstStyle/>
<a:lstStyle/>
<a:p>
<a:p>
<a:endParaRPr lang="en-GB"/>
<a:endParaRPr lang="en-GB"/>
</a:p>
</a:p>
</p:txBody>
</p:txBody>
</p:sp>
</p:sp>
<p:pic>
<p:pic>
<p:nvPicPr>
<p:nvPicPr>
<p:cNvPr id="4" name="29thAugust">
<p:cNvPr id="4" name="29thAugust">
<a:hlinkClick r:id="" action="ppaction://media"/>
<a:hlinkClick r:id="" action="ppaction://media"/>
<a:extLst>
<a:extLst>
<a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
<a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}">
<a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{36D5D8E1-DFC9-4B85-AB61-1AE1A058F944}"/>
<a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{36D5D8E1-DFC9-4B85-AB61-1AE1A058F944}"/>
</a:ext>
</a:ext>
</a:extLst>
</a:extLst>
</p:cNvPr>
</p:cNvPr>
<p:cNvPicPr>
<p:cNvPicPr>
<a:picLocks noChangeAspect="1"/>
<a:picLocks noChangeAspect="1"/>
</p:cNvPicPr>
</p:cNvPicPr>
<p:nvPr>
<p:nvPr>
<a:videoFile r:link="rId2"/>
<a:videoFile r:link="rId2"/>
<p:extLst>
<p:extLst>
<p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}">
<p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}">
<p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId1"/>
<p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId1"/>
</p:ext>
</p:ext>
</p:extLst>
</p:extLst>
</p:nvPr>
</p:nvPr>
</p:nvPicPr>
</p:nvPicPr>
<p:blipFill>
<p:blipFill>
<a:blip r:embed="rId4"/>
<a:blip r:embed="rId4"/>
<a:stretch>
<a:stretch>
<a:fillRect/>
<a:fillRect/>
</a:stretch>
</a:stretch>
</p:blipFill>
</p:blipFill>
<p:spPr>
<p:spPr>
<a:xfrm>
<a:xfrm>
<a:off x="0" y="0"/>
<a:off x="0" y="0"/>
<a:ext cx="12192000" cy="6858000"/>
<a:ext cx="12192000" cy="6858000"/>
</a:xfrm>
</a:xfrm>
저장된 비교 결과
원본
파일 열기
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"> <p:cSld> <p:spTree> <p:nvGrpSpPr> <p:cNvPr id="1" name=""/> <p:cNvGrpSpPr/> <p:nvPr/> </p:nvGrpSpPr> <p:grpSpPr> <a:xfrm> <a:off x="0" y="0"/> <a:ext cx="0" cy="0"/> <a:chOff x="0" y="0"/> <a:chExt cx="0" cy="0"/> </a:xfrm> </p:grpSpPr> <p:sp> <p:nvSpPr> <p:cNvPr id="2" name="Title 1"> <a:extLst> <a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"> <a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{517FCC92-0CB3-44B1-984E-0380D8C2D79B}"/> </a:ext> </a:extLst> </p:cNvPr> <p:cNvSpPr> <a:spLocks noGrp="1"/> </p:cNvSpPr> <p:nvPr> <p:ph type="ctrTitle"/> </p:nvPr> </p:nvSpPr> <p:spPr/> <p:txBody> <a:bodyPr/> <a:lstStyle/> <a:p> <a:endParaRPr lang="en-GB"/> </a:p> </p:txBody> </p:sp> <p:sp> <p:nvSpPr> <p:cNvPr id="3" name="Subtitle 2"> <a:extLst> <a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"> <a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{611AA640-41D6-4B10-A4C4-BA6C12700E96}"/> </a:ext> </a:extLst> </p:cNvPr> <p:cNvSpPr> <a:spLocks noGrp="1"/> </p:cNvSpPr> <p:nvPr> <p:ph type="subTitle" idx="1"/> </p:nvPr> </p:nvSpPr> <p:spPr/> <p:txBody> <a:bodyPr/> <a:lstStyle/> <a:p> <a:endParaRPr lang="en-GB"/> </a:p> </p:txBody> </p:sp> <p:pic> <p:nvPicPr> <p:cNvPr id="4" name="29thAugust"> <a:hlinkClick r:id="" action="ppaction://media"/> <a:extLst> <a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"> <a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{36D5D8E1-DFC9-4B85-AB61-1AE1A058F944}"/> </a:ext> </a:extLst> </p:cNvPr> <p:cNvPicPr> <a:picLocks noChangeAspect="1"/> </p:cNvPicPr> <p:nvPr> <a:videoFile r:link="rId2"/> <p:extLst> <p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}"> <p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId1"/> </p:ext> </p:extLst> </p:nvPr> </p:nvPicPr> <p:blipFill> <a:blip r:embed="rId4"/> <a:stretch> <a:fillRect/> </a:stretch> </p:blipFill> <p:spPr> <a:xfrm> <a:off x="0" y="0"/> <a:ext cx="12192000" cy="6858000"/> </a:xfrm> <a:prstGeom prst="rect"> <a:avLst/> </a:prstGeom> </p:spPr> </p:pic> </p:spTree> <p:extLst> <p:ext uri="{BB962C8B-B14F-4D97-AF65-F5344CB8AC3E}"> <p14:creationId xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" val="2499554425"/> </p:ext> </p:extLst> </p:cSld> <p:clrMapOvr> <a:masterClrMapping/> </p:clrMapOvr> <p:timing> <p:tnLst> <p:par> <p:cTn id="1" dur="indefinite" restart="never" nodeType="tmRoot"> <p:childTnLst> <p:seq concurrent="1" nextAc="seek"> <p:cTn id="2" dur="indefinite" nodeType="mainSeq"> <p:childTnLst> <p:par> <p:cTn id="3" fill="hold"> <p:stCondLst> <p:cond delay="indefinite"/> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="4" fill="hold"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="5" presetID="1" presetClass="mediacall" presetSubtype="0" fill="hold" nodeType="clickEffect"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:cmd type="call" cmd="playFrom(0.0)"> <p:cBhvr> <p:cTn id="6" dur="769253" fill="hold"/> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cBhvr> </p:cmd> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> <p:prevCondLst> <p:cond evt="onPrev" delay="0"> <p:tgtEl> <p:sldTgt/> </p:tgtEl> </p:cond> </p:prevCondLst> <p:nextCondLst> <p:cond evt="onNext" delay="0"> <p:tgtEl> <p:sldTgt/> </p:tgtEl> </p:cond> </p:nextCondLst> </p:seq> <p:video> <p:cMediaNode vol="80000"> <p:cTn id="7" fill="hold" display="0"> <p:stCondLst> <p:cond delay="indefinite"/> </p:stCondLst> </p:cTn> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cMediaNode> </p:video> <p:seq concurrent="1" nextAc="seek"> <p:cTn id="8" restart="whenNotActive" fill="hold" evtFilter="cancelBubble" nodeType="interactiveSeq"> <p:stCondLst> <p:cond evt="onClick" delay="0"> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cond> </p:stCondLst> <p:endSync evt="end" delay="0"> <p:rtn val="all"/> </p:endSync> <p:childTnLst> <p:par> <p:cTn id="9" fill="hold"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="10" fill="hold"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="11" presetID="2" presetClass="mediacall" presetSubtype="0" fill="hold" nodeType="clickEffect"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:cmd type="call" cmd="togglePause"> <p:cBhvr> <p:cTn id="12" dur="1" fill="hold"/> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cBhvr> </p:cmd> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> <p:nextCondLst> <p:cond evt="onClick" delay="0"> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cond> </p:nextCondLst> </p:seq> </p:childTnLst> </p:cTn> </p:par> </p:tnLst> </p:timing> </p:sld>
수정본
파일 열기
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"> <p:cSld> <p:spTree> <p:nvGrpSpPr> <p:cNvPr id="1" name=""/> <p:cNvGrpSpPr/> <p:nvPr/> </p:nvGrpSpPr> <p:grpSpPr> <a:xfrm> <a:off x="0" y="0"/> <a:ext cx="0" cy="0"/> <a:chOff x="0" y="0"/> <a:chExt cx="0" cy="0"/> </a:xfrm> </p:grpSpPr> <p:sp> <p:nvSpPr> <p:cNvPr id="2" name="Title 1"> <a:extLst> <a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"> <a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{517FCC92-0CB3-44B1-984E-0380D8C2D79B}"/> </a:ext> </a:extLst> </p:cNvPr> <p:cNvSpPr> <a:spLocks noGrp="1"/> </p:cNvSpPr> <p:nvPr> <p:ph type="ctrTitle"/> </p:nvPr> </p:nvSpPr> <p:spPr/> <p:txBody> <a:bodyPr/> <a:lstStyle/> <a:p> <a:endParaRPr lang="en-GB"/> </a:p> </p:txBody> </p:sp> <p:sp> <p:nvSpPr> <p:cNvPr id="3" name="Subtitle 2"> <a:extLst> <a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"> <a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{611AA640-41D6-4B10-A4C4-BA6C12700E96}"/> </a:ext> </a:extLst> </p:cNvPr> <p:cNvSpPr> <a:spLocks noGrp="1"/> </p:cNvSpPr> <p:nvPr> <p:ph type="subTitle" idx="1"/> </p:nvPr> </p:nvSpPr> <p:spPr/> <p:txBody> <a:bodyPr/> <a:lstStyle/> <a:p> <a:endParaRPr lang="en-GB"/> </a:p> </p:txBody> </p:sp> <p:pic> <p:nvPicPr> <p:cNvPr id="4" name="29thAugust"> <a:hlinkClick r:id="" action="ppaction://media"/> <a:extLst> <a:ext uri="{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"> <a16:creationId xmlns:a16="http://schemas.microsoft.com/office/drawing/2014/main" id="{36D5D8E1-DFC9-4B85-AB61-1AE1A058F944}"/> </a:ext> </a:extLst> </p:cNvPr> <p:cNvPicPr> <a:picLocks noChangeAspect="1"/> </p:cNvPicPr> <p:nvPr> <a:videoFile r:link="rId2"/> <p:extLst> <p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}"> <p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId1"/> </p:ext> </p:extLst> </p:nvPr> </p:nvPicPr> <p:blipFill> <a:blip r:embed="rId4"/> <a:stretch> <a:fillRect/> </a:stretch> </p:blipFill> <p:spPr> <a:xfrm> <a:off x="0" y="0"/> <a:ext cx="12192000" cy="6858000"/> </a:xfrm> <a:prstGeom prst="rect"> <a:avLst/> </a:prstGeom> </p:spPr> </p:pic> </p:spTree> <p:extLst> <p:ext uri="{BB962C8B-B14F-4D97-AF65-F5344CB8AC3E}"> <p14:creationId xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" val="276927470"/> </p:ext> </p:extLst> </p:cSld> <p:clrMapOvr> <a:masterClrMapping/> </p:clrMapOvr> <p:timing> <p:tnLst> <p:par> <p:cTn id="1" dur="indefinite" restart="never" nodeType="tmRoot"> <p:childTnLst> <p:seq concurrent="1" nextAc="seek"> <p:cTn id="2" dur="indefinite" nodeType="mainSeq"> <p:childTnLst> <p:par> <p:cTn id="3" fill="hold"> <p:stCondLst> <p:cond delay="indefinite"/> <p:cond evt="onBegin" delay="0"> <p:tn val="2"/> </p:cond> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="4" fill="hold"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="5" presetID="1" presetClass="mediacall" presetSubtype="0" fill="hold" nodeType="afterEffect"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:cmd type="call" cmd="playFrom(0.0)"> <p:cBhvr> <p:cTn id="6" dur="769253" fill="hold"/> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cBhvr> </p:cmd> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> <p:prevCondLst> <p:cond evt="onPrev" delay="0"> <p:tgtEl> <p:sldTgt/> </p:tgtEl> </p:cond> </p:prevCondLst> <p:nextCondLst> <p:cond evt="onNext" delay="0"> <p:tgtEl> <p:sldTgt/> </p:tgtEl> </p:cond> </p:nextCondLst> </p:seq> <p:video> <p:cMediaNode vol="80000"> <p:cTn id="7" fill="hold" display="0"> <p:stCondLst> <p:cond delay="indefinite"/> </p:stCondLst> </p:cTn> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cMediaNode> </p:video> <p:seq concurrent="1" nextAc="seek"> <p:cTn id="8" restart="whenNotActive" fill="hold" evtFilter="cancelBubble" nodeType="interactiveSeq"> <p:stCondLst> <p:cond evt="onClick" delay="0"> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cond> </p:stCondLst> <p:endSync evt="end" delay="0"> <p:rtn val="all"/> </p:endSync> <p:childTnLst> <p:par> <p:cTn id="9" fill="hold"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="10" fill="hold"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:par> <p:cTn id="11" presetID="2" presetClass="mediacall" presetSubtype="0" fill="hold" nodeType="clickEffect"> <p:stCondLst> <p:cond delay="0"/> </p:stCondLst> <p:childTnLst> <p:cmd type="call" cmd="togglePause"> <p:cBhvr> <p:cTn id="12" dur="1" fill="hold"/> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cBhvr> </p:cmd> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> </p:par> </p:childTnLst> </p:cTn> <p:nextCondLst> <p:cond evt="onClick" delay="0"> <p:tgtEl> <p:spTgt spid="4"/> </p:tgtEl> </p:cond> </p:nextCondLst> </p:seq> </p:childTnLst> </p:cTn> </p:par> </p:tnLst> </p:timing> </p:sld>
비교하기