<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>yurison.stairs</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Mon, 16 Jan 2023 15:31:09 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>yurison.stairs</title>
            <url>https://velog.velcdn.com/images/yu_ri_son/profile/27d636d4-c773-4ffb-a156-2056e155aa4b/image.JPG</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. yurison.stairs. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/yu_ri_son" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Transaction Isolation Level]]></title>
            <link>https://velog.io/@yu_ri_son/Transaction-Isolation-Level</link>
            <guid>https://velog.io/@yu_ri_son/Transaction-Isolation-Level</guid>
            <pubDate>Mon, 16 Jan 2023 15:31:09 GMT</pubDate>
            <description><![CDATA[<h3 id="isolation이-안-될-때-나타날-수-있는-이상-현상">Isolation이 안 될 때 나타날 수 있는 이상 현상</h3>
<ul>
<li>isolation : 여러 transaction들이 동시에 실행될 때도 혼자 실행되는 것처럼 동작하게 만든다.
<a href="https://velog.io/@yu_ri_son/Database-Transaction-ACID">https://velog.io/@yu_ri_son/Database-Transaction-ACID</a></li>
</ul>
<h4 id="dirty-read">Dirty read</h4>
<ul>
<li>commit 되지 않은 변화를 읽음</li>
</ul>
<h4 id="non-repeatable-read-fuzzy-read">Non-repeatable read (Fuzzy read)</h4>
<ul>
<li>같은 데이터의 값이 달라짐</li>
</ul>
<h4 id="phantom-read">Phantom read</h4>
<ul>
<li>없던 데이터가 생김</li>
</ul>
<blockquote>
<p>이상 현상들이 모두 발생하지 않게 만들 수 있지만, 제약 사항이 많아져서 동시 처리 가능한 트랜잭션 수가 줄어든다. =&gt; 결국 DB의 전체 처리량(throughput)이 하락하게 된다.</p>
</blockquote>
<p>⬇️</p>
<blockquote>
<p>일부 이상 현상은 허용하는 몇 가지 level을 만들어서 사용자가 필요에 따라 적절하게 선택할 수 있도록 하자!</p>
</blockquote>
<p>⬇️</p>
<h3 id="isolation-level">Isolation Level</h3>
<p><img src="https://velog.velcdn.com/images/yu_ri_son/post/1adc6484-18e8-454e-981b-b98ac763115f/image.png" alt=""></p>
<ul>
<li>Serializable : 위 세 가지 현상 뿐만 아니라 아예 이상한 현상 자체가 발생하지 않는 level을 의미한다.</li>
</ul>
<blockquote>
<p>애플리케이션 설계자는 isolation level을 통해 전체 처리량(throughput)과 데이터 일관성 사이에서 어느 정도 거래(trade)를 할 수 있다.</p>
</blockquote>
<h3 id="standard-sql-92에서-정의한-isolation-level의-비판-논문-a-critique-of-ansi-sql-isolation-levels">standard SQL 92에서 정의한 isolation level의 비판 (논문: A Critique of ANSI SQL Isolation Levels)</h3>
<ol>
<li>세 가지 이상 현상의 정의가 모호하다.</li>
<li>이상 현상은 세 가지 외에도 더 있다.</li>
<li>상업적인 DBMS에서 사용하는 방법을 반영하여 isolation level을 구분하지 않았다.</li>
</ol>
<h4 id="dirty-write">Dirty write</h4>
<ul>
<li>commit 안 된 데이터를 write 함</li>
<li>rollback 시 정상적인 recovery는 매우 중요하기 때문에 모든 isolation level에서 dirty write를 허용하면 안 된다!</li>
</ul>
<h4 id="dirty-read-">Dirty read (+)</h4>
<ul>
<li>abort가 발생하지 않아도 dirty read가 될 수 있다.</li>
</ul>
<h4 id="phantom-read-">Phantom read (+)</h4>
<ul>
<li>같은 조건을 두 번 읽는 경우가 아니더라도, 서로 연관된 데이터가 있는 경우에도 발생할 수 있다.</li>
</ul>
<h4 id="lost-update">Lost update</h4>
<ul>
<li>업데이트를 덮어 씀</li>
</ul>
<h4 id="read-skew">Read skew</h4>
<ul>
<li>inconsistent한 데이터 읽기</li>
</ul>
<h4 id="write-skew">Write skew</h4>
<ul>
<li>inconsistent한 데이터 쓰기</li>
</ul>
<h3 id="snapshot-isolation">Snapshot Isolation</h3>
<ul>
<li>concurrency control이 어떻게 동작할 지, 그 구현을 바탕으로 정의됨</li>
<li>Type of MVCC(Multi Version Concurrency Control)</li>
<li>트랜잭션 시작 전에 commit된 데이터만 보임</li>
<li>First-committer win!</li>
</ul>
<h3 id="실무에서의-isolation-level">실무에서의 isolation level</h3>
<ul>
<li>주요 RDBMS(MySQL, ORACLE, PostgreSQL, SQL Server)는 SQL 표준에 기반해서 isolation level을 정의한다.</li>
<li>RDBMS마다 제공하는 isolation level이 다르다.</li>
<li>같은 이름의 isolation level이라도 동작 방식이 다를 수 있다.</li>
<li>사용하는 RDBMS의 isolation level을 잘 파악해서 적절한 isolation level을 사용할 수 있도록 해야 한다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Concurrency control - Recoverability]]></title>
            <link>https://velog.io/@yu_ri_son/Concurrency-control-Recoverability</link>
            <guid>https://velog.io/@yu_ri_son/Concurrency-control-Recoverability</guid>
            <pubDate>Sun, 15 Jan 2023 16:09:06 GMT</pubDate>
            <description><![CDATA[<h4 id="unrecoverable-schedule">Unrecoverable schedule</h4>
<ul>
<li>스케쥴 내에서 commit된 트랜잭션이, rollback된 트랜잭션이 write했던 데이터를 읽은 경우</li>
<li>rollback을 해도 이전 상태로 회복 불가능할 수 있기 때문에 이런 스케쥴은 <strong>DBMS가 허용하면 안 된다.</strong></li>
</ul>
<h2 id="recoverable-schedule">Recoverable schedule</h2>
<ul>
<li>스케쥴 내에서 그 어떤 트랜잭션도 자신이 읽은 데이터를 write한 트랜잭션(의존하고 있는 트랜잭션)이 먼저 commit/rollback 되기 전까지는 commit하지 않는다.</li>
<li>rollback할 때 이전 상태로 온전히 돌아갈 수 있기 때문에 DBMS는 <strong>이런 스케쥴만 허용해야 한다.</strong></li>
</ul>
<h3 id="cascading-rollback">Cascading rollback</h3>
<ul>
<li>하나의 트랜잭션이 rollback하면 의존성이 있는 다른 트랜잭션도 rollback해야 한다.</li>
<li>여러 트랜잭션의 rollback이 연쇄적으로 일어나면 <strong>처리하는 비용이 많이 든다.</strong></li>
</ul>
<p>⬇️</p>
<blockquote>
<p>데이터를 write한 트랜잭션이 commit/rollback한 뒤에 데이터를 읽는 스케쥴만 허용하자!</p>
</blockquote>
<p>⬇️</p>
<h3 id="cascadeless-schedule">Cascadeless schedule</h3>
<ul>
<li>(avoid cascading rollback)</li>
<li>스케쥴 내에서 어떤 트랜잭션도 commit되지 않은 트랜잭션들이 write한 데이터는 읽지 않는 경우</li>
</ul>
<p>⬇️</p>
<h2 id="strict-schedule">Strict schedule</h2>
<ul>
<li>스케쥴 내에서 어떤 트랜잭션도 commit되지 않은 트랜잭션들이 write한 데이터는 <strong>쓰지도,</strong> 읽지도 않는 경우</li>
<li>rollback할 때 recovery가 쉽다. 트랜잭션 이전 상태로 돌려놓기만 하면 된다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Concurrency control - schedule, serializability]]></title>
            <link>https://velog.io/@yu_ri_son/Concurrency-control-schedule-serializability</link>
            <guid>https://velog.io/@yu_ri_son/Concurrency-control-schedule-serializability</guid>
            <pubDate>Sat, 14 Jan 2023 17:01:15 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><strong>Concurrency control</strong> makes any schedule serializable</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yu_ri_son/post/1419b3f2-4dc5-43be-a0b4-646ba19f6c4b/image.png" alt="">
➡️ 코드 간소화 적용</p>
<h2 id="schedule">Schedule</h2>
<ul>
<li>여러 트랜잭션들이 동시에 실행될 때 각 트랜잭션에 속한 operation들의 실행 순서</li>
<li>각 트랜잭션 내의 operation들의 순서는 바뀌지 않는다.</li>
</ul>
<h4 id="serial-schedule">Serial schedule</h4>
<ul>
<li>트랜잭션들이 겹치지 않고 한 번에 하나씩 실행되는 스케쥴</li>
<li>한 번에 하나의 트랜잭션만 순차적으로 실행되므로 좋은 성능을 낼 수 없어 현실적으로 사용할 수 없는 방식</li>
</ul>
<h4 id="nonserial-schedule">Nonserial schedule</h4>
<ul>
<li>트랜잭션들이 겹쳐서(interleaving) 실행되는 스케쥴</li>
<li>트랜잭션들이 겹쳐서 실행되므로 동시성이 높아져서 같은 시간 동안 더 많은 트랜잭션들을 처리할 수 있다.</li>
<li><strong>단점</strong>! : 트랜잭션들이 어떤 형태로 겹쳐서 실행되는지에 따라 이상한 결과를 초래할 수 있다. -&gt; <strong>lost update</strong></li>
</ul>
<h2 id="conflict--of-two-operations">Conflict ( of two operations)</h2>
<ol>
<li>서로 다른 트랜잭션 소속</li>
<li>같은 데이터에 접근</li>
<li>최소 하나는 write operation</li>
</ol>
<ul>
<li>세 가지 조건을 모두 만족하면 conflict이다.</li>
<li>read-write conflict, write-write conflict ...</li>
<li>conflict operation은 순서가 바뀌면 결과도 바뀐다.</li>
</ul>
<h4 id="conflict-equivalent--for-two-schedules">conflict equivalent ( for two schedules)</h4>
<ol>
<li>두 스케쥴은 같은 트랙잭션들을 가진다.</li>
<li>어떤(any) conflicting operations의 순서도 양쪽 스케쥴 모두 동일하다.</li>
</ol>
<ul>
<li>두 조건 모두 만족하면 conflict equivalent</li>
<li><strong>Conflict Serializable</strong> : serial schedule과 conflict equivalent일 때</li>
</ul>
<blockquote>
<p>고민 : 성능 때문에 여러 트랜잭션들을 겹쳐서 실행할 수 있으면 좋다. 하지만 이상한 결과가 나오는 것은 싫다!
<strong>해결책 : conflict serializable한 nonserial schedule을 허용하자!</strong>
구현 : 여러 트랜잭션을 동시에 실행해도 스케쥴이 conflict serializable하도록 보장하는 프로토콜을 적용한다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[Library(모듈화)]]></title>
            <link>https://velog.io/@yu_ri_son/13.-Library%EB%AA%A8%EB%93%88%ED%99%94</link>
            <guid>https://velog.io/@yu_ri_son/13.-Library%EB%AA%A8%EB%93%88%ED%99%94</guid>
            <pubDate>Mon, 09 Jan 2023 16:29:30 GMT</pubDate>
            <description><![CDATA[<h4 id="기존-코드">기존 코드</h4>
<pre><code>&lt;?php
$conn = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;111111&quot;);
mysqli_select_db($conn, &quot;database_name&quot;);
$result = mysqli_query($conn, &quot;SELECT * FROM table_name&quot;);
?&gt;</code></pre><h4 id="개선-코드">개선 코드</h4>
<pre><code>&lt;?php
require(&quot;config/config.php&quot;);
require(&quot;lib/db.php&quot;);
$conn = db_init($config[&quot;host&quot;], config[&quot;duser&quot;], config[&quot;dpw&quot;], config[&quot;dname&quot;]);
$result = mysqli_query($conn, &quot;SELECT * FROM &lt;table_name&gt;&quot;);
?&gt;</code></pre><ul>
<li><p>db.php</p>
<pre><code>&lt;?php
function db_init($host, $duser, $dpw, $dname) {
ㅤㅤ$conn = mysqpli_connect($host, $duser, $dpw);
ㅤㅤmysqli_select_db($conn, $dname);
ㅤㅤreturn $conn;
}
?&gt;</code></pre></li>
<li><p>config.php</p>
<pre><code>&lt;?php
$config = array(
ㅤㅤ&quot;host&quot;=&gt;&quot;localhost&quot;,
ㅤㅤ&quot;duser&quot;=&gt;&quot;root&quot;,
ㅤㅤ&quot;dpw&quot;=&gt;&quot;111111&quot;,
ㅤㅤ&quot;dname&quot;=&gt;&quot;&lt;db_name&gt;&quot;
);
?&gt;</code></pre></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[MySQL & PHP 실습 (4)]]></title>
            <link>https://velog.io/@yu_ri_son/12.-MySQL-PHP-%EC%8B%A4%EC%8A%B5-4</link>
            <guid>https://velog.io/@yu_ri_son/12.-MySQL-PHP-%EC%8B%A4%EC%8A%B5-4</guid>
            <pubDate>Fri, 30 Dec 2022 06:08:19 GMT</pubDate>
            <description><![CDATA[<ul>
<li>index.php<pre><code>&lt;?php
$conn = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;111111&quot;);
mysqli_select_db($conn, &quot;database_name&quot;);
$result = mysqli_query($conn, &quot;SELECT * FROM table_name&quot;);
?&gt;
</code></pre></li>
</ul>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <link rel="stylesheet" href="http://localhost/project_php/style.css" />
  <title>PHP Project</title>
</head>

<body id="target">
  <header>
    <h1>
      <a href="http://localhost/project_php/index.php">JavaScript</a>
    </h1>
  </header>
  <nav>
    <ul>
      <?php
      while ($row = mysqli_fetch_assoc($result)) {
        echo "<li><a href='http://localhost/index.php?id=" . $row['id'] . "'>" . $row['title'] . "</a></li>" . "\n";
      }
      ?>
    </ul>
  </nav>
  <div>
    <input type="button" value="white" onclick="document.getElementById('target').className='white'" />
    <input type="button" value="black" onclick="document.getElementById('target').className='black'" />
    <a href="http://localhost/write.php">Write</a>
  </div>
  <article>
    <?php
    if (empty($_GET['id']) === false) {
      $sql = "SELECT * FROM table_name WHERE id=" . $_GET['id'];
      $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_assoc($result);
      echo '<h2>' . $row['title'] . '</h2>';
      echo $row['description'];
    }
    ?>
  </article>
</body>

</html>
```

<ul>
<li>write.php<pre><code>&lt;?php
$conn = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;111111&quot;);
mysqli_select_db($conn, &quot;database_name&quot;);
$result = mysqli_query($conn, &quot;SELECT * FROM table_name&quot;);
?&gt;
</code></pre></li>
</ul>
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <link rel="stylesheet" href="http://localhost/project_php/style.css" />
  <title>PHP Project</title>
</head>

<body id="target">
  <header>
    <h1>
      <a href="http://localhost/project_php/index.php">JavaScript</a>
    </h1>
  </header>
  <nav>
    <ul>
      <?php
      while ($row = mysqli_fetch_assoc($result)) {
        echo "<li><a href='http://localhost/index.php?id=" . $row['id'] . "'>" . $row['title'] . "</a></li>" . "\n";
      }
      ?>
    </ul>
  </nav>
  <div>
    <input type="button" value="white" onclick="document.getElementById('target').className='white'" />
    <input type="button" value="black" onclick="document.getElementById('target').className='black'" />
    <a href="http://localhost/write.php">Write</a>
  </div>
  <article>
    <form action="process.php" method="POST">
      <p>
        <label for="title">제목 : </label>
        <input type="text" id='title' name="title">
      </p>
      <p>
        <label for="author">작성자 : </label>
        <input type="text" id='author' name="author">
      </p>
      <p>
        <label for="maintext">본문 : </label>
        <textarea name="description" id="maintext" cols="30" rows="10"></textarea>
        <input type="submit">
      </p>
    </form>
  </article>
</body>

</html>
```

<ul>
<li>process.php<pre><code>&lt;?php
  $conn = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;111111&quot;);
  mysqli_select_db($conn, &quot;database_name&quot;);
  $sql = &quot;INSERT INTO table_name (title, description, author, created) VALUES (&#39;&quot;.$_POST[&#39;title&#39;].&quot;&#39;, &#39;&quot;.$_POST[&#39;description&#39;].&quot;&#39;, &#39;&quot;.$_POST[&#39;author&#39;].&quot;&#39;, &#39;&quot;.now())&quot;;
  $result = mysqli_query($conn, $sql);
  header(&#39;Location: http://localhost/index.php&#39;);
?&gt;</code></pre></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[MySQL & PHP 실습 (3)]]></title>
            <link>https://velog.io/@yu_ri_son/11.-MySQL-PHP-%EC%8B%A4%EC%8A%B5-3</link>
            <guid>https://velog.io/@yu_ri_son/11.-MySQL-PHP-%EC%8B%A4%EC%8A%B5-3</guid>
            <pubDate>Fri, 30 Dec 2022 05:43:51 GMT</pubDate>
            <description><![CDATA[<h4 id="form">Form</h4>
<ul>
<li>3.html<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;form action=&quot;http://localhost/project_php/3.php&quot; method=&quot;POST&quot;&gt;
    &lt;p&gt;
      &lt;label for=&quot;text&quot;&gt;제목 : &lt;/label&gt;
      &lt;input type=&quot;text&quot; id=&quot;text&quot; name=&quot;title&quot; /&gt;
    &lt;/p&gt;
    &lt;p&gt;
      &lt;label for=&quot;main_text&quot;&gt;본문 : &lt;/label&gt;
      &lt;textarea
        name=&quot;&quot;
        id=&quot;main_text&quot;
        cols=&quot;30&quot;
        rows=&quot;5&quot;
        name=&quot;description&quot;
      &gt;&lt;/textarea&gt;
    &lt;/p&gt;
    &lt;input type=&quot;submit&quot; /&gt;
  &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre></li>
</ul>
<pre><code>- 3.php</code></pre><?php
echo $_POST['title'];
echo "<br />";
echo $_POST['description'];
?>
<p>```</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[MySQL & PHP 실습 (2)]]></title>
            <link>https://velog.io/@yu_ri_son/10.-MySQL-PHP-%EC%8B%A4%EC%8A%B5-2</link>
            <guid>https://velog.io/@yu_ri_son/10.-MySQL-PHP-%EC%8B%A4%EC%8A%B5-2</guid>
            <pubDate>Fri, 30 Dec 2022 05:24:59 GMT</pubDate>
            <description><![CDATA[<pre><code>&lt;?php
$conn = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;111111&quot;);
mysqli_select_db($conn, &quot;database_name&quot;);
$result = mysqli_query($conn, &quot;SELECT * FROM table_name&quot;);
?&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;

&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;http://localhost/project_php/style.css&quot; /&gt;
  &lt;title&gt;PHP Project&lt;/title&gt;
&lt;/head&gt;

&lt;body id=&quot;target&quot;&gt;
  &lt;header&gt;
    &lt;h1&gt;
      &lt;a href=&quot;http://localhost/project_php/index.php&quot;&gt;JavaScript&lt;/a&gt;
    &lt;/h1&gt;
  &lt;/header&gt;
  &lt;nav&gt;
    &lt;ul&gt;
      &lt;?php
      while ($row = mysqli_fetch_assoc($result)) {
        echo &quot;&lt;li&gt;&lt;a href=&#39;http://localhost/index.php?id=&quot; . $row[&#39;id&#39;] . &quot;&#39;&gt;&quot; . $row[&#39;title&#39;] . &quot;&lt;/a&gt;&lt;/li&gt;&quot; . &quot;\n&quot;;
      }
      ?&gt;
    &lt;/ul&gt;
  &lt;/nav&gt;
  &lt;div&gt;
    &lt;input type=&quot;button&quot; value=&quot;white&quot; onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;white&#39;&quot; /&gt;
    &lt;input type=&quot;button&quot; value=&quot;black&quot; onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;black&#39;&quot; /&gt;
  &lt;/div&gt;
  &lt;article&gt;
    &lt;?php
    if (empty($_GET[&#39;id&#39;]) === false) {
      $sql = &quot;SELECT * FROM table_name WHERE id=&quot; . $_GET[&#39;id&#39;];
      $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_assoc($result);
      echo &#39;&lt;h2&gt;&#39; . $row[&#39;title&#39;] . &#39;&lt;/h2&gt;&#39;;
      echo $row[&#39;description&#39;];
    }
    ?&gt;
  &lt;/article&gt;
&lt;/body&gt;

&lt;/html&gt;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[MySQL & PHP 실습 (1)]]></title>
            <link>https://velog.io/@yu_ri_son/09.-MySQL-PHP-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@yu_ri_son/09.-MySQL-PHP-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Thu, 29 Dec 2022 13:50:08 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yu_ri_son/post/4f1de4e8-4d9a-46fb-994d-9fffc6c2d9e8/image.png" alt=""></p>
<pre><code>&lt;?php
$conn = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;111111&quot;);
mysqli_select_db($conn, &quot;database_name&quot;);
$result = mysqli_query($conn, &quot;SELECT * FROM table_name&quot;);
while ($row = mysqli_fetch_assoc($result)) {
  echo $row[&#39;id&#39;];
  echo $row[&#39;title&#39;];
  echo $row[&#39;author&#39;];
  echo &quot;&lt;br /&gt;&quot;;
}
?&gt;</code></pre><h4 id="완성-코드↓">완성 코드↓</h4>
<pre><code>&lt;?php
$conn = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;111111&quot;);
mysqli_select_db($conn, &quot;database_name&quot;);
$result = mysqli_query($conn, &quot;SELECT * FROM table_name&quot;);
?&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;

&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;http://localhost/project_php/style.css&quot; /&gt;
  &lt;title&gt;PHP Project&lt;/title&gt;
&lt;/head&gt;

&lt;body id=&quot;target&quot;&gt;
  &lt;header&gt;
    &lt;h1&gt;
      &lt;a href=&quot;http://localhost/project_php/index.php&quot;&gt;JavaScript&lt;/a&gt;
    &lt;/h1&gt;
  &lt;/header&gt;
  &lt;nav&gt;
    &lt;ul&gt;
      &lt;?php
      while ($row = mysqli_fetch_assoc($result)) {
        echo &quot;&lt;li&gt;&lt;a href=&#39;http://localhost/index.php?id=&quot; . $row[&#39;id&#39;] . &quot;&#39;&gt;&quot; . $row[&#39;title&#39;] . &quot;&lt;/a&gt;&lt;/li&gt;&quot; . &quot;\n&quot;;
      }
      ?&gt;
    &lt;/ul&gt;
  &lt;/nav&gt;
  &lt;div&gt;
    &lt;input type=&quot;button&quot; value=&quot;white&quot; onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;white&#39;&quot; /&gt;
    &lt;input type=&quot;button&quot; value=&quot;black&quot; onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;black&#39;&quot; /&gt;
  &lt;/div&gt;
  &lt;article&gt;
    &lt;?php
    if (empty($_GET[&#39;id&#39;]) == false) {
      echo file_get_contents($_GET[&#39;id&#39;] . &quot;.txt&quot;);
    }
    ?&gt;
  &lt;/article&gt;
&lt;/body&gt;

&lt;/html&gt;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[PHP 실습]]></title>
            <link>https://velog.io/@yu_ri_son/08.-PHP-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@yu_ri_son/08.-PHP-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Tue, 27 Dec 2022 14:28:39 GMT</pubDate>
            <description><![CDATA[<ul>
<li>index.php<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
</code></pre></li>
</ul>
<head>
  <meta charset="UTF-8" />
  <link rel="stylesheet" href="http://localhost/project_php/style.css" />
  <title>PHP Project</title>
</head>

<body id="target">
  <header>
    <h1>
      <a href="http://localhost/project_php/index.php">JavaScript</a>
    </h1>
  </header>
  <nav>
    <ul>
      <?php
      echo file_get_contents("index.txt");
      ?>
    </ul>
  </nav>
  <div>
    <input type="button" value="white" onclick="document.getElementById('target').className='white'" />
    <input type="button" value="black" onclick="document.getElementById('target').className='black'" />
  </div>
  <article>
    <?php
    if (empty($_GET['id']) == false) {
      echo file_get_contents($_GET['id'] . ".txt");
    }
    ?>
  </article>
</body>

</html>
```
- css파일 제외 나머지는 txt파일로 만들었다.]]></description>
        </item>
        <item>
            <title><![CDATA[Javascript 실습]]></title>
            <link>https://velog.io/@yu_ri_son/07.-Javascript-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@yu_ri_son/07.-Javascript-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Fri, 23 Dec 2022 15:21:35 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yu_ri_son/post/19bc11d4-3fda-4c99-a117-ac3daf8513ee/image.png" alt=""></p>
<p>-index.html</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot; /&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;http://localhost/project_js/style.css&quot; /&gt;
    &lt;title&gt;Javascript Project - Index&lt;/title&gt;
  &lt;/head&gt;
  &lt;body id=&quot;target&quot;&gt;
    &lt;header&gt;
      &lt;h1&gt;
        &lt;a href=&quot;http://localhost/project_js/index.html&quot;&gt;JavaScript&lt;/a&gt;
      &lt;/h1&gt;
    &lt;/header&gt;
    &lt;nav&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page1.html&quot;&gt;History&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page2.html&quot;&gt;Features&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page3.html&quot;&gt;Security&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;
    &lt;div&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;white&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;white&#39;&quot;
      /&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;black&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;black&#39;&quot;
      /&gt;
    &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre><p>-page1.html</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot; /&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;http://localhost/project_js/style.css&quot; /&gt;
    &lt;title&gt;Javascript Project - History&lt;/title&gt;
  &lt;/head&gt;
  &lt;body id=&quot;target&quot;&gt;
    &lt;header&gt;
      &lt;h1&gt;
        &lt;a href=&quot;http://localhost/project_js/index.html&quot;&gt;JavaScript&lt;/a&gt;
      &lt;/h1&gt;
    &lt;/header&gt;
    &lt;nav&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page1.html&quot;&gt;History&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page2.html&quot;&gt;Features&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page3.html&quot;&gt;Security&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;
    &lt;div&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;white&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;white&#39;&quot;
      /&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;black&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;black&#39;&quot;
      /&gt;
    &lt;/div&gt;
    &lt;article&gt;
      &lt;h2&gt;Creation at Netscape&lt;/h2&gt;
      &lt;ul&gt;
        &lt;li&gt;
          The first popular web browser with a graphical user interface, Mosaic,
          was released in 1993. Accessible to non-technical people, it played a
          prominent role in the rapid growth of the nascent World Wide Web.[11]
          The lead developers of Mosaic then founded the Netscape corporation,
          which released a more polished browser, Netscape Navigator, in 1994.
          This quickly became the most-used.
        &lt;/li&gt;
        &lt;li&gt;
          During these formative years of the Web, web pages could only be
          static, lacking the capability for dynamic behavior after the page was
          loaded in the browser. There was a desire in the flourishing web
          development scene to remove this limitation, so in 1995, Netscape
          decided to add a scripting language to Navigator. They pursued two
          routes to achieve this: collaborating with Sun Microsystems to embed
          the Java programming language, while also hiring Brendan Eich to embed
          the Scheme language.
        &lt;/li&gt;
        &lt;li&gt;
          Netscape management soon decided that the best option was for Eich to
          devise a new language, with syntax similar to Java and less like
          Scheme or other extant scripting languages.[5][6] Although the new
          language and its interpreter implementation were called LiveScript
          when first shipped as part of a Navigator beta in September 1995, the
          name was changed to JavaScript for the official release in December.
        &lt;/li&gt;
        &lt;li&gt;
          The choice of the JavaScript name has caused confusion, implying that
          it is directly related to Java. At the time, the dot-com boom had
          begun and Java was the hot new language, so Eich considered the
          JavaScript name a marketing ploy by Netscape.
        &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/article&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre><p>-page2.html</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot; /&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;http://localhost/project_js/style.css&quot; /&gt;
    &lt;title&gt;Javascript Project - Features&lt;/title&gt;
  &lt;/head&gt;
  &lt;body id=&quot;target&quot;&gt;
    &lt;header&gt;
      &lt;h1&gt;
        &lt;a href=&quot;http://localhost/project_js/index.html&quot;&gt;JavaScript&lt;/a&gt;
      &lt;/h1&gt;
    &lt;/header&gt;
    &lt;nav&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page1.html&quot;&gt;History&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page2.html&quot;&gt;Features&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page3.html&quot;&gt;Security&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;
    &lt;div&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;white&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;white&#39;&quot;
      /&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;black&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;black&#39;&quot;
      /&gt;
    &lt;/div&gt;
    &lt;article&gt;
      &lt;h2&gt;Features&lt;/h2&gt;
      &lt;p&gt;
        JavaScript supports much of the structured programming syntax from C
        (e.g., if statements, while loops, switch statements, do while loops,
        etc.). One partial exception is scoping: originally JavaScript only had
        function scoping with var; block scoping was added in ECMAScript 2015
        with the keywords let and const. Like C, JavaScript makes a distinction
        between expressions and statements. One syntactic difference from C is
        automatic semicolon insertion, which allow semicolons (which terminate
        statements) to be omitted.
      &lt;/p&gt;
    &lt;/article&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre><p>-page3.html</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot; /&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;http://localhost/project_js/style.css&quot; /&gt;
    &lt;title&gt;Javascript Project - Security&lt;/title&gt;
  &lt;/head&gt;
  &lt;body id=&quot;target&quot;&gt;
    &lt;header&gt;
      &lt;h1&gt;
        &lt;a href=&quot;http://localhost/project_js/index.html&quot;&gt;JavaScript&lt;/a&gt;
      &lt;/h1&gt;
    &lt;/header&gt;
    &lt;nav&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page1.html&quot;&gt;History&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page2.html&quot;&gt;Features&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://localhost/project_js/page3.html&quot;&gt;Security&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;
    &lt;div&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;white&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;white&#39;&quot;
      /&gt;
      &lt;input
        type=&quot;button&quot;
        value=&quot;black&quot;
        onclick=&quot;document.getElementById(&#39;target&#39;).className=&#39;black&#39;&quot;
      /&gt;
    &lt;/div&gt;
    &lt;article&gt;
      &lt;h2&gt;Security&lt;/h2&gt;
      &lt;p&gt;
        JavaScript and the DOM provide the potential for malicious authors to
        deliver scripts to run on a client computer via the Web. Browser authors
        minimize this risk using two restrictions. First, scripts run in a
        sandbox in which they can only perform Web-related actions, not
        general-purpose programming tasks like creating files. Second, scripts
        are constrained by the same-origin policy: scripts from one Web site do
        not have access to information such as usernames, passwords, or cookies
        sent to another site. Most JavaScript-related security bugs are breaches
        of either the same origin policy or the sandbox. There are subsets of
        general JavaScript—ADsafe, Secure ECMAScript (SES)—that provide greater
        levels of security, especially on code created by third parties (such as
        advertisements).[78][79] Closure Toolkit is another project for safe
        embedding and isolation of third-party JavaScript and HTML.[80] Content
        Security Policy is the main intended method of ensuring that only
        trusted code is executed on a Web page.
      &lt;/p&gt;
    &lt;/article&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[PHP & Javascript (3)]]></title>
            <link>https://velog.io/@yu_ri_son/06.-PHP-Javascript-3</link>
            <guid>https://velog.io/@yu_ri_son/06.-PHP-Javascript-3</guid>
            <pubDate>Thu, 22 Dec 2022 13:25:20 GMT</pubDate>
            <description><![CDATA[<h4 id="조건문--배열과-반복문">조건문 / 배열과 반복문</h4>
<ul>
<li>php<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;?php
  $result = (1 == 1);
  if ($result) {
      echo &quot;참&quot;;
  } else {
      echo &quot;거짓&quot;;
  }
  $list = array(&quot;one&quot;, &quot;two&quot;, &quot;three&quot;);
  echo $list[2];
  echo count($list);
  ?&gt;
  &lt;ol&gt;
      &lt;?php
      $i = 0;
      while ($i &lt; 10) {
          echo &quot;&lt;li&gt;hello world&lt;/li&gt;&quot;;
          $i = $i + 1;
      }
      ?&gt;
  &lt;/ol&gt;
  &lt;ul&gt;
      &lt;?php
      $list2 = array(&quot;one&quot;, &quot;two&quot;, &quot;three&quot;);
      $j = 0;
      while ($j &lt; count($list2)) {
          echo &quot;&lt;li&gt;&quot; . $list2[$j] . &quot;&lt;/li&gt;&quot;;
          $j = $j + 1;
      }
      ?&gt;
  &lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></li>
<li>Javascript<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
  &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;script&gt;
    result = 1 == 1;
    if (result) {
      document.write(&quot;참&quot;);
    } else {
      document.write(&quot;거짓&quot;);
    }
    list = new Array(&quot;one&quot;, &quot;two&quot;, &quot;three&quot;);
    document.write(list[2]);
    document.write(list.length);
  &lt;/script&gt;
  &lt;ol&gt;
    &lt;script&gt;
      j = 0;
      while (j &lt; 10) {
        document.write(&quot;&lt;li&gt;hello world&lt;/li&gt;&quot;);
        j = j + 1;
      }
    &lt;/script&gt;
  &lt;/ol&gt;
  &lt;ul&gt;
    &lt;script&gt;
      list2 = new Array(&quot;one&quot;, &quot;two&quot;, &quot;three&quot;);
      j = 0;
      while (j &lt; list2.length) {
        document.write(&quot;&lt;li&gt;&quot; + list[j] + &quot;&lt;/li&gt;&quot;);
        j = j + 1;
      }
    &lt;/script&gt;
  &lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></li>
</ul>
<h4 id="간단한-로그인-기능-구현하기">간단한 로그인 기능 구현하기</h4>
<ul>
<li><p>php</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;?php
      $pwd = $_GET[&quot;pwd&quot;];
      if($pwd == 1111){
          echo &quot;안녕하세요.&quot;;
      } else {
          echo &quot;다시 입력해주세요.&quot;;
      }
  ?&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></li>
<li><p>Javascript</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;script&gt;
      pwd = prompt(&quot;비밀번호를 입력하세요.&quot;);
      if(pwd == 1111){
          document.write(&quot;안녕하세요.&quot;);
      } else {
          document.write(&quot;다시 입력해주세요.&quot;);
      }
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></li>
</ul>
<h4 id="함수">함수</h4>
<ul>
<li>php<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
</code></pre></li>
</ul>
<head>
    <meta charset="UTF-8" />
    <title>Hello world</title>
</head>

<body>
    <?php
    function hello()
    {
        echo "Hello!!!";
    }
    hello();
    function add($a, $b)
    {
        echo $a + $b;
    }
    add(2, 5);
    ?>
</body>

</html>
```

<ul>
<li>Javascript<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
  &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;script&gt;
    function hello() {
      document.write(&quot;Hello!!!&quot;);
    }
    hello();
    function add(a, b) {
      document.write(a + b);
    }
    add(2, 5);
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[PHP & Javascript (2)]]></title>
            <link>https://velog.io/@yu_ri_son/05.-PHP-Javascript-2</link>
            <guid>https://velog.io/@yu_ri_son/05.-PHP-Javascript-2</guid>
            <pubDate>Wed, 21 Dec 2022 09:25:36 GMT</pubDate>
            <description><![CDATA[<h4 id="디버깅">디버깅</h4>
<ul>
<li>크롬 - 자바스크립트 콘솔</li>
<li>Bitnami 폴더 --- apache2 - logs - error.log</li>
</ul>
<h4 id="문자와-숫자--변수--비교">문자와 숫자 / 변수 / 비교</h4>
<ul>
<li>php<pre><code>&lt;?php
  $name = &quot;sonyuri&quot;;
?&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;?php 
      echo &quot;10&quot;+&quot;10&quot;; // 20
      echo &quot;10&quot;.&quot;10&quot;; // 1010
      echo &quot;Hi, &quot;.$name;
      var_dump(1==1);
  ?&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></li>
<li>Javascript<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;script&gt;
      document.write(&quot;10&quot;+&quot;10&quot;);  // 1010
      name = &quot;sonyuri&quot;;
      document.write(&quot;Hi, &quot; + name);
      document.write(1==1);
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[PHP & Javascript (1)]]></title>
            <link>https://velog.io/@yu_ri_son/04.-Javascript-PHP</link>
            <guid>https://velog.io/@yu_ri_son/04.-Javascript-PHP</guid>
            <pubDate>Wed, 21 Dec 2022 08:12:19 GMT</pubDate>
            <description><![CDATA[<h4 id="php">PHP</h4>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;php&lt;/h1&gt;
    &lt;?php 
        echo &quot;Hello world&quot;;
    ?&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre><h4 id="javascript">Javascript</h4>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;Hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;Javascript&lt;/h1&gt;
    &lt;script&gt;
        document.write(&quot;Hello world&quot;);
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre><p><img src="https://velog.velcdn.com/images/yu_ri_son/post/e9ca87e8-7903-40db-bb79-4a79e557601c/image.jpg" alt=""></p>
<ul>
<li>php ---&gt; Server side Language
Javascript ---&gt; Client side Language</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[CSS]]></title>
            <link>https://velog.io/@yu_ri_son/03.-CSS</link>
            <guid>https://velog.io/@yu_ri_son/03.-CSS</guid>
            <pubDate>Sun, 18 Dec 2022 08:22:53 GMT</pubDate>
            <description><![CDATA[<h4 id="cascading-style-sheet">Cascading Style Sheet</h4>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot; /&gt;
    &lt;style&gt;
        h1,h2 {
            color:red;
            font-size:10px
        }
        h2 {
            text-decoration:underline;
            border:1px solid red;
        }
        #selected {
            border:red 1px dotted;
            padding:30px;
            margin:10px;
        }
        img {
            float:left;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt; 대제목 &lt;/h1&gt;
    &lt;h2&gt; 중제목 &lt;/h2&gt;
    &lt;h3&gt; 소제목 &lt;/h3&gt;
    &lt;ul&gt;
        &lt;li&gt; ~ &lt;/li&gt;
        &lt;li id=&quot;selected&quot;&gt; ~ &lt;/li&gt;
        &lt;li&gt; ~ &lt;/li&gt;
    &lt;/ul&gt;
    &lt;img src=&quot; ~ &quot; /&gt;
    ~ 내용 ~
&lt;/body&gt;
&lt;/html&gt;</code></pre><h4 id="box-model">Box model</h4>
<ul>
<li>border / padding / margin / height / width</li>
</ul>
<h4 id="designing-html">Designing HTML</h4>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot; /&gt;
    &lt;title&gt; 타이틀 &lt;/title&gt;
    &lt;style&gt;
        header {
            border-bottom:1px solid gray;
            padding:20px;
        }
        nav {
            border-right:1px solid gray;
            width:200px;
            height:600px;
            float:left;
        }
        nav ol {
            list-style:none;
        }
        article {
            float:left;
            padding:20px;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;header&gt;
        &lt;h1&gt; 대제목 &lt;/h1&gt;
    &lt;/header&gt;
    &lt;nav&gt;
      &lt;ol&gt;
          &lt;li&gt;&lt;a href=&quot; ~ link ~ &quot;&gt; ~ &lt;/a&gt;&lt;/li&gt;
          &lt;li&gt; ~ &lt;/li&gt;
          &lt;li&gt; ~ &lt;/li&gt;
      &lt;/ol&gt;
    &lt;/nav&gt;
    &lt;article&gt;
        &lt;h2&gt; 소제목 &lt;/h2&gt;
        &lt;ul&gt;
            &lt;li&gt; ~ &lt;/li&gt;
            &lt;li&gt; ~ &lt;/li&gt;
            &lt;li&gt; ~ &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/article&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[HTML]]></title>
            <link>https://velog.io/@yu_ri_son/02.-HTML-%EC%9D%B4%EB%A1%A0</link>
            <guid>https://velog.io/@yu_ri_son/02.-HTML-%EC%9D%B4%EB%A1%A0</guid>
            <pubDate>Sun, 18 Dec 2022 07:48:25 GMT</pubDate>
            <description><![CDATA[<h4 id="hypertext-markup-language">HyperText Markup Language</h4>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot; /&gt;
    &lt;title&gt; 타이틀 &lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;header&gt;
        &lt;h1&gt; 대제목 &lt;/h1&gt;
    &lt;/header&gt;
    &lt;nav&gt;
      &lt;ol&gt;
          &lt;li&gt;&lt;a href=&quot; ~ link ~ &quot;&gt; ~ &lt;/a&gt;&lt;/li&gt;
          &lt;li&gt; ~ &lt;/li&gt;
          &lt;li&gt; ~ &lt;/li&gt;
      &lt;/ol&gt;
    &lt;/nav&gt;
    &lt;article&gt;
        &lt;h2&gt; 소제목 &lt;/h2&gt;
        &lt;ul&gt;
            &lt;li&gt; ~ &lt;/li&gt;
            &lt;li&gt; ~ &lt;/li&gt;
            &lt;li&gt; ~ &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/article&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre><ul>
<li>&quot;Semantic Web&quot; ---&gt; header / nav / article</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹APP을 만드는 순서, 인터넷과 웹, 서버와 클라이언트]]></title>
            <link>https://velog.io/@yu_ri_son/01.-%EC%9B%B9APP%EC%9D%84-%EB%A7%8C%EB%93%9C%EB%8A%94-%EC%88%9C%EC%84%9C-%EC%9D%B8%ED%84%B0%EB%84%B7%EA%B3%BC-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8</link>
            <guid>https://velog.io/@yu_ri_son/01.-%EC%9B%B9APP%EC%9D%84-%EB%A7%8C%EB%93%9C%EB%8A%94-%EC%88%9C%EC%84%9C-%EC%9D%B8%ED%84%B0%EB%84%B7%EA%B3%BC-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8</guid>
            <pubDate>Thu, 15 Dec 2022 17:48:33 GMT</pubDate>
            <description><![CDATA[<h4 id="웹어플리케이션을-만드는-순서">웹어플리케이션을 만드는 순서</h4>
<ul>
<li>웹 어플리케이션을 만드는 순서 : { 구상 -&gt; 기획(계획) -&gt; 디자인 &amp;&amp; 개발 -&gt; 테스트 } 의 반복</li>
<li>작은 것부터 시작하라</li>
<li>복잡도와 경우의 수 - &#39;지수폭발&#39;!</li>
</ul>
<h4 id="기획">기획</h4>
<ul>
<li>UI(사용자가 시스템을 제어하는 조작 장치) 모델링(사용자의 입장에서 동작하는 기능을 가상으로 만들어 보는 것)</li>
<li>모델링 도구 : 손그림, 펜슬(<a href="http://pencil.evolus.vn/">http://pencil.evolus.vn/</a>), 발사믹(<a href="https://balsamiq.com">https://balsamiq.com</a>), 파워포인트</li>
</ul>
<h4 id="인터넷과-웹">인터넷과 웹</h4>
<ul>
<li><p>인터넷과 웹의 관계 : 도시-집, 도로망-대중교통</p>
</li>
<li><p>1960년대 인터넷의 등장</p>
</li>
<li><p>1990년대 웹의 등장(팀 버너스 리)</p>
</li>
<li><p>웹브라우저 &lt;-------&gt; 웹서버</p>
</li>
<li><p>통신 규약 HTTP, 실제 웹페이지의 정보를 담은 언어 HTML</p>
</li>
</ul>
<h4 id="서버와-클라이언트">서버와 클라이언트</h4>
<ul>
<li><p><strong>서버</strong> &lt;--------&gt; <strong>클라이언트</strong></p>
</li>
<li><p>웹서버 &lt;------&gt; 웹브라우저</p>
</li>
<li><p>요청 &lt;--------------&gt; 응답</p>
</li>
<li><p>BITNAMI
윈도우 : <a href="https://bitnami.com/stack/wamp">https://bitnami.com/stack/wamp</a>
맥 : <a href="https://bitnami.com/stack/mamp">https://bitnami.com/stack/mamp</a>
리눅스 : <a href="https://bitnami.com/stack/lamp">https://bitnami.com/stack/lamp</a></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[START]]></title>
            <link>https://velog.io/@yu_ri_son/START</link>
            <guid>https://velog.io/@yu_ri_son/START</guid>
            <pubDate>Thu, 15 Dec 2022 14:45:58 GMT</pubDate>
            <description><![CDATA[<p>드디어 노션과 벨로그 계정을 생성하고 이것저것 만들었다.
공부는 4월부터 했지만 제대로 된 정리와 준비(?)는 오늘부터인 걸로! 복습도 되고 아주 좋아! 매일 쉬지 않고 달려보자 화이팅</p>
]]></description>
        </item>
    </channel>
</rss>