<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>riverlee1132의 공책</title>
    <link>https://ilsami.tistory.com/</link>
    <description>공부하는 UX/UI 디자이너 riverlee1132의 공책</description>
    <language>ko</language>
    <pubDate>Fri, 5 Jun 2026 16:45:03 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>1132</managingEditor>
    <item>
      <title>[바닐라JS] 연산자 기본</title>
      <link>https://ilsami.tistory.com/138</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;연산자&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 값에 특정 작업을 수행하라는 기호(ex: typeof, +, -)&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;알아두기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;true는 false보다 큰 값이다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거듭제곱, 곱하기, 나누기, 나머지 연산자가 더하기, 빼기보다 높다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소괄호가 없다면 ! 연산자는 &amp;lt; 연산자보다 높다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;연산자의 우선순위&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1) +와 -&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 연산자를 사용할 때는 숫자보다 문자열이 우선&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;gt; '1' + 0;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt; 10&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 연산자를 사용할 때는 자료형이 숫자로 형 변환된 후 빼기됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; '5' - 1;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt; 4&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;2) 더하기보다 곱하기의 우선 순위가 높다&lt;/b&gt; &amp;rarr; 더하기를 먼저 하고 싶다면 소괄호()로 감싼다&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;3) 부동소수점 문제&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt; 0.1 + 0.2;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt; 0.30000000000000004&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;gt; (0.1 * 10 - 0.2 * 10) / 10;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt; 0.3&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;4) 비교 연산자 &amp;lt;&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;== 양쪽 값이 같은지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=== 양쪽 값이 같은지, 자료형까지 같은지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;!= 양쪽 값이 다른지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;!== 양쪽 값이 다른지, 자료형까지 다른지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;첫 문자가 같은 글자&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;첫 문자를 빼고 나머지를 비교&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;한쪽에 두 번째 문자가 없는 경우&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다음 문자가 존재하는 문자열의 값이 더 큼&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;문자열과 숫자의 크기를 비교할 경우 숫자가 아닌 자료형이 숫자로 형 변환된 후 비교함&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;5) 문자의 번호 알아보기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;문자열.charCodeAt();&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;b&gt;6) 논리 연산자&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;amp;&amp;amp; 그리고 : 앞의 값이 참이면 뒤의 값을 결과로, 앞의 값이 거짓이면 앞의 값을 결과로&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #474747; text-align: start;&quot;&gt;||&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;또는 : 앞의 값이 참이면 앞의 값을 결과로, 앞의 값이 거짓이면 뒤의 값을 결과로&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;! 참을 거짓으로, 거짓을 참으로 만드는 연산자&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;?? 널 병합 연산자: 앞의 값이 null이나 undefined면 뒤의 값을 결과로, null도 undefined도 아니면 앞의 값을 결과로&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;gt; !!'a';&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt; true&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;불 값으로 형 변환했을 때 false가 되는 값(거짓인 값)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;!!false&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;!!''&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;!!0&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;!!NaN&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;undefined&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;null&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7) 빈 값&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;undefined: 값이자 자료형, false와 같지 않다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;null: 값이자 자료형, false와 같지 않다, object 버그 있음&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;undefined와 null은 같지 않다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;undefined는 기본 값의 의미가 있지만 null은 아무 것도 없다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/138</guid>
      <comments>https://ilsami.tistory.com/138#entry138comment</comments>
      <pubDate>Sat, 19 Jul 2025 22:22:05 +0900</pubDate>
    </item>
    <item>
      <title>welcome</title>
      <link>https://ilsami.tistory.com/pages/welcome</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;메인페이지&lt;/p&gt;</description>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/pages/welcome</guid>
      <pubDate>Thu, 6 Apr 2023 14:27:53 +0900</pubDate>
    </item>
    <item>
      <title>[php] 기초 내용 메모</title>
      <link>https://ilsami.tistory.com/130</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;공통&lt;/b&gt;&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;정수(음수와 양수)는 integer, 산술&amp;nbsp;연산자(+, -, *, /)는 Arithmetic operator라고 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따옴표를 문자로 사용하고 싶다면 백슬래시(\)로 감싼다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 프로그램은 시간의 순서대로 실행된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 수업의 목적&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP를 사용하면 사용자에게는 똑같은 화면이지만, 코드는 훨씬 효율적으로 변한다.&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;http://111.1.1.1/index.php?id=HTML&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;http://111.1.1.1/index.php?id=CSS&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;http://111.1.1.1/index.php?id=JavaScript&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;index.php라는 하나의 파일로 3개의 웹페이지를 표시한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;?id가 HTML인지, CSS인지, JS인지에 따라서 index.php에서 출력하는 것이 달라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index.php 파일이 데이터를 받아오는 파일에 새 파일을 추가하면 php에 자동으로 반영된다.&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;PHP 사용 = 효율성, 생산성 향상!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. PHP 설치&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bitnami를 통해 WAMP를 설치 했다면 이미 PHP를 설치한 상태다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. PHP의 원리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 브라우저 &amp;lt;-&amp;gt; 웹 서버(아파치) &amp;lt;-&amp;gt; php프로그램&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;lt;body&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;?php echo ?&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;/body&amp;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;?php 는 php 문법이 시작된다는 의미이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo는 어떤 형태의 데이터인지 상관 없이 화면에 출력하기 위한 명령&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;이 내용을 php 프로그램이 해석해서 웹 서버에 돌려주고, 웹 서버는 받은 내용을 브라우저에 출력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;html은 정적이며 php는 동적이다.&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;php 파일 안에 작성은 html 형식으로 틀을 만들고 그 안에 php 문법을 쓴다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. PHP의 데이터 타입(숫자와 문자)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;php는 컴퓨터 프로그래밍 언어이며&amp;nbsp;프로그래밍 언어를 배우는 이유는 데이터를 어떤 의도에 따라 처리하기 위함이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 php 파일에 데이터를 입력하려면 &amp;lt;?php ?&amp;gt;를 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1) 숫자 표현&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&amp;nbsp;?&amp;gt; 안에 아래 내용을 입력한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력하기 echo 1; 또는 print(1);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연산하기&amp;nbsp;echo 1+1;&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;2) 문자(문자열) 표현 string&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따옴표 문자 처리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php echo &quot;Hello \&quot;w\&quot;orld&quot;; ?&amp;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;문자의 결합(concatenation operator) dot&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;lt;?php echo &quot;Hello&quot;.&quot;world&quot;; ?&amp;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;함수를 사용하고 싶다면 echo - 함수 - (&quot;문자&quot;) 순서로 작성한다. (예시: 문자 갯수 확인하기)&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;lt;?php echo strlen(&quot;Hello world&quot;); ?&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!--?php echo &quot;Hello \&quot;w\&quot;ord&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;size18&quot;&gt;&lt;b&gt;5. 변수(variable)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수 앞에는 달러($)를 붙인다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$a = 10;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo $a+1;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;?&amp;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;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$name = &quot;river&quot;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo &quot;alphabet a b c d e river f g h i&quot;.$name;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;?&amp;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;alphabet a b c d e river f g h i&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;$name의 값을 jellybbi로 바꾸면&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;alphabet a b c d e jellybbi f g h i&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;size18&quot;&gt;&lt;b&gt;6. URL 파라미터&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 소프트웨어들은 그 특성에 따라 입력과 출력이 다르다.&amp;nbsp;php는 데스크탑 어플리케이션을 위한게 아니라 웹 어플리케이션을 위한 언어이다. 브라우저에 뜬 웹 화면 url의 주소에 적혀있는 글자(전세계 공통 규칙)를 활용하여 데이터를 바꿀 수 있다.&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;url에서 php? 이하 내용은 파라미터라고 부르는 입력값이고&amp;nbsp;&amp;amp;는 구분자 엔퍼센드&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;php코드에서는 약속된 특수 변수 $_GET[''];를 사용한다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입력할 값:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;address 서울시&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;name 젤리삐&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;url주소:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;111.0.0.1/parameter.php?name=젤리삐&amp;amp;address=서울시&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코드:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요. &amp;lt;?php echo $_GET['address']; ?&amp;gt;에 사는 &amp;lt;?php echo $_GET['name']; ?&amp;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;출력:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요. 서울시에 사는 젤리삐님&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;size18&quot;&gt;&lt;b&gt;7. 함수&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 strlen이라는 함수는 작은 프로그램이나 마찬가지이다.&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;&amp;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$str = &quot;뒷목 아프다&quot;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo strlen($str);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;?&amp;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;html에서는 빈행을 입력해도 인식되지 않고 줄바꿈 &amp;lt;br&amp;gt; 태그를 입력해주어야 하지만 php에서는&amp;nbsp;nl2br 함수를 입력해두면 빈행을 자동으로 줄바꿈을 처리해준다&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;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$str = &quot;뒷목 아프다&quot;;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;echo nl2br($str);&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;?&amp;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;&lt;b&gt;함수 활용&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL의 파라미터 값을 가져오자&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;lt;h2&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo $_GET['id'];&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;?&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;/h2&amp;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;data 폴더를 만들어 일반 파일로 본문을 넣는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&lt;span&gt;&amp;nbsp;&lt;/span&gt;echo data/id 값에 해당하는 파일의 내용;?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 필요하므로&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드:&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;h2&amp;gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;echo $_GET['id'];&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;file_get_contents('./data/&quot;.$_GET['id']);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;?&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://opentutorials.org/course/3130/19342&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://opentutorials.org/course/3130/19342&lt;/a&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;이건 이해를 위한 예시고 보안, 규모 문제로 file_get_contents 같은것을 쓰면 안된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8. 데이터타입2: 불리언과 비교연산자&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제어문을 이해하기 위한 필수 선행 정보&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자 string의 데이터 양: 유한&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자인 integer의 데이터 양: 무한&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불리언: 단 두개. true or false&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;php의 비교연산자: &lt;a href=&quot;http://php.adamharvey.name/manual/kr/language.operators.comparison.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://php.adamharvey.name/manual/kr/language.operators.comparison.php&lt;/a&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;유용한 함수 var_dump&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;&lt;b&gt;9. 제어문(조건문, 반복문)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 조건문 if / elseif / else if&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL에 ?id값이 없다면 정보A가 나오고 ?id값이 있다면 정보B가 나오도록 만들자&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;1-1) 형식&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if(expr)&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&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;expr 은 expression으로 값이 온다는 의미&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;코드:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo '1&amp;lt;br&amp;gt;';&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo '2&amp;lt;br&amp;gt;';&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo '3&amp;lt;br&amp;gt;';&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;?&amp;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;출력:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3&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에 불리언 타입(true, false)을 넣어보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if뒤에 오는 코드가 true라면 첫번째 중괄호를 실행한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if뒤에 오는 코드가 false라면 else 뒤에 있는 중괄호를 실행한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; if 조건문이 제어문인 이유&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;코드 수정:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;echo '1&amp;lt;br&amp;gt;';&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;if(false){&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;echo '2-1&amp;lt;br&amp;gt;';&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;} else{&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;echo '2-2&amp;lt;br&amp;gt;';&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;}&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;echo '3&amp;lt;br&amp;gt;';&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;?&amp;gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;출력:&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2-2&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3&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;1-2) 활용&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 id 값이 있다면 echo $_GET['id'];&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;없다면 echo &quot;welcome&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코드:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;h2&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;?php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if(){&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo $_GET['id'];&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;} else {&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo &quot;welcome&quot;;&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;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;/h2&amp;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;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/130</guid>
      <comments>https://ilsami.tistory.com/130#entry130comment</comments>
      <pubDate>Tue, 21 Mar 2023 11:12:01 +0900</pubDate>
    </item>
    <item>
      <title>[바닐라JS] JS가 유저의 행동 여부를 알 수 있는 방법</title>
      <link>https://ilsami.tistory.com/121</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* JS : Vanilla Java Script를 사용합니다&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;대표적인 HTML의 '클릭'은 input 태그와 button 태그&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. HTML&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 input 태그가 쓰이는 모양은 아래와 같다&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675066061659&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;form&amp;gt;
    &amp;lt;input type=&quot;text&quot;&amp;gt;텍스트&amp;lt;/input&amp;gt;
    &amp;lt;button&amp;gt;버튼&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. HTML 태그를 JS로 불러오기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML 작성 후에는 form 태그 안에 있는 input과 button을 JS로 불러온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675066222991&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const loginForm = document.getElementByID(&quot;login-form&quot;);
const loginInput = loginInform.querySelector(&quot;input&quot;);
const loginButton = loginForm.querySelector(&quot;button&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 input 태그에 값을 입력하고 button을 클릭 했을 때 페이지에 출력(console.log)이 되어야 한다.&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 이벤트 작업&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 값을 전송해주는 매개체인 버튼에 Click 이벤트가 발생하는 것이므로&lt;/p&gt;
&lt;pre id=&quot;code_1675066414000&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;loginButton.addEventListener(&quot;click&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) function 자리를 마련해주자&lt;/p&gt;
&lt;pre id=&quot;code_1675066517201&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function onBtnClick(){

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3)지금까지 입력한 것을 한 파일에 끼워맞춰준다&lt;/p&gt;
&lt;pre id=&quot;code_1675066545169&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const loginForm = document.getElementByID(&quot;login-form&quot;);
const loginInput = loginInform.querySelector(&quot;input&quot;);
const loginButton = loginForm.querySelector(&quot;button&quot;);

function onBtnClick(){
}

loginButton.addEventListener(&quot;click&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 값 받아오기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;페이지에서 사용자가 input 태그에 값을 입력한 값이 버튼을 클릭 했을 때 JS로 전달되어야 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자리를 마련해두었던 function에 값을 받아오는 코드 하나를 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1675066842851&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;console.log(loginInput.value);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;콘솔창을 켜고 input 태그에 값을 입력하면 내가 입력한 내용이 콘솔창에 표시되는 것을 알 수 있다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1675066921274&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const loginForm = document.getElementByID(&quot;login-form&quot;);
const loginInput = loginInform.querySelector(&quot;input&quot;);
const loginButton = loginForm.querySelector(&quot;button&quot;);

function onBtnClick(){
	console.log(loginInput.value);
}

loginButton.addEventListener(&quot;click&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/121</guid>
      <comments>https://ilsami.tistory.com/121#entry121comment</comments>
      <pubDate>Mon, 30 Jan 2023 17:22:10 +0900</pubDate>
    </item>
    <item>
      <title>[CSS] transition</title>
      <link>https://ilsami.tistory.com/106</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;css transition들은 시작 - 종료까지 특정 속성의 변화만 보여준다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 루프(반복)을 시각화하기 위해서는 css animation을 참고&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;transition-property&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;css 속성 이름 명시&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;transition-duration&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트랜지션이 일어나는 지속 시간 0.5s ~&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;trasition-timing-function&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간값을 계산하는 방법을 정의하는 함수 명시&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cubic bezier의 4개 꼭짓점으로 정의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ease, linear, step-end, steps(4, end)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;트랜지션을 완료 후에 발생하는 이벤트 감지하기 transitioned&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;propertyName&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트랜지션이 완료된 속성의 이름을 나타내는 문자열&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이벤트는 자바스크립트에서 element.addEventListener() 메소드로 모니터링&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이름.addEventListener(&quot;transitioned&quot;, updateTransition, true);&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions&lt;/a&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/106</guid>
      <comments>https://ilsami.tistory.com/106#entry106comment</comments>
      <pubDate>Tue, 17 Jan 2023 11:54:52 +0900</pubDate>
    </item>
    <item>
      <title>[바닐라JS] 클릭하면 컬러 변경</title>
      <link>https://ilsami.tistory.com/89</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 &lt;a href=&quot;https://ilsami.tistory.com/87&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;글자를 바꾸는 실습&lt;/a&gt;에 이어, 이번에는 컬러 바꾸는거 도전&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글자가 black이었다가 blue로 바뀐다&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 class=&quot;codepen&quot; style=&quot;height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;&quot; data-height=&quot;300&quot; data-default-tab=&quot;html,result&quot; data-slug-hash=&quot;oNMzWLV&quot; data-user=&quot;riverlee1132&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;See the Pen &lt;a href=&quot;https://codepen.io/riverlee1132/pen/oNMzWLV&quot;&gt; Untitled&lt;/a&gt; by riverlee1132 (&lt;a href=&quot;https://codepen.io/riverlee1132&quot;&gt;@riverlee1132&lt;/a&gt;) on &lt;a href=&quot;https://codepen.io&quot;&gt;CodePen&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;script src=&quot;https://cpwebassets.codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/89</guid>
      <comments>https://ilsami.tistory.com/89#entry89comment</comments>
      <pubDate>Wed, 4 Jan 2023 16:34:34 +0900</pubDate>
    </item>
    <item>
      <title>[CSS] 네이버 블로그에 위젯 달기</title>
      <link>https://ilsami.tistory.com/88</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;네이버블로그는 꾸미는 기능이 티스토리에 비해 굉장히 제한적이다. 예전보다는 좋아지긴 했는데 여전히 레이아웃에 제한이 많다. 그나마 사용자가 선택할 수 있는 옵션 중에서는 위젯을 붙이는 것 정도 ...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-01-04 15.45.47.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TtqLk/btrVhS8z9gZ/z4AhdndaFlUG1aobKaB7kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TtqLk/btrVhS8z9gZ/z4AhdndaFlUG1aobKaB7kk/img.png&quot; data-alt=&quot;이런 배너를 만들어서 넣었다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TtqLk/btrVhS8z9gZ/z4AhdndaFlUG1aobKaB7kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTtqLk%2FbtrVhS8z9gZ%2Fz4AhdndaFlUG1aobKaB7kk%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;288&quot; height=&quot;215&quot; data-filename=&quot;스크린샷 2023-01-04 15.45.47.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;366&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이런 배너를 만들어서 넣었다&lt;/figcaption&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;관리 &amp;gt; 꾸미기 설정 &amp;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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-01-04 15.40.10.png&quot; data-origin-width=&quot;382&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnjYAZ/btrVo4e5pQR/ukx1HvKoFU6z77kROiFpyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnjYAZ/btrVo4e5pQR/ukx1HvKoFU6z77kROiFpyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnjYAZ/btrVo4e5pQR/ukx1HvKoFU6z77kROiFpyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnjYAZ%2FbtrVo4e5pQR%2Fukx1HvKoFU6z77kROiFpyk%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;169&quot; height=&quot;558&quot; data-filename=&quot;스크린샷 2023-01-04 15.40.10.png&quot; data-origin-width=&quot;382&quot; data-origin-height=&quot;558&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;레이아웃 위젯 설정 가장 아래에 &amp;lt;위젯 직접 등록&amp;gt; 버튼이 있다.&amp;nbsp;&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-01-04 15.40.51.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWWGOf/btrVpCCpRyd/0e76k7kQ0KwWKTo3iLS9tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWWGOf/btrVpCCpRyd/0e76k7kQ0KwWKTo3iLS9tk/img.png&quot; data-alt=&quot;아니 네이버 블로그에 위젯 달 수 있게 된지가 언젠데 아직도 'BETA'를 붙이고 있는건지...ㅋㅋㅋ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWWGOf/btrVpCCpRyd/0e76k7kQ0KwWKTo3iLS9tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWWGOf%2FbtrVpCCpRyd%2F0e76k7kQ0KwWKTo3iLS9tk%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;253&quot; height=&quot;350&quot; data-filename=&quot;스크린샷 2023-01-04 15.40.51.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아니 네이버 블로그에 위젯 달 수 있게 된지가 언젠데 아직도 'BETA'를 붙이고 있는건지...ㅋㅋㅋ&lt;/figcaption&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-01-04 15.42.02.png&quot; data-origin-width=&quot;1036&quot; data-origin-height=&quot;822&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RwWGQ/btrVjR81Jto/BsQSuiIz77nly1VL5uTD5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RwWGQ/btrVjR81Jto/BsQSuiIz77nly1VL5uTD5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RwWGQ/btrVjR81Jto/BsQSuiIz77nly1VL5uTD5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRwWGQ%2FbtrVjR81Jto%2FBsQSuiIz77nly1VL5uTD5K%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;450&quot; height=&quot;822&quot; data-filename=&quot;스크린샷 2023-01-04 15.42.02.png&quot; data-origin-width=&quot;1036&quot; data-origin-height=&quot;822&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;HTML과 CSS를 입력하면 되는데, CSS를 별도로 입력하는 구조가 아니라서 인라인 구조로 작성한다.&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-01-04 15.44.56.png&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;760&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfY5YS/btrVpudqjMC/Gf89DMfAVfnCosDkYbxwRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfY5YS/btrVpudqjMC/Gf89DMfAVfnCosDkYbxwRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfY5YS/btrVpudqjMC/Gf89DMfAVfnCosDkYbxwRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfY5YS%2FbtrVpudqjMC%2FGf89DMfAVfnCosDkYbxwRk%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;354&quot; height=&quot;272&quot; data-filename=&quot;스크린샷 2023-01-04 15.44.56.png&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;760&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;위젯 코드 &amp;darr;&lt;/p&gt;
&lt;p class=&quot;codepen&quot; style=&quot;height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;&quot; data-height=&quot;300&quot; data-default-tab=&quot;html,result&quot; data-slug-hash=&quot;rNKJGqW&quot; data-user=&quot;riverlee1132&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;See the Pen &lt;a href=&quot;https://codepen.io/riverlee1132/pen/rNKJGqW&quot;&gt; 네이버 블로그 링크 위젯&lt;/a&gt; by riverlee1132 (&lt;a href=&quot;https://codepen.io/riverlee1132&quot;&gt;@riverlee1132&lt;/a&gt;) on &lt;a href=&quot;https://codepen.io&quot;&gt;CodePen&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;script src=&quot;https://cpwebassets.codepen.io/assets/embed/ei.js&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/88</guid>
      <comments>https://ilsami.tistory.com/88#entry88comment</comments>
      <pubDate>Wed, 4 Jan 2023 15:51:41 +0900</pubDate>
    </item>
    <item>
      <title>[바닐라JS] 클릭하면 텍스트 변경</title>
      <link>https://ilsami.tistory.com/87</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;HTML&lt;/p&gt;
&lt;pre id=&quot;code_1672814071798&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;section id=&quot;part&quot;&amp;gt;
  &amp;lt;span&amp;gt;안녕하세요&amp;lt;/span&amp;gt;
  &amp;lt;button type= &quot;button&quot; id=&quot;go&quot;&amp;gt;클릭!&amp;lt;/button&amp;gt;
&amp;lt;/section&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSS&lt;/p&gt;
&lt;pre id=&quot;code_1672814084429&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;section{
  text-align:center;
  margin-top: 7%;
}

span{
  font-size: 60px;
  display:block;
}

button{
  width: 60px;
  height: 34px;
  margin-top: 30px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JS&lt;/p&gt;
&lt;pre id=&quot;code_1672814097962&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const text = document.querySelector(&quot;#part span&quot;);
const btn = document.querySelector(&quot;#go&quot;);

function change(){
  text.innerText = '피카츄입니다'
}

btn.addEventListener(&quot;click&quot;, function(change){
  if(text.innerText === '안녕하세요'){
    text.innerText = '피카츄입니다';
  } else text.innerText = '안녕하세요';
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버튼을 클릭하면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요 &amp;gt; 피카츄입니다 &amp;gt; 안녕하세요 &amp;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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2023-01-04 15.35.33.png&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;482&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbMobP/btrVjmuFMSz/UFHKsRE2HzmJ5RNWsK6kV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbMobP/btrVjmuFMSz/UFHKsRE2HzmJ5RNWsK6kV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbMobP/btrVjmuFMSz/UFHKsRE2HzmJ5RNWsK6kV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbMobP%2FbtrVjmuFMSz%2FUFHKsRE2HzmJ5RNWsK6kV1%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;549&quot; height=&quot;203&quot; data-filename=&quot;edited_스크린샷 2023-01-04 15.35.33.png&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;482&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/87</guid>
      <comments>https://ilsami.tistory.com/87#entry87comment</comments>
      <pubDate>Wed, 4 Jan 2023 15:36:20 +0900</pubDate>
    </item>
    <item>
      <title>화면에서 사용하는 단위</title>
      <link>https://ilsami.tistory.com/58</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;픽셀&lt;/b&gt;&lt;br /&gt;단순히&amp;nbsp;화면의&amp;nbsp;크기에&amp;nbsp;영향을&amp;nbsp;받는게&amp;nbsp;아니라&amp;nbsp;화면의&amp;nbsp;밀도에&amp;nbsp;영향을&amp;nbsp;받는다.&amp;nbsp;같은&amp;nbsp;크기의&amp;nbsp;화면이더라도&amp;nbsp;화면의&amp;nbsp;밀도가&amp;nbsp;높은&amp;nbsp;화면에서는&amp;nbsp;오브젝트가&amp;nbsp;작게,&amp;nbsp;밀도가&amp;nbsp;낮은&amp;nbsp;화면에서는&amp;nbsp;오브젝트가&amp;nbsp;크게&amp;nbsp;보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;ppi&lt;/b&gt;&lt;br /&gt;1인치당&amp;nbsp;표시되는&amp;nbsp;픽셀의&amp;nbsp;수.&amp;nbsp;화면&amp;nbsp;1인치당&amp;nbsp;픽셀의&amp;nbsp;수가&amp;nbsp;높을&amp;nbsp;수록&amp;nbsp;밀도가&amp;nbsp;높고,&amp;nbsp;픽셀의&amp;nbsp;수가&amp;nbsp;적을&amp;nbsp;수록&amp;nbsp;밀도가&amp;nbsp;낮다.&amp;nbsp;가로&amp;nbsp;픽셀&amp;nbsp;수,&amp;nbsp;세로&amp;nbsp;픽셀&amp;nbsp;수를&amp;nbsp;곱한&amp;nbsp;'면'이&amp;nbsp;'해상도'가&amp;nbsp;된다.&amp;nbsp;&lt;br /&gt;ex:&amp;nbsp;FHD&amp;nbsp;크기인&amp;nbsp;1920&amp;nbsp;x&amp;nbsp;1080&amp;nbsp;해상도는&amp;nbsp;가로&amp;nbsp;1920픽셀,&amp;nbsp;세로&amp;nbsp;1080&amp;nbsp;픽셀이므로&amp;nbsp;약&amp;nbsp;210만&amp;nbsp;픽셀을&amp;nbsp;가지고&amp;nbsp;있다.&lt;br /&gt;&lt;br /&gt;즉,&amp;nbsp;모니터의&amp;nbsp;해상도가&amp;nbsp;높아질&amp;nbsp;수록&amp;nbsp;내가&amp;nbsp;디자인한&amp;nbsp;100px이&amp;nbsp;작게&amp;nbsp;보이는&amp;nbsp;것이다.&amp;nbsp;우리가&amp;nbsp;흔히&amp;nbsp;'고화질&amp;nbsp;이미지'라고&amp;nbsp;하는&amp;nbsp;파일들의&amp;nbsp;해상도를&amp;nbsp;보면&amp;nbsp;가로&amp;nbsp;2560&amp;nbsp;이상인&amp;nbsp;것이&amp;nbsp;많은데&amp;nbsp;그만큼&amp;nbsp;이미지가&amp;nbsp;표현할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;픽셀이&amp;nbsp;많아서&amp;nbsp;더&amp;nbsp;세밀한&amp;nbsp;표현을&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있다는&amp;nbsp;의미이다.&amp;nbsp;어도비&amp;nbsp;일러스트레이터로&amp;nbsp;새&amp;nbsp;문서를&amp;nbsp;만들&amp;nbsp;때&amp;nbsp;ppi를&amp;nbsp;선택하도록&amp;nbsp;되어&amp;nbsp;있는데&amp;nbsp;일러스트레이터&amp;nbsp;또는&amp;nbsp;디자이너가&amp;nbsp;위와&amp;nbsp;같은&amp;nbsp;이유&amp;nbsp;때문에&amp;nbsp;150ppi,&amp;nbsp;300ppi로&amp;nbsp;작업하게&amp;nbsp;된다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;dp&lt;/b&gt;&lt;br /&gt;화면&amp;nbsp;밀도에&amp;nbsp;따라&amp;nbsp;다른&amp;nbsp;비율로&amp;nbsp;보이는&amp;nbsp;픽셀과는&amp;nbsp;다르게,&amp;nbsp;동일한&amp;nbsp;비율로&amp;nbsp;표시해주는&amp;nbsp;단위이다.&amp;nbsp;안드로이드&amp;nbsp;OS에서&amp;nbsp;사용한다.&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/58</guid>
      <comments>https://ilsami.tistory.com/58#entry58comment</comments>
      <pubDate>Wed, 7 Dec 2022 14:40:38 +0900</pubDate>
    </item>
    <item>
      <title>[머티리얼] large screens</title>
      <link>https://ilsami.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://m3.material.io/foundations/adaptive-design/large-screens/overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;머티리얼 디자인3 스크린 페이지&lt;/a&gt; 내용 읽으면서 요약&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;0. Design for large screens&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;landscape(가로)와 portrait(세로) 방향의 디바이스를 위한 설계. 레이아웃 그리드를 조정할 때 내용과 요소들을 디바이스의 크기에 맞춰 유동적으로 사용할 수 있는 컬럼으로 나눈다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1.반응형 레이아웃 그리드&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.1. 컬럼, 거터 그리고 마진&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반응형 컬럼 그리드는 body 영역 안에 있는 요소들의 편리한 레이아웃 구조를 위해 컬럼, 거터 그리고 마진으로 만들어졌다. 스크린 크기와 방향에 따른 논리적이고 일관된(logical and consistent) 레이아웃 경험을 만들기 위해 컬럼 그리드에 컴포넌트, 이미지 그리고 텍스트가 정렬된다. body 영역의 크기가 커지거나 줄어들면(grows or shrinks) 그리드 컬럼의 수가 그에 따라 변한다.&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;1.2. 구분점(breakpoints)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구분점은 반응형 레이아웃 요구사항을 준수하는 스크린의 크기를 정의한다. 머티리얼의 구분점 범위는 레이아웃에 사용된 거터값 뿐만 아니라 컬럼과 마진의 갯수를 고려한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;Breakpoint range&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;Portrait&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;Landscape&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;Window size class&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;Columns&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;Minimum margins&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머티리얼 디자인의 대부분 구성요소는 8dp 단위로 크기가 조정되고 나열되므로 일관된 시각적 리듬을 제공한다. Smaller&amp;nbsp;elements,&amp;nbsp;such&amp;nbsp;as&amp;nbsp;icons,&amp;nbsp;can&amp;nbsp;align&amp;nbsp;to&amp;nbsp;a&amp;nbsp;4dp&amp;nbsp;grid,&amp;nbsp;while&amp;nbsp;typography&amp;nbsp;can&amp;nbsp;fall&amp;nbsp;on&amp;nbsp;a&amp;nbsp;4dp&amp;nbsp;baseline&amp;nbsp;grid.&amp;nbsp;This&amp;nbsp;allows&amp;nbsp;each&amp;nbsp;line&amp;rsquo;s&amp;nbsp;typographic&amp;nbsp;baseline&amp;nbsp;to&amp;nbsp;be&amp;nbsp;spaced&amp;nbsp;in&amp;nbsp;increments&amp;nbsp;of&amp;nbsp;4dp&amp;nbsp;from&amp;nbsp;a&amp;nbsp;neighbor.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 레이아웃 구조(anatomy)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;큰 화면 레이아웃은 다음 3가지 주요 영역을 포함한다. 내비게이션, 앱 바, body&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;2.1. 내비게이션&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내비게이션에는 drawer 또는 rail과 같은 탐색 목적의 구성요소들이 있다. 내비게이션 영역은 확장시 360dp, 축소시 80dp의 폭을 일정하게 유지한다. 레이아웃의 여백이 48dp 미만이면 탐색 영역에 맞게 본체 영역의 너비가 줄어들 수 있다. (예: 화면 너비 600 - 839dp)&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;2.2. Body&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;body 영역은 3가지 파라미터에 따른 크기 조절 값을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vertical and Horizontal dimensions, Number of columns, Margins&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;ex: 가장 작은 구분점에서 마진은 16dp 값을 가진다. 레이아웃 크기가 증가하면 body 섹션이 화면 너비에 비례하여 확장되는데 이 때 첫번째 구분점(small; 600dp width)에 도달하면 마진이 32dp로 증가한다. body의 너비가 840dp가 되면 마진은 최대 200dp로 증가한다. 최대 너비에 닿으면, body 영역은 다시 한번 반응하여 수평으로 계속 scale 된다.&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;2.3. Containment&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Containment는 이미지와 캡션 같은 내용을 공유하는 관련 요소들을 연결하는 방법이다. 요소들을 시각적으로 연결하고 관련 없는 요소와 구별하기 위해 경계를 설정하는 그룹핑의 형태이다.&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;암묵적 및 명시적 containment&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;암묵적 containment는 암시적인 boundary 또는 container를 부여하는 내용을 그룹핑한다. 암묵적인 containment를 사용하여 콘텐트를 그룹화하고 여러 요소에 미묘한 결합력을 부여한다.&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;명시적 containment는 컨테이너의 boundaries를 보여주고 해당 항목을 '탭' 할 수 있음을 보여준다. 또한 무언가를 강조하기 위해서도 쓰인다. 명시적 containment 방법에는 그룹 아웃라인과 elevation 레벨을 추가하는 것을 포함한다.&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;컨테이너 텍스트&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;When adapting for large screens, apply fluid container dimensions to components that contain type so, allowing typography to adjust.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;컨테이너 속성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨테이너가 다른 스크린 크기에 맞게 조절되므로 컨테이너의 위치와 정렬을 고려해야 한다. 컨테이너와 그 요소들은 부모 컨테이너의 scale에 따라 좌, 우 또는 중앙으로 정렬될 수 있다. 고정 위치도 가능하다.&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;컨테이너들은 다른 컨테이너 안에 배치될 수 있다. (body 컨테이너 안에 카드와 캐러샐이 함께 있거나 카드 안에 리스트 아이템이 있는 것처럼)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. Component adaptation&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시각적 presentation에 대한 변화를 묘사한다. (padding, 크기, 레이아웃, 정렬) 또는 다른 구성 요소로 전환하여 디바이스의 크기와 사용 케이스에 적합하게 만든다. (ex: 동일한 요소지만 접은 세로 화면 뷰와 접지 않은 가로 뷰에서 각각 다른 모습을 가진다.)&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;레이아웃 컨테이너 또는 컴포넌트의 크기를 늘리거나 줄일 때, 그 위치와 정렬이 바뀌는 것을 고려해야 한다. 내부 요소들은 부모 컨테이너의 scale에 따라 왼쪽, 오른쪽 또는 중앙에 모서리에 맞추거나 고정 위치를 가질 수도 있다. (ex: 내비게이션 drawer에 있는 FAB)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* FAB: floating action button&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;b&gt;3.1. Visual presentation&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;visual presentation은 가장 공통적인 adaptaion 방법이다. 모바일 디바이스의 텍스트 목록은 태블릿과 같은 더 큰 화면에 잘 맞도록 마진, 수직 간격, 밀집도를 조정할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3.2. Component swapping&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레이아웃이 화면의 크기에 따라 변경되므로 유사한 기능을 가진 요소를 교환할 수 있다. 이 것이 큰 규모의 변화를 위한 레이아웃을 조정할 수 있게 한다. (ex: 작은 화면에서 큰 화면으로 바뀔 때 기능과 기본 콘텐츠의 노출을 유지하면서 다른 다이얼로그 유형으로 바꿀 수 있다.)&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;3.3. Component group&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구성요소를 교환할 때는 구성요소 그룹 목록에서 기능적으로 동일한지 확인한 후 교환한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;Component Type&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;Mobile Option&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;Tablet and Foldable Option&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;Laptop Option&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. Canonical layouts&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 가지 표준&amp;nbsp; 레이아웃을 사용하여 공통 요소를 구성할 수 있다. 각 레이아웃은 공통 사례와 구성 요소를 고려하여 앱이 화면 크기와 구분점에 맞추는 방법을 해결한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;4.1. 목록 세부 정보 보기(List-detail view) 레이아웃&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;&lt;b&gt;사례&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;문자 메시지 + 대화&lt;/li&gt;
&lt;li&gt;파일 브라우저 + 폴더 열기&lt;/li&gt;
&lt;li&gt;뮤지컬 아티스트 + 앨범 상세&lt;/li&gt;
&lt;/ul&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;목록 세부 정보 보기는 콘텐츠를 검색하고 세부 정보를 빠르게 보는 것에 적합하고 정보 계층(information hierarchies)을 지원한다. 두 개의 컬럼을 사용하는데 한 컬럼은 목록 또는 아이템 그룹을 위한 것이고 다른 하나는 상세 보기를 위한 영역이다. 두 영역을 나눌 때 작은 창의 크기에서는 동일한 비율을 사용하고, 큰 창 크기에서는 비대칭 비율로 나눌 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 17px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 17px;&quot;&gt;Breakpoint range(dp)&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 17px;&quot;&gt;Portrait&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 17px;&quot;&gt;List detail&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 17px;&quot;&gt;Landscape&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 17px;&quot;&gt;List detail&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;&lt;b&gt;4.2. 보조 패널(Supporting panel) 레이아웃&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;보조 패널은 스크린 확장을 위한 한 방법이다. primary와 secondary focal points가 동일한 중요성을 가지므로 목록 세부 정보 보기 레이아웃과는 다르다. 이 레이아웃은 seamless hinge 디바이스에 적합하다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;사례&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;생산성&lt;/li&gt;
&lt;li&gt;문서 편집 및 주석 달기&lt;/li&gt;
&lt;li&gt;콘텐츠 및 미디어 검색&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;보조 패널 레이아웃은 focus panel 그리고 supporting panel의 관계성을 만든다. 이 레이아웃은 화면의 3분의 2를 컨테이너에 사용하고 남은 공간에 보조 패널을 놓아 짝을 이룬다.&amp;nbsp;더 작은 디스플레이에서는 supporting panel이 focus panel 아래에 위치할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4.3. Feed 레이아웃&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Feed는 새소식과 소셜 콘텐츠의 공통적인 레이아웃이다. feed는 그리드 컴포지션을 사용하여 콘텐츠의 탐색과 검색을 활성화한다. 피드 레이아웃은 카드 및 목록을 활용하여 다른 콘텐츠를 표시할 수 있다. 뉴스나 사진과 같은 콘텐츠 중심의 경험을 지원한다. 카드, 목록 및 배너와 같은 구성 요소는 앱의 콘텐츠에 대해 여러 접근 방법을 제공한다. 또한 다양한 비율과 크기를 가진 콘텐츠들을 담기에 충분히 유연한 레이아웃이다. 피드 레이아웃은 모든 디바이스 방향에 잘 작동한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>오답노트</category>
      <author>1132</author>
      <guid isPermaLink="true">https://ilsami.tistory.com/57</guid>
      <comments>https://ilsami.tistory.com/57#entry57comment</comments>
      <pubDate>Tue, 6 Dec 2022 14:48:14 +0900</pubDate>
    </item>
  </channel>
</rss>