<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>개발하는 냥이 (=ↀ&amp;omega;ↀ=)</title>
    <link>https://newline.tistory.com/</link>
    <description>기억을 믿지 말라</description>
    <language>ko</language>
    <pubDate>Tue, 4 Aug 2026 11:29:48 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>뉴에이스</managingEditor>
    <image>
      <title>개발하는 냥이 (=ↀ&amp;omega;ↀ=)</title>
      <url>https://tistory1.daumcdn.net/tistory/2750520/attach/2e0baf05ecba4a5ab34b6ccbccd064b3</url>
      <link>https://newline.tistory.com</link>
    </image>
    <item>
      <title>[Android] adb로 DeepLink 호출하기</title>
      <link>https://newline.tistory.com/167</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&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;adb shell am start &lt;span style=&quot;color: #89ddff;&quot;&gt;-a&lt;/span&gt; android.intent.action.VIEW &lt;span style=&quot;color: #89ddff;&quot;&gt;-d&lt;/span&gt; &lt;span style=&quot;color: #89ddff;&quot;&gt;{&lt;/span&gt;URI&lt;span style=&quot;color: #89ddff;&quot;&gt;}&lt;/span&gt; &lt;span style=&quot;color: #89ddff;&quot;&gt;{&lt;/span&gt;APP PACKAGE NAME&lt;span style=&quot;color: #89ddff;&quot;&gt;}&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;adb shell am start -W -a android.intent.action.VIEW -d {&lt;span style=&quot;color: #89ddff;&quot;&gt;앱에서 설정한 스킴으로 시작하는 URI}&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;span style=&quot;color: #89ddff;&quot;&gt;까지 입력 후 실행!&lt;/span&gt;&lt;/p&gt;</description>
      <category>개발/Android</category>
      <category>ADB</category>
      <category>adb deeplink</category>
      <category>Android</category>
      <category>deeplink</category>
      <category>딥링크</category>
      <category>안드로이드 딥링크</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/167</guid>
      <comments>https://newline.tistory.com/167#entry167comment</comments>
      <pubDate>Mon, 26 Jul 2021 17:08:34 +0900</pubDate>
    </item>
    <item>
      <title>[Android] 현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다</title>
      <link>https://newline.tistory.com/166</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&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;&quot;Gradle project sync failed&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다&quot;&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;113&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLDvqI/btq8T82TM4o/GmBIjq83yNJhORyB87w4Ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLDvqI/btq8T82TM4o/GmBIjq83yNJhORyB87w4Ok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLDvqI/btq8T82TM4o/GmBIjq83yNJhORyB87w4Ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLDvqI%2Fbtq8T82TM4o%2FGmBIjq83yNJhORyB87w4Ok%2Fimg.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;113&quot; data-ke-mobilestyle=&quot;widthOrigin&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;/&gt;&lt;/span&gt;&lt;/figure&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핫스팟 설정을 끄고 빌드하니 성공했다.&lt;/p&gt;</description>
      <category>개발/Android</category>
      <category>Android</category>
      <category>Gradle project sync failed</category>
      <category>안드로이드 스튜디오</category>
      <category>현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/166</guid>
      <comments>https://newline.tistory.com/166#entry166comment</comments>
      <pubDate>Mon, 5 Jul 2021 16:07:39 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 모든 Branch 한번에 내려받기</title>
      <link>https://newline.tistory.com/165</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&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;브랜치가 10개 이상... 20개 이상... 몇십개가 된다면 그걸 일일이 받는것도 노가다가 아닐 수 없다.&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;&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;1. git 명령어와 실행할 단축어 (alias) 등록&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;git config --global alias.&lt;span style=&quot;color: #ee2323;&quot;&gt;clone-branches&lt;/span&gt; '! git branch -a | sed -n &quot;/\/HEAD /d; /\/master$/d; /remotes/p;&quot; | xargs -L1 git checkout -t'&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;2. 등록한 alias를 호출하여 브랜치 한번에 받기&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;git &lt;span style=&quot;color: #ee2323;&quot;&gt;clone-branches&lt;/span&gt;&lt;/p&gt;</description>
      <category>Tools</category>
      <category>Git</category>
      <category>깃</category>
      <category>모든 브랜치 체크아웃</category>
      <category>브랜치 한번에 받기</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/165</guid>
      <comments>https://newline.tistory.com/165#entry165comment</comments>
      <pubDate>Wed, 23 Jun 2021 15:37:10 +0900</pubDate>
    </item>
    <item>
      <title>[Android] The binary version of its metadata is 1.5.1, expected version is 1.1.1</title>
      <link>https://newline.tistory.com/164</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;기존에 정상적으로 빌드가 되던 프로젝트인데 어느순간부터 빌드 에러가 발생&lt;br&gt; &lt;br&gt;안드로이드 스튜디오는 업데이트 안했고, &lt;br&gt; &lt;br&gt;소스 코드도 그대로이고,&lt;br&gt; &lt;br&gt;플러그인을 업데이트 했는지는 모르겠다.. 하지만 안한거같은데!&lt;br&gt; &lt;br&gt;이런 에러가 발생 ㅠㅠ&lt;br&gt; &lt;br&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16.&lt;/b&gt;&lt;/span&gt;&lt;br&gt; &lt;br&gt;여튼 이것때문에 안드로이드 스튜디오도 재설치해보고&lt;br&gt; &lt;br&gt;설치된 플러그인도 삭제 해봐도 동일..&lt;br&gt; &lt;br&gt;한참 씨름하다 gradle에 설정되어 있던 코틀린 버전을 올리고 해결 ㅠㅠ&lt;br&gt; &lt;br&gt; &lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1751&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqpQf4/btq6Smjdfp0/KRRdBUCqmuLAKDkKBx0ypk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqpQf4/btq6Smjdfp0/KRRdBUCqmuLAKDkKBx0ypk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqpQf4/btq6Smjdfp0/KRRdBUCqmuLAKDkKBx0ypk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqpQf4%2Fbtq6Smjdfp0%2FKRRdBUCqmuLAKDkKBx0ypk%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;1751&quot; height=&quot;145&quot; data-origin-width=&quot;1751&quot; data-origin-height=&quot;145&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt; &lt;br&gt;기존에 설정되어 있던 코틀린 버전을 1.3.71 에서 1.4.32 로 변경 후 빌드 성공함&lt;br&gt; &lt;br&gt; &lt;/p&gt;</description>
      <category>개발/Android</category>
      <category>Android Studio</category>
      <category>expected version is 1.1.16.</category>
      <category>Kotlin</category>
      <category>Module was compiled with an incompatible version of Kotlin.</category>
      <category>The binary version of its metadata is 1.5.1</category>
      <category>안드로이드스튜디오</category>
      <category>코틀린</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/164</guid>
      <comments>https://newline.tistory.com/164#entry164comment</comments>
      <pubDate>Thu, 10 Jun 2021 17:07:15 +0900</pubDate>
    </item>
    <item>
      <title>[Cocoa Pods] pod install 실행시 Analyzing dependencies(의존성) 에러 발생할 경우</title>
      <link>https://newline.tistory.com/163</link>
      <description>&lt;p&gt;프로젝트를 내려받아 pod install 을 실행하니 아래와 같은 에러가 발생했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1UCNd/btqQKuc62IB/3QnUAlgpwtrzggAqydcjSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1UCNd/btqQKuc62IB/3QnUAlgpwtrzggAqydcjSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1UCNd/btqQKuc62IB/3QnUAlgpwtrzggAqydcjSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1UCNd%2FbtqQKuc62IB%2F3QnUAlgpwtrzggAqydcjSk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;오류를 자세히 읽어보면 해결방법을 알려준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DUQEv/btqQJD2qGoP/7xgGaVhnCNpPYe4Cc60rvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DUQEv/btqQJD2qGoP/7xgGaVhnCNpPYe4Cc60rvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DUQEv/btqQJD2qGoP/7xgGaVhnCNpPYe4Cc60rvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDUQEv%2FbtqQJD2qGoP%2F7xgGaVhnCNpPYe4Cc60rvK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;pod install --repo-update 를 실행하여 pod lib 설치를 완료한다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>개발/iOS</category>
      <category>Analyzing dependencies</category>
      <category>Cocoa Pod</category>
      <category>CocoaPods could not find compatible versions for pod &amp;quot;Alamofire&amp;quot;:</category>
      <category>pod install --repo-update</category>
      <category>pod install error</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/163</guid>
      <comments>https://newline.tistory.com/163#entry163comment</comments>
      <pubDate>Mon, 21 Dec 2020 11:28:32 +0900</pubDate>
    </item>
    <item>
      <title>[iOS] Xcode 프로젝트 빌드시 &amp;quot;Command PhaseScriptExecution failed with a nonzero exit code&amp;quot; - &amp;quot;Permission denied&amp;quot; 에러</title>
      <link>https://newline.tistory.com/162</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Mac에서 정상적으로 빌드가 되던 프로젝트를 윈도우로 옮겼다가 다시 받아서 테스트 하려니 빌드 에러가 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;640&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4IKtX/btqMn4WwV8t/xoiVkpuBScDWbmIUp1k660/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4IKtX/btqMn4WwV8t/xoiVkpuBScDWbmIUp1k660/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4IKtX/btqMn4WwV8t/xoiVkpuBScDWbmIUp1k660/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4IKtX%2FbtqMn4WwV8t%2FxoiVkpuBScDWbmIUp1k660%2Fimg.png&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;640&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pod 라이브러리를 재설치도 해보고 클린빌드도 해보았으나 동일.&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;Command PhaseScriptExecution failed with a nonzero exit code 에러 위쪽에 있는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Permission denied. 권한이 없다고 한다.&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;해결방법은 저 아래쪽에 나와있는 xxxxxx.sh 파일에 대한 실행 권한이 없어 발생한 에러로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;터미널 실행 후 에러에서 표시되는 xxxx.sh 파일이 있는 경로로 이동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;b&gt;chmod +x &lt;span style=&quot;color: #ee2323;&quot;&gt;파일명.sh&lt;/span&gt;&lt;/b&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;이후 Xcode에서 프로젝트 빌드시 성공!&lt;/p&gt;</description>
      <category>개발/iOS</category>
      <category>Command PhaseScriptExecution failed with a nonzero exit code</category>
      <category>nonzero exit code</category>
      <category>Permission denied</category>
      <category>PhaseScriptExecution</category>
      <category>Xcode 빌드에러</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/162</guid>
      <comments>https://newline.tistory.com/162#entry162comment</comments>
      <pubDate>Mon, 2 Nov 2020 16:44:53 +0900</pubDate>
    </item>
    <item>
      <title>Database - MicroSoft  Azure MSSQL DB 생성하기</title>
      <link>https://newline.tistory.com/161</link>
      <description>&lt;p&gt;1. Azure Portal 접속 (&lt;a href=&quot;https://portal.azure.com/#home&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;portal.azure.com&lt;/a&gt;) - 리소스 그룹 클릭 (리소스&amp;nbsp; 그룹을 만들지 않은 경우)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;506&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGbWUx/btqMhtprktT/hfmt0Ptvy8X5RFx6NFYVJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGbWUx/btqMhtprktT/hfmt0Ptvy8X5RFx6NFYVJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGbWUx/btqMhtprktT/hfmt0Ptvy8X5RFx6NFYVJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGbWUx%2FbtqMhtprktT%2Fhfmt0Ptvy8X5RFx6NFYVJ0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;506&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;2. 리소스 그룹에서 +추가 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;608&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dX1mE7/btqLsbQcAb5/mXOn8XASjwzhjKpCT66uL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dX1mE7/btqLsbQcAb5/mXOn8XASjwzhjKpCT66uL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dX1mE7/btqLsbQcAb5/mXOn8XASjwzhjKpCT66uL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdX1mE7%2FbtqLsbQcAb5%2FmXOn8XASjwzhjKpCT66uL1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;608&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;3. 구독 (학생용 계정은 기본 선택이 되어 있음) 정보 선택&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;리소스 그룹명 입력&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;그룹이 생성될 영역 (미국/한국 어느곳을 선택해도 문제 없음)을 선택 후 하단에 검토+만들기 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;521&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PnlzJ/btqMfj1V7lH/4ZeAZDw5Q2WKFw3H8KhhN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PnlzJ/btqMfj1V7lH/4ZeAZDw5Q2WKFw3H8KhhN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PnlzJ/btqMfj1V7lH/4ZeAZDw5Q2WKFw3H8KhhN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPnlzJ%2FbtqMfj1V7lH%2F4ZeAZDw5Q2WKFw3H8KhhN1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;521&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;4. 유효성 검사를 통과 후&amp;nbsp; 하단에 만들기 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;520&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GplAz/btqMi0f7MzB/VcJXGoq8yvnYIOmyxF7D1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GplAz/btqMi0f7MzB/VcJXGoq8yvnYIOmyxF7D1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GplAz/btqMi0f7MzB/VcJXGoq8yvnYIOmyxF7D1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGplAz%2FbtqMi0f7MzB%2FVcJXGoq8yvnYIOmyxF7D1k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;520&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5. 생성이 완료되면 리소스 그룹 리스트에 추가한 항목이 출력된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;574&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3myWq/btqMmpM7gBl/jW7J4G1ETCIsG0YIvT73g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3myWq/btqMmpM7gBl/jW7J4G1ETCIsG0YIvT73g0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3myWq/btqMmpM7gBl/jW7J4G1ETCIsG0YIvT73g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3myWq%2FbtqMmpM7gBl%2FjW7J4G1ETCIsG0YIvT73g0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;574&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;6. 생성된 리소스 그룹을 클릭 후 +추가 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;571&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwquHW/btqMi0UJGlh/S0L24LAMhxhKhowA0wsa9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwquHW/btqMi0UJGlh/S0L24LAMhxhKhowA0wsa9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwquHW/btqMi0UJGlh/S0L24LAMhxhKhowA0wsa9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwquHW%2FbtqMi0UJGlh%2FS0L24LAMhxhKhowA0wsa9K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;571&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;7. 좌측 목록에서 데이터베이스 클릭 후 우측에서 SQL Database 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;539&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uqvvd/btqMqejYt49/X0RotKCuaLLRfI6QyKd4zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uqvvd/btqMqejYt49/X0RotKCuaLLRfI6QyKd4zK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uqvvd/btqMqejYt49/X0RotKCuaLLRfI6QyKd4zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuqvvd%2FbtqMqejYt49%2FX0RotKCuaLLRfI6QyKd4zK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;539&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;8. 구독정보 확인&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;리소스 그룹명 확인&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;데이터베이스 이름은 내리소스그룹 내에서만 유일하게 입력&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;기존 생성한 서버가 없는 경우 데이터베이스를 사용할 서버를 선택(만들기)를 진행&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;서버의 이름은 전세계에서 유일해야 함&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;사용자명과 암호 설정 후 만들기 진행하여 서버 선택&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;위치는 웹서버의 위치와 동일한곳으로 설정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;553&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gpsgk/btqMn3wr6l6/z51GVc1wRhvOH8fUn66lL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gpsgk/btqMn3wr6l6/z51GVc1wRhvOH8fUn66lL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gpsgk/btqMn3wr6l6/z51GVc1wRhvOH8fUn66lL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGpsgk%2FbtqMn3wr6l6%2Fz51GVc1wRhvOH8fUn66lL0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;553&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;9. 컴퓨팅 + 스토리지 우측에 데이터베이스 구성을 클릭하여 가격 확인 및 스토리지 선택 후 적용&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;544&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3d7Ti/btqMi0geaoZ/kQDGZYPluX4uGoOPN2F71K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3d7Ti/btqMi0geaoZ/kQDGZYPluX4uGoOPN2F71K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3d7Ti/btqMi0geaoZ/kQDGZYPluX4uGoOPN2F71K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3d7Ti%2FbtqMi0geaoZ%2FkQDGZYPluX4uGoOPN2F71K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;544&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;10. 입력항목들을 확인 후 하단에 다음: 네트워킹 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czlt4D/btqMhu9JikP/kIqj2dMH0GZgJMiGa3l251/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czlt4D/btqMhu9JikP/kIqj2dMH0GZgJMiGa3l251/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czlt4D/btqMhu9JikP/kIqj2dMH0GZgJMiGa3l251/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fczlt4D%2FbtqMhu9JikP%2FkIqj2dMH0GZgJMiGa3l251%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;11. 퍼블릭 엔드포인트 : 인터넷에 공개할 경우 모두가 접속 가능으로 일반적으로 선택하는 항목으로 선택 후 다음: 추가설정 클릭&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; (프라이빗 엔드포인트 : 같은 데이터센터내에서만 접속 가능)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;652&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sTa8H/btqMi0N3NNa/0sBXU4mfwsPSPMKRhjb4xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sTa8H/btqMi0N3NNa/0sBXU4mfwsPSPMKRhjb4xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sTa8H/btqMi0N3NNa/0sBXU4mfwsPSPMKRhjb4xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsTa8H%2FbtqMi0N3NNa%2F0sBXU4mfwsPSPMKRhjb4xk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;652&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;12. 기본값들로 설정된 채로 다음: 태그 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;574&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c17e6Y/btqMgsj0vSv/mXHAB4vMywkQ8IRz3fvpn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c17e6Y/btqMgsj0vSv/mXHAB4vMywkQ8IRz3fvpn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c17e6Y/btqMgsj0vSv/mXHAB4vMywkQ8IRz3fvpn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc17e6Y%2FbtqMgsj0vSv%2FmXHAB4vMywkQ8IRz3fvpn1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;574&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;13. 리소스들이 많을 경우 리소스들 내에서 태그를 입력하여 검색을 용이하도록 하는 설정으로 생략 가능&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;다음: 검토 + 만들기 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;560&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmF0EC/btqMpKKb1wY/wG8ncEbjoy80fZvczxaVMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmF0EC/btqMpKKb1wY/wG8ncEbjoy80fZvczxaVMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmF0EC/btqMpKKb1wY/wG8ncEbjoy80fZvczxaVMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmF0EC%2FbtqMpKKb1wY%2FwG8ncEbjoy80fZvczxaVMK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;560&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;14. 가격 및 설정값들을 확인 후 만들기 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;573&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baSk1J/btqMqCdQLTt/PIKMo4IKuPBl59kQvFGypk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baSk1J/btqMqCdQLTt/PIKMo4IKuPBl59kQvFGypk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baSk1J/btqMqCdQLTt/PIKMo4IKuPBl59kQvFGypk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaSk1J%2FbtqMqCdQLTt%2FPIKMo4IKuPBl59kQvFGypk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;573&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;15. 서버를 처음 설정할 경우 배포시간이 소요될 수 있으며 배포 완료 후 리소스로 이동&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;628&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfUrxj/btqMmpfxYl2/xglfrcC3rceTqKkZher8GK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfUrxj/btqMmpfxYl2/xglfrcC3rceTqKkZher8GK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfUrxj/btqMmpfxYl2/xglfrcC3rceTqKkZher8GK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfUrxj%2FbtqMmpfxYl2%2FxglfrcC3rceTqKkZher8GK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;628&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;16. 생성된 DB에 연결해보기 위해 DB 관리 툴 설치 (DBeaver, SQL Studio(Windows), Azure Data Studio(MAC) 등)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DBeaver 로 설치 후 실행&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sample DB는 생성하지 않고, 새로 DB를 추가&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; SQL Server 선택 후 진행&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;616&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kVacl/btqLvf5DrhQ/siwofVJL7H7KpLBKhC1Kk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kVacl/btqLvf5DrhQ/siwofVJL7H7KpLBKhC1Kk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kVacl/btqLvf5DrhQ/siwofVJL7H7KpLBKhC1Kk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkVacl%2FbtqLvf5DrhQ%2FsiwofVJL7H7KpLBKhC1Kk1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;616&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;17. Azure Portal 에 서버이름 부분을 복사해서 HOST에 입력&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;649&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bb403x/btqMpLvxDWt/k4puT5qKtZhwgptGYAPw21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bb403x/btqMpLvxDWt/k4puT5qKtZhwgptGYAPw21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bb403x/btqMpLvxDWt/k4puT5qKtZhwgptGYAPw21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb403x%2FbtqMpLvxDWt%2Fk4puT5qKtZhwgptGYAPw21%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;649&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;18. 생성했던 데이터베이스 이름, 사용자명, 암호 입력&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;인증방식은 SQL Server Authentication 선택 (기본값)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;618&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQ816r/btqMfiPrsJD/ooAPHfJGlqVB15yyVvsx41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQ816r/btqMfiPrsJD/ooAPHfJGlqVB15yyVvsx41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQ816r/btqMfiPrsJD/ooAPHfJGlqVB15yyVvsx41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQ816r%2FbtqMfiPrsJD%2FooAPHfJGlqVB15yyVvsx41%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;618&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;19. Test Connection 선택 후 드라이버를 설치 후 연결 테스트 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;608&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvgQXw/btqLqmdGgca/DzJpDswKUqXzpklliEB5Pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvgQXw/btqLqmdGgca/DzJpDswKUqXzpklliEB5Pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvgQXw/btqLqmdGgca/DzJpDswKUqXzpklliEB5Pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvgQXw%2FbtqLqmdGgca%2FDzJpDswKUqXzpklliEB5Pk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;608&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;20. 방화벽 설정으로 인해 오류가 발생할것임 (정상)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;657&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1Io7V/btqLwdTQMF2/utFqkAYHXdLndUaVigunx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1Io7V/btqLwdTQMF2/utFqkAYHXdLndUaVigunx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1Io7V/btqLwdTQMF2/utFqkAYHXdLndUaVigunx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Io7V%2FbtqLwdTQMF2%2FutFqkAYHXdLndUaVigunx1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;657&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;21. Azure Portal에서 생성된 데이터베이스 리소스 화면에서 서버 방화벽 설정 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;644&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjWMSA/btqMknI16pa/S4DaXUNPVrU9AjpwNLZDA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjWMSA/btqMknI16pa/S4DaXUNPVrU9AjpwNLZDA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjWMSA/btqMknI16pa/S4DaXUNPVrU9AjpwNLZDA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjWMSA%2FbtqMknI16pa%2FS4DaXUNPVrU9AjpwNLZDA0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;644&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;22. 상단에 클라이언트 IP 추가를 누를경우 하단에 바로 현재 접속중인 PC의 IP가 허용 규칙에 추가됨&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 시작 IP ~ 종료 IP를 입력해주면 범위 허용이 가능&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;646&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sW3Gz/btqMn5gKUzx/ao3SU4Cs7nCtdiZjOe0XIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sW3Gz/btqMn5gKUzx/ao3SU4Cs7nCtdiZjOe0XIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sW3Gz/btqMn5gKUzx/ao3SU4Cs7nCtdiZjOe0XIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsW3Gz%2FbtqMn5gKUzx%2Fao3SU4Cs7nCtdiZjOe0XIK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;646&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;23. 내 IP 가 허용된 상태에서 저장 후 다시 DBeaver 에서 테스트를 진행하여 연결 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;621&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qWQv1/btqMpMgXCRv/Ti6BGTmbvXmlny43amJEWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qWQv1/btqMpMgXCRv/Ti6BGTmbvXmlny43amJEWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qWQv1/btqMpMgXCRv/Ti6BGTmbvXmlny43amJEWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqWQv1%2FbtqMpMgXCRv%2FTi6BGTmbvXmlny43amJEWK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;621&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;24. 연결 완료 후 DB 리스트 확인 가능&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;590&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjZyex/btqLvfdBfEL/awyeAlDU13iJiQzaoBUikk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjZyex/btqLvfdBfEL/awyeAlDU13iJiQzaoBUikk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjZyex/btqLvfdBfEL/awyeAlDU13iJiQzaoBUikk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjZyex%2FbtqLvfdBfEL%2FawyeAlDU13iJiQzaoBUikk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;590&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/DB</category>
      <category>AZURE</category>
      <category>Azure SQL Database</category>
      <category>MS Azure</category>
      <category>MSSQL</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/161</guid>
      <comments>https://newline.tistory.com/161#entry161comment</comments>
      <pubDate>Mon, 2 Nov 2020 16:07:49 +0900</pubDate>
    </item>
    <item>
      <title>크롬에서 마우스 휠로 탭 이동하는 유틸 - MouseWheelTabScroll4Chrome</title>
      <link>https://newline.tistory.com/160</link>
      <description>&lt;p&gt;MouseWheelTabScroll4Chrome은 크롬에서 휠로 탭을 이동시켜주는 유틸로&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;몇년전부터인지도 모를만큼 예전부터 사용하고 있던 유틸인데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;최근에 다시 받아보려고 하니 검색도 잘 안되고 원본 링크도 없어진듯하여 저장용으로 올림.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;실행하면 윈도우 우측 하단에 마우스 아이콘이 추가되고,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;크롬 탭 위에서 휠을 동작하면 탭 이동이 가능하다. (IE 엣지와 웨일에서도 동작이 된다!)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;윈도우 실행 창에서 shell:startup 입력 후 시작 메뉴에 등록해 두면 재부팅해도 자동 실행 가능!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bHYASY/btqLRjzy0x0/mktT8VVFTOKZUoi8KN14J1/MouseWheelTabScroll4Chrome.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;MouseWheelTabScroll4Chrome.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.45MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Tools</category>
      <category>MouseWheelTabScroll4Chrome</category>
      <category>크롬휠탭스크롤</category>
      <category>크롬휠탭이동</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/160</guid>
      <comments>https://newline.tistory.com/160#entry160comment</comments>
      <pubDate>Mon, 26 Oct 2020 17:12:37 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery 엘리먼트 삭제기능, remove()</title>
      <link>https://newline.tistory.com/159</link>
      <description>&lt;pre id=&quot;code_1602663952501&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;엘리먼트 삭제

자신.remove()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1602664052009&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button id=&quot;btn1&quot;&amp;gt;추가&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;btn2&quot;&amp;gt;삭제&amp;lt;/button&amp;gt;

&amp;lt;div id=&quot;list&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트 소스&lt;/p&gt;
&lt;pre id=&quot;code_1602664098165&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#btn1&quot;)[0].addEventListener(&quot;click&quot;, function () {
    // jQuery -&amp;gt; $(&quot;#list&quot;).append($(&quot;&amp;lt;h1&amp;gt;&quot;).text(&quot;테스트&quot;) );
    $(&quot;#list&quot;).html($(&quot;#list&quot;).html() + &quot;&amp;lt;h1&amp;gt;테스트&amp;lt;/h1&amp;gt;&quot;);
});

$(&quot;#btn2&quot;)[0].addEventListener(&quot;click&quot;, function () {
    //$(&quot;h1:last-child&quot;).remove();

    // list 하위의 모든 h1 삭제하기
    $(&quot;#list h1&quot;).remove();
    //$(&quot;h1&quot;).remove();
    //$(&quot;#list&quot;).html(&quot;&quot;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;remove.gif&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;397&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cc4O7M/btqKSV1BjSg/fm6DoW5v8qviAGSkw2ckrk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cc4O7M/btqKSV1BjSg/fm6DoW5v8qviAGSkw2ckrk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cc4O7M/btqKSV1BjSg/fm6DoW5v8qviAGSkw2ckrk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/cc4O7M/btqKSV1BjSg/fm6DoW5v8qviAGSkw2ckrk/img.gif&quot; data-filename=&quot;remove.gif&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;397&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>remove()</category>
      <category>엘리먼트 삭제</category>
      <category>자바스크립트</category>
      <category>태그 삭제</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/159</guid>
      <comments>https://newline.tistory.com/159#entry159comment</comments>
      <pubDate>Wed, 14 Oct 2020 17:32:41 +0900</pubDate>
    </item>
    <item>
      <title>Database - Oracle 11g 설치 및 기본 설정</title>
      <link>https://newline.tistory.com/158</link>
      <description>&lt;p&gt;1. 오라클 사이트(&lt;a href=&quot;https://www.oracle.com/database/technologies/oracle-database-software-downloads.html&quot;&gt;www.oracle.com&lt;/a&gt;)에 접속 후 11g 버전 다운로드 (다운로드 세부 경로는 수시로 바뀜)&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;11gR2 항목에서 운영체제에 맞는 설치 파일로 다운로드 한다. (오라클 계정에 로그인 필요)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.oracle.com/database/technologies/oracle-database-software-downloads.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.oracle.com/database/technologies/oracle-database-software-downloads.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r6GHV/btqHLYmSVTT/y3Ybl1RaJ7N7kbksWwsrQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r6GHV/btqHLYmSVTT/y3Ybl1RaJ7N7kbksWwsrQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r6GHV/btqHLYmSVTT/y3Ybl1RaJ7N7kbksWwsrQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr6GHV%2FbtqHLYmSVTT%2Fy3Ybl1RaJ7N7kbksWwsrQK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. 다운받은 두 파일을 한군데에 압축을 풀고 database 폴더내에 setup 파일을 실행해서 설치 (관리자 비밀번호는 꼭 기억해야 함)&lt;/p&gt;
&lt;p&gt;대부분 기본설정으로 설치 하거나, 필요에 따른 옵션 선택 후 진행&lt;/p&gt;
&lt;p&gt;암호 패턴과같은 경고창은 [예]를 눌러 무시 후 진행 가능&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbOJk2/btqHVmT0KV6/VefklPObiKaG4l0S1Y5CCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbOJk2/btqHVmT0KV6/VefklPObiKaG4l0S1Y5CCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbOJk2/btqHVmT0KV6/VefklPObiKaG4l0S1Y5CCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbOJk2%2FbtqHVmT0KV6%2FVefklPObiKaG4l0S1Y5CCK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;3. 설치 막바지에 아래와 같은 창이 뜰 경우 [비밀번호관리] 로 진입&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq87OA/btqHO0xIbCI/pTPoT6VCRJ0vVWIpC6X2r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq87OA/btqHO0xIbCI/pTPoT6VCRJ0vVWIpC6X2r0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq87OA/btqHO0xIbCI/pTPoT6VCRJ0vVWIpC6X2r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq87OA%2FbtqHO0xIbCI%2FpTPoT6VCRJ0vVWIpC6X2r0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;4. 연습용으로 많이 쓰는 HR 계정 해제를 하기 위해 아래와 같이 HR 계정 옆 체크를 해지 후 비밀번호 입력 후 확인&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7m9xT/btqHVnS3fbx/xBCPbyjlrM8W7619cuMfLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7m9xT/btqHVnS3fbx/xBCPbyjlrM8W7619cuMfLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7m9xT/btqHVnS3fbx/xBCPbyjlrM8W7619cuMfLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7m9xT%2FbtqHVnS3fbx%2FxBCPbyjlrM8W7619cuMfLk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5. 설치 확인을 위해 시작 프로그램에서 설치된 프로그램중 SQL Plus 실행 후 HR 계정 및 설정한 비밀번호를 입력 해서 연결 확인&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIuy80/btqHGT0GiPM/79wVaQDvM2GL86LLrKkwK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIuy80/btqHGT0GiPM/79wVaQDvM2GL86LLrKkwK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIuy80/btqHGT0GiPM/79wVaQDvM2GL86LLrKkwK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIuy80%2FbtqHGT0GiPM%2F79wVaQDvM2GL86LLrKkwK0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/DB</category>
      <category>Oracle</category>
      <category>오라클</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/158</guid>
      <comments>https://newline.tistory.com/158#entry158comment</comments>
      <pubDate>Wed, 2 Sep 2020 18:11:43 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery 태그생성, 자식태그 추가. append()</title>
      <link>https://newline.tistory.com/157</link>
      <description>&lt;pre id=&quot;code_1597821147195&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;태그 생성하고 추가하기
document.createElement(태그명) -&amp;gt; $(태그명)
appendChild -&amp;gt; append&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597821168522&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button&amp;gt;태그 추가하기&amp;lt;/button&amp;gt;
&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597821180378&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
	$(&quot;button&quot;)[0].addEventListener(&quot;click&quot;, function () {
		/*
	var h1Obj = $(&quot;&amp;lt;h1&amp;gt;&quot;).text(&quot;동적 태그 생성&quot;);
	$(&quot;div&quot;).append(h1Obj);
	*/
		$(&quot;div&quot;).append($(&quot;&amp;lt;h1&amp;gt;&quot;).text(&quot;동적 태그 생성&quot;));
	});
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;append.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wjmu6/btqGRRWnSXu/VmGknQgHVHX2QmFFhyNDUk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wjmu6/btqGRRWnSXu/VmGknQgHVHX2QmFFhyNDUk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wjmu6/btqGRRWnSXu/VmGknQgHVHX2QmFFhyNDUk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/wjmu6/btqGRRWnSXu/VmGknQgHVHX2QmFFhyNDUk/img.gif&quot; data-filename=&quot;append.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>append()</category>
      <category>appendChild</category>
      <category>createElement</category>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/157</guid>
      <comments>https://newline.tistory.com/157#entry157comment</comments>
      <pubDate>Wed, 19 Aug 2020 16:15:41 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery style 속성 설정. css()</title>
      <link>https://newline.tistory.com/156</link>
      <description>&lt;pre id=&quot;code_1597380899392&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CSS 속성 추가하기

ex&amp;gt;
엘리먼트.style[&quot;background-color&quot;] = &quot;yellow&quot;;

엘리먼트.style[&quot;이름&quot;] = 추출
엘리먼트.style[&quot;이름&quot;] = 값 : 설정

css(이름, 값) : 설정
css(이름) : 추출
css({객체}) : 설정&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597381631991&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button id=&quot;btn1&quot;&amp;gt;설정하기&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;btn2&quot;&amp;gt;가져오기&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;div1&quot;&amp;gt;CSS 라이브러리 테스트&amp;lt;/div&amp;gt;
&amp;lt;div id=&quot;div2&quot;&amp;gt;CSS 라이브러리 테스트&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597381644286&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    $(&quot;#btn1&quot;)[0].addEventListener(&quot;click&quot;, function () {
        // 메서드 체이닝 사용
        $(&quot;#div1&quot;).css(&quot;background&quot;, &quot;tomato&quot;)
            .css(&quot;color&quot;, &quot;white&quot;)
            .css(&quot;fontSize&quot;, &quot;50px&quot;)
            .css(&quot;border&quot;, &quot;5px solid black&quot;);

        $(&quot;#div2&quot;).css({
                background: &quot;orange&quot;,
                color: &quot;blue&quot;,
                border: &quot;5px solid black&quot; 
                });
    });

    $(&quot;#btn2&quot;)[0].addEventListener(&quot;click&quot;, function () {
        console.log($(&quot;#div1&quot;).css(&quot;color&quot;));
        console.log($(&quot;#div2&quot;).css(&quot;background&quot;));
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;css.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uFv5B/btqGFagCjtF/1Tvu2U6BVkt5KewjdiyPx1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uFv5B/btqGFagCjtF/1Tvu2U6BVkt5KewjdiyPx1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uFv5B/btqGFagCjtF/1Tvu2U6BVkt5KewjdiyPx1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/uFv5B/btqGFagCjtF/1Tvu2U6BVkt5KewjdiyPx1/img.gif&quot; data-filename=&quot;css.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>css()</category>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>style</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/156</guid>
      <comments>https://newline.tistory.com/156#entry156comment</comments>
      <pubDate>Fri, 14 Aug 2020 14:11:04 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery 태그 속성 처리. attr()</title>
      <link>https://newline.tistory.com/155</link>
      <description>&lt;pre id=&quot;code_1597307926728&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;속성 처리하기

setAttribute(이름, 값)
getAttribute(이름)

attr(이름, 값) : 설정
attr(이름) : 추출&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;속성 설정하기 - HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597308025391&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button&amp;gt;설정하기&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;a&quot;&amp;gt;a&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;b&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;c&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;속성 설정하기 - 스크립트 소스&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1597308117246&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    $(&quot;button&quot;)[0].addEventListener(&quot;click&quot;, function () {
        $(&quot;div#a&quot;).attr({ &quot;data-msg&quot;: &quot;aaa&quot;, &quot;data-count&quot;: &quot;10&quot;, &quot;data-name&quot;: &quot;연습중...&quot; });
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;속성 설정하기 - 결과&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;attr1.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lD989/btqGCol3rzR/1V7ffzhjQTeZpI2kVs5GIK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lD989/btqGCol3rzR/1V7ffzhjQTeZpI2kVs5GIK/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lD989/btqGCol3rzR/1V7ffzhjQTeZpI2kVs5GIK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/lD989/btqGCol3rzR/1V7ffzhjQTeZpI2kVs5GIK/img.gif&quot; data-filename=&quot;attr1.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;속성 가져오기 - HTML 소스&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1597308213927&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button&amp;gt;가져오기&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;a&quot; data-msg=&quot;b&quot; data-count=&quot;10&quot;&amp;gt;연습중...&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;속성 가져오기 - 스크립트 소스&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1597308230503&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    $(&quot;button&quot;)[0].addEventListener(&quot;click&quot;, function () {
        var $div = $(&quot;div&quot;);
        console.log($div.attr(&quot;id&quot;));
        console.log($div.attr(&quot;data-msg&quot;));
        console.log($div.attr(&quot;data-count&quot;));
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;속성 가져오기 - 결과&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;attr2.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SI1re/btqGAwSfKKC/U4AqtJWusG3Xm3lWKdo810/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SI1re/btqGAwSfKKC/U4AqtJWusG3Xm3lWKdo810/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SI1re/btqGAwSfKKC/U4AqtJWusG3Xm3lWKdo810/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/SI1re/btqGAwSfKKC/U4AqtJWusG3Xm3lWKdo810/img.gif&quot; data-filename=&quot;attr2.gif&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>attr()</category>
      <category>getAttribute</category>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>setAttribute</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/155</guid>
      <comments>https://newline.tistory.com/155#entry155comment</comments>
      <pubDate>Thu, 13 Aug 2020 17:46:08 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery Input 밸류값 설정. val()</title>
      <link>https://newline.tistory.com/154</link>
      <description>&lt;pre id=&quot;code_1597045457346&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;value 속성 처리하기
val(값) : 설정
val() : 추출&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597044946115&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button id=&quot;btn1&quot;&amp;gt;설정하기&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;btn2&quot;&amp;gt;가져오기&amp;lt;/button&amp;gt;

메세지 : &amp;lt;input type=&quot;text&quot; id=&quot;msg&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1597044961754&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    $(&quot;#btn1&quot;)[0].addEventListener(&quot;click&quot;, function() {
        // id가 msg인 엘리먼트에 value 속성값을 설정
        $(&quot;#msg&quot;).val(&quot;연습입니다.&quot;);
    });
    $(&quot;#btn2&quot;)[0].addEventListener(&quot;click&quot;, function() {
        alert($(&quot;#msg&quot;).val());
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;465&quot; data-filename=&quot;val.gif&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GrWMZ/btqGxOehwUh/OZlsbCSTYdx8LWZuxfRIq1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GrWMZ/btqGxOehwUh/OZlsbCSTYdx8LWZuxfRIq1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GrWMZ/btqGxOehwUh/OZlsbCSTYdx8LWZuxfRIq1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/GrWMZ/btqGxOehwUh/OZlsbCSTYdx8LWZuxfRIq1/img.gif&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;465&quot; data-filename=&quot;val.gif&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>val()</category>
      <category>value</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/154</guid>
      <comments>https://newline.tistory.com/154#entry154comment</comments>
      <pubDate>Wed, 12 Aug 2020 17:41:15 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery innerHTML, innerText 기능 사용하기. html(), text()</title>
      <link>https://newline.tistory.com/153</link>
      <description>&lt;pre id=&quot;code_1597045457346&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;innerHTML
  내용설정:
  - DOM객체.innerHTML = &quot;내용&quot;;
  - jQuery객체.html(&quot;내용&quot;);
  
  내용확인:
  - DOM객체.innerHTML;
  - jQuery객체.html();
  
innerTEXT
  내용설정:
  - DOM객체.innerTEXT = &quot;내용&quot;;
  - jQuery객체.text(&quot;내용&quot;);

  내용확인:
  - DOM객체.innerText;
  - jQuery객체.text();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;innerHTML - HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597044946115&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button&amp;gt;설정&amp;lt;/button&amp;gt;
&amp;lt;button&amp;gt;추출&amp;lt;/button&amp;gt;
&amp;lt;button&amp;gt;설정 및 추출&amp;lt;/button&amp;gt;

&amp;lt;div&amp;gt;기본1&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;기본2&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;기본3&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;기본4&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;기본5&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;innerHTML - 스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1597044961754&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    $(&quot;button:nth-child(1)&quot;)[0].addEventListener(&quot;click&quot;, function () {
        $(&quot;div&quot;).html(&quot;변경된 내용&quot;);
    });
    $(&quot;button:nth-child(2)&quot;)[0].addEventListener(&quot;click&quot;, function () {
        //alert($(&quot;div&quot;)[0].innerHTML
        // element가 여러개 일 경우 첫번째 값만 꺼내진다
        alert($(&quot;div&quot;).html());
    });
    // 값을 설정 하고 설정된 값을 추출
    $(&quot;button:nth-child(3)&quot;)[0].addEventListener(&quot;click&quot;, function () {
        //$(&quot;div&quot;).html(&quot;변경된 내용&quot;);
        //alert( $(&quot;div&quot;).html() );

        // 위의 코드에 체이닝 방식을 적용..
        alert($(&quot;div&quot;).html(&quot;변경된 내용&quot;).html());
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;html.gif&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;453&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N6PK3/btqGtDXMcFP/EaI5iDWwozfubQcC5S6hwK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N6PK3/btqGtDXMcFP/EaI5iDWwozfubQcC5S6hwK/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N6PK3/btqGtDXMcFP/EaI5iDWwozfubQcC5S6hwK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/N6PK3/btqGtDXMcFP/EaI5iDWwozfubQcC5S6hwK/img.gif&quot; data-filename=&quot;html.gif&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;453&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;innerText - HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1597044986698&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button id=&quot;btn1&quot;&amp;gt;설정하기&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;btn2&quot;&amp;gt;가져오기&amp;lt;/button&amp;gt;

&amp;lt;div&amp;gt;테스트1&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;테스트2&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;테스트3&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;innerText - 스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1597044999962&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    // id는 하나이기때문에 0번째에서 꺼내 addEventListener 설정
    $(&quot;#btn1&quot;)[0].addEventListener(&quot;click&quot;, function () {
        // div의 innerText 변경하기
        $(&quot;div&quot;).text(&quot;변경합니다.&quot;);
    });
    $(&quot;#btn2&quot;)[0].addEventListener(&quot;click&quot;, function () {
        // div의 innetText 가져오기
        alert($(&quot;div&quot;).text());
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;453&quot; data-filename=&quot;text.gif&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcGtFU/btqGtXaR4Bc/aJjZ6SjExVKloetyvht4O0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcGtFU/btqGtXaR4Bc/aJjZ6SjExVKloetyvht4O0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcGtFU/btqGtXaR4Bc/aJjZ6SjExVKloetyvht4O0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bcGtFU/btqGtXaR4Bc/aJjZ6SjExVKloetyvht4O0/img.gif&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;453&quot; data-filename=&quot;text.gif&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>html()</category>
      <category>innerHTML</category>
      <category>innerText</category>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>text()</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/153</guid>
      <comments>https://newline.tistory.com/153#entry153comment</comments>
      <pubDate>Mon, 10 Aug 2020 16:52:23 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery 객체($) 사용하기</title>
      <link>https://newline.tistory.com/152</link>
      <description>&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596612655741&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button&amp;gt;설정하기&amp;lt;/button&amp;gt;
&amp;lt;button&amp;gt;가져오기&amp;lt;/button&amp;gt;
&amp;lt;button&amp;gt;설정 후 가져오기&amp;lt;/button&amp;gt;

&amp;lt;div id=&quot;a&quot;&amp;gt;아이디로 접근&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;b&quot;&amp;gt;클래스로 접근&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;태그로 접근&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596612777005&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;//code.jquery.com/jquery-3.5.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;script&amp;gt;
// $를 이용하여 선택자 활용
    var aDiv1 = $(&quot;#a&quot;);

    var btn1 = $(&quot;button:nth-child(1)&quot;)[0];

    // jquery 적용
    var btn1 = $(&quot;button:nth-child(1)&quot;)[0];
    
    btn1.addEventListener(&quot;click&quot;, function (e) {
        var aDiv1 = $(&quot;#a&quot;)[0];
        //aDiv.innerHTML = &quot;버튼 클릭 후 적용됨&quot;;
        // mlec 함수에 포함된 html 함수 사용
        $(&quot;#a&quot;).html(&quot;버튼 클릭 후적용됨&quot;);
    });

    //var btn2 = document.querySelector(&quot;button:nth-child(2)&quot;);
    var btn2 = $(&quot;button:nth-child(2)&quot;)[0];
    btn2.addEventListener(&quot;click&quot;, function (e) {
        //var bDiv = document.querySelector(&quot;.b&quot;);
        var bDiv = $(&quot;.b&quot;)[0];
        //bDiv.innerHTML = &quot;클래스 속성 파트 변경&quot;;
        $(&quot;.b&quot;).html(&quot;클래스 속성 파트 변경&quot;);
    });

    //var btn3 = document.querySelector(&quot;button:nth-child(3)&quot;);
    var btn3 = $(&quot;button:nth-child(3)&quot;)[0];
    btn3.addEventListener(&quot;click&quot;, function (e) {
        //var arr = document.querySelectorAll(&quot;div&quot;);
        var arr = $(&quot;div&quot;);

        $(&quot;div&quot;).html(&quot;버튼 3번 눌렸어요&quot;);
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;jquery.gif&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/T5BqR/btqGdRDtfBO/LYOPB1mkqDTzKjt1zJB79K/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/T5BqR/btqGdRDtfBO/LYOPB1mkqDTzKjt1zJB79K/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/T5BqR/btqGdRDtfBO/LYOPB1mkqDTzKjt1zJB79K/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/T5BqR/btqGdRDtfBO/LYOPB1mkqDTzKjt1zJB79K/img.gif&quot; data-filename=&quot;jquery.gif&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>$ 객체</category>
      <category>$ 선택자 활용</category>
      <category>JavaScript</category>
      <category>자바스크립트</category>
      <category>제이쿼리 객체</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/152</guid>
      <comments>https://newline.tistory.com/152#entry152comment</comments>
      <pubDate>Wed, 5 Aug 2020 16:35:48 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - jQuery 객체 이해하기 (wrapped set)</title>
      <link>https://newline.tistory.com/151</link>
      <description>&lt;pre id=&quot;code_1596611084106&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;jQuery API는 선택자를 기준으로 확장집합(wrapped set) 이라는 Array 를 반환함
이를 기반으로 jQuery 의 Method Chain 이 가능
Method Chain 의 형태 : element.a().b().c().d()...

* 예외 : jQuery 의 get 은 jQuery Object 가 아니라, DOM element 를 반환함&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1596612467349&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// jQuery id선택자인 #을 사용해도 반환은 무조건 배열형태로 넘어오기 때문에, 꺼낼값이 하나일 경우 [0] 번째에서 꺼낸다

// $를 이용하여 선택자 활용
var aDiv1 = $(&quot;#a&quot;);
var aDiv2 = $(&quot;#a&quot;)[0];

// DOM 객체를 이용하여 선택자 활용
var aDiv3 = document.getElementById(&quot;a&quot;);

var btn1 = $(&quot;button:nth-child(1)&quot;)[0];

// $(&quot;#a&quot;) : wrapped set 반환
console.dir(aDiv1);

// $(&quot;#a&quot;)[0] : DOM 객체 반환. 
console.dir(aDiv2);

// DOM 객체 반환
console.dir(aDiv3);

console.log(`$(&quot;#a&quot;) 과 DOM 객체 비교`, aDiv1 === document.getElementById(&quot;a&quot;));
console.log(`$(&quot;#a&quot;)[0] 과 DOM 객체 비교`, aDiv2 === document.getElementById(&quot;a&quot;));&lt;/code&gt;&lt;/pre&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>jQuery</category>
      <category>wrapped set</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/151</guid>
      <comments>https://newline.tistory.com/151#entry151comment</comments>
      <pubDate>Wed, 5 Aug 2020 16:29:50 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 마우스 이벤트로 DIV 이동시키기 (mousemove)</title>
      <link>https://newline.tistory.com/150</link>
      <description>&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596506493420&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    div {
        /* 기본 스태틱에서는 좌표 적용이 안됨 */
        position: absolute;
        top: 50px;
        left: 50px;
        width: 200px;
        height: 200px;
        font-size: 30px;
        background-color: palegreen;
        color: blue;
    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596506504299&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;이동&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596506515723&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    var div = document.querySelector(&quot;div&quot;);

    //document.addEventListener(&quot;mousemove&quot;, function(e){
    // div안에 mouse가 들어가는순간 마우스 좌표를 기준으로 div 위치를 이동
    div.addEventListener(&quot;mousemove&quot;, function (e) {
        div.style.left = e.clientX + &quot;px&quot;;
        div.style.top = e.clientY + &quot;px&quot;;
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;sss.gif&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;797&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzukpC/btqGft9caQI/dKiq6TSz4Q5LkGHqGKK9T0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzukpC/btqGft9caQI/dKiq6TSz4Q5LkGHqGKK9T0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzukpC/btqGft9caQI/dKiq6TSz4Q5LkGHqGKK9T0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bzukpC/btqGft9caQI/dKiq6TSz4Q5LkGHqGKK9T0/img.gif&quot; data-filename=&quot;sss.gif&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;797&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>mousemove</category>
      <category>마우스이벤트</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/150</guid>
      <comments>https://newline.tistory.com/150#entry150comment</comments>
      <pubDate>Tue, 4 Aug 2020 11:04:01 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 마우스 이벤트 (mouseenter, mouseleave, mousedown, mouseup, mousemove)</title>
      <link>https://newline.tistory.com/149</link>
      <description>&lt;pre id=&quot;code_1596505687517&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;* 마우스 이벤트
mouseenter : h2태그안에 마우스가 들어갈때
mouseleave : 마우스가 나갈때
mousedown : 마우스 클릭시
mouseup : 마우스가 올라올때
mousemove : 마우스가 움직일때&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596505619671&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
	h2 {
		font-size: 14px;
		font-weight: bold;
		height: 100px;
		line-height: 100px;
		text-align: center;
		border: 2px solid gray;
	}
	div#debug {
		height: 500px;
		/* 자동 스크롤 */
		overflow: auto;
		font-size: 14px;
		border: 2px solid gray;
		padding: 10px;
	}
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596505723220&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;마우스 이벤트 연습&amp;lt;/h2&amp;gt;
&amp;lt;div id=&quot;debug&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596505664229&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
var h2Ele = document.querySelector(&quot;h2&quot;);

h2Ele.addEventListener(&quot;mouseenter&quot;, function (e) {
	print(&quot;마우스가 들어갔습니다.&quot;);
});
h2Ele.addEventListener(&quot;mouseleave&quot;, function (e) {
	print(&quot;마우스가 빠져나갔습니다.&quot;);
});
h2Ele.addEventListener(&quot;mousedown&quot;, function (e) {
	print(&quot;마우스가 눌렸습니다.&quot;);
});
h2Ele.addEventListener(&quot;mouseup&quot;, function (e) {
	print(&quot;마우스가 올라갔습니다.&quot;);
});
h2Ele.addEventListener(&quot;mousemove&quot;, function (e) {
	print(&quot;마우스가 움직입니다.&quot;);
	var obj = e.target; // 이벤트가 발생한 대상 객체
	var left = obj.offsetLeft; // 객체의 왼쪽모서리 위치
	var top = obj.offsetTop; // 객체의 위쪽모서리 위치
	var x = e.offsetX; // 객체와 마우스간의 x 거리
	var y = e.offsetY; // 객체와 마우스간의 y 거리
	var cx = e.clientX; // 브라우저와 마우스의 x 거리
	var cy = e.clientY; // 브라우저와 마우스의 y 거리
	print(
		`
	left=${left}, top=${top}, x=${x}, y=${y}, cx=${cx}, cy=${cy}
	`
	);
});

function print(msg) {
	var d = document.querySelector(&quot;#debug&quot;);

	// 새로운 메세지가 아래로
	//d.innerHTML += msg + &quot;&amp;lt;br&amp;gt;&quot;;

	// 기존 메시지를 아래로
	d.innerHTML = msg + &quot;&amp;lt;br&amp;gt;&quot; + d.innerHTML;
}
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;mouse.gif&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;701&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rBprZ/btqGcf5rQYD/3uaFuJ9rgamRyK843r8ul0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rBprZ/btqGcf5rQYD/3uaFuJ9rgamRyK843r8ul0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rBprZ/btqGcf5rQYD/3uaFuJ9rgamRyK843r8ul0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/rBprZ/btqGcf5rQYD/3uaFuJ9rgamRyK843r8ul0/img.gif&quot; data-filename=&quot;mouse.gif&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;701&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>mousedown</category>
      <category>mouseenter</category>
      <category>mouseleave</category>
      <category>mousemove</category>
      <category>mouseup</category>
      <category>마우스 이벤트</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/149</guid>
      <comments>https://newline.tistory.com/149#entry149comment</comments>
      <pubDate>Tue, 4 Aug 2020 10:49:01 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - inputbox 이벤트 (keyup, keydown, keypress)</title>
      <link>https://newline.tistory.com/148</link>
      <description>&lt;p&gt;HTMl 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596440079512&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; id=&quot;msg&quot; /&amp;gt;
&amp;lt;script&amp;gt;
    var msg = document.querySelector(&quot;#msg&quot;);
    msg.onkeyup = doAction;
    //msg.onkeypress // keydown 으로 활용
    msg.onkeydown = doAction;

    function doAction(e) {
        // 이벤트 타입 확인
        console.log(&quot;이벤트타입:&quot;, e.type, &quot;입력키:&quot;, e.key, &quot;입력키코드값:&quot;, e.keyCode, &quot;ctrlKey 사용&quot;, e.ctrlKey);
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;key.gif&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;342&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mgg4w/btqGdEXKjxc/0jZPGAWfMseBKSMyqVMkG0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mgg4w/btqGdEXKjxc/0jZPGAWfMseBKSMyqVMkG0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mgg4w/btqGdEXKjxc/0jZPGAWfMseBKSMyqVMkG0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/mgg4w/btqGdEXKjxc/0jZPGAWfMseBKSMyqVMkG0/img.gif&quot; data-filename=&quot;key.gif&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;342&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>inputbox 이벤트</category>
      <category>JavaScript</category>
      <category>keyDown</category>
      <category>KeyPress</category>
      <category>keyup</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/148</guid>
      <comments>https://newline.tistory.com/148#entry148comment</comments>
      <pubDate>Mon, 3 Aug 2020 16:36:29 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 포커스(onfocus), 해제(onblur) Event</title>
      <link>https://newline.tistory.com/147</link>
      <description>&lt;pre id=&quot;code_1596012714523&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;onfocus : 포커스를 받은 경우 이벤트 설정

onblur : 포커스가 해지될 때 이벤트 설정&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596012670371&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; id=&quot;msg&quot;&amp;gt;
&amp;lt;div id=&quot;result&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596012736867&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    var msg = document.querySelector(&quot;#msg&quot;);
    var result = document.querySelector(&quot;#result&quot;);

    // msg에 포커스가 올 경우 이벤트 발생
    msg.onfocus = function (e) {
        result.innerHTML = &quot;포커스 이벤트 발생함&quot;;
    };
    msg.onblur = function (e) {
        if (msg.value.length != 6) {
            alert(&quot;6자리 입력이 되어야 합니다.&quot;);
        }
        result.innerHTML = &quot;포커스 빠져나감&quot;;
    };
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;3333333.gif&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;417&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/esFSC7/btqF8vZ3wxz/Ohl3Vz82GWK3u3xCtDq7a1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/esFSC7/btqF8vZ3wxz/Ohl3Vz82GWK3u3xCtDq7a1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/esFSC7/btqF8vZ3wxz/Ohl3Vz82GWK3u3xCtDq7a1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/esFSC7/btqF8vZ3wxz/Ohl3Vz82GWK3u3xCtDq7a1/img.gif&quot; data-filename=&quot;3333333.gif&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;417&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>onblur</category>
      <category>onfocus</category>
      <category>이벤트</category>
      <category>자바스크립트</category>
      <category>포커스 이벤트 설정</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/147</guid>
      <comments>https://newline.tistory.com/147#entry147comment</comments>
      <pubDate>Wed, 29 Jul 2020 17:53:21 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - Event 전파 방식 (버블링, 캡처링)</title>
      <link>https://newline.tistory.com/146</link>
      <description>&lt;pre id=&quot;code_1596010822989&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;이벤트 전파 막기

: 이벤트 객체.stopPropagation()

: addEventListener(이벤트타입, 콜백함수(리스너함수), true/false(기본))
: true - 캡처링 방식 (부모에서 자식으로 전파)
: false - 버블링 방식 (자식에서 부모로), 크롬에서는 false가 디폴트값임&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596010862667&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    div {
        border: 3px solid #334455;
        margin: 20px;

    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596010874732&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;이벤트 전파 방식&amp;lt;/h2&amp;gt;

&amp;lt;div id=&quot;outer&quot;&amp;gt;
    &amp;lt;div id=&quot;inner&quot;&amp;gt;
        &amp;lt;div id=&quot;child&quot;&amp;gt;
            이벤트 전파
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;div id=&quot;debug&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596010919645&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    var outer = document.querySelector(&quot;#outer&quot;);
    var inner = document.querySelector(&quot;#inner&quot;);
    var child = document.querySelector(&quot;#child&quot;);

    outer.addEventListener(&quot;click&quot;, function (e) {
        print(&quot;outer&quot;);
    });

    inner.addEventListener(&quot;click&quot;, function (e) {
    	// 이벤트가 부모로 전파되어 outer가 함께 출력된다.
        print(&quot;inner&quot;);
    });

    child.addEventListener(&quot;click&quot;, function (e) {
        print(&quot;child&quot;);
        // 이벤트가 부모로 전파 되는것을 막는다.
        e.stopPropagation();
    });

    function print(msg) {
        var d = document.querySelector(&quot;#debug&quot;);
        d.innerHTML += msg + &quot;&amp;lt;br&amp;gt;&quot;;
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;222222.gif&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;473&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4uEzY/btqF63JV4ke/rvx7FMFGKiOylUWWt1Ixq1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4uEzY/btqF63JV4ke/rvx7FMFGKiOylUWWt1Ixq1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4uEzY/btqF63JV4ke/rvx7FMFGKiOylUWWt1Ixq1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/d4uEzY/btqF63JV4ke/rvx7FMFGKiOylUWWt1Ixq1/img.gif&quot; data-filename=&quot;222222.gif&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;473&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>stopPropagation</category>
      <category>버블링</category>
      <category>이벤트전파</category>
      <category>자바스크립트</category>
      <category>캡처링</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/146</guid>
      <comments>https://newline.tistory.com/146#entry146comment</comments>
      <pubDate>Wed, 29 Jul 2020 17:34:12 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 기본 Event 중지시키기 (preventDefault)</title>
      <link>https://newline.tistory.com/145</link>
      <description>&lt;pre id=&quot;code_1596010426629&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;기본 이벤트 중지 시키기

자동이벤트 발생하는 이벤트 (form onsubmit=return false, a href ... ) 중지시키기

이벤트객체.preventDefault();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;a&amp;nbsp;태그&amp;nbsp;링크의&amp;nbsp;이동&amp;nbsp;막기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596010480243&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;javascript:fn1();&quot;&amp;gt;링크1&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;a href=&quot;http://www.daum.net&quot; onclick=&quot;fn2();&quot;&amp;gt;링크2 onclick&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;a href=&quot;http://www.daum.net&quot; onclick=&quot;fn2(); return false;&quot;&amp;gt;링크2 onclick : return false&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;a href=&quot;http://www.daum.net&quot; onclick=&quot;return fn3();&quot;&amp;gt;링크3&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;a href=&quot;http://www.daum.net&quot; onclick=&quot;fn4();&quot;&amp;gt;링크4&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;a href=&quot;http://www.daum.net&quot; id=&quot;link5&quot;&amp;gt;링크5&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596010539684&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;

    function fn1() {
        alert(&quot;fn1&quot;);
    }

    function fn2() {
        alert(&quot;fn2&quot;);
    }

    function fn3() {
        alert(&quot;fn3&quot;);
        return false;
    }

    function fn4() {
        alert(&quot;fn4&quot;);
        // 이벤트 객체를 활용한 페이지 이동 중지 시키기
        // fn4를 호출한 객체가 없기 때문에 윈도우에서 이벤트객체를 얻어온다
        var e = window.event;

        // 기본 이벤트 발생을 중지함
        e.preventDefault(); 
    }
    
    var link5 = document.querySelector(&quot;#link5&quot;);
    link5.addEventListener(&quot;click&quot;, function (e) {
        alert(&quot;fn5&quot;);
        // function을 호출하는 객체인 link에 이벤트 객체
        e.preventDefault();
    })

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;111111.gif&quot; data-origin-width=&quot;679&quot; data-origin-height=&quot;413&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ArBWg/btqF6EwMurY/hYJ5bBWQPSbnDn5JQ4NcA1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ArBWg/btqF6EwMurY/hYJ5bBWQPSbnDn5JQ4NcA1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ArBWg/btqF6EwMurY/hYJ5bBWQPSbnDn5JQ4NcA1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/ArBWg/btqF6EwMurY/hYJ5bBWQPSbnDn5JQ4NcA1/img.gif&quot; data-filename=&quot;111111.gif&quot; data-origin-width=&quot;679&quot; data-origin-height=&quot;413&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>preventDefault</category>
      <category>기본이벤트중지</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/145</guid>
      <comments>https://newline.tistory.com/145#entry145comment</comments>
      <pubDate>Wed, 29 Jul 2020 17:18:21 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - Event 강제(자동) 발생</title>
      <link>https://newline.tistory.com/144</link>
      <description>&lt;pre id=&quot;code_1596009095469&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;사용자가 이벤트를 발생시키는것이 아닌 코드를 이용해서 이벤트를 특정 시점에 발생&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596010246997&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    button {
        width: 200px;
        height: 100px;
        color: cadetblue;
        background: bisque;
        border: 2px solid black;
        font-size: 25px;
    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596010276772&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;이벤트 강제 발생시키기&amp;lt;/h2&amp;gt;
&amp;lt;button&amp;gt;&amp;lt;span&amp;gt;0&amp;lt;/span&amp;gt;&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596010292532&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    var btn = document.querySelector(&quot;button&quot;);
    var span = document.querySelector(&quot;span&quot;);
    btn.addEventListener(&quot;click&quot;, function () {
        span.innerText = parseInt(span.innerText) + 1;
    });

    // 1초마다 함수 호출, 이벤트 트리거(이벤트 자동 동작)
    setInterval(function () {
        // 버튼 클릭을 실행
        btn.click();
    }, 1000);
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;eveveveve.gif&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;235&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbiekc/btqF64IKtAE/FwkbODSJs3nnysKtUm6S91/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbiekc/btqF64IKtAE/FwkbODSJs3nnysKtUm6S91/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbiekc/btqF64IKtAE/FwkbODSJs3nnysKtUm6S91/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bbiekc/btqF64IKtAE/FwkbODSJs3nnysKtUm6S91/img.gif&quot; data-filename=&quot;eveveveve.gif&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;235&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>addEventListener</category>
      <category>JavaScript</category>
      <category>setInterval</category>
      <category>이벤트자동발생</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/144</guid>
      <comments>https://newline.tistory.com/144#entry144comment</comments>
      <pubDate>Wed, 29 Jul 2020 17:12:10 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - Event 객체 (event.target)</title>
      <link>https://newline.tistory.com/143</link>
      <description>&lt;pre id=&quot;code_1596008076182&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;이벤트가 발생하게 되면 발생된 이벤트에 대한 정보를 가지고 있는 객체&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596008410037&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    button {
        width: 200px;
        height: 100px;
        color: cadetblue;
        background: bisque;
        border: 2px solid black;
        font-size: 25px;
    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596008425134&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;이벤트 객체&amp;lt;/h2&amp;gt;
&amp;lt;button id=&quot;btn1&quot;&amp;gt;시작&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;btn2&quot;&amp;gt;중지&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596008441991&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    // 모든 button을 찾아 유사배열객체로 반환
    var btns = document.querySelectorAll(&quot;button&quot;);

    for (var i = 0; i &amp;lt; btns.length; i++) {
        // 익명함수를 등록해서 바로 실행
        // 콜백함수의 첫번째 매개변수에 이벤트 객체 정보를 받을 수 있다.
        // 매개변수로 받지 않을 경우 window.event로 받을 수 있음
        btns[i].onclick = function (e) {
            // 이벤트 발생 객체를 e를 통해서 얻기
            var obj = e.target; // 클릭 이벤트가 발생한 버튼 객체
            console.log(&quot;이벤트객체 innerHTML : &quot;, obj.innerHTML);
            console.log(&quot;this innerHTML : &quot;, this.innerHTML);

            // 좌표 정보 확인하기
            // 이벤트가 발생한 객체의 좌표 정보 확인
            // offset으로 시작 : 이벤트 발생 객체와 연관되어 있다.
            
            // 이벤트 발생객체인 버튼의 좌표위치
            console.log(&quot;브라우저에서의 위치 : &quot;, obj.offsetLeft, obj.offsetTop);
            // 이벤트 발생 객체와 클릭한 위치와의 차이
            console.log(&quot;이벤트 객체에서의 위치 : &quot;, e.offsetX, e.offsetY);
        };
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;evev.gif&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;459&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coBBYA/btqF5eFky52/wOG6oVnmp1716NwjcbBon0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coBBYA/btqF5eFky52/wOG6oVnmp1716NwjcbBon0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coBBYA/btqF5eFky52/wOG6oVnmp1716NwjcbBon0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/coBBYA/btqF5eFky52/wOG6oVnmp1716NwjcbBon0/img.gif&quot; data-filename=&quot;evev.gif&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;459&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>e.target</category>
      <category>JavaScript</category>
      <category>이벤트</category>
      <category>이벤트객체</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/143</guid>
      <comments>https://newline.tistory.com/143#entry143comment</comments>
      <pubDate>Wed, 29 Jul 2020 16:48:01 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - Event 설정 (표준방식)</title>
      <link>https://newline.tistory.com/142</link>
      <description>&lt;pre id=&quot;code_1596000415511&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;객체.onclick = fn2; -&amp;gt; 기존방식
  태그내에 onclick값이 있을 경우 추가로 설정시 덮어쓰기됨
  여러개의 이벤트 함수 호출 불가능

객체.addEventListener(이벤트타입, 콜백함수(이벤트리스너), 전파방식(캡처링, 버블링)) -&amp;gt; 요즘권장방식
  태그안에 직접 쓰던 onclick이 아닌 타입인 click만 줌
  button 태그내에 onclick값이 있을 경우 모두 실행됨
  onclick 속성이 아닌, 별도의 이벤트로 관리
  이벤트 중첩(다중) 등록이 가능
  
이벤트 삭제
객체.removeEventListener(이벤트타입, 콜백함수(이벤트리스너))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596001533741&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    button {
        width: 200px;
        height: 100px;
        color: cadetblue;
        background: bisque;
        border: 2px solid black;
        font-size: 25px;
    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1596001550219&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;표준 이벤트 설정방식&amp;lt;/h2&amp;gt;
&amp;lt;button id=&quot;btn&quot; onclick=&quot;console.log('0번');&quot;&amp;gt;클릭&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1596001807155&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    var btn = document.querySelector(&quot;#btn&quot;);

    // btn.onclick = function () {} -&amp;gt; 고전 이벤트 방식

    function fn1() {
        console.log(&quot;fn1&quot;);

        // addEventListener에 등록된 이벤트 제거
        // this는 fn1 이벤트를 호출한 객체인 btn
        this.removeEventListener(&quot;click&quot;, fn1);
    }

    function fn2() {
        console.log(&quot;fn2&quot;);
    }

    btn.addEventListener(&quot;click&quot;, fn1);

    // fn1 실행 후 fn2 실행, 다중 호출 가능
    btn.addEventListener(&quot;click&quot;, fn2);
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;eve.gif&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;449&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vvISP/btqF5dTR0L3/x26CfD6iO2C5fcHaVu7zjk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vvISP/btqF5dTR0L3/x26CfD6iO2C5fcHaVu7zjk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vvISP/btqF5dTR0L3/x26CfD6iO2C5fcHaVu7zjk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/vvISP/btqF5dTR0L3/x26CfD6iO2C5fcHaVu7zjk/img.gif&quot; data-filename=&quot;eve.gif&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;449&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>addEventListener</category>
      <category>JavaScript</category>
      <category>onclick</category>
      <category>removeEventListener</category>
      <category>이벤트 설정</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/142</guid>
      <comments>https://newline.tistory.com/142#entry142comment</comments>
      <pubDate>Wed, 29 Jul 2020 15:01:41 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - Event 설정 (고전방식)</title>
      <link>https://newline.tistory.com/141</link>
      <description>&lt;pre id=&quot;code_1595997439016&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;고전 이벤트 설정 방식
    - 태그에 이벤트 직접 설정하기 : 권장하지 않는다.
        &amp;lt;button onclick=&quot;..&quot;&amp;gt;확인&amp;lt;/button&amp;gt;
        
    - 태그 객체에 프로퍼티를 활용
        : 객체.on이벤트타입 = 콜백함수;
        &amp;lt;button&amp;gt;확인&amp;lt;/button&amp;gt;
        var btn = document.querySeletor(&quot;button&quot;);
        btn.onclick = function () {};
        
        function doAction () {};
        btn.onclick = doAction; -&amp;gt; doAction()을 주면 실행 결과만 옴, doAction만 써야 함수를 넘김&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;고전이벤트 방식 1&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1595998821621&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
  button {
    width: 200px;
    height: 100px;
    color: cadetblue;
    background: bisque;
    border: 2px solid black;
    font-size: 25px;
  }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1595998851549&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;고전 이벤트 설정 연습&amp;lt;/h2&amp;gt;
&amp;lt;button onclick=&quot;fn1();&quot;&amp;gt;버튼1&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;btn2&quot;&amp;gt;버튼2&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1595998932821&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
	// fn1() : 태그에 직접 onclick 이벤트 설정 후 실행
	// fn2() : 객체의 프로퍼티에 접근하여 이벤트 설정 후 실행
    
	function fn1() {
		console.log(&quot;fn1 호출&quot;);
		console.log(&quot;this&quot;, this);
	}
    
	function fn2() {
		console.log(&quot;fn2 호출&quot;);
		// fn2()를 호출한 btn2 객체가 this가 됨 (=이벤트가 발생한 대상 객체)
        
		console.log(&quot;this&quot;, this);
		console.log(&quot;this.innerHTML&quot;, this.innerHTML);
        
		// 등록된 이벤트 제거
		// 한번만 실행되게 됨 (클릭을 한번만 하게 할 경우..)
		this.onclick = null;
	}

	// 고유한 id로 접근시에는 id값, 동일한 이름으로 설정시에는 class값 을 이용
	var btn2 = document.querySelector(&quot;#btn2&quot;);
    
	// fn2()을 주면 실행 결과(undefined)가 옴
	btn2.onclick = fn2;
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;event1.gif&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMI8CE/btqF8vrSRLT/1ugOgVj7TTIFjFQHKnAs1K/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMI8CE/btqF8vrSRLT/1ugOgVj7TTIFjFQHKnAs1K/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMI8CE/btqF8vrSRLT/1ugOgVj7TTIFjFQHKnAs1K/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/cMI8CE/btqF8vrSRLT/1ugOgVj7TTIFjFQHKnAs1K/img.gif&quot; data-filename=&quot;event1.gif&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;고전이벤트 방식 2&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1595999231710&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;고전 이벤트 설정 연습2&amp;lt;/h2&amp;gt;
&amp;lt;button id=&quot;btn1&quot;&amp;gt;시작&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;btn2&quot;&amp;gt;중지&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트&lt;/p&gt;
&lt;pre id=&quot;code_1595999339069&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    // fn1() : 자기자신의 onclick 이벤트를 제거 후 btn2에 onclick 설정
    // fn2() : 자기자신의 onclick 이벤트를 제거 후 btn1에 onclick 설정
    
    function fn1() {
        alert(&quot;시작버튼 클릭됨&quot;);
        // 한번만 실행 후 이벤트 설정 제거
        this.onclick = null;
        var btn2 = document.querySelector(&quot;#btn2&quot;);
        btn2.onclick = fn2;
    }
    
    function fn2() {
        alert(&quot;중지버튼 클릭됨&quot;);
        this.onclick = null;
        btn1.onclick = fn1;
    }

    // 고유한 id로 접근시에는 id값, 동일한 이름으로 설정시에는 class값 설정
    var btn1 = document.querySelector(&quot;#btn1&quot;);
    btn1.onclick = fn1;
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;event2.gif&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;523&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmNVcB/btqF5A85r8t/gYFILyWV1I1YdyhhOV81s0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmNVcB/btqF5A85r8t/gYFILyWV1I1YdyhhOV81s0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmNVcB/btqF5A85r8t/gYFILyWV1I1YdyhhOV81s0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bmNVcB/btqF5A85r8t/gYFILyWV1I1YdyhhOV81s0/img.gif&quot; data-filename=&quot;event2.gif&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;523&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>onclick</category>
      <category>온클릭 이벤트 설정</category>
      <category>이벤트</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/141</guid>
      <comments>https://newline.tistory.com/141#entry141comment</comments>
      <pubDate>Wed, 29 Jul 2020 14:14:15 +0900</pubDate>
    </item>
    <item>
      <title>코르도바(Cordova)/폰갭(Phonegap) 으로 하이브리드앱 만들기</title>
      <link>https://newline.tistory.com/140</link>
      <description>&lt;p&gt;1. Node JS 설치 (&lt;a href=&quot;https://nodejs.org/en/&quot;&gt;https://nodejs.org&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. CMD 에서 코르도바 or 폰갭 설치&lt;/p&gt;
&lt;p&gt;* 폰갭으로 설치해도 내부 플러그인 설치시 사용되는 명령어는 cordova 이며 호출 명령어만 다를뿐 동일하게 사용 가능&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1595469897140&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install -g phonegap

npm install -g cordova&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. phonegap create [경로] [패키지명] [프로젝트명] or &lt;span style=&quot;color: #333333;&quot;&gt;cordova create [경로] [패키지명] [프로젝트명]&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1595475686521&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;phonegap create c:\test\phonegap com.example.hybrid.phonegap PhonegapApp

cordova create c:\test\cordova com.example.hybrid.cordova CordovaApp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4. &amp;nbsp;위에서 생성한 프로젝트 경로로 이동&lt;/p&gt;
&lt;pre id=&quot;code_1595477125982&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd c:\test\폴더명&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5. 안드로이드/아이폰 플랫폼 함께 추가하며 플랫폼 목록을 Cordova의 config.xml 파일에 저장&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1595477071462&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;phonegap platform add android ios browser --save

cordova platform add android ios browser --save&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;6. 프로젝트 폴더 platforms 폴더 내에 android/ios 폴더를 안드로이드스튜디오와 XCode 에서 열어서 작업&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMYGnN/btqFUShTqRx/OBUYnrUQXGZqHS7fZ8tbK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMYGnN/btqFUShTqRx/OBUYnrUQXGZqHS7fZ8tbK1/img.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; style=&quot;width: 50.989%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMYGnN/btqFUShTqRx/OBUYnrUQXGZqHS7fZ8tbK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMYGnN%2FbtqFUShTqRx%2FOBUYnrUQXGZqHS7fZ8tbK1%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;0&quot; height=&quot;0&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Er7uJ/btqFUSIYefP/Qo5gHDNFDAyEQ6kgW4gS5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Er7uJ/btqFUSIYefP/Qo5gHDNFDAyEQ6kgW4gS5k/img.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; style=&quot;width: 47.8482%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Er7uJ/btqFUSIYefP/Qo5gHDNFDAyEQ6kgW4gS5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEr7uJ%2FbtqFUSIYefP%2FQo5gHDNFDAyEQ6kgW4gS5k%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;0&quot; height=&quot;0&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;* 그런데! 안드로이드 스튜디오에서 프로젝트를 열어보니 에러가 발생한다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ih7wf/btqFWCemWTV/58Jf7hhzTmUs3XYf0xvsdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ih7wf/btqFWCemWTV/58Jf7hhzTmUs3XYf0xvsdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ih7wf/btqFWCemWTV/58Jf7hhzTmUs3XYf0xvsdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIh7wf%2FbtqFWCemWTV%2F58Jf7hhzTmUs3XYf0xvsdk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;대략.... gradle 을 다운로드 하지 못했다는 에러 같다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;build.gradle 파일을 열어보면 dependencies 내에 &lt;span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;classpath 'com.android.tools.build:gradle:3.3.0&lt;/span&gt;' 으로 설정되어 있는데&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;최신버전을 검색해서 &lt;span style=&quot;color: #ee2323;&quot;&gt;classpath &lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;'com.android.tools.build:gradle:4.0.0'&lt;/span&gt; 로 변경 후 Try Again 또는 Sync Now 해주면 해결&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;* build.gradle(Project: android)에서만 바꿔도 해결은 되지만&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;build.gradle(&lt;/span&gt;Module: app) 까지 두군데 모두 변경해주었다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boyDAS/btqFWerrMBw/K3pZ9IKH97Mzn1u93XVOa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boyDAS/btqFWerrMBw/K3pZ9IKH97Mzn1u93XVOa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boyDAS/btqFWerrMBw/K3pZ9IKH97Mzn1u93XVOa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboyDAS%2FbtqFWerrMBw%2FK3pZ9IKH97Mzn1u93XVOa0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;* cordova와 phonegap 프로젝트의 manifest를 비교해보니 차이점이 있는데, &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;문제가 하나더 발생&lt;/span&gt;&lt;/b&gt;한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;폰갭으로 생성한 안드로이드 프로젝트 manifest 파일에는 좀더 많은 permission이 선언되어 있고,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;FileProvider 설정이 되어 있는데, &lt;span style=&quot;color: #333333;&quot;&gt;FileProvider에서 오류가 발생했다.&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kyuoS/btqFWZ8jj1k/6l6l4MklIX7KMX1u3DweT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kyuoS/btqFWZ8jj1k/6l6l4MklIX7KMX1u3DweT1/img.png&quot; data-alt=&quot;(좌) phonegap&amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; (우) cordova&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kyuoS/btqFWZ8jj1k/6l6l4MklIX7KMX1u3DweT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkyuoS%2FbtqFWZ8jj1k%2F6l6l4MklIX7KMX1u3DweT1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;(좌) phonegap&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (우) cordova&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위 그림과 같이 &lt;span&gt;android.support.v4.content.FileProvider 클래스를 찾지 못한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;앱내에서 File을 다루기 위해서는 FileProvide 설정이 필요하기 때문에&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;build.gradle (Module: app) 내 dependencies에 &lt;span style=&quot;color: #ee2323;&quot;&gt;implementation &lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;'androidx.appcompat:appcompat:1.1.0'&lt;/span&gt; 를 추가해주고&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;manifest 의 오류가 발생했던 부분을&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;android:name&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;=&quot;androidx.core.content.FileProvider&quot;&lt;/span&gt; 로 변경해준다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq0DvE/btqFWcAmmxo/JKoZSwvOlx3k2RLrrIvy41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq0DvE/btqFWcAmmxo/JKoZSwvOlx3k2RLrrIvy41/img.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; style=&quot;width: 38.8503%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq0DvE/btqFWcAmmxo/JKoZSwvOlx3k2RLrrIvy41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq0DvE%2FbtqFWcAmmxo%2FJKoZSwvOlx3k2RLrrIvy41%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;0&quot; height=&quot;0&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdAKtp/btqFVjGzyNw/hYKuYVVH2KV1dsZviKm98k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdAKtp/btqFVjGzyNw/hYKuYVVH2KV1dsZviKm98k/img.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; style=&quot;width: 59.9869%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdAKtp/btqFVjGzyNw/hYKuYVVH2KV1dsZviKm98k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdAKtp%2FbtqFVjGzyNw%2FhYKuYVVH2KV1dsZviKm98k%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;0&quot; height=&quot;0&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;gradle.properties 파일에 &lt;span style=&quot;color: #ee2323;&quot;&gt;android.useAndroidX=&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;true&lt;/span&gt; 항목 추가&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C64qP/btqFUSJfbqf/N35NFk0xlifyCHdgEwQ9R1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C64qP/btqFUSJfbqf/N35NFk0xlifyCHdgEwQ9R1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C64qP/btqFUSJfbqf/N35NFk0xlifyCHdgEwQ9R1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC64qP%2FbtqFUSJfbqf%2FN35NFk0xlifyCHdgEwQ9R1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;추가로 앱 실행시 코르도바 플러그인에서 기존 FileProvider 클래스를 사용하고 있던 부분에서 에러가 발생할것이다.&lt;/p&gt;
&lt;p&gt;해당 클래스에서 &lt;span&gt;import &lt;/span&gt;android.support.v4.content.FileProvider; 이부분을 삭제해준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기까지였으면 좋았겠지만 (&lt;s&gt;왜?&lt;/s&gt;) &lt;span style=&quot;color: #ee2323;&quot;&gt;에러가 하나 더&lt;/span&gt; 있다...&lt;/p&gt;
&lt;p&gt;폰갭에서 생성된 프로젝트는 시작 엑티비티를 찾지 못하고 있다.&lt;/p&gt;
&lt;p&gt;도구모음에 app 부분에 x 표시가 떠 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LrSvj/btqFZiFYdwF/jNkiGk9VE6Wyxr5yml5uwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LrSvj/btqFZiFYdwF/jNkiGk9VE6Wyxr5yml5uwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LrSvj/btqFZiFYdwF/jNkiGk9VE6Wyxr5yml5uwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLrSvj%2FbtqFZiFYdwF%2FjNkiGk9VE6Wyxr5yml5uwk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;manifest를 보면 코르도바로 생성한 프로젝트와 MainActivity가 선언된 부분은 동일하지만 에러는 복불복인가보다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdfvRs/btqFXJxkVuI/eYmZiLYKbfX8UzfUv5OEKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdfvRs/btqFXJxkVuI/eYmZiLYKbfX8UzfUv5OEKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdfvRs/btqFXJxkVuI/eYmZiLYKbfX8UzfUv5OEKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdfvRs%2FbtqFXJxkVuI%2FeYmZiLYKbfX8UzfUv5OEKk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;기본 Activity를 찾지 못하는 문제에 대해 Clean Build, Sync Project, MainActivity 패키지명부터 적기 등등 해보았으나 동일하여 프로젝트를 다시 생성했다. (.....)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하여 폰갭과 코르도바로 생성한 프로젝트를 에뮬레이터로 실행!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FJ9cV/btqFXf4mgzz/tkNZt39ksMgBDIWebJLSOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FJ9cV/btqFXf4mgzz/tkNZt39ksMgBDIWebJLSOK/img.png&quot; data-alt=&quot;(좌) 폰갭&amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; &amp;amp;amp;nbsp; (우) 코르도바&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FJ9cV/btqFXf4mgzz/tkNZt39ksMgBDIWebJLSOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFJ9cV%2FbtqFXf4mgzz%2FtkNZt39ksMgBDIWebJLSOK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/Android</category>
      <category>Cordova</category>
      <category>아이폰앱</category>
      <category>안드로이드앱</category>
      <category>코르도바</category>
      <category>폰갭</category>
      <category>하이브리드앱</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/140</guid>
      <comments>https://newline.tistory.com/140#entry140comment</comments>
      <pubDate>Thu, 23 Jul 2020 15:42:47 +0900</pubDate>
    </item>
    <item>
      <title>안드로이드용 키스토어(keystore) 파일 생성하기</title>
      <link>https://newline.tistory.com/139</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span&gt;CMD 실행&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;키스토어 파일을 생성할 파일 위치 확인 후 아래 명령어 입력 (&lt;span style=&quot;color: #333333;&quot;&gt;validity&lt;span&gt; : 유효기간 년 단위)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1595399132110&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;keytool -genkey -v -keystore C:\경로\파일명.keystore -alias test -keyalg RSA -keysize 2048 -validity 10000&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;암호, 지역, 지역번호 등 입력 후 y 입력하면 파일 생성 완료!&lt;/p&gt;</description>
      <category>개발/Android</category>
      <category>keystore</category>
      <category>안드로이드</category>
      <category>안드로이드 키스토어</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/139</guid>
      <comments>https://newline.tistory.com/139#entry139comment</comments>
      <pubDate>Wed, 22 Jul 2020 15:37:07 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - setTimeout을 이용한 슬라이드 효과</title>
      <link>https://newline.tistory.com/138</link>
      <description>&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1594967499104&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    div {
        position: absolute;
        background-color: whitesmoke;
        color: #666;
        padding: 10px;
        font-size: 30px;
        font-weight: bold;
        text-align: center;
        width: 600px;
        height: 400px;
        border: 1px solid black;
        border-radius: 5px;

        left: 100px;
        top: -450px;
    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1594967513879&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;&amp;lt;a href=&quot;#1&quot; onclick=&quot;showSlide();&quot;&amp;gt;슬라이드&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;div id=&quot;d1&quot;&amp;gt;슬라이드 효과&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트 소스&lt;/p&gt;
&lt;pre id=&quot;code_1594967527832&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    var x = -400;

    function showSlide() {
        x += 10;
        var dEle = document.querySelector(&quot;#d1&quot;);
        dEle.style.top = x + &quot;px&quot;;
        if (x &amp;lt; 100) {
            setTimeout(showSlide, 1);
        } else {
            x = -400;
        }
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;slide.gif&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;623&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kCkdv/btqFLgbF5fn/fNFJYdmZTPdRrvw2QDse71/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kCkdv/btqFLgbF5fn/fNFJYdmZTPdRrvw2QDse71/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kCkdv/btqFLgbF5fn/fNFJYdmZTPdRrvw2QDse71/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/kCkdv/btqFLgbF5fn/fNFJYdmZTPdRrvw2QDse71/img.gif&quot; data-filename=&quot;slide.gif&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;623&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>슬라이드효과</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/138</guid>
      <comments>https://newline.tistory.com/138#entry138comment</comments>
      <pubDate>Fri, 17 Jul 2020 15:34:01 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 간단한 아코디언 효과 적용(transition)</title>
      <link>https://newline.tistory.com/137</link>
      <description>&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1594957149632&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    h3,
    div {
        margin: 0px;
        width: 80%;
        border: 2px solid #334455;
        box-sizing: border-box;
    }
    h3 {
        background: powderblue;
    }
    div {
        transition: 1s;
        position: relative;
        height: 100px;
        overflow: hidden;
    }
    .hidden {
        opacity: 0;
        height: 0px;
    }
    .show {
        opacity: 100;
        height: 100px;
    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 소스&lt;/p&gt;
&lt;pre id=&quot;code_1594957173464&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2&amp;gt;아코디언 기능&amp;lt;/h2&amp;gt;
&amp;lt;h3 onclick=&quot;changeView();&quot;&amp;gt;오늘은 자바스크립트 CSS 적용하는 날&amp;lt;/h3&amp;gt;

&amp;lt;div class=&quot;hidden&quot;&amp;gt;
    오늘은 자바스크립트 CSS 적용&amp;lt;br /&amp;gt;
    오늘은 자바스크립트 CSS 적용&amp;lt;br /&amp;gt;
    오늘은 자바스크립트 CSS 적용
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스크립트 소스&lt;/p&gt;
&lt;pre id=&quot;code_1594957194976&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    function changeView() {
        var divEle = document.querySelector(&quot;div&quot;);
        var cls = divEle.getAttribute(&quot;class&quot;);

        if (cls == &quot;hidden&quot;) {
            cls = &quot;show&quot;;
        } else {
            cls = &quot;hidden&quot;;
        }

        divEle.setAttribute(&quot;class&quot;, cls);
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>Opacity</category>
      <category>Transition</category>
      <category>아코디온효과</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/137</guid>
      <comments>https://newline.tistory.com/137#entry137comment</comments>
      <pubDate>Fri, 17 Jul 2020 12:42:05 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - display 속성</title>
      <link>https://newline.tistory.com/136</link>
      <description>&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1594883027326&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;#1&quot; onclick=&quot;show('movie');&quot;&amp;gt;영화&amp;lt;/a&amp;gt;
&amp;lt;a href=&quot;#1&quot; onclick=&quot;show('music');&quot;&amp;gt;음악&amp;lt;/a&amp;gt;

&amp;lt;div id=&quot;movie&quot;&amp;gt;
    &amp;lt;h1&amp;gt;원피스 극장 13기&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;전설의 해적왕 그가 남긴 마지막 보물을 가지기 위한 젊은이들의 ...&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;div id=&quot;music&quot; style=&quot;display: none;&quot;&amp;gt;
    &amp;lt;h1&amp;gt;복면가왕 - 음악 대장(하현우)&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;전설의 10연승 ...&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;

    function show (kind){
        var music = document.querySelector(&quot;#music&quot;);
        var movie = document.querySelector(&quot;#movie&quot;);

        music.style.display = &quot;none&quot;;
        movie.style.display = &quot;none&quot;;
        
        document.querySelector(&quot;#&quot; + kind).style.display = &quot;block&quot;;
    }

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;display.gif&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;369&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7BZFK/btqFKDjGiQj/pIRV8cbMVxbqHIuEXHy3ek/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7BZFK/btqFKDjGiQj/pIRV8cbMVxbqHIuEXHy3ek/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7BZFK/btqFKDjGiQj/pIRV8cbMVxbqHIuEXHy3ek/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/c7BZFK/btqFKDjGiQj/pIRV8cbMVxbqHIuEXHy3ek/img.gif&quot; data-filename=&quot;display.gif&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;369&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>display 속성</category>
      <category>JavaScript</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/136</guid>
      <comments>https://newline.tistory.com/136#entry136comment</comments>
      <pubDate>Thu, 16 Jul 2020 16:05:10 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - Element 에서 font 크기를 가져온 뒤 수정하기</title>
      <link>https://newline.tistory.com/135</link>
      <description>&lt;p&gt;소스&lt;/p&gt;
&lt;pre id=&quot;code_1594800849945&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;
    &amp;lt;a href=&quot;#1&quot; onclick=&quot;sizeUp();&quot;&amp;gt;크게&amp;lt;/a&amp;gt;
    &amp;lt;a href=&quot;#1&quot; onclick=&quot;sizeDown();&quot;&amp;gt;작게&amp;lt;/a&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;div&amp;gt;
    &amp;lt;p&amp;gt;
        HTML 요소&amp;lt;br /&amp;gt;
        HTML 요소(HTML 엘리먼트, HTML element)는 HTML 문서나 웹 페이지를 이루는 개별적인 요소를 의미하며, 문서 객체 모델(DOM)으로 파싱된다. HTML은 트리나 HTML 노드(텍스트 노드 등)로 구성된다.
        각 노드는 HTML 속성을 지정할 수 있다. 노드들은 기타 노드와 텍스트를 포함한 콘텐츠도 소유할 수 있다. 수많은 HTML 노드들은 시맨틱이나 의미를 표현한다. 이를테면 title 노드는 문서의 제목을
        나타낸다.
    &amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;
        문서와 DOM&amp;lt;br /&amp;gt;
        HTML 문서들은 &quot;문서&quot;(document)로 전달된다.[note 1] 이들은 구문 분석 과정을 거쳐 웹 브라우저 내에서 문서 객체 모델(DOM) 내부 표현으로 변환된다.[note 2][note 3] 화면과 같은 웹 브라우저의
        표현이라든지 자바스크립트의 접근은 그 다음에 이 내부 모델에서 수행되며 원래의 문서에서 수행되지는 않는다. 초기의 HTML 문서들은 오늘날 어느 정도는 크게 유효하지 않은 HTML이었으며 문법
        오류 투성이었다. 가능한 이러한 오류를 해결하기 위해 파싱 과정도 필요했다. 그 결과의 모델은 정확하지는 않지만(이를테면 주의깊은 코더가 원래 의도한 바를 표현하지 못하는 등) 적어도 HTMl
        표준에 따라 유효하다. 유효한 모델은 제공되는 태그 숩이 얼마나 나쁜지에 관계 없이 만들어진다. 극소수의 경우에만 파서가 파싱을 포기한다.
    &amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
    var divEle = document.querySelector(&quot;div&quot;);

    function sizeUp() {
        var fs = document.defaultView.getComputedStyle(divEle).getPropertyValue(&quot;font-size&quot;);
        console.log(&quot;font size&quot;, fs);
        divEle.style.fontSize = parseInt(fs) + 2 + &quot;px&quot;;
    }

    function sizeDown() {
        var fs = document.defaultView.getComputedStyle(divEle).getPropertyValue(&quot;font-size&quot;);
        console.log(&quot;font size&quot;, fs);
        divEle.style.fontSize = parseInt(fs) - 2 + &quot;px&quot;;
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;font.gif&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tVVQT/btqFIM1OSB1/oOjFHpMmJx053RDN45Mav1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tVVQT/btqFIM1OSB1/oOjFHpMmJx053RDN45Mav1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tVVQT/btqFIM1OSB1/oOjFHpMmJx053RDN45Mav1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/tVVQT/btqFIM1OSB1/oOjFHpMmJx053RDN45Mav1/img.gif&quot; data-filename=&quot;font.gif&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>css</category>
      <category>fontsize</category>
      <category>getComputedStyle</category>
      <category>getPropertyValue</category>
      <category>JavaScript</category>
      <category>style</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/135</guid>
      <comments>https://newline.tistory.com/135#entry135comment</comments>
      <pubDate>Wed, 15 Jul 2020 17:15:11 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - Element 에 적용된 CSS Style 가져오기</title>
      <link>https://newline.tistory.com/134</link>
      <description>&lt;pre id=&quot;code_1594793061527&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;- Element.style.속성명 을 통해 적용중인 속성값 확인
	: style속성에서 직접준것이 아닐 경우 확인 불가

- document.defaultView.getComputedStyle(Element) 를 통해 적용중인 Style 확인 가능

- 프로토타입의 게터에서 정보를 추출
	: document.defaultView.getComputedStyle(Element).getPropertyValue(&quot;속성명&quot;))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;pre id=&quot;code_1594792880472&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    div {
        background-color: #ff0;
    }
&amp;lt;/style&amp;gt;

&amp;lt;div style=&quot;width: 200px; height: 200px;&quot;&amp;gt;
    &amp;lt;p&amp;gt;DIV 입니다.&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
    var divEle = document.querySelector(&quot;div&quot;);
    console.log(&quot;width&quot;, divEle.style.width);
    console.log(&quot;height&quot;, divEle.style.height);
    console.log(&quot;backgroundColor&quot;, divEle.style.backgroundColor);
    console.dir(document);
    console.dir(document.defaultView);
    console.dir(document.defaultView.getComputedStyle(divEle));
    console.dir(&quot;getPropertyValue&quot; + document.defaultView.getComputedStyle(divEle).getPropertyValue(&quot;background-color&quot;));
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NIQWW/btqFIjFBnNO/W0KdwkPECSSrIF6Tavl7AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NIQWW/btqFIjFBnNO/W0KdwkPECSSrIF6Tavl7AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NIQWW/btqFIjFBnNO/W0KdwkPECSSrIF6Tavl7AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNIQWW%2FbtqFIjFBnNO%2FW0KdwkPECSSrIF6Tavl7AK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div id=&quot;gtx-trans&quot; style=&quot;position: absolute; left: 12px; top: 191px;&quot;&gt;
&lt;div class=&quot;gtx-trans-icon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>개발/JavaScript</category>
      <category>CSS 확인</category>
      <category>defaultView.getComputedStyle</category>
      <category>getComputedStyle</category>
      <category>getPropertyValue</category>
      <category>JavaScript</category>
      <category>style 가져오기</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/134</guid>
      <comments>https://newline.tistory.com/134#entry134comment</comments>
      <pubDate>Wed, 15 Jul 2020 15:04:30 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript  - class명을 이용한 CSS 적용</title>
      <link>https://newline.tistory.com/133</link>
      <description>&lt;p&gt;CSS 소스&lt;/p&gt;
&lt;pre id=&quot;code_1594790543571&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    .a {
        border:5px solid black;
        color: skyblue;
        background-color: yellow;
        padding: 30px;
        margin: 30px;
        height: 100px;
        border-radius: 100px;
        text-align: center;
        line-height: 100px;
    }
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HTML 및 스크립트 소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1594790471349&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2 onclick=&quot;changeCSS();&quot;&amp;gt;CSS 적용하기&amp;lt;/h2&amp;gt;

&amp;lt;script&amp;gt;

    function changeCSS (){
        var h2Ele = document.querySelector(&quot;h2&quot;);
        /*
            속성에 대한 값을 변경할수 있음
            h2Ele.onclick = &quot;&quot;;
            h2Ele.id = &quot;&quot;;
            class란 키워드가 자바스크립트에 있어서 h2Ele.class 사용 X, className으로 사용
            [&quot;class&quot;]는 사용 가능, .으로 접근시에는 className으로 사용
        */
        // onclick시 class=&quot;a&quot;를 추가함
        h2Ele.className = &quot;a&quot;;
    }

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;st.gif&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5qXiQ/btqFGw6UaX4/45EsnCeeS8JJQybaBPJEhk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5qXiQ/btqFGw6UaX4/45EsnCeeS8JJQybaBPJEhk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5qXiQ/btqFGw6UaX4/45EsnCeeS8JJQybaBPJEhk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/5qXiQ/btqFGw6UaX4/45EsnCeeS8JJQybaBPJEhk/img.gif&quot; data-filename=&quot;st.gif&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>css</category>
      <category>JavaScript</category>
      <category>style</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/133</guid>
      <comments>https://newline.tistory.com/133#entry133comment</comments>
      <pubDate>Wed, 15 Jul 2020 14:23:44 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript  - style 속성을 이용한 CSS 직접 적용</title>
      <link>https://newline.tistory.com/132</link>
      <description>&lt;p&gt;소스&lt;/p&gt;
&lt;pre id=&quot;code_1594790039557&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h2 onclick=&quot;changeCSS();&quot;&amp;gt;CSS 적용하기&amp;lt;/h2&amp;gt;

&amp;lt;script&amp;gt;

    function changeCSS (){
        var h2Ele = document.querySelector(&quot;h2&quot;);
        h2Ele.style.border = &quot;5px solid black&quot;;
        h2Ele.style.color = &quot;skyblue&quot;;
        // - 있는 속성의 경우 [&quot;&quot;]나, -제외후 대문자로 시작하여 사용 가능
        //h2Ele.style[&quot;background-color&quot;] = &quot;yellow&quot;;
        h2Ele.style.backgroundColor = &quot;yellow&quot;;
        // 안쪽 여백
        h2Ele.style.padding = &quot;30px&quot;;
        // 바깥쪽 여백
        h2Ele.style.margin = &quot;30px&quot;;
        h2Ele.style.height = &quot;100px&quot;;
        h2Ele.style.borderRadius = &quot;100px&quot;;
        // 글자를 수평 센터로
        h2Ele.style.textAlign = &quot;center&quot;;
        // 글자를 수직 센터로
        h2Ele.style.lineHeight = &quot;100px&quot;;
    }

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;style.gif&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmhzju/btqFHaPPek6/AeIhJFUBlxlgwxOQVu1afK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmhzju/btqFHaPPek6/AeIhJFUBlxlgwxOQVu1afK/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmhzju/btqFHaPPek6/AeIhJFUBlxlgwxOQVu1afK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bmhzju/btqFHaPPek6/AeIhJFUBlxlgwxOQVu1afK/img.gif&quot; data-filename=&quot;style.gif&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div id=&quot;gtx-trans&quot; style=&quot;position: absolute; left: 20px; top: -6px;&quot;&gt;
&lt;div class=&quot;gtx-trans-icon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>개발/JavaScript</category>
      <category>css</category>
      <category>JavaScript</category>
      <category>style 속성</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/132</guid>
      <comments>https://newline.tistory.com/132#entry132comment</comments>
      <pubDate>Wed, 15 Jul 2020 14:19:25 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - navigator 객체</title>
      <link>https://newline.tistory.com/131</link>
      <description>&lt;pre id=&quot;code_1594785919360&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.navigator.userAgent : 사용자 접속 환경 확인&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1594786015679&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
	// www.naver.com -&amp;gt; m.naver.com
	console.log(window.navigator.userAgent);
	var msg;
	var agent = window.navigator.userAgent;
	if(agent.indexOf(&quot;iPhone&quot;) != -1){
		msg = &quot;iPhone 접속&quot;;
	}
	else if(agent.indexOf(&quot;Android&quot;) != -1){
		msg = &quot;Android 접속&quot;;
	}
    else {
		msg = &quot;PC 환경 접속&quot;;
	}
	console.log(msg);
    alert(msg);
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과 (데스크탑 크롬에서 접속)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cm7fJ1/btqFGywCsRf/NFVh4vuNY3vgX1vMmhdfQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cm7fJ1/btqFGywCsRf/NFVh4vuNY3vgX1vMmhdfQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cm7fJ1/btqFGywCsRf/NFVh4vuNY3vgX1vMmhdfQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcm7fJ1%2FbtqFGywCsRf%2FNFVh4vuNY3vgX1vMmhdfQ1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>navigator 객체</category>
      <category>navigator.userAgent</category>
      <category>window.navigator</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/131</guid>
      <comments>https://newline.tistory.com/131#entry131comment</comments>
      <pubDate>Wed, 15 Jul 2020 13:09:28 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - location 객체 (접속 경로 확인)</title>
      <link>https://newline.tistory.com/130</link>
      <description>&lt;pre id=&quot;code_1594776130411&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.location : 주소정보를 다루는 객체

window는 생략 후 사용 가능
    
주로 html끼리 페이지를 이동할때 사용.

location 속성 : href, host, port, pathname, search ...

* pahtname, search를 이용하여 유입 경로 및 통계 확인 가능&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;pre id=&quot;code_1594778515246&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button onclick=&quot;doAction();&quot;&amp;gt;클릭&amp;lt;/button&amp;gt;

&amp;lt;script&amp;gt;
    /* 
    if (flag) {
        alert(&quot;3초후 페이지 새로고침&quot;);
        setTimeout(function () {
            //location.href = location.href;
            location.reload();
        }, 3000);
    }
        */

    alert(&quot;5초후 페이지 이동&quot;);
    setTimeout(function () {
        location.href = &quot;http://www.daum.net&quot;;
    }, 5000);

    function doAction() {
        //console.dir(location);
        console.log(&quot;href&quot;, window.location.href);
        console.log(&quot;host&quot;, window.location.host);
        console.log(&quot;port&quot;, window.location.port);
        console.log(&quot;pathname&quot;, window.location.pathname);
        // 파라미터값 확인 가능
        console.log(&quot;search&quot;, window.location.search);
        // ?id=aaa&amp;amp;pass=123
        var params = window.location.search;
        // 1번 인덱스부터 끝까지 자르기(1, 2) -&amp;gt; 1번인덱스부터 2번 인덱스까지
        params = params.substr(1);
        var pArr = params.split(&quot;&amp;amp;&quot;);

        console.log(&quot;pArr&quot;, pArr);
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;location.gif&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;666&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byScUP/btqFD4Xc9MK/xgl5NTHoC0ky0AyQ7xbSA0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byScUP/btqFD4Xc9MK/xgl5NTHoC0ky0AyQ7xbSA0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byScUP/btqFD4Xc9MK/xgl5NTHoC0ky0AyQ7xbSA0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/byScUP/btqFD4Xc9MK/xgl5NTHoC0ky0AyQ7xbSA0/img.gif&quot; data-filename=&quot;location.gif&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;666&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;gtx-trans&quot; style=&quot;position: absolute; left: 364px; top: 53px;&quot;&gt;
&lt;div class=&quot;gtx-trans-icon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>location 속성</category>
      <category>pathname</category>
      <category>search</category>
      <category>window.location</category>
      <category>방문통계</category>
      <category>유입통계</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/130</guid>
      <comments>https://newline.tistory.com/130#entry130comment</comments>
      <pubDate>Wed, 15 Jul 2020 11:02:46 +0900</pubDate>
    </item>
    <item>
      <title>MAC에서 숨겨진 파일 보기</title>
      <link>https://newline.tistory.com/129</link>
      <description>&lt;p&gt;MAC에서 .으로 시작하는 파일은 숨김처리가 되어 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;.git 이나 .gitignore 와 같은 파일을 찾으려고 보니 안보이길래 숨겨져 있다는것도 처음 알았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;숨겨진 파일을 보기 위한 설정은 터미널에서 진행한다!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;OS&amp;nbsp;X&amp;nbsp;10.8&amp;nbsp;의&amp;nbsp;경우&lt;/p&gt;
&lt;pre id=&quot;code_1594029964027&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;defaults write com.apple.Finder AppleShowAllFiles TRUE&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;OS&amp;nbsp;X&amp;nbsp;10.9&amp;nbsp;의&amp;nbsp;경우&lt;/p&gt;
&lt;pre id=&quot;code_1594029969423&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;defaults write com.apple.finder AppleShowAllFiles TRUE&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파인더를&amp;nbsp;재시작할&amp;nbsp;경우&amp;nbsp;보이지&amp;nbsp;않았던&amp;nbsp;파일이&amp;nbsp;보인다&lt;/p&gt;
&lt;pre id=&quot;code_1594029970535&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;killall Finder&lt;/code&gt;&lt;/pre&gt;</description>
      <category>MAC</category>
      <category>.git 안보임</category>
      <category>.gitignore 안보임</category>
      <category>mac</category>
      <category>맥 파일안보임</category>
      <category>맥에서 숨겨진 파일보기</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/129</guid>
      <comments>https://newline.tistory.com/129#entry129comment</comments>
      <pubDate>Mon, 6 Jul 2020 19:07:36 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - onload 함수와 스크립트의 실행 위치에 관계</title>
      <link>https://newline.tistory.com/128</link>
      <description>&lt;pre id=&quot;code_1591330022932&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;- onload : 문서가 태그정보들을 메모리에 전부 로딩 후 실행
- 로딩 문제 해결을 위해 body 하단에 &amp;lt;script&amp;gt; 사용 권장&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591330015262&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;script&amp;gt;
        window.onload = function () {
            // h1 태그가 아래에 있을 경우 h1보다, 스크립트가 먼저 실행되어 result를 못찾음, 에러발생
            // onload 이벤트 내에 있을 경우 정상 실행 가능
            var result = document.querySelector(&quot;#result&quot;);
            result.innerHTML = &quot;onload 에서 실행됨&quot;;
        };

        var result2 = document.querySelector(&quot;#result&quot;);
        result2.innerHTML = &quot;h1 태그 전에 실행됨&quot;;
    &amp;lt;/script&amp;gt;

    &amp;lt;h1 id=&quot;result&quot;&amp;gt;&amp;lt;/h1&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;onload&amp;nbsp;에서&amp;nbsp;실행됨&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>onload</category>
      <category>window.onload</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/128</guid>
      <comments>https://newline.tistory.com/128#entry128comment</comments>
      <pubDate>Fri, 5 Jun 2020 13:10:47 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - window 객체 활용(open, moveBy, resizeTo, onunload)</title>
      <link>https://newline.tistory.com/127</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591256615394&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window는 생략 후 사용 가능&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591256676424&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
	&amp;lt;button onclick=&quot;createPop();&quot;&amp;gt;생성&amp;lt;/button&amp;gt;
	&amp;lt;button onclick=&quot;movePop();&quot;&amp;gt;이동&amp;lt;/button&amp;gt;
	&amp;lt;button onclick=&quot;sizePop();&quot;&amp;gt;변경&amp;lt;/button&amp;gt;

	&amp;lt;script&amp;gt;
		var pop;
		function createPop() {
			pop = window.open(&quot;&quot;, &quot;&quot;, &quot;width=400, height=300&quot;);
			sizePop();
			// 창의 내용이 사라질때, 창을 끌때
			// 콜백함수.. 창을 끄면 발생
			pop.onunload = function () {
				createPop();
			};
		}
		function movePop() {
			// 절대좌표, 지정한 좌표로 이동, left, top 좌표
			//pop.moveTo(200, 200);

			// 상대좌표, 현재 위치를 기준으로 이동, -도 가능
			pop.moveBy(30, 20);
		}
		function sizePop() {
			// 절대크기, 넓이, 높이
			//pop.resizeTo(500, 500);
			pop.resizeTo(screen.width, screen.height);

			// 상대크기
			pop.resizeBy(20, 10);
		}
	&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과 (크롬의 리다이렉션 차단 기능으로 팝업창 실행기능은 한번만 동작함)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-04 오후 4-52-08.gif&quot; data-origin-width=&quot;1849&quot; data-origin-height=&quot;1014&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6umzS/btqECiPqCt8/8vrrgQkbZk0oaC50H2oVU0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6umzS/btqECiPqCt8/8vrrgQkbZk0oaC50H2oVU0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6umzS/btqECiPqCt8/8vrrgQkbZk0oaC50H2oVU0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/6umzS/btqECiPqCt8/8vrrgQkbZk0oaC50H2oVU0/img.gif&quot; data-filename=&quot;GIF 2020-06-04 오후 4-52-08.gif&quot; data-origin-width=&quot;1849&quot; data-origin-height=&quot;1014&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>moveBy</category>
      <category>onunload</category>
      <category>resizeTo</category>
      <category>window.open</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/127</guid>
      <comments>https://newline.tistory.com/127#entry127comment</comments>
      <pubDate>Thu, 4 Jun 2020 17:07:06 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - window 객체</title>
      <link>https://newline.tistory.com/126</link>
      <description>&lt;pre id=&quot;code_1591255345492&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window 객체 : BOM(Browser Object Model)
  windows가 제공해주는 함수
  window는 생략 후 사용 가능
  팝업창 띄우기 - windows.open(url, target, option)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;부모페이지 소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591255409769&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;button onclick=&quot;openPop(1)&quot;&amp;gt;팝업창1&amp;lt;/button&amp;gt;
    &amp;lt;button onclick=&quot;openPop(2)&quot;&amp;gt;팝업창2&amp;lt;/button&amp;gt;
    &amp;lt;button onclick=&quot;openPop(3)&quot;&amp;gt;팝업창3&amp;lt;/button&amp;gt;
    &amp;lt;button onclick=&quot;openPop(4)&quot;&amp;gt;팝업창4&amp;lt;/button&amp;gt;

    &amp;lt;h2 id=&quot;result&quot;&amp;gt;&amp;lt;/h2&amp;gt;

    &amp;lt;script&amp;gt;
        function openPop(type) {
            switch (type) {
                case 1:
                    window.open(&quot;http://www.naver.com&quot;, &quot;pop1&quot;, &quot;width=400, height=300&quot;);
                    break;
                case 2:
                    window.open(&quot;http://www.naver.com&quot;, &quot;&quot;, &quot;width=400, height=300&quot;);
                    break;
                case 3:
                    console.log(screen.width, screen.height);
                    // 화면의 가운데에 팝업창을 띄우려고 할때
                    // (화면해상도-팝업창크기)/2
                    var left = (screen.width - 400) / 2;
                    var top = (screen.height - 300) / 2;
                    window.open(&quot;http://www.naver.com&quot;, &quot;&quot;, `width=400, height=300, top=${top}, left=${left}`);
                    break;
                case 4:
                    window.open(&quot;test01_child.html&quot;, &quot;&quot;, &quot;width=400, height=300&quot;);
                    break;
            }
        }

        function doResult(msg) {
            document.querySelector(&quot;#result&quot;).innerHTML += msg;
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자식페이지 소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591255423847&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;h2&amp;gt;자식 페이지&amp;lt;/h2&amp;gt;
    메세지 : &amp;lt;input type=&quot;text&quot; id=&quot;msg&quot; /&amp;gt;
    &amp;lt;button onclick=&quot;winClose();&quot;&amp;gt;닫기&amp;lt;/button&amp;gt;

    &amp;lt;script&amp;gt;
        function winClose() {
            // 자신을 띄운 창에 접근 (부모창) : opener
            //document.msg.value
            opener.doResult(document.querySelector(&quot;#msg&quot;).value);
            self.close();
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-04 오후 4-35-22.gif&quot; data-origin-width=&quot;1324&quot; data-origin-height=&quot;998&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dm95bS/btqEC8L4ntn/9fJLxMUWVk8MK29E60X770/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dm95bS/btqEC8L4ntn/9fJLxMUWVk8MK29E60X770/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dm95bS/btqEC8L4ntn/9fJLxMUWVk8MK29E60X770/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/dm95bS/btqEC8L4ntn/9fJLxMUWVk8MK29E60X770/img.gif&quot; data-filename=&quot;GIF 2020-06-04 오후 4-35-22.gif&quot; data-origin-width=&quot;1324&quot; data-origin-height=&quot;998&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>BOM</category>
      <category>JavaScript</category>
      <category>opener</category>
      <category>window 객체</category>
      <category>window.open</category>
      <category>부모창으로 값 전달</category>
      <category>자바스크립트</category>
      <category>팝업창 위치</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/126</guid>
      <comments>https://newline.tistory.com/126#entry126comment</comments>
      <pubDate>Thu, 4 Jun 2020 16:38:43 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - select 객체의 옵션 추가, 삭제, 비활성화(options.length, disabled)</title>
      <link>https://newline.tistory.com/125</link>
      <description>&lt;p&gt;1. DOM API 활용&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591251749937&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var opt = document.createElement(&quot;option&quot;);
// 속성추가
opt.value = 0; // &amp;lt;option value='0'&amp;gt;&amp;lt;/option&amp;gt;
var text = document.createTextNode(&quot;졸림&quot;);
// text를 option에 추가
opt.appendChild(text); // &amp;lt;option value='0'&amp;gt;졸림&amp;lt;/option&amp;gt;
selEle.appendChild(opt);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;자바스크립트&amp;nbsp;내장객체&amp;nbsp;활용&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591251819777&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// options 배열에 다음 항목 추가, new Option(text, value);
selEle.options[selEle.options.length] = new Option(&quot;배고파&quot;, &quot;100&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;innerHTML&amp;nbsp;활용&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591251842370&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;selEle.innerHTML += &quot;&amp;lt;option value='100'&amp;gt;테스트&amp;lt;/option&amp;gt;&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591251115174&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;form action=&quot;a.html&quot; name=&quot;mForm&quot;&amp;gt;
        &amp;lt;button type=&quot;button&quot; onclick=&quot;doAdd();&quot;&amp;gt;추가&amp;lt;/button&amp;gt;
        &amp;lt;button type=&quot;button&quot; onclick=&quot;doDel();&quot;&amp;gt;삭제&amp;lt;/button&amp;gt;
        &amp;lt;button type=&quot;button&quot; onclick=&quot;changeDisabled(true);&quot;&amp;gt;비활성화&amp;lt;/button&amp;gt;
        &amp;lt;button type=&quot;button&quot; onclick=&quot;changeDisabled(false);&quot;&amp;gt;활성화&amp;lt;/button&amp;gt;
        &amp;lt;br /&amp;gt;
        &amp;lt;br /&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;select name=&quot;sel&quot;&amp;gt;
                &amp;lt;option value=&quot;&quot;&amp;gt;선택하세요&amp;lt;/option&amp;gt;
            &amp;lt;/select&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;

    &amp;lt;script&amp;gt;
        function doAdd() {
            //var selEle = document.querySelector(&quot;select&quot;);
            var selEle = document.mForm.sel;

            selEle.options[selEle.options.length] = new Option(&quot;배고파&quot;, &quot;100&quot;);
        }

        function doDel() {
            var sel = document.mForm.sel;
            // 마지막 option 삭제
            //sel.options[sel.options.length-1] = null;
            // 전부 삭제
            sel.options.length = 1;
        }

        function changeDisabled(flag) {
            var selEle = document.mForm.sel;
            if (flag) selEle.selectedIndex = 0;
            // disabled 에서는 서버 전송 안됨
            selEle.disabled = flag;
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-04 오후 3-26-04.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tBJmL/btqEDShP2MD/JTajL7PtYnmhAPXOaxPGO0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tBJmL/btqEDShP2MD/JTajL7PtYnmhAPXOaxPGO0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tBJmL/btqEDShP2MD/JTajL7PtYnmhAPXOaxPGO0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/tBJmL/btqEDShP2MD/JTajL7PtYnmhAPXOaxPGO0/img.gif&quot; data-filename=&quot;GIF 2020-06-04 오후 3-26-04.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>disabled</category>
      <category>JavaScript</category>
      <category>options.length</category>
      <category>select</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/125</guid>
      <comments>https://newline.tistory.com/125#entry125comment</comments>
      <pubDate>Thu, 4 Jun 2020 15:29:15 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - select 객체(selectedIndex, options)</title>
      <link>https://newline.tistory.com/124</link>
      <description>&lt;pre id=&quot;code_1591246161278&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select객체.selectedIndex : 선택된 옵션 항목의 인덱스 위치
select객체.options : option 항목들의 배열

&amp;lt;select&amp;gt; -&amp;gt; select.selectedIndex (선택된 옵션 위치)
    &amp;lt;option&amp;gt;&amp;lt;/option&amp;gt; -&amp;gt; select.options.length
    &amp;lt;option&amp;gt;&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591246229677&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;h2&amp;gt;select 활용하기 - 1&amp;lt;/h2&amp;gt;
    &amp;lt;form name=&quot;mForm&quot; action=&quot;a.html&quot;&amp;gt;
        &amp;lt;select name=&quot;sType&quot;&amp;gt;
            &amp;lt;option value=&quot;&quot;&amp;gt;선택하세요&amp;lt;/option&amp;gt;
            &amp;lt;option value=&quot;writer&quot;&amp;gt;작성자&amp;lt;/option&amp;gt;
            &amp;lt;option value=&quot;title&quot;&amp;gt;제목&amp;lt;/option&amp;gt;
        &amp;lt;/select&amp;gt;
        &amp;lt;input type=&quot;text&quot; name=&quot;sWord&quot; /&amp;gt;
        &amp;lt;button type=&quot;button&quot; onclick=&quot;doAction();&quot;&amp;gt;검색&amp;lt;/button&amp;gt;
    &amp;lt;/form&amp;gt;

    &amp;lt;script&amp;gt;
        function doAction() {
            // form 엘리먼트 접근
            var f = document.mForm;
            // select 엘리먼트 접근
            var selEle = f.sType;

            //console.log(selEle);
            // 선택된 옵션 박스의 인덱스 확인
            console.log(&quot;선택된 인덱스&quot;, selEle.selectedIndex);

            // 검색어 값이 있고, 선택 박스에 검색 타입에 선택하세요가 선택된 경우 &quot;검색항목을 선택하세요&quot;
            if (f.sWord.value != &quot;&quot; &amp;amp;&amp;amp; selEle.selectedIndex == 0) {
                alert(&quot;검색 항목을 선택하세요!&quot;);
                return;
            }
            if (f.sWord.value == &quot;&quot;) {
                alert(&quot;검색어를 입력하세요!&quot;);
                return;
            }
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-04 오후 2-04-32.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vF78y/btqEDTnmlFk/kf7itfCWKkcfkpxMkHvHn1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vF78y/btqEDTnmlFk/kf7itfCWKkcfkpxMkHvHn1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vF78y/btqEDTnmlFk/kf7itfCWKkcfkpxMkHvHn1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/vF78y/btqEDTnmlFk/kf7itfCWKkcfkpxMkHvHn1/img.gif&quot; data-filename=&quot;GIF 2020-06-04 오후 2-04-32.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>options</category>
      <category>select</category>
      <category>selectedIndex</category>
      <category>셀렉트</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/124</guid>
      <comments>https://newline.tistory.com/124#entry124comment</comments>
      <pubDate>Thu, 4 Jun 2020 14:05:19 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - checkbox 상태 확인(checked)</title>
      <link>https://newline.tistory.com/123</link>
      <description>&lt;pre id=&quot;code_1591244261547&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;체크박스엘리먼트.checked = true (체크)
체크박스엘리먼트.checked = false (체크해제)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591244454823&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;h2&amp;gt;체크박스 테스트&amp;lt;/h2&amp;gt;
    &amp;lt;form name=&quot;mForm&quot; action=&quot;a.html&quot;&amp;gt;
        &amp;lt;div&amp;gt;
            &amp;lt;!--onchange : 상태가 바뀔때--&amp;gt;
            &amp;lt;input type=&quot;checkbox&quot; name=&quot;all&quot; id=&quot;all&quot; value=&quot;all&quot; onclick=&quot;doAction();&quot; /&amp;gt;
            &amp;lt;label for=&quot;all&quot;&amp;gt;전체&amp;lt;/label&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div&amp;gt;
            오늘 점심 메뉴는?&amp;lt;br /&amp;gt;
            &amp;lt;input type=&quot;checkbox&quot; id=&quot;menu1&quot; name=&quot;menu&quot; value=&quot;1&quot; /&amp;gt;
            &amp;lt;label for=&quot;menu1&quot;&amp;gt;돌솥비빔밥&amp;lt;/label&amp;gt;
            &amp;lt;input type=&quot;checkbox&quot; id=&quot;menu2&quot; name=&quot;menu&quot; value=&quot;2&quot; /&amp;gt;
            &amp;lt;label for=&quot;menu2&quot;&amp;gt;라면&amp;lt;/label&amp;gt;
            &amp;lt;input type=&quot;checkbox&quot; id=&quot;menu3&quot; name=&quot;menu&quot; value=&quot;3&quot; /&amp;gt;
            &amp;lt;label for=&quot;menu3&quot;&amp;gt;햄버거&amp;lt;/label&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;

    &amp;lt;script&amp;gt;
        function doAction() {
            var f = document.mForm;
            // id가 all인 체크박스의 상태에 따라
            console.log(f.all.checked);
            // name이 menu인 체크박스의 상태를 변경
            var ckMenu = f.menu; // menu의 갯수에 따라 하나가 올수도, 여러개가 올 수도 있음
            // 객체가 배열인지 확인 (checked가 있는지, 또는 length가 있는지 확인)
            if (ckMenu.length) {
                for (var i = 0; i &amp;lt; ckMenu.length; i++) {
                    // 전체체크박스의 상태와 동일한 값을 준다
                    ckMenu[i].checked = f.all.checked;
                }
            } else {
                ckmenu.checked = f.all.checked;
            }
            console.log(ckMenu.checked);
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-04 오후 1-30-35.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAiJJd/btqEC852aVw/lLPmoMrZdVfZhKjKsk4X61/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAiJJd/btqEC852aVw/lLPmoMrZdVfZhKjKsk4X61/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAiJJd/btqEC852aVw/lLPmoMrZdVfZhKjKsk4X61/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bAiJJd/btqEC852aVw/lLPmoMrZdVfZhKjKsk4X61/img.gif&quot; data-filename=&quot;GIF 2020-06-04 오후 1-30-35.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>checked</category>
      <category>JavaScript</category>
      <category>자바스크립트</category>
      <category>체크박스 상태 확인</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/123</guid>
      <comments>https://newline.tistory.com/123#entry123comment</comments>
      <pubDate>Thu, 4 Jun 2020 13:32:12 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 폼 데이터 체크 후 서브밋 하기(onsubmit)</title>
      <link>https://newline.tistory.com/122</link>
      <description>&lt;pre id=&quot;code_1591234258873&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;onsubmit : submit 이벤트가 발생했을때 체크 (서버로 전송 전에 데이터 체크)
            값이 올바른 경우에는 전송, 값이 올바르지 않은 경우에는 취소
            onsubmit=&quot;return false&quot; - 결과가 false라면 전송하지 않음&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591234361925&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
&amp;lt;form name=&quot;mForm&quot; action=&quot;a.html&quot; onsubmit=&quot;return doAction();&quot;&amp;gt;
	id: &amp;lt;input type=&quot;text&quot; name=&quot;id&quot; /&amp;gt;&amp;lt;br /&amp;gt;
	pass: &amp;lt;input type=&quot;password&quot; name=&quot;pass&quot; /&amp;gt;&amp;lt;br /&amp;gt;
	pass 확인: &amp;lt;input type=&quot;password&quot; name=&quot;pass2&quot; /&amp;gt;&amp;lt;br /&amp;gt;
	&amp;lt;button&amp;gt;확인&amp;lt;/button&amp;gt;
	&amp;lt;!-- type을 button으로 설정하면, 기본으로 submit이 되지 않는다 (사용자 정의 동작)--&amp;gt;
	&amp;lt;button type=&quot;button&quot; onclick=&quot;doAction2();&quot;&amp;gt;확인2&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;

&amp;lt;script&amp;gt;
	// 특정 엘리먼트의 값이 비어있는지 확인 후 값이 없으면 true, 아니면 false를 반환

	function isEmpty(obj, msg) {
		// obj가 문자열이라면 문자열에 해당하는 엘리먼트에 접근
		if (typeof obj == &quot;string&quot;) {
			obj = document.querySelector(&quot;#&quot; + obj);
		}
		if (obj.value == &quot;&quot;) {
			alert(msg);
			obj.focus();
			return true;
		}
		return false;
	}

	function doAction() {
		// 입력값이 잘못된 경우 false를 리턴

		/* 하나씩 접근할 경우 ..
		document.querySelector(&quot;input[name='id']&quot;);
		document.querySelector(&quot;input[name='pass']&quot;);
		document.querySelector(&quot;input[name='pass2']&quot;);
		*/

		// form name으로 바로 접근 - form 안에서 id 이름을 가진 엘리먼트에 접근
		//var idEle = document.mForm.id;
		var f = document.mForm; // f는 mForm을 가르킴

		if (isEmpty(f.id, &quot;아이디를 입력하세요!&quot;)) return false;
		if (isEmpty(f.pass, &quot;패스워드를 입력하세요!&quot;)) return false;
		if (isEmpty(f.pass2, &quot;패스워드 확인을 입력하세요!&quot;)) return false;

		if (f.pass.value != f.pass2.value) {
			// 입력값이 다를 경우 포커스는 첫번째 칸으로
			f.pass.focus();
			// 첫번째 칸에 벨류를 선택상태로
			f.pass.select();
			// 두번째 칸은 값을 지운다.
			f.pass2.value = &quot;&quot;;
			alert(&quot;패스워드가 서로 다릅니다.&quot;);
			return false;
		}
		return true;
	}

	function doAction2() {
		alert(&quot;확인2 눌렀음...&quot;);

		var f = document.mForm;
		if (isEmpty(f.id, &quot;아이디를 입력하세요!&quot;)) return;
		if (isEmpty(f.pass, &quot;패스워드를 입력하세요!&quot;)) return;
		if (isEmpty(f.pass2, &quot;패스워드 확인을 입력하세요!&quot;)) return;

		if (f.pass.value != f.pass2.value) {
			// 입력값이 다를 경우 포커스는 첫번째 칸으로
			f.pass.focus();
			// 첫번째 칸에 벨류를 선택상태로
			f.pass.select();
			// 두번째 칸은 값을 지운다.
			f.pass2.value = &quot;&quot;;
			alert(&quot;패스워드가 서로 다릅니다.&quot;);
			return false;
		}

		// 모든 입력값이 올바를때, 폼의 데이터를 서버로 전송 (submit)

		// 기본 form 액션에 설정된 페이지가 아닌 다른 페이지로 변경할 때
		f.action = &quot;bbb.html&quot;;
		// 폼을 서브밋 한다.
		f.submit();
	}
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과 (action 설정한 페이지는 없으므로 서브밋 성공시 에러 페이지가 뜨는것은 정상!)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-04 오전 10-47-56.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYR2rS/btqEC7y7xyK/XI1KzrxRQSBuLRWMEqx8v0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYR2rS/btqEC7y7xyK/XI1KzrxRQSBuLRWMEqx8v0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYR2rS/btqEC7y7xyK/XI1KzrxRQSBuLRWMEqx8v0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bYR2rS/btqEC7y7xyK/XI1KzrxRQSBuLRWMEqx8v0/img.gif&quot; data-filename=&quot;GIF 2020-06-04 오전 10-47-56.gif&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;401&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>Form</category>
      <category>JavaScript</category>
      <category>onsubmit</category>
      <category>자바스크립트</category>
      <category>폼데이터체크</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/122</guid>
      <comments>https://newline.tistory.com/122#entry122comment</comments>
      <pubDate>Thu, 4 Jun 2020 10:49:25 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 엘리먼트의 값 추가, 삭제(innerHTML, remove)</title>
      <link>https://newline.tistory.com/121</link>
      <description>&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591172442404&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
    &amp;lt;button onclick=&quot;doAdd();&quot;&amp;gt;추가&amp;lt;/button&amp;gt;
    &amp;lt;button onclick=&quot;doDel();&quot;&amp;gt;삭제&amp;lt;/button&amp;gt;
    &amp;lt;div id=&quot;list&quot;&amp;gt;&amp;lt;/div&amp;gt;

    &amp;lt;script&amp;gt;
        function doAdd() {
            var list = document.querySelector(&quot;#list&quot;);
            list.innerHTML += &quot;&amp;lt;h1&amp;gt;테스트&amp;lt;/h1&amp;gt;&quot;;

            // dom 방식은 create 사용
        }

        function doDel() {
            var h1 = document.querySelector(&quot;h1&quot;); // 제일 처음 찾은 h1 하나를 가져옴
            //h1.remove();
            //h1.parentNode.remove(); // h1의 부모인 div를 삭제
            h1.parentNode.innerHTML = &quot;&quot;; // h1 태그안의 내용을 삭제
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;737&quot; data-filename=&quot;GIF 2020-06-03 오후 5-20-21.gif&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mIRn1/btqECuVm2ad/LRJ0ch6WmFz6BZQseKkRe0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mIRn1/btqECuVm2ad/LRJ0ch6WmFz6BZQseKkRe0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mIRn1/btqECuVm2ad/LRJ0ch6WmFz6BZQseKkRe0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/mIRn1/btqECuVm2ad/LRJ0ch6WmFz6BZQseKkRe0/img.gif&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;737&quot; data-filename=&quot;GIF 2020-06-03 오후 5-20-21.gif&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>innerHTML</category>
      <category>JavaScript</category>
      <category>parentNode</category>
      <category>parentNode.innerHTML</category>
      <category>remove</category>
      <category>엘리먼트 값 수정</category>
      <category>자바스크립트</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/121</guid>
      <comments>https://newline.tistory.com/121#entry121comment</comments>
      <pubDate>Wed, 3 Jun 2020 17:21:54 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 엘리먼트의 속성 추출하기(getAttribute)</title>
      <link>https://newline.tistory.com/120</link>
      <description>&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591171219533&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
	&amp;lt;!-- on : 이벤트 click : 속성, onkeypress, onkeydown, onkeyfocus, onkeyup, onbler, onmousemove --&amp;gt;
	&amp;lt;button onclick=&quot;doAction();&quot; onk&amp;gt;확인&amp;lt;/button&amp;gt;
	&amp;lt;!-- msg같은 브라우저 표준이 아닌 속성일 경우 data-msg로 사용하면 표준속성처럼 사용됨 --&amp;gt;
	&amp;lt;div id=&quot;result&quot; data-msg=&quot;test&quot;&amp;gt;속성확인용...&amp;lt;/div&amp;gt;

	&amp;lt;script&amp;gt;
		function doAction() {
			var divObj = document.querySelector(&quot;div&quot;);
			// div 태그에서 id 속성의 값을 확인
			console.log(&quot;divObj.id : &quot;, divObj.id);
			console.log('divObj[&quot;id&quot;] : ', divObj[&quot;id&quot;]);
			console.log('divObj.getAttribute(&quot;id&quot;) : ', divObj.getAttribute(&quot;id&quot;));

			//console.log(&quot;id : &quot;, divObj.data-msg); // divObg.data - msg가 되기 때문에 &quot;&quot;로 묶어야함
			console.log('divObj[&quot;data-msg&quot;] : ', divObj[&quot;data-msg&quot;]); // undefined
			// 사용자정의속성은 setAttribute, getAttribute로 처리해야 정상적으로 사용 가능
			console.log('divObj.getAttribute(&quot;data-msg&quot;) : ', divObj.getAttribute(&quot;data-msg&quot;)); // test
		}
	&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xsEWb/btqEz0ojxO9/6xKmrgKjuy1VZkZkKDBv2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xsEWb/btqEz0ojxO9/6xKmrgKjuy1VZkZkKDBv2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xsEWb/btqEz0ojxO9/6xKmrgKjuy1VZkZkKDBv2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxsEWb%2FbtqEz0ojxO9%2F6xKmrgKjuy1VZkZkKDBv2K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>getAttribute</category>
      <category>JavaScript</category>
      <category>엘리먼트 속성 추출</category>
      <category>자바스크립트</category>
      <category>태그 속성 추출</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/120</guid>
      <comments>https://newline.tistory.com/120#entry120comment</comments>
      <pubDate>Wed, 3 Jun 2020 17:04:00 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 엘리먼트의 속성 추가하기 2 (setAttribute)</title>
      <link>https://newline.tistory.com/119</link>
      <description>&lt;pre id=&quot;code_1591169559255&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    Dom API를 활용한 속성 추가하기
    setAttribute(&quot;키&quot;, 벨류) &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591169571989&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
	&amp;lt;button onclick=&quot;doAdd();&quot;&amp;gt;추가&amp;lt;/button&amp;gt;
	&amp;lt;div id=&quot;list&quot;&amp;gt;&amp;lt;/div&amp;gt;

	&amp;lt;script&amp;gt;
		function doAdd() {
			var list = document.querySelector(&quot;#list&quot;);

			// &amp;lt;img msg=&quot;test&quot; width=&quot;&quot; height=&quot;&quot; src=&quot;&quot; /&amp;gt;
			// 자식이 없는 img 태그의 경우 속성을 추가
			var img = document.createElement(&quot;img&quot;);

			img.setAttribute(&quot;src&quot;, &quot;https://www.google.co.kr/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png&quot;);
			img.setAttribute(&quot;width&quot;, 200);
			img.setAttribute(&quot;height&quot;, 150);
			// 사용자 정의 속성 추가 가능
			img.setAttribute(&quot;msg&quot;, &quot;test&quot;);

			list.appendChild(img);
		}
	&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-03 오후 4-34-17.gif&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;737&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM1yza/btqECigwcq9/TWkB9kEyfKZhwJqhqemHwk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM1yza/btqECigwcq9/TWkB9kEyfKZhwJqhqemHwk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM1yza/btqECigwcq9/TWkB9kEyfKZhwJqhqemHwk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bM1yza/btqECigwcq9/TWkB9kEyfKZhwJqhqemHwk/img.gif&quot; data-filename=&quot;GIF 2020-06-03 오후 4-34-17.gif&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;737&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div id=&quot;gtx-trans&quot; style=&quot;position: absolute; left: 83px; top: 53px;&quot;&gt;
&lt;div class=&quot;gtx-trans-icon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>개발/JavaScript</category>
      <category>JavaScript</category>
      <category>setAttribute</category>
      <category>엘리먼트 속성 추가</category>
      <category>자바스크립트</category>
      <category>태그 속성 추가</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/119</guid>
      <comments>https://newline.tistory.com/119#entry119comment</comments>
      <pubDate>Wed, 3 Jun 2020 16:35:28 +0900</pubDate>
    </item>
    <item>
      <title>JavaScript - 엘리먼트의 속성 추가하기 1</title>
      <link>https://newline.tistory.com/118</link>
      <description>&lt;pre id=&quot;code_1591167978919&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;객체.속성명 = 값

사용자 정의속성은 추가되지 않는다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591168008375&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
	&amp;lt;button onclick=&quot;doAdd();&quot;&amp;gt;추가&amp;lt;/button&amp;gt;
	&amp;lt;div id=&quot;list&quot;&amp;gt;&amp;lt;/div&amp;gt;

	&amp;lt;script&amp;gt;
		function doAdd() {
			var list = document.querySelector(&quot;#list&quot;);

			// &amp;lt;img msg=&quot;test&quot; width=&quot;&quot; height=&quot;&quot; src=&quot;&quot; /&amp;gt;
			// 자식이 없는 img 태그의 경우 속성을 추가
			var img = document.createElement(&quot;img&quot;);
			img.src = &quot;https://www.google.co.kr/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png&quot;;
			img.width = 200;
			img.height = 150;

			// 사용자가 정의한 속성을 추가 - 브라우저에 추가되지 않음 (. 방식)
			img.msg = &quot;test&quot;;

			list.appendChild(img);
		}
	&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;GIF 2020-06-03 오후 4-09-49.gif&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;513&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwpdGm/btqEA1z1K5w/GPddIoC4Kwi6ZkJo5hZAOk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwpdGm/btqEA1z1K5w/GPddIoC4Kwi6ZkJo5hZAOk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwpdGm/btqEA1z1K5w/GPddIoC4Kwi6ZkJo5hZAOk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bwpdGm/btqEA1z1K5w/GPddIoC4Kwi6ZkJo5hZAOk/img.gif&quot; data-filename=&quot;GIF 2020-06-03 오후 4-09-49.gif&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;513&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>개발/JavaScript</category>
      <category>appendChild</category>
      <category>JavaScript</category>
      <category>엘리먼트 속성 추가</category>
      <category>자바스크립트</category>
      <category>태그 속성 추가</category>
      <author>뉴에이스</author>
      <guid isPermaLink="true">https://newline.tistory.com/118</guid>
      <comments>https://newline.tistory.com/118#entry118comment</comments>
      <pubDate>Wed, 3 Jun 2020 16:12:44 +0900</pubDate>
    </item>
  </channel>
</rss>