<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>YESHTML5</title>
    <link>https://yeshtml5.tistory.com/</link>
    <description>서비스개발자/생계형 개발자 / 소스 꾸러미 / </description>
    <language>ko</language>
    <pubDate>Mon, 6 Jul 2026 06:08:32 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>슬/도/아/밤/</managingEditor>
    <image>
      <title>YESHTML5</title>
      <url>https://tistory1.daumcdn.net/tistory/2967728/attach/cc25cf4c7eaf4a258a989d5d9ae0c1f1</url>
      <link>https://yeshtml5.tistory.com</link>
    </image>
    <item>
      <title>GitHub Pages 사용법 가이드</title>
      <link>https://yeshtml5.tistory.com/56</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;GitHub&amp;nbsp;Pages&amp;nbsp;사용법&amp;nbsp;가이드&lt;br /&gt;&lt;br /&gt;##&amp;nbsp;GitHub&amp;nbsp;Pages란?&lt;br /&gt;GitHub에서&amp;nbsp;제공하는&amp;nbsp;무료&amp;nbsp;정적&amp;nbsp;웹사이트&amp;nbsp;호스팅&amp;nbsp;서비스입니다.&amp;nbsp;HTML,&amp;nbsp;CSS,&amp;nbsp;JavaScript&amp;nbsp;파일을&amp;nbsp;GitHub&amp;nbsp;저장소에&amp;nbsp;올리면&amp;nbsp;자동으로&amp;nbsp;웹사이트로&amp;nbsp;배포됩니다.&lt;br /&gt;&lt;br /&gt;##&amp;nbsp;기본&amp;nbsp;설정&amp;nbsp;방법&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;1.&amp;nbsp;저장소&amp;nbsp;생성&lt;br /&gt;```bash&lt;br /&gt;#&amp;nbsp;개인&amp;nbsp;홈페이지용&amp;nbsp;(권장)&lt;br /&gt;저장소명:&amp;nbsp;username.github.io&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;프로젝트용&lt;br /&gt;저장소명:&amp;nbsp;아무거나&amp;nbsp;(예:&amp;nbsp;my-portfolio)&lt;br /&gt;```&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;2.&amp;nbsp;GitHub&amp;nbsp;Pages&amp;nbsp;활성화&lt;br /&gt;1.&amp;nbsp;저장소&amp;nbsp;&amp;rarr;&amp;nbsp;Settings&amp;nbsp;&amp;rarr;&amp;nbsp;Pages&lt;br /&gt;2.&amp;nbsp;Source:&amp;nbsp;Deploy&amp;nbsp;from&amp;nbsp;a&amp;nbsp;branch&lt;br /&gt;3.&amp;nbsp;Branch:&amp;nbsp;main&amp;nbsp;(또는&amp;nbsp;gh-pages)&lt;br /&gt;4.&amp;nbsp;Folder:&amp;nbsp;/&amp;nbsp;(root)&amp;nbsp;선택&lt;br /&gt;5.&amp;nbsp;Save&amp;nbsp;클릭&lt;br /&gt;&lt;br /&gt;##&amp;nbsp;간단한&amp;nbsp;예제&amp;nbsp;-&amp;nbsp;개발자&amp;nbsp;포트폴리오&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;파일&amp;nbsp;구조&lt;br /&gt;```&lt;br /&gt;username.github.io/&lt;br /&gt;├──&amp;nbsp;index.html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;메인&amp;nbsp;페이지&lt;br /&gt;├──&amp;nbsp;portfolio.html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;포트폴리오&amp;nbsp;페이지&lt;br /&gt;├──&amp;nbsp;contact.html&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;연락처&amp;nbsp;페이지&lt;br /&gt;├──&amp;nbsp;css/&lt;br /&gt;│&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;style.css&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;스타일시트&lt;br /&gt;└──&amp;nbsp;js/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;main.js&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;JavaScript&lt;br /&gt;```&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;index.html&amp;nbsp;예제&lt;br /&gt;```html&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;nbsp;lang=&quot;ko&quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/meta&amp;nbsp;charset=&quot;utf-8&quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/meta&amp;nbsp;name=&quot;viewport&quot;&amp;nbsp;content=&quot;width=device-width,&amp;nbsp;initial-scale=1.0&quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/link&amp;nbsp;rel=&quot;stylesheet&quot;&amp;nbsp;href=&quot;css&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;header&gt;&lt;/header&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;nav&gt;&lt;/nav&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;김개발&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#about&quot;&gt;About&amp;lt;/a&amp;nbsp;href=&quot;#about&quot;&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;portfolio.html&quot;&gt;Portfolio&amp;lt;/a&amp;nbsp;href=&quot;portfolio.html&quot;&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;Contact&amp;lt;/a&amp;nbsp;href=&quot;contact.html&quot;&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;main&gt;&lt;/main&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;section id=&quot;hero&quot;&gt;&amp;lt;/section&amp;nbsp;id=&quot;hero&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;풀스택&amp;nbsp;개발자&lt;/h2&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;p data-ke-size=&quot;size16&quot;&gt;React,&amp;nbsp;Node.js,&amp;nbsp;Python을&amp;nbsp;활용한&amp;nbsp;웹&amp;nbsp;개발&amp;nbsp;전문&lt;/p&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;cta-button&quot; href=&quot;contact.html&quot;&gt;외주&amp;nbsp;문의하기&amp;lt;/a&amp;nbsp;href=&quot;contact.html&quot;&amp;nbsp;class=&quot;cta-button&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;section id=&quot;about&quot;&gt;&amp;lt;/section&amp;nbsp;id=&quot;about&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;About&amp;nbsp;Me&lt;/h3&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;p data-ke-size=&quot;size16&quot;&gt;5년차&amp;nbsp;풀스택&amp;nbsp;개발자로,&amp;nbsp;스타트업부터&amp;nbsp;대기업까지&amp;nbsp;다양한&amp;nbsp;프로젝트&amp;nbsp;경험이&amp;nbsp;있습니다.&lt;/p&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;기술&amp;nbsp;스택&lt;/h4&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div class=&quot;tech-stack&quot;&gt;&amp;lt;/div&amp;nbsp;class=&quot;tech-stack&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;tech&quot;&gt;&lt;span class=&quot;tech&quot;&gt;React&amp;lt;/span&amp;nbsp;class=&quot;tech&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;tech&quot;&gt;Node.js&amp;lt;/span&amp;nbsp;class=&quot;tech&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;tech&quot;&gt;Python&amp;lt;/span&amp;nbsp;class=&quot;tech&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;tech&quot;&gt;PostgreSQL&amp;lt;/span&amp;nbsp;class=&quot;tech&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;tech&quot;&gt;AWS&amp;lt;/span&amp;nbsp;class=&quot;tech&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;section id=&quot;recent-work&quot;&gt;&amp;lt;/section&amp;nbsp;id=&quot;recent-work&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;최근&amp;nbsp;프로젝트&lt;/h3&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div class=&quot;project-grid&quot;&gt;&amp;lt;/div&amp;nbsp;class=&quot;project-grid&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div class=&quot;project-card&quot;&gt;&amp;lt;/div&amp;nbsp;class=&quot;project-card&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;E-커머스&amp;nbsp;플랫폼&lt;/h4&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;p data-ke-size=&quot;size16&quot;&gt;React&amp;nbsp;+&amp;nbsp;Node.js로&amp;nbsp;구축한&amp;nbsp;온라인&amp;nbsp;쇼핑몰&lt;/p&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;portfolio.html#project1&quot;&gt;자세히&amp;nbsp;보기&amp;lt;/a&amp;nbsp;href=&quot;portfolio.html#project1&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;div class=&quot;project-card&quot;&gt;&lt;a href=&quot;portfolio.html#project1&quot;&gt;&amp;lt;/div&amp;nbsp;class=&quot;project-card&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;재고관리&amp;nbsp;시스템&lt;/h4&gt;
&lt;a href=&quot;portfolio.html#project1&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python&amp;nbsp;+&amp;nbsp;Django로&amp;nbsp;개발한&amp;nbsp;ERP&amp;nbsp;시스템&lt;/p&gt;
&lt;a href=&quot;portfolio.html#project1&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;&lt;a href=&quot;portfolio.html#project2&quot;&gt;자세히&amp;nbsp;보기&amp;lt;/a&amp;nbsp;href=&quot;portfolio.html#project2&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;&lt;footer&gt;&lt;/footer&gt;&lt;a href=&quot;portfolio.html#project2&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;copy;&amp;nbsp;2025&amp;nbsp;김개발.&amp;nbsp;All&amp;nbsp;rights&amp;nbsp;reserved.&lt;/p&gt;
&lt;a href=&quot;portfolio.html#project2&quot;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;```&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;contact.html&amp;nbsp;예제&lt;br /&gt;```html&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;nbsp;lang=&quot;ko&quot;&amp;gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/meta&amp;nbsp;charset=&quot;utf-8&quot;&amp;gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/meta&amp;nbsp;name=&quot;viewport&quot;&amp;nbsp;content=&quot;width=device-width,&amp;nbsp;initial-scale=1.0&quot;&amp;gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/link&amp;nbsp;rel=&quot;stylesheet&quot;&amp;nbsp;href=&quot;css&amp;gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;&lt;header&gt;&lt;/header&gt;&lt;a href=&quot;portfolio.html#project2&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;&lt;nav&gt;&lt;/nav&gt;&lt;a href=&quot;portfolio.html#project2&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;h1&gt;&lt;a href=&quot;index.html&quot;&gt;김개발&amp;lt;/a&amp;nbsp;href=&quot;index.html&quot;&amp;gt;&lt;/a&gt;&lt;/h1&gt;
&lt;a href=&quot;portfolio.html#project2&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;index.html#about&quot;&gt;About&amp;lt;/a&amp;nbsp;href=&quot;index.html#about&quot;&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;portfolio.html&quot;&gt;Portfolio&amp;lt;/a&amp;nbsp;href=&quot;portfolio.html&quot;&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;Contact&amp;lt;/a&amp;nbsp;href=&quot;contact.html&quot;&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;main&gt;&lt;/main&gt;&lt;a href=&quot;portfolio.html#project2&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/a&gt;
&lt;section id=&quot;contact&quot;&gt;&amp;lt;/section&amp;nbsp;id=&quot;contact&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;외주&amp;nbsp;개발&amp;nbsp;문의&lt;/h2&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div class=&quot;contact-info&quot;&gt;&amp;lt;/div&amp;nbsp;class=&quot;contact-info&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;연락처&lt;/h3&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;p data-ke-size=&quot;size16&quot;&gt; &amp;nbsp;이메일:&amp;nbsp;dev@example.com&lt;/p&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;p data-ke-size=&quot;size16&quot;&gt; &amp;nbsp;전화:&amp;nbsp;010-1234-5678&lt;/p&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;p data-ke-size=&quot;size16&quot;&gt; &amp;nbsp;링크드인:&amp;nbsp;linkedin.com/in/kimdev&lt;/p&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div class=&quot;services&quot;&gt;&amp;lt;/div&amp;nbsp;class=&quot;services&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;제공&amp;nbsp;서비스&lt;/h3&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹&amp;nbsp;애플리케이션&amp;nbsp;개발&amp;nbsp;(React,&amp;nbsp;Vue.js)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;백엔드&amp;nbsp;API&amp;nbsp;개발&amp;nbsp;(Node.js,&amp;nbsp;Python)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터베이스&amp;nbsp;설계&amp;nbsp;및&amp;nbsp;최적화&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AWS/GCP&amp;nbsp;클라우드&amp;nbsp;배포&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;div class=&quot;pricing&quot;&gt;&amp;lt;/div&amp;nbsp;class=&quot;pricing&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;개발&amp;nbsp;비용&amp;nbsp;(참고용)&lt;/h3&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;프로젝트&amp;nbsp;유형&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;예상&amp;nbsp;기간&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;예상&amp;nbsp;비용&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;간단한&amp;nbsp;웹사이트&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1-2주&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;200-500만원&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;웹&amp;nbsp;애플리케이션&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1-3개월&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;500-2000만원&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;복잡한&amp;nbsp;시스템&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3개월&amp;nbsp;이상&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;협의&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;footer&gt;&lt;/footer&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;copy;&amp;nbsp;2025&amp;nbsp;김개발.&amp;nbsp;All&amp;nbsp;rights&amp;nbsp;reserved.&lt;/p&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;```&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;css/style.css&amp;nbsp;예제&lt;br /&gt;```css&lt;br /&gt;*&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;box-sizing:&amp;nbsp;border-box;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;body&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font-family:&amp;nbsp;'Segoe&amp;nbsp;UI',&amp;nbsp;Tahoma,&amp;nbsp;Geneva,&amp;nbsp;Verdana,&amp;nbsp;sans-serif;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line-height:&amp;nbsp;1.6;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;#333;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;Header&amp;nbsp;*/&lt;br /&gt;header&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;#2c3e50;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;white;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;1rem&amp;nbsp;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;fixed;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;100%;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top:&amp;nbsp;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;z-index:&amp;nbsp;1000;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;nav&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;display:&amp;nbsp;flex;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;justify-content:&amp;nbsp;space-between;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;align-items:&amp;nbsp;center;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;max-width:&amp;nbsp;1200px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;0&amp;nbsp;auto;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;0&amp;nbsp;2rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;nav&amp;nbsp;h1&amp;nbsp;a&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;white;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text-decoration:&amp;nbsp;none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;nav&amp;nbsp;ul&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;display:&amp;nbsp;flex;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list-style:&amp;nbsp;none;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gap:&amp;nbsp;2rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;nav&amp;nbsp;a&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;white;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text-decoration:&amp;nbsp;none;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transition:&amp;nbsp;color&amp;nbsp;0.3s;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;nav&amp;nbsp;a:hover&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;#3498db;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;Main&amp;nbsp;Content&amp;nbsp;*/&lt;br /&gt;main&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-top:&amp;nbsp;70px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;2rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;max-width:&amp;nbsp;1200px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-left:&amp;nbsp;auto;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-right:&amp;nbsp;auto;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#hero&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text-align:&amp;nbsp;center;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;4rem&amp;nbsp;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;linear-gradient(135deg,&amp;nbsp;#667eea&amp;nbsp;0%,&amp;nbsp;#764ba2&amp;nbsp;100%);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;white;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin:&amp;nbsp;-2rem&amp;nbsp;-2rem&amp;nbsp;3rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#hero&amp;nbsp;h2&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font-size:&amp;nbsp;3rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-bottom:&amp;nbsp;1rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.cta-button&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;display:&amp;nbsp;inline-block;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;#e74c3c;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;white;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;1rem&amp;nbsp;2rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text-decoration:&amp;nbsp;none;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-radius:&amp;nbsp;5px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-top:&amp;nbsp;2rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transition:&amp;nbsp;background&amp;nbsp;0.3s;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.cta-button:hover&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;#c0392b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;Tech&amp;nbsp;Stack&amp;nbsp;*/&lt;br /&gt;.tech-stack&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;display:&amp;nbsp;flex;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flex-wrap:&amp;nbsp;wrap;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gap:&amp;nbsp;1rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-top:&amp;nbsp;1rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.tech&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;#3498db;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;white;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;0.5rem&amp;nbsp;1rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-radius:&amp;nbsp;20px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font-size:&amp;nbsp;0.9rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;Project&amp;nbsp;Grid&amp;nbsp;*/&lt;br /&gt;.project-grid&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;display:&amp;nbsp;grid;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;grid-template-columns:&amp;nbsp;repeat(auto-fit,&amp;nbsp;minmax(300px,&amp;nbsp;1fr));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gap:&amp;nbsp;2rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-top:&amp;nbsp;2rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.project-card&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border:&amp;nbsp;1px&amp;nbsp;solid&amp;nbsp;#ddd;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;2rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-radius:&amp;nbsp;8px;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transition:&amp;nbsp;box-shadow&amp;nbsp;0.3s;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.project-card:hover&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;box-shadow:&amp;nbsp;0&amp;nbsp;5px&amp;nbsp;15px&amp;nbsp;rgba(0,0,0,0.1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;Contact&amp;nbsp;Page&amp;nbsp;*/&lt;br /&gt;.contact-info,&amp;nbsp;.services,&amp;nbsp;.pricing&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-bottom:&amp;nbsp;3rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;table&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;100%;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border-collapse:&amp;nbsp;collapse;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-top:&amp;nbsp;1rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;th,&amp;nbsp;td&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;border:&amp;nbsp;1px&amp;nbsp;solid&amp;nbsp;#ddd;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;1rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text-align:&amp;nbsp;left;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;th&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;#f4f4f4;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;Footer&amp;nbsp;*/&lt;br /&gt;footer&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;background:&amp;nbsp;#2c3e50;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;color:&amp;nbsp;white;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;text-align:&amp;nbsp;center;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding:&amp;nbsp;2rem&amp;nbsp;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;margin-top:&amp;nbsp;3rem;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&amp;nbsp;Responsive&amp;nbsp;*/&lt;br /&gt;@media&amp;nbsp;(max-width:&amp;nbsp;768px)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nav&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flex-direction:&amp;nbsp;column;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gap:&amp;nbsp;1rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nav&amp;nbsp;ul&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gap:&amp;nbsp;1rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#hero&amp;nbsp;h2&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;font-size:&amp;nbsp;2rem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.project-grid&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;grid-template-columns:&amp;nbsp;1fr;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;```&lt;br /&gt;&lt;br /&gt;##&amp;nbsp;배포&amp;nbsp;과정&lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**파일&amp;nbsp;생성**:&amp;nbsp;위&amp;nbsp;예제&amp;nbsp;파일들을&amp;nbsp;로컬에서&amp;nbsp;생성&lt;br /&gt;2.&amp;nbsp;**Git&amp;nbsp;초기화&amp;nbsp;및&amp;nbsp;커밋**:&lt;br /&gt;```bash&lt;br /&gt;git&amp;nbsp;init&lt;br /&gt;git&amp;nbsp;add&amp;nbsp;.&lt;br /&gt;git&amp;nbsp;commit&amp;nbsp;-m&amp;nbsp;&quot;Initial&amp;nbsp;commit:&amp;nbsp;개발자&amp;nbsp;포트폴리오&amp;nbsp;사이트&quot;&lt;br /&gt;```&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;**GitHub&amp;nbsp;저장소에&amp;nbsp;푸시**:&lt;br /&gt;```bash&lt;br /&gt;git&amp;nbsp;remote&amp;nbsp;add&amp;nbsp;origin&amp;nbsp;&lt;a href=&quot;https://github.com/username/username.github.io.git&quot;&gt;https://github.com/username/username.github.io.git&lt;/a&gt;&lt;br /&gt;git&amp;nbsp;push&amp;nbsp;-u&amp;nbsp;origin&amp;nbsp;main&lt;br /&gt;```&lt;br /&gt;&lt;br /&gt;4.&amp;nbsp;**자동&amp;nbsp;배포**:&amp;nbsp;5-10분&amp;nbsp;후&amp;nbsp;`&lt;a href=&quot;https://username.github.io&quot;&gt;https://username.github.io&lt;/a&gt;`에서&amp;nbsp;확인&amp;nbsp;가능&lt;br /&gt;&lt;br /&gt;##&amp;nbsp;추가&amp;nbsp;팁&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;SEO&amp;nbsp;최적화&lt;br /&gt;-&amp;nbsp;``&amp;nbsp;태그&amp;nbsp;추가&lt;br /&gt;-&amp;nbsp;`sitemap.xml`&amp;nbsp;생성&lt;br /&gt;-&amp;nbsp;Google&amp;nbsp;Analytics&amp;nbsp;연동&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;커스텀&amp;nbsp;도메인&lt;br /&gt;-&amp;nbsp;도메인&amp;nbsp;구매&amp;nbsp;후&amp;nbsp;DNS&amp;nbsp;설정&lt;br /&gt;-&amp;nbsp;`CNAME`&amp;nbsp;파일에&amp;nbsp;도메인&amp;nbsp;추가&lt;br /&gt;&lt;br /&gt;###&amp;nbsp;자동화&lt;br /&gt;-&amp;nbsp;GitHub&amp;nbsp;Actions로&amp;nbsp;빌드&amp;nbsp;자동화&lt;br /&gt;-&amp;nbsp;Jekyll/Hugo&amp;nbsp;같은&amp;nbsp;정적&amp;nbsp;사이트&amp;nbsp;생성기&amp;nbsp;활용&lt;br /&gt;&lt;br /&gt;이&amp;nbsp;예제로&amp;nbsp;기본적인&amp;nbsp;개발자&amp;nbsp;포트폴리오&amp;nbsp;+&amp;nbsp;외주&amp;nbsp;홍보&amp;nbsp;사이트를&amp;nbsp;만들&amp;nbsp;수&amp;nbsp;있습니다.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;</description>
      <category>Setup,Util</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/56</guid>
      <comments>https://yeshtml5.tistory.com/56#entry56comment</comments>
      <pubDate>Fri, 20 Jun 2025 14:15:13 +0900</pubDate>
    </item>
    <item>
      <title>Packages.json</title>
      <link>https://yeshtml5.tistory.com/55</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;현재사용중인 packages.json&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자주사용하는것들은 만들어 두었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1655797711025&quot; class=&quot;vbnet&quot; data-ke-language=&quot;vbnet&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;scripts&quot;: {	
    &quot;clean&quot;: &quot;yarn clean:watchman &amp;amp;&amp;amp; yarn clean:android &amp;amp;&amp;amp; yarn clean:ios &quot;,

		// 메트로 캐시삭제
    &quot;clean:watchman&quot;: &quot;watchman watch-del-all&quot;,

		// node_modules 제거 yarn초기화
    &quot;clean:node&quot;: &quot;sudo rm -rf ./yarn.lock &amp;amp;&amp;amp; sudo rm -rf ./node_modules &amp;amp;&amp;amp; sudo yarn &amp;amp;&amp;amp; sudo chmod -R 777 ./node_modules&quot;,

		// ios 초기화
    &quot;clean:ios&quot;: &quot;cd ./ios &amp;amp;&amp;amp; rm -rf ./Pods &amp;amp;&amp;amp; rm -rf ./Podfile.lock &amp;amp;&amp;amp; pod install &amp;amp;&amp;amp; cd ..&quot;,

		// M1칩관련 초기화
    &quot;clean:pod&quot;: &quot;cd ./ios &amp;amp;&amp;amp; pod deintegrate tangopick_app.xcodeproj &amp;amp;&amp;amp; pod install --repo-update&quot;,

		// 안드로이드 초기화(빌드파일삭제)
    &quot;clean:android_all&quot;: &quot;cd ./android &amp;amp;&amp;amp; sudo rm -rf ./build &amp;amp;&amp;amp; sudo rm -rf ./app/build &amp;amp;&amp;amp; ./gradlew clean &amp;amp;&amp;amp; cd .. &amp;amp;&amp;amp; sudo chmod -R 777 ./android &amp;amp;&amp;amp; yarn clean:node&quot;,

		// 안드로이드 초기화
    &quot;clean:android&quot;: &quot;cd ./android &amp;amp;&amp;amp; ./gradlew clean build --refresh-dependencies &amp;amp;&amp;amp; cd ..&quot;,

		// 안드로이드 실행
    &quot;android&quot;: &quot;npx react-native run-android&quot;,

		// 안드로이드 디버그실행 (USB연결)
    &quot;android:dev&quot;: &quot;npx react-native run-android --variant=debug&quot;,

		// 안드로이드 스테이징빌드 (USB연결)
    &quot;android:releaseStaging&quot;: &quot;npx react-native run-android --variant=releaseStaging&quot;,

		// 안드로이드 빌드버젼(USB연결)
    &quot;android:release&quot;: &quot;npx react-native run-android --variant=release&quot;,

		// 안드로이드 AAB(플레이구글배포용) 빌드
    &quot;android:aab&quot;: &quot;cd ./android &amp;amp;&amp;amp; ./gradlew bundleRelease &amp;amp;&amp;amp; cd ..&quot;,

		// 안드로이드 apk 빌드 (실패시 오류노출)
    &quot;android:apk&quot;: &quot;cd ./android &amp;amp;&amp;amp; ./gradlew assembleRelease --warning-mode=all --stacktrace&quot;,

		// 안드로이드 apk 빌드 (실패시 정보노출)
    &quot;android:info&quot;: &quot;cd ./android &amp;amp;&amp;amp; ./gradlew assembleReleas --info&quot;,

		// 안드로이드 스테이징빌드 (실패시 오류노출)
    &quot;android:staging&quot;: &quot;cd ./android &amp;amp;&amp;amp; ./gradlew assembleReleaseStaging --warning-mode=all --stacktrace&quot;,
		
		// 안드로이드 빌드 (에셋초기화 이후 빌드)
    &quot;android:build&quot;: &quot;cd ./android &amp;amp;&amp;amp; ./gradlew clean &amp;amp;&amp;amp; cd .. &amp;amp;&amp;amp; sudo rm -rf ./android/app/src/main/assets/*.* &amp;amp;&amp;amp; react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/build/intermediates/res/merged/release/&quot;,
    
		// 안드로이드 빌드 (초기화 + apk + aab) 
		&quot;android:build-release&quot;: &quot;yarn android:build &amp;amp;&amp;amp; sudo rm -rf android/app/src/main/res/drawable-* &amp;amp;&amp;amp; sudo rm -rf android/app/src/main/res/raw &amp;amp;&amp;amp; cd android &amp;amp;&amp;amp; ./gradlew assembleRelease &amp;amp;&amp;amp; ./gradlew bundleRelease &amp;amp;&amp;amp; cd ..&quot;,
    
		// ios실행
		&quot;ios&quot;: &quot;npx react-native run-ios&quot;,

		// ios실행 (디바이스이름정해질때)
    &quot;ios:dev&quot;: &quot;react-native run-ios --device Noah_iPhoneProMax&quot;,

		// ios빌드
    &quot;ios:build&quot;: &quot;react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'&quot;,
		
		// 서버실행(캐시삭제포함)
    &quot;start&quot;: &quot;react-native start --reset-cache&quot;,

		// 서버실행 (특정포트)
    &quot;dev&quot;: &quot;react-native start --port 9999&quot;,

		// 린트적용
    &quot;lint&quot;: &quot;eslint . --ext .js,.jsx,.ts,.tsx&quot;,
		
		// 구글애널리틱스 실시간디버깅실행 (firebase실행필요)
    &quot;analytics:debug&quot;: &quot;adb shell setprop debug.firebase.analytics.app com.alphabridge.tangopick&quot;,

		// 코드푸시 해당버젼실행(3.0.10부터 - 3.0.20까지)
    &quot;codepush&quot;: &quot;appcenter codepush release-react -a tangopick/tangopick-android -d Staging -m -t 3.0.10 - 3.0.20&quot;,

		// 코드푸시 ios, android동시 실행
    &quot;codepush:both&quot;: &quot;yarn codepush:android &amp;amp;&amp;amp; yarn codepush:ios&quot;,
		
		// 코드푸시 안드로이드
    &quot;codepush:android&quot;: &quot;appcenter codepush release-react -a tangopick/tangopick-android -d Staging -m -t 3.1.7&quot;,
		
		// 코드푸시 ios
    &quot;codepush:ios&quot;: &quot;appcenter codepush release-react -a tangopick/tangopick-ios -d Staging -m -t 3.1.7&quot;,

		// 안드로이드 스키마테스트
    &quot;tangopick:android&quot;: &quot;npx uri-scheme open tangopick://board/13922 --android&quot;,

		// ios 스키마테스트
    &quot;tangopick:ios&quot;: &quot;npx uri-scheme open tangopick://board/13922 --ios&quot;
  },&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/55</guid>
      <comments>https://yeshtml5.tistory.com/55#entry55comment</comments>
      <pubDate>Tue, 21 Jun 2022 16:49:19 +0900</pubDate>
    </item>
    <item>
      <title>macOS Monterey에서 한/영 전환키 Shift+Space로 안될 때</title>
      <link>https://yeshtml5.tistory.com/54</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;맥북을 포멧을 했다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1653894457357&quot; class=&quot;1c&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;~/Library/Preferences/com.apple.symbolichotkeys.plist&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;에서&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;alignCenter&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/T25Su/btrktb2C7NY/PcULlYeCvkaPEGvq8Bous1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FT25Su%2Fbtrktb2C7NY%2FPcULlYeCvkaPEGvq8Bous1%2Fimg.png&quot; data-filename=&quot;Screen Shot 2021-11-09 at 10.57.07 PM.png&quot; data-ke-mobilestyle=&quot;alignCenter&quot; /&gt;
&lt;figcaption&gt;61번 키의 값을 131072로 변경합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;465&quot; data-ke-mobilestyle=&quot;alignCenter&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lhsFh/btrkqHHKfTr/VbXC8wGuYy90AXWOY43JkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlhsFh%2FbtrkqHHKfTr%2FVbXC8wGuYy90AXWOY43JkK%2Fimg.png&quot; data-filename=&quot;Screen Shot 2021-11-09 at 10.58.25 PM.png&quot; data-ke-mobilestyle=&quot;alignCenter&quot; /&gt;
&lt;figcaption&gt;키의 값을 131072로 변경 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://blog.edit.kr/entry/macOS-%ED%95%9C%EC%98%81-%EC%A0%84%ED%99%98-%EB%8B%A8%EC%B6%95%ED%82%A4-Shift-Space-%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.edit.kr/entry/macOS-%ED%95%9C%EC%98%81-%EC%A0%84%ED%99%98-%EB%8B%A8%EC%B6%95%ED%82%A4-Shift-Space-%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1653894441408&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;macOS 한영 전환 단축키 Shift + Space 로 변경하기 (Monterey 적용법 추가) (caps lock방법 추가)&quot; data-og-description=&quot;macOS Catalina (카탈리나)가 출시되면서, 32 bit프로그램들이 작동되지 않게 되었습니다. 카탈리나 OS로 업그레이드하기 전에 32bit 프로그램 내역을 조사한 결과. 개인적으로 가장 많이 사용하는데 지&quot; data-og-host=&quot;blog.edit.kr&quot; data-og-source-url=&quot;https://blog.edit.kr/entry/macOS-%ED%95%9C%EC%98%81-%EC%A0%84%ED%99%98-%EB%8B%A8%EC%B6%95%ED%82%A4-Shift-Space-%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://blog.edit.kr/entry/macOS-%ED%95%9C%EC%98%81-%EC%A0%84%ED%99%98-%EB%8B%A8%EC%B6%95%ED%82%A4-Shift-Space-%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/JmMxx/hyOBHvRLOV/kVZTN6F14oTptRoeTkzG1K/img.png?width=671&amp;amp;height=582&amp;amp;face=0_0_671_582,https://scrap.kakaocdn.net/dn/bFKmxn/hyOBz5FVwu/BkbCbQAhcKOCiUhhqGFpSK/img.png?width=671&amp;amp;height=582&amp;amp;face=0_0_671_582,https://scrap.kakaocdn.net/dn/cDXoS9/hyOzNRZ5oS/vAjfkDsObP3IKXgnQRhfC0/img.png?width=1342&amp;amp;height=1202&amp;amp;face=882_798_944_867&quot;&gt;&lt;a href=&quot;https://blog.edit.kr/entry/macOS-%ED%95%9C%EC%98%81-%EC%A0%84%ED%99%98-%EB%8B%A8%EC%B6%95%ED%82%A4-Shift-Space-%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.edit.kr/entry/macOS-%ED%95%9C%EC%98%81-%EC%A0%84%ED%99%98-%EB%8B%A8%EC%B6%95%ED%82%A4-Shift-Space-%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/JmMxx/hyOBHvRLOV/kVZTN6F14oTptRoeTkzG1K/img.png?width=671&amp;amp;height=582&amp;amp;face=0_0_671_582,https://scrap.kakaocdn.net/dn/bFKmxn/hyOBz5FVwu/BkbCbQAhcKOCiUhhqGFpSK/img.png?width=671&amp;amp;height=582&amp;amp;face=0_0_671_582,https://scrap.kakaocdn.net/dn/cDXoS9/hyOzNRZ5oS/vAjfkDsObP3IKXgnQRhfC0/img.png?width=1342&amp;amp;height=1202&amp;amp;face=882_798_944_867');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;macOS 한영 전환 단축키 Shift + Space 로 변경하기 (Monterey 적용법 추가) (caps lock방법 추가)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;macOS Catalina (카탈리나)가 출시되면서, 32 bit프로그램들이 작동되지 않게 되었습니다. 카탈리나 OS로 업그레이드하기 전에 32bit 프로그램 내역을 조사한 결과. 개인적으로 가장 많이 사용하는데 지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.edit.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Setup,Util</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/54</guid>
      <comments>https://yeshtml5.tistory.com/54#entry54comment</comments>
      <pubDate>Mon, 30 May 2022 16:12:20 +0900</pubDate>
    </item>
    <item>
      <title>homebrew-core is a shallow clone 문제</title>
      <link>https://yeshtml5.tistory.com/53</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맥북과 iMac의 작업환경이 조금 차이가 있다보니, 왔다갔다 하며 업무를 진행한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;Homebrew를 이용해서 업데이트 설치시 문제가 생긴 현황&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;화면에서도 오류 명령어를 알려주긴 하지만,&amp;nbsp; 알아두면 좋을것 같아 기록해둔다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고블로그:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://yoshikixdrum.tistory.com/229&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://yoshikixdrum.tistory.com/229&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1653698969162&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Homebrew] homebrew-core is a shallow clone 에러 해결하기.&quot; data-og-description=&quot;Homebrew를 이용해 패키지를 설치하려고 하는 도중에 나온 문제로&amp;nbsp;homebrew-core&amp;nbsp;is&amp;nbsp;a&amp;nbsp;shallow&amp;nbsp;clone. 와&amp;nbsp;&amp;nbsp;homebrew-cask&amp;nbsp;is&amp;nbsp;a&amp;nbsp;shallow&amp;nbsp;clone. &amp;nbsp;같이 에러가 나오면서 패키지를 업데이트를 할 수 없다..&quot; data-og-host=&quot;yoshikixdrum.tistory.com&quot; data-og-source-url=&quot;https://yoshikixdrum.tistory.com/229&quot; data-og-url=&quot;https://yoshikixdrum.tistory.com/229&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pHq8I/hyOyzsq1DD/MpoeTszlx9VCZ9IAjKzbXk/img.png?width=800&amp;amp;height=276&amp;amp;face=0_0_800_276,https://scrap.kakaocdn.net/dn/jTJ14/hyOysUoYFU/kTTNUPyBVlXNCzbLj5iio0/img.png?width=800&amp;amp;height=276&amp;amp;face=0_0_800_276,https://scrap.kakaocdn.net/dn/bewD0Z/hyOyu5Iyuq/8Pus2M6ERmfHcHdtbYRVTK/img.png?width=1314&amp;amp;height=1050&amp;amp;face=0_0_1314_1050&quot;&gt;&lt;a href=&quot;https://yoshikixdrum.tistory.com/229&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yoshikixdrum.tistory.com/229&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pHq8I/hyOyzsq1DD/MpoeTszlx9VCZ9IAjKzbXk/img.png?width=800&amp;amp;height=276&amp;amp;face=0_0_800_276,https://scrap.kakaocdn.net/dn/jTJ14/hyOysUoYFU/kTTNUPyBVlXNCzbLj5iio0/img.png?width=800&amp;amp;height=276&amp;amp;face=0_0_800_276,https://scrap.kakaocdn.net/dn/bewD0Z/hyOyu5Iyuq/8Pus2M6ERmfHcHdtbYRVTK/img.png?width=1314&amp;amp;height=1050&amp;amp;face=0_0_1314_1050');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Homebrew] homebrew-core is a shallow clone 에러 해결하기.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Homebrew를 이용해 패키지를 설치하려고 하는 도중에 나온 문제로&amp;nbsp;homebrew-core&amp;nbsp;is&amp;nbsp;a&amp;nbsp;shallow&amp;nbsp;clone. 와&amp;nbsp;&amp;nbsp;homebrew-cask&amp;nbsp;is&amp;nbsp;a&amp;nbsp;shallow&amp;nbsp;clone. &amp;nbsp;같이 에러가 나오면서 패키지를 업데이트를 할 수 없다..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yoshikixdrum.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1964&quot; data-origin-height=&quot;986&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JlMPu/btrDnscYGSE/odxSYzM8KK5DK5QCDhhjEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JlMPu/btrDnscYGSE/odxSYzM8KK5DK5QCDhhjEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JlMPu/btrDnscYGSE/odxSYzM8KK5DK5QCDhhjEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJlMPu%2FbtrDnscYGSE%2FodxSYzM8KK5DK5QCDhhjEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1964&quot; height=&quot;986&quot; data-origin-width=&quot;1964&quot; data-origin-height=&quot;986&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>React,React-Native</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/53</guid>
      <comments>https://yeshtml5.tistory.com/53#entry53comment</comments>
      <pubDate>Sat, 28 May 2022 09:49:44 +0900</pubDate>
    </item>
    <item>
      <title>react-native-naver-map 적용시 pod install Error날때</title>
      <link>https://yeshtml5.tistory.com/52</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;pod install 중에 다음과 같은 에러가 발생했다.&lt;/p&gt;
&lt;pre id=&quot;code_1653568192686&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[!] Error installing NMapsMap
[!] /usr/bin/git clone https://github.com/navermaps/NMapsMap.git /var/folders/np/kql39mdx7576fmh_nzsm58240000gn/T/d20220526-76914-19amcn --template= --single-branch --depth 1 --branch release/3.15.0

Cloning into '/var/folders/np/kql39mdx7576fmh_nzsm58240000gn/T/d20220526-76914-19amcn'...
Note: switching to 'b7ba615aa9d87c5b985b73e1a48279c37a5022e3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c &amp;lt;new-branch-name&amp;gt;

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

git-lfs filter-process: git-lfs: command not found
fatal: the remote end hung up unexpectedly
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결방안&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/navermaps/ios-map-sdk?ref=morioh.com&amp;amp;utm_source=morioh.com#%EB%8C%80%EC%9A%A9%EB%9F%89-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EB%B0%9B%EA%B8%B0-%EC%9C%84%ED%95%B4-git-lfs-%EC%84%A4%EC%B9%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4&quot;&gt;https://github.com/navermaps/ios-map-sdk?ref=morioh.com&amp;amp;utm_source=morioh.com#%EB%8C%80%EC%9A%A9%EB%9F%89-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EB%B0%9B%EA%B8%B0-%EC%9C%84%ED%95%B4-git-lfs-%EC%84%A4%EC%B9%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1653568254195&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - navermaps/ios-map-sdk: 네이버 지도 iOS SDK 데모 앱&quot; data-og-description=&quot;네이버 지도 iOS SDK 데모 앱. Contribute to navermaps/ios-map-sdk development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/navermaps/ios-map-sdk?ref=morioh.com&amp;amp;utm_source=morioh.com#%EB%8C%80%EC%9A%A9%EB%9F%89-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EB%B0%9B%EA%B8%B0-%EC%9C%84%ED%95%B4-git-lfs-%EC%84%A4%EC%B9%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4&quot; data-og-url=&quot;https://github.com/navermaps/ios-map-sdk&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bvXuzQ/hyOyAqbdmm/gSOKGVJGX6AE0UpTWti2Jk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/navermaps/ios-map-sdk?ref=morioh.com&amp;amp;utm_source=morioh.com#%EB%8C%80%EC%9A%A9%EB%9F%89-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EB%B0%9B%EA%B8%B0-%EC%9C%84%ED%95%B4-git-lfs-%EC%84%A4%EC%B9%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/navermaps/ios-map-sdk?ref=morioh.com&amp;amp;utm_source=morioh.com#%EB%8C%80%EC%9A%A9%EB%9F%89-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EB%B0%9B%EA%B8%B0-%EC%9C%84%ED%95%B4-git-lfs-%EC%84%A4%EC%B9%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bvXuzQ/hyOyAqbdmm/gSOKGVJGX6AE0UpTWti2Jk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - navermaps/ios-map-sdk: 네이버 지도 iOS SDK 데모 앱&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;네이버 지도 iOS SDK 데모 앱. Contribute to navermaps/ios-map-sdk development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>React,React-Native</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/52</guid>
      <comments>https://yeshtml5.tistory.com/52#entry52comment</comments>
      <pubDate>Thu, 26 May 2022 21:37:15 +0900</pubDate>
    </item>
    <item>
      <title>ios Cocoapods 문제생길때</title>
      <link>https://yeshtml5.tistory.com/51</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;CocoaPods 제거 및 인스톨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1653556410289&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rm -rf ~/Library/Caches/CocoaPods.
rm -rf Pods.
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod deintegrate.
pod setup.
pod install.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고페이지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://eunjin3786.tistory.com/112&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://eunjin3786.tistory.com/112&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1653556360369&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Cocoapod] Cocoapod 명령어 모음&quot; data-og-description=&quot;[1] &amp;nbsp;Podfile.lock을 여는 명렁어 open podfile.lock [2] cocoapod 버전 업그레이드 아래 명령어로 현재 버전을 확인하고 pod --version 원하는 버전으로 업데이트 시켜주세요 sudo gem install cocoapods -v 1.9..&quot; data-og-host=&quot;eunjin3786.tistory.com&quot; data-og-source-url=&quot;https://eunjin3786.tistory.com/112&quot; data-og-url=&quot;https://eunjin3786.tistory.com/112&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cbCpIh/hyOyCamPlh/KZbY0gzFqcorfPgYrOeB7K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/68Fou/hyOxnFSRCY/oONGgk0aFDoZS6v9Whx361/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://eunjin3786.tistory.com/112&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://eunjin3786.tistory.com/112&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cbCpIh/hyOyCamPlh/KZbY0gzFqcorfPgYrOeB7K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/68Fou/hyOxnFSRCY/oONGgk0aFDoZS6v9Whx361/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Cocoapod] Cocoapod 명령어 모음&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[1] &amp;nbsp;Podfile.lock을 여는 명렁어 open podfile.lock [2] cocoapod 버전 업그레이드 아래 명령어로 현재 버전을 확인하고 pod --version 원하는 버전으로 업데이트 시켜주세요 sudo gem install cocoapods -v 1.9..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;eunjin3786.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>React,React-Native</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/51</guid>
      <comments>https://yeshtml5.tistory.com/51#entry51comment</comments>
      <pubDate>Thu, 26 May 2022 18:14:00 +0900</pubDate>
    </item>
    <item>
      <title>기상정보, 지진,화산등 API 가져올수있는곳</title>
      <link>https://yeshtml5.tistory.com/50</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;날씨 앱을 만들때 우선적으로 API 가져올수있는곳 공유해본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://data.kma.go.kr/api/selectApiDetail.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://data.kma.go.kr/api/selectApiDetail.do&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1653473392941&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;기상자료개방포털&quot; data-og-description=&quot;&quot; data-og-host=&quot;data.kma.go.kr&quot; data-og-source-url=&quot;https://data.kma.go.kr/api/selectApiDetail.do&quot; data-og-url=&quot;https://data.kma.go.kr/api/selectApiDetail.do&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://data.kma.go.kr/api/selectApiDetail.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://data.kma.go.kr/api/selectApiDetail.do&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;기상자료개방포털&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;data.kma.go.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2290&quot; data-origin-height=&quot;1970&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/osYzb/btrC9lyz0Es/nKDjPoyo4z7iszPlu0FvK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/osYzb/btrC9lyz0Es/nKDjPoyo4z7iszPlu0FvK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/osYzb/btrC9lyz0Es/nKDjPoyo4z7iszPlu0FvK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FosYzb%2FbtrC9lyz0Es%2FnKDjPoyo4z7iszPlu0FvK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2290&quot; height=&quot;1970&quot; data-origin-width=&quot;2290&quot; data-origin-height=&quot;1970&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Story</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/50</guid>
      <comments>https://yeshtml5.tistory.com/50#entry50comment</comments>
      <pubDate>Wed, 25 May 2022 19:10:53 +0900</pubDate>
    </item>
    <item>
      <title>TourAPI 정보 받아올수있는곳</title>
      <link>https://yeshtml5.tistory.com/49</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;여행앱을 개인적으로 만들어 보고자 했을때가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전국 각지에서, 활용정보, 이맘때쯤 가기 좋을곳, 등등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 한국관광공사에서 제공하는 API를 가져다 쓸수있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://api.visitkorea.or.kr/about/about.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://api.visitkorea.or.kr/about/about.do&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1653473337105&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;TourAPI 3.0 소개 | 서비스 소개 | TourAPI3.0&quot; data-og-description=&quot;지역 관광정보를 간행물에 활용하고, 학교에서는 연구 자료로 활용해 보실 수 있습니다. 관광정보를 이용해 웹사이트와 모바일 앱으로 유용한 관광정보 서비스도 만들어 보실 수 있습니다. 정&quot; data-og-host=&quot;api.visitkorea.or.kr&quot; data-og-source-url=&quot;https://api.visitkorea.or.kr/about/about.do&quot; data-og-url=&quot;https://api.visitkorea.or.kr/about/about.do&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://api.visitkorea.or.kr/about/about.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://api.visitkorea.or.kr/about/about.do&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;TourAPI 3.0 소개 | 서비스 소개 | TourAPI3.0&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;지역 관광정보를 간행물에 활용하고, 학교에서는 연구 자료로 활용해 보실 수 있습니다. 관광정보를 이용해 웹사이트와 모바일 앱으로 유용한 관광정보 서비스도 만들어 보실 수 있습니다. 정&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;api.visitkorea.or.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2056&quot; data-origin-height=&quot;2276&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K3yQD/btrC6fNEnIq/8Ps9v6rdAQv7D4gKc8ziWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K3yQD/btrC6fNEnIq/8Ps9v6rdAQv7D4gKc8ziWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K3yQD/btrC6fNEnIq/8Ps9v6rdAQv7D4gKc8ziWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK3yQD%2FbtrC6fNEnIq%2F8Ps9v6rdAQv7D4gKc8ziWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2056&quot; height=&quot;2276&quot; data-origin-width=&quot;2056&quot; data-origin-height=&quot;2276&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Story</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/49</guid>
      <comments>https://yeshtml5.tistory.com/49#entry49comment</comments>
      <pubDate>Wed, 25 May 2022 19:09:27 +0900</pubDate>
    </item>
    <item>
      <title>Object 불변성 유지할수있게, useObject hooks 기반</title>
      <link>https://yeshtml5.tistory.com/48</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;useState에서 Object 즉 JSON형태로 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 값이 있는경우 대체되어버리기때문에, 기존의값 그대로 뒤에로&amp;nbsp; override형태로 덮어쓴다.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style=&quot;color: #676f7d;&quot;&gt; const [json, setJson] = useObject({ title: 'test' }) 형태로 사용하고 싶어서,&amp;nbsp; 만든 코드 올려본다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1653472292608&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * @name useObject
 * @description
 */
import {useCallback, useState} from 'react'

// Hook
export const useObject = (initialState: {} = {}): any =&amp;gt; {
  // Initialize the state
  const [state, setState] = useState&amp;lt;object&amp;gt;(initialState)
  const update = useCallback(
    (data): void =&amp;gt;
      setState(prevState =&amp;gt; {
        return {...prevState, ...data}
      }),
    [],
  )
  return [state, update]
}
/********************************************************
[사용법]
import { useObject } from '@app/lib/hooks/useObject'
const Debug = () =&amp;gt; {
  const [json, setJson] = useObject({ title: 'test' })
  return (
    &amp;lt;Container&amp;gt;
      &amp;lt;Button onPress={() =&amp;gt; { setJson({ 'random_number': Math.random() * 1000 }) }}&amp;gt;
        정보가져오기
      &amp;lt;/Button&amp;gt;
      &amp;lt;Text&amp;gt;{JSON.stringify(json, null, 1)}&amp;lt;/Text&amp;gt;
    &amp;lt;/Container&amp;gt;
  )
}
export default Debug
*********************************************************/&lt;/code&gt;&lt;/pre&gt;</description>
      <category>React,React-Native</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/48</guid>
      <comments>https://yeshtml5.tistory.com/48#entry48comment</comments>
      <pubDate>Wed, 25 May 2022 18:53:37 +0900</pubDate>
    </item>
    <item>
      <title>useAxios를 만들어 보았다.</title>
      <link>https://yeshtml5.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;RestAPI 를 할때 axios를 많이 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조금더 유용하게 사용하기위해 hooks 기반으로 만들었고, loading, error 로 같이 받을수 있게 해두었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드는 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1653471908726&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * @name useAxios
 * @description hooks기반 fetch
 */

import {useState} from 'react'
import axios from 'axios'

export const useAxios = (_url?: string, _options = {}) =&amp;gt; {
  const [result, setResult] = useState&amp;lt;string&amp;gt;('') // *-------------- result
  const [loading, setLoading] = useState&amp;lt;boolean | null&amp;gt;(null) // *--------- Loading
  const [error, setError] = useState&amp;lt;any&amp;gt;(null) // *----------------- Error

  // *---------------- response
  async function response(_config) {
    setLoading(true)
    // const token = ''
    // const config = Object.assign({ headers: { Authorization: `Bearer ${token}` }, withCredentials: true, }, _config)
    const config = Object.assign({withCredentials: true}, _config)
    const res = await axios(config)
    setLoading(false)
    if (res?.status === 200) {
      // REST성공
      setResult(res?.data)
      return res?.data
    } else {
      // rest실패
      setError(res?.data)
      return {...res.data, result: 'fail'}
    }
  }
  // *---------------- Error 실행
  function errorFunc(error) {
    setLoading(false)
    setError(error)
    errorMsg({...(error as any)})
  }
  // *-------------------------------------- FETCH
  async function ajax(url?: string | null, params?: {}) {
    const config = {method: 'GET', url: url || _url, ...params}
    try {
      return await response(config)
    } catch (error) {
      errorFunc(error)
    }
  }

  // *-------------------------------------- GET
  async function get(url?: string | null, params?: {}) {
    const config = {method: 'GET', url: url || _url, params: Object.assign(_options, params)}
    try {
      return await response(config)
    } catch (error) {
      errorFunc(error)
    }
  }
  // *-------------------------------------- POST
  async function post(url?: string | null, data?: {}) {
    const config = {method: 'POST', url: url || _url, data: Object.assign(_options, data)}
    try {
      return await response(config)
    } catch (error) {
      errorFunc(error)
    }
  }
  // *-------------------------------------- PUT
  async function put(url?: string | null, data?: {}) {
    const config = {method: 'PUT', url: url || _url, data: Object.assign(_options, data)}
    try {
      return await response(config)
    } catch (error) {
      errorFunc(error)
    }
  }
  // *-------------------------------------- DELETE
  async function del(url?: string | null, data?: {}) {
    const config = {method: 'DELETE', url: url || _url, data: Object.assign(_options, data)}
    try {
      return await response(config)
    } catch (error) {
      errorFunc(error)
    }
  }
  // *--------------------------------------
  return {result, ajax, get, post, del, put, loading, error}
}

/**
 * @description 에러발생시코드
 * @param error
 */
export const errorMsg = (...params) =&amp;gt; {
  console.log('%c' + `[ajax ERROR] `, 'width:100%;font-size:12px;padding:5px 10px;color:#fff;background:red;')
  console.log(JSON.stringify(params, null, 1))
}
/********************************************************
[사용법]
  const { get, loading } = useFetch(`${USER}/community/join/board`, { offset: 0 });
  //*------- fetch
  async function fetch() {
    const res = await get()
    const res1 = await get(`${USER}/community/join/board/some`, { offset: 20 })
  }
  // useEffect
  useEffect(() =&amp;gt; { fetch(); }, [])
  post, delete, put 일때 success, fail 체크는 
  if (res?.result === 'fail') {  }
  
  //-----------------------------------------------
  const { loading, ajax } = useAxios(url)
  async function fetch() {
    const res = await ajax(url,
      {
        params: { query: '컴퓨터' },
        headers: {
          'X-Naver-Client-Id': NAVER_CLIENT_ID,
          'X-Naver-Client-Secret': NAVER_CLIENT_SECRET
        }
      }
    )
    setFetch(res)
  }

*********************************************************/&lt;/code&gt;&lt;/pre&gt;</description>
      <category>React,React-Native</category>
      <author>슬/도/아/밤/</author>
      <guid isPermaLink="true">https://yeshtml5.tistory.com/47</guid>
      <comments>https://yeshtml5.tistory.com/47#entry47comment</comments>
      <pubDate>Wed, 25 May 2022 18:46:22 +0900</pubDate>
    </item>
  </channel>
</rss>