<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>You know nothing</title>
    <link>https://2sonnn.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 9 May 2026 22:44:48 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>2sonnn</managingEditor>
    <image>
      <title>You know nothing</title>
      <url>https://t1.daumcdn.net/cfile/tistory/216CF93C57C46F1B28</url>
      <link>https://2sonnn.tistory.com</link>
    </image>
    <item>
      <title>Android TREBLE</title>
      <link>https://2sonnn.tistory.com/entry/Android-TREBLE</link>
      <description>&lt;br /&gt;&lt;hr&gt;&lt;h1&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/treble&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;color: rgb(255, 255, 255); background-color: rgb(70, 115, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Concept &amp;amp; Purpose&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 구현 분리(특정 device 구현 or 칩 벤더 SW)&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;더 쉽고, 더 빠르고, 적은 비용으로 업그레이드!&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 430px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99D41C405AD88EC120&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99D41C405AD88EC120&quot; width=&quot;430&quot; height=&quot;200&quot; filename=&quot;treble_blog_before.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991FFC405AD88EC12F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991FFC405AD88EC12F&quot; width=&quot;500&quot; height=&quot;188&quot; filename=&quot;treble_blog_after.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&lt;h1&gt;&lt;span style=&quot;color: rgb(255, 255, 255); background-color: rgb(70, 115, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Technical information&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/hal-types&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;color: rgb(9, 0, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HAL&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Hardware Abstraction Layer&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HW 벤더가 구현할 수 있는 표준 인터페이스를 정의&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Binderized HALs&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HIDL 로 표현된 HAL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Binderized HAL에서 프레임워크와 HAL은 바인더 IPC call 로 통신을 함&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Passthrough HALs&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HIDL로 래핑된 기존 HAL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android 8.0으로 업그레이드 하는 기기는 Passthrough HAL을 사용할 수 있음(Same-process)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HAL 모드 요구사항&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;800&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; width: 800px;&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 178px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Device&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 297px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Passthrough&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 324px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Binderized&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 178px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Launch with&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android 8.0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 297px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Passthrough HALs&lt;/span&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;에 있는&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HAL은 무조건 passthrough&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 324px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vendor의 HAL을 포함한&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;다른 모든 HAL은 binderized&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 178px; height: 76px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; colspan=&quot;1&quot; rowspan=&quot;2&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Upgrade to&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android 8.0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 297px; height: 52px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/hal-types#passthrough&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Passthrough HALs&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;에 있는&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HAL은 무조건 passthrough&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 324px; height: 52px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/hal-types#binderized&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Binderized HALs&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;의 HAL은&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;무조건 binderized&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 621px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot; colspan=&quot;2&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;나머지 벤더에 의해 제공되는 HAL은 모드 상관 없음&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/hidl&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;color: rgb(9, 0, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;H&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/hidl&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;color: rgb(9, 0, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;IDL&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HAL interface definition language or HIDL (pronounced &quot;hide-l&quot;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HAL과 사용자간의 인터페이스를 지정하는 IDL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HIDL은 Process간의 IPC에 사용하기 위함이고, 프로세스간의 통신을 binderized 라고 함&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HIDL의 목표는 벤더 변경 없이 프레임워크 교체&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Binder IPC&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;624&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; width: 624px;&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 147px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;IPC Domain&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 476px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Description&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 147px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/dev/binder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 476px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;AIDL로 구성된 프레임워크와 app 프로세스간의 IPC&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 147px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/dev/hwbinder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 476px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HIDL로 구성된 프레임워크와 벤더 프로세스간의 IPC&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;HIDL로 구성된 벤더 프로세스간의 IPC&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 147px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/dev/vndbinder&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 476px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;AIDL로 구성된 벤더 프로세스간의 IPC&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/vndk&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(9, 0, 255);&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;The Vendor Native Development Kit (VNDK)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 모듈을 구현하는 라이브러리 집합&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더의 변경 없이 system 파티션만 update 가능&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;프레임워크 프로세스는 벤더의 공유라이브러리 로드 못함&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;모든 벤더 프로세스는 벤더의 공유라이브러리만 로드 할 수 있음(system 라이브러리 일부 포함)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;프레임워크와 벤더 프로세스 간의 통신은 HIDL및 Hardware binder를 통해서&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99F43F355AD891DD2F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99F43F355AD891DD2F&quot; width=&quot;500&quot; height=&quot;236&quot; filename=&quot;VNDK.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Categ&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;ories&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;LLNDK&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;안정된 API와 프레임워크와 느슨하게 결합된(?) 공유라이브러리&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템 이미지에 포함되고 시스템, 벤더 모두 사용 가능&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;libEGL.so, libGLESv1_CM.so, libGLESv2.so, libGLESv3.so, libandroid_net.so, libc.so, libdl.so, liblog.so, libm.so, libnativewindow.so, libsync.so, and libvndksupport.so&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vendor 모듈용으로 변형된 라이브러리&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;보통 짝을 이루는 동일한 이름의 FWK-ONLY 라이브러리 존재&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템 이미지에 포함되고 벤더 이미지에서 사용&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템과 서로 IPC 주고받지 않아야 함&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;ART virtual machine과 관련 없어야 함&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;불안정한 파일 형식의 파일이나 파티션을 RW 하지 않아야 함&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;법적 검토가 필요한 특수 SW 라이센스 없어야 함&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;코드 소유자는 벤더의 사용에 이의가 없어야 함&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99C11D435AD8930033&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99C11D435AD8930033&quot; width=&quot;500&quot; height=&quot;344&quot; filename=&quot;vndk_dependency.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-SP&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK와 같음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;SP-HALs에 의해 사용할 수 있음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;프레임워크 프로세스에 로드 됨&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;LLNDK 혹은 VNDK-SP만 종속되어야 함&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-SP 와 짝을 이루는 같은 이름의 FWK-ONLY 라이브러리가 같은 프로세스에 로드 됨&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;구글에 의해 정의됨&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템 이미지에 포함되고 시스템 이미지에서 우회적으로 사용됨&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99BF824B5AD8933627&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99BF824B5AD8933627&quot; width=&quot;500&quot; height=&quot;335&quot; filename=&quot;VNDK_SP_dependency.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;FWK-ONLY&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템 파티션에 있는 다른 SO&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 모듈은 의존할 수 없음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템 이미지에 포함되고 시스템 이미지에서 사용됨 (다른 모든 모듈에서 사용 불가)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VND-ONLY&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;non-SP-HAL을 포함한 벤더파티션에 있는 다른 모든 SO&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템 모듈은 의존할 수 없음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 이미지에 포함되고 벤더 이미지에서 사용&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999BAC485AD8936F13&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999BAC485AD8936F13&quot; width=&quot;500&quot; height=&quot;344&quot; filename=&quot;framework_vendor_only.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Summary&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;파티션을 엇갈려 로드할 때에는 LLNDK, VNDK, VNDK-SP, SP-HAL 중에 하나여야 함(O-MR1에서 recommended, P에서 강제)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://android.googlesource.com/platform/development/+/master/vndk/tools/definition-tool/datasets/eligible-list-26.csv&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;API26에서 사용되는 라이브러리 정의 리스트&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/996A7B445AD893B536&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996A7B445AD893B536&quot; width=&quot;500&quot; height=&quot;205&quot; filename=&quot;glimpseofcategory.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Directory layout&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;690&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; width: 690px;&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;Android O&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;Android O-MR1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;Independent system updates&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;FWK-ONLY&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;모든게 변할 수 있음&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;LLNDK&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;새로 구현된 사항&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-SP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]/vndk-sp&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]/vndk-sp&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;이전 API에 대한 보안 수정사항&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-SP-EXT&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/lib[64]/vndk-sp&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/lib[64]/vndk-sp&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;(degenerated)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]/vndk&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;이전 API에 대한 보안 수정 사항(O-MR1에서만)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-EXT&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/lib[64]/vndk&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 119px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-ONLY&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 195px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 193px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 230px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;N/A&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Dyn&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;amic linker support&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://android.googlesource.com/platform/system/core/+/master/rootdir/etc&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;ld.config*.txt&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Dynamic linker namespace 설정 파일, INI file 포맷으로 되어 있음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;수정 불가 (CTS Fail)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;SP-HAL and VNDK-SP 분리&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 파티션의 SP-HAL은 시스템 프로세스에 로드됨&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;SP-HAL은 VNDK-SP에 의존할 수 있음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;프레임워크모듈은 VNDK-SP와 같은 이름으로 짝을 이루는 FWK-ONLY SO에 의존&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;같은 이름의 두 SO가 로드되면 아래와 같은 문제 야기&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;update 이후 다른 symbol을 갖을 될 수 있음&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android Oreo에서 강제됨&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;(PRODUCT_FULL_TREBLE := true)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99E5094B5AD895C520&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99E5094B5AD895C520&quot; width=&quot;500&quot; height=&quot;347&quot; filename=&quot;VNDK_SP_dependency_isolate.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;system and vendor 분리&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;SO의 의존성 분리&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK와 SP-HAL을 제외한 다른 파티션의 SO는 로드되지 못함&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Requirement&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Not in Oreo&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Recommended in Oreo-MR1&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Enforced in P&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;오레오에서 BOARD_VNDK_VERSION이 정의되면 기본으로 강제됨&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;BOARD_VNDK_RUNTIME_DISABLE := true 추가해서 disable 가능&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999162495AD8961F1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999162495AD8961F1C&quot; width=&quot;500&quot; height=&quot;342&quot; filename=&quot;VNDK_isolate_sy_ve.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Framework Process linker namespaces&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Oreo-MR1&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/992BE94F5AD8964823&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F992BE94F5AD8964823&quot; width=&quot;500&quot; height=&quot;222&quot; filename=&quot;framework_process_dl.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Vendor Process linker namespaces&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Oreo&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99142A485AD8966845&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99142A485AD8966845&quot; width=&quot;500&quot; height=&quot;211&quot; filename=&quot;vendor_process_dl_oreo.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Oreo-MR1&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999162495AD8967C1F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999162495AD8967C1F&quot; width=&quot;500&quot; height=&quot;223&quot; filename=&quot;vendor_process_dl_oreo_mr1.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Build System Support&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Motivation&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;필요하다면 SO 복제 가능&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 파티션에서 사용을 위한 벤더 variant 작성&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK, VNDK-SP는 필요하다면 복제될 수 있음&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;빌드 의존성을 명시화&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;헤더, 정적 라이브러리, 공유라이브러리가 사용가능한지 확인&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;GSI에 인스톨 될 VNDK 정의&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;교차 버전 시스템 이미지 개발을 위한 VNDK snapshot 생성&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android Oreo&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;모듈을 벤더 파티션에 이동하는 방법&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android.mk&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;LOCAL_VENDOR_MODULE := true&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;or&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;LOCAL_PROPRIETARY_MODULE := true&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android.bp&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vendor:true&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;or&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;proprietary:true&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템과 벤더에 모두 설치하기 위해 약간의 트릭을 사용&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://android.googlesource.com/device/generic/common/+/android-8.0.0_r12/vndk/Android.mk&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;device/generic/common/vndk/Android.mk&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;h4&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android Oreo-MR1&lt;/span&gt;&lt;/h4&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Enable full VNDK support&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;BoradConfig.mk 에 아래 코드로 enable&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;BOARD_VNDK_VERSION := current&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;헤더 검색 경로를 확인하고 모든 전역 기본 검색 경로를 제거&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;공유 라이브러리의 링크 유형 확인(벤더 모듈은 LLNDK나 vendor_vailable만 link 가능)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 별 VNDK 라이브러리 빌드하여&amp;nbsp; /system/lib\[64\]/\{vndk,vndk-sp\} 에 설치&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 별 라이브러리 빌드하고 /vendor/lib\[64\] 에 설치&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Android.bp에서 VNDK 와 연관된 property&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vendor: true&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 모듈&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;LLNDK와 vendor_available에만 의존할 수 있음&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;false라면 벤더 모듈에 의존할 수 없음&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vendor_available: true&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더에서 사용 가능&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;프레임워크 모듈이 사용하면, 벤더용으로 변형되어 빌드됨&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vndk.enabled: true&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK 라이브러리&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vndk.support_system_process: true&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-SP 라이브러리&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;target.vendor&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 특화된 빌드 옵션&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;exclude_srcs : exclude framework-specific source files&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;exclude_shared_libs : exclude framework-specific shared libraries&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Example&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;LLNDK&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;llndk_library {&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;name: &quot;libThasIsLlndk&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;cc_library {&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; name: &quot;libThatIsVndk&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; vendor_available: true,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; vndk: {&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-SP&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;cc_library {&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; name: &quot;libThatIsVndkSp&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; vendor_available: true,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; vndk: {&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enabled: true,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; support_system_process: true,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;FWK-ONLY&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;cc_library {&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; name: &quot;libThatIsCore&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VND-ONLY&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;cc_library {&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; name: &quot;libThatIsVendorOnly&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; proprietary: true,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; # or: vendor: true, # (for things in AOSP)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK definition tool&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;공유 라이브러리의 의존성 체크&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK 세트를 계산&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;의존성 위반 체크&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;명령어&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol style=&quot;list-style-type: decimal;&quot;&gt;&lt;ol style=&quot;list-style-type: decimal;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vndk&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤터 파티션에 복사되어야 할 VNDK-SP 라이브러리 기타 다른 라이브러리 나열&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vndk_definition_tool.py vndk \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--system path/system \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--vendor path/vendor \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--aosp-system path/gsi/system \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--tag-file eligible-list.csv \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--load-extra-deps deps.txt&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;check-dep&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;종속성을 검사하여 위반된 라이브러리와 심볼 나열&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vndk_definition_tool.py check-dep \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--system path/system \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--vendor path/vendor \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--aosp-system path/gsi/system \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--tag-file eligible-list.csv \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--load-extra-deps deps.txt \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--module-info module-info.json&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;deps &amp;amp; deps-insight&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;모든 공유 라이브러리의 종속성을 출력하는 디버깅 명령어&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vndk_definition_tool.py deps \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--system path/system \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--vendor path/vendor \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--load-extra-deps deps.txt \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--module-info module-info.json&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vndk_definition_tool.py deps-insight \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--system path/system \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--vendor path/vendor \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--aosp-system path/gsi/system \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--tag-file eligible-list.csv \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--load-extra-deps deps.txt \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&amp;nbsp;--module-info module-info.json&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;JNI libraries in bundled apps (O-MR1)&lt;/span&gt;&lt;/h3&gt;&lt;table class=&quot;txc-table&quot; width=&quot;464&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 116px; height: 35px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Shared libraries location&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 116px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Bundled System app&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 116px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Bundled vendor app&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 116px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(217, 229, 255);&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Downloaded app&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;All&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/etc/public.libraries.txt(NDK)+LLNDK&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/etc/public.libraries.txt(NDK)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/etc/public.libraries.txt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;All&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/etc/public.libraries.txt&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 116px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]/vndk-sp&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 116px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;X&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 116px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Public VNDK-SP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 116px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;X&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]/vndk&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;X&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;X&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:116;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;X&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK Rules&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;프레임워크 프로세스는 벤더파티션에서 SP-HAL이 아닌 라이브러리를 로드할 수 없음 (O는 완전 강제는 아님)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더 프로세스는 시스템 파티션에서 LL-NDK, VNDK-SP, VNDK를 제외한 다른 라이브러리를 로드할 수 없음 (O는 완전 강제는 아님)&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Note: 어차피 할거 OTA를 위해 8.0부터 지켜주는 것이 좋음&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;설치되는 VNDK는 Google 에서 정의한 Eligible VNDK 라이브러리에 포함되어야 함&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;SP-HAL, SP-HAL-Dep의 외붖오속성은 LL-NDK or Google이 정의한 VNDK-SP로 제한&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;SP-HAL의 종속성은 LL-NDK, VNDK-SP, SP-HAL or SP-HAL-Dep로 분류될 수 있는 다른 벤더의 SO로 제한&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;벤더의 SO는 AOSP가 아니고 종속성이 LL-NDK, VNDK-SP, SP-HAL이나 다른 SP-HAL-Dep에만 있을 경우 Sp-HAL-Dep로 분류할 수 있음&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;VNDK-SP는 반드시 self-contained. libRS_internal.so는 8.0 이후에 다시 검토 예정&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;바인더,소켓, 공유메모리, 파일 등 HIDL이 아닌 프레임워크와 벤더간의 통신 사용 불가&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;시스템 파티션은 모든 VNDK의 복사본 두개와 부적격한 프레임워크 라이브러리 복사본을 포함할 만큼 커야 함&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;hr&gt;&lt;h1&gt;&lt;span style=&quot;background-color: rgb(70, 115, 255); color: rgb(255, 255, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Termin&lt;/span&gt;&lt;span style=&quot;background-color: rgb(70, 115, 255); color: rgb(255, 255, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;ology&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Modules&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Shared Libraries or Executables&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Processes&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Operating system tasks spawned from Executables&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Framework-qualified terms&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;concepts related to the &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;system partition&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;709&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; width: 709px;&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 257px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Fra&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;mework&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;E&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;xecutables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;executables in &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/bin&lt;/span&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt; or &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/xbin&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 257px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Framework&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Shared Libraries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;shared libraries under &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/system/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 257px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Framework&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Modules&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Framework Shared Libraries and Framework Executables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 257px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Framework&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Processes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Processes spawned from Framework Executables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Vendor-qualified terms&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;concepts related to the &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;vendor partition&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;706&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot; style=&quot;border: none; border-collapse: collapse; width: 706px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 254px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Vendor&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Executables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;executables in &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor/bin&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 254px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Vendor&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Shared Libraries&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;shared libraries under &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/vendor&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;/lib[64]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 254px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Vendor&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Modules&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Vendor Shared Libraries and VEndor Executables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 254px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Vendor&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Processes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 451px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Processes spawned from Vendor&amp;nbsp;Executables&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;&lt;hr class=&quot;tx-hr-image-4&quot; style=&quot;background: url(//i1.daumcdn.net/deco/contents/horizontalrule/line08.gif?v=2) repeat-x scroll left; height: 15px; border:0; width:54px; margin:30px auto&quot;&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;Reference&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://source.android.com/devices/architecture/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://source.android.com/devices/architecture/&lt;/a&gt;&lt;/p&gt;</description>
      <category>IT/Android</category>
      <category>Android</category>
      <category>TREBLE</category>
      <category>VNDK</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/12</guid>
      <comments>https://2sonnn.tistory.com/entry/Android-TREBLE#entry12comment</comments>
      <pubDate>Thu, 19 Apr 2018 22:46:12 +0900</pubDate>
    </item>
    <item>
      <title>PIP ImportError Fix</title>
      <link>https://2sonnn.tistory.com/entry/PIP-ImportError-Fix</link>
      <description>&lt;p&gt;PIP를 10으로 Upgrade 하고나니&lt;/p&gt;&lt;p&gt;ImportError: cannot import name main&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이리저리 찾은 끝에..&lt;/p&gt;&lt;p&gt;젤 쉬운 방법은&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 11.9px; margin-top: 0px; margin-bottom: 0px; word-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 3px; word-break: normal; color: rgb(36, 41, 46);&quot;&gt;$ &lt;span class=&quot;pl-c1&quot; style=&quot;box-sizing: border-box; color: rgb(0, 92, 197);&quot;&gt;hash&lt;/span&gt; -d pip&lt;/pre&gt;&lt;p&gt;or&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 11.9px; margin-top: 0px; margin-bottom: 0px; word-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 3px; word-break: normal; color: rgb(36, 41, 46);&quot;&gt;$ &lt;span class=&quot;pl-c1&quot; style=&quot;box-sizing: border-box; color: rgb(0, 92, 197);&quot;&gt;hash&lt;/span&gt; -r pip&lt;/pre&gt;&lt;p&gt;easy_install 이고 뭐고 그냥 저거 하니까 됨..&lt;/p&gt;</description>
      <category>IT/Python</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/11</guid>
      <comments>https://2sonnn.tistory.com/entry/PIP-ImportError-Fix#entry11comment</comments>
      <pubDate>Wed, 18 Apr 2018 00:30:07 +0900</pubDate>
    </item>
    <item>
      <title>20151024 나라&amp;amp;오사카</title>
      <link>https://2sonnn.tistory.com/entry/20151024-%EB%82%98%EB%9D%BC%EC%98%A4%EC%82%AC%EC%B9%B4</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;오사카 마지막날.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;교토를 갈까 나라를 갈까 고민하다가&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;교토는 하루만에 보기 힘들다하여 나라로 결정.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;아침 풍경은 그냥 일본 스럽다.. 민박집에서 나와서 찍은 골목길&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2573BA4457D6A8EC31&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2573BA4457D6A8EC31&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-01.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;여차저차 기차타고 나라 도착해서 돌아다니다가 옛 마을에서 찍은 일본스러운 사진.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;저 문 모양이 참 일본스럽다..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2110824457D6A8ED14&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2110824457D6A8ED14&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-02.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;다시 또 걸어다니다가 어딘지 모르는 곳 사진 한컷&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;열심히 동자승 비슷한 분이 빗질을 하고 계시던데..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;신사 느낌이었음..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2177E74457D6A8EE2D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2177E74457D6A8EE2D&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-03.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;나라 옛마을 전경&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;여유 그 자체가 묻어있는 시골 모습&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2103794457D6A8EF20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2103794457D6A8EF20&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-04.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;밥먹은 집.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;밥은 별로 특별할 것도 없었지만 워낙 먹을곳이 없는 지역이라..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;맛집이라고 소문난 곳.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2513394457D6A8F011&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2513394457D6A8F011&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-05.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;너무 더워서 먹은 아이스크림.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;녹차 아이스크림 인줄 알았는데&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;말차랑 녹차랑 차이가 뭐지...&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2112D84457D6A8F112&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2112D84457D6A8F112&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-06.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;나라 공원에 있는 대웅전 같은 큰 건물&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;역시나 이런 랜드마크엔 사람이 엄청나다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/240B174457D6A8F219&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F240B174457D6A8F219&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-07.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;오사카&amp;amp;나라 여행에서 젤 좋았던 곳.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;두시간 정도 그늘에 누워 낮잠을 잤는데&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;인생 최고의 낮잠.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;꿀잠 핵꿀잠.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;여기가 바로 지상낙원...&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2133EA4557D6A8F310&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2133EA4557D6A8F310&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-08.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;나라 = 사슴&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;사슴 = 나라&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;사람을 무서워하지 않는 비둘기 같은 사슴들&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/221F544557D6A8F424&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F221F544557D6A8F424&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-09.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;나라에서 돌아와 밥먹으러 간 초밥 맛집&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;진짜 맛있음.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;기다린 보람이 있음.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;정말 맛있음.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;후회 안함.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;한번 두번 세번 찾아가도 맛있는 맛집일 것임&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23173A4557D6A8F52F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23173A4557D6A8F52F&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-10.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;일본 여행의 마무리 온천.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;현금밖에 안됨...OTL&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;수중에 있는 현금 겨우 탈탈 털어서 맞춤.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;물 좋고 노천탕에서 야구보고 혼자 잠자고..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;나중에 온천 여행을 가야겠다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/263F474557D6A8F604&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F263F474557D6A8F604&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-11.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;민박 집으로 돌아오는 그냥 골목 밤길.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;매우 일본스러운 골목.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/213BBF4557D6A8F708&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F213BBF4557D6A8F708&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-12.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;지금은 이름도 기억나지 않는 친구들과 함께한 술자리&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;다들 각자의 자리에서 잘 살고 있을듯..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;혹시 이 때 나랑 같이 술 마신 사람이 있다면 연락해요.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;사진 줄테니..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/262B084557D6A8F819&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F262B084557D6A8F819&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-13.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;그리고 하룻밤 자고 나서 다시 서울로.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;그리고 이제 본격적인 여행을 떠나러.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;굿바이 오사카&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2724884557D6A8F920&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2724884557D6A8F920&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151024-14.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Travel/Japan</category>
      <category>나라</category>
      <category>나라여행</category>
      <category>사슴</category>
      <category>오사카</category>
      <category>오사카 여행</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/9</guid>
      <comments>https://2sonnn.tistory.com/entry/20151024-%EB%82%98%EB%9D%BC%EC%98%A4%EC%82%AC%EC%B9%B4#entry9comment</comments>
      <pubDate>Mon, 12 Sep 2016 22:22:36 +0900</pubDate>
    </item>
    <item>
      <title>[python] datetime &amp;lt;-&amp;gt; timestamp &amp;lt;-&amp;gt; string</title>
      <link>https://2sonnn.tistory.com/entry/python-datetime-timestamp-string</link>
      <description>&lt;p&gt;ubuntu 14.04&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; import datetime&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; import time&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;##### string -&amp;gt; datetime object #####&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; string_date = '2016-08-31 00:00:00'&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; dobj = datetime.datetime.strptime(string_date,'%Y-%m-%d %H:%M:%S')&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; dobj&lt;/p&gt;&lt;p&gt;datetime.datetime(2016, 8, 31, 0, 0)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;##### datetime object -&amp;gt; timestamp&amp;nbsp;#####&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; timestamp = time.mktime(dobj.timetuple())&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; timestamp&lt;/p&gt;&lt;p&gt;1472569200.0&lt;/p&gt;&lt;p&gt;##### timestamp&amp;nbsp;-&amp;gt; datetime object #####&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; dobj2 = datetime.datetime.fromtimestamp(timestamp)&lt;/p&gt;&lt;p&gt;&amp;gt;&amp;gt;&amp;gt; dobj2&lt;/p&gt;&lt;p&gt;datetime.datetime(2016, 8, 31, 0, 0)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>IT/Python</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/7</guid>
      <comments>https://2sonnn.tistory.com/entry/python-datetime-timestamp-string#entry7comment</comments>
      <pubDate>Wed, 31 Aug 2016 23:23:49 +0900</pubDate>
    </item>
    <item>
      <title>20151023 오사카</title>
      <link>https://2sonnn.tistory.com/entry/20151023-%EC%98%A4%EC%82%AC%EC%B9%B4</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;아침은 라면을 먹겠다는 일념으로&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;아침부터 출발&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/277FF43C57C44B5925&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F277FF43C57C44B5925&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-01.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;길 가다가 그냥 큰 건물 있어서&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;하나 찍음..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2416C13C57C44B5A12&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2416C13C57C44B5A12&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-02.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2272E63C57C44B5B32&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2272E63C57C44B5B32&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-03.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/277BC53C57C44B5C21&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F277BC53C57C44B5C21&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-04.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;드디어 도착한 라멘집&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;맛집이다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;어딘가 지하 상가에 있는 곳이다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;종업원이 영어를 못한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;관광객이 한명도 안보인다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;맛있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2524403C57C44B5D04&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2524403C57C44B5D04&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-05.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;오사카 왔으니 오사카 돔은 봐야지.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;이 때만 해도 고척돔이 만들어 지기 전.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;근데 다음날 콘서트 있다고&amp;nbsp;구장 투어도 안된다 함..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;AH.....&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;겉에만 보고 옴..ㅠㅠ&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2605BA3C57C44B5E20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2605BA3C57C44B5E20&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-06.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;길 가다가 핸폰 케이스 샵 들어가서 미키마우스 케이스 하나 삼&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;여친님 줄 선물이지만.. 내 폰에 맞는 미키마우스 케이스는 없음&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;저 케이스는 현재 투명 케이스가 되었음...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23253B3C57C44B5F03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23253B3C57C44B5F03&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-07.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2510313657C44B6015&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2510313657C44B6015&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-08.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;배고프니까 간식으로 꼬치 먹으러..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;도톤보리에 위치한 가게&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;맛있음&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;절대&amp;nbsp;저기 서 있는 종업원분이 이뻐서 찍은 사진 아님.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;절대 아님&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;이미 이땐 체력이 바닥..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;간만에 엄청 걸어서 발도 아프고&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;다 귀찮은 상태였지만..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;오사카 성 야경보러 고&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;오사카 성 야경은 오사카 여행의 유일한 버킷 리스트&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27794B3657C44B6127&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27794B3657C44B6127&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-09.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2518A43657C44B620E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2518A43657C44B620E&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-10.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/237D103657C44B6324&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F237D103657C44B6324&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-11.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 393px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2116BC3657C44B6410&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2116BC3657C44B6410&quot; width=&quot;393&quot; height=&quot;700&quot; filename=&quot;osaka-151024-12.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;역시나 날 실망시키지 않은 오사카 성&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;다음번에 올 때도 똑같은 모습 그대로 아름답게 빛나길&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;근처에 오꼬노미 야끼 맛집이 있다고 해서..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;저녁은 오꼬노미야끼로 당첨&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/221F9D3657C44B6507&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F221F9D3657C44B6507&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-13.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/216EDD3657C44B6631&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F216EDD3657C44B6631&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-14.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;진짜 음식사진&amp;nbsp;못찍는다&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;초점을 대체...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;암튼 보이는 것과 다르게 맛있음&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;조금 느끼하지만 괜찮음&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/221B1B3657C44B670C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F221B1B3657C44B670C&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-15.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;하지만 여기가 더 맛있어 보임&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;오꼬노미야끼 가게 찾아다닐 때 이 가게 엄청 줄 서있음&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;남녀 커플로...(데이트 코스인가봄)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;와규 파는 곳 같은데..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;내가 혼자만 아니었어도 갔었을텐데.......&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;혹시 가신분 있으면 후기라도 남겨주시길...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 450px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2774083657C44B682C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2774083657C44B682C&quot; width=&quot;450&quot; height=&quot;801&quot; filename=&quot;osaka-151024-16.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 450px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/240C6F3657C44B6A18&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F240C6F3657C44B6A18&quot; width=&quot;450&quot; height=&quot;801&quot; filename=&quot;osaka-151024-18.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2276023657C44B692A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2276023657C44B692A&quot; width=&quot;700&quot; height=&quot;393&quot; filename=&quot;osaka-151024-17.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;역시 오사카 하면 도톤보리&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;도톤보리 하면 오사카&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;혼자라서 아쉬웠지만 다음에 오면 여기저기 다 가봐야지...&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;둘째날도 이렇게 끝&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Travel/Japan</category>
      <category>여행</category>
      <category>오사카</category>
      <category>오사카 여행</category>
      <category>오사카성</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/6</guid>
      <comments>https://2sonnn.tistory.com/entry/20151023-%EC%98%A4%EC%82%AC%EC%B9%B4#entry6comment</comments>
      <pubDate>Mon, 29 Aug 2016 23:59:54 +0900</pubDate>
    </item>
    <item>
      <title>20151022 오사카</title>
      <link>https://2sonnn.tistory.com/entry/20151022-%EC%98%A4%EC%82%AC%EC%B9%B4</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;2015년 10월 17일&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;5년 10개월 다닌 굴지의 대기업(응?)&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;퇴사&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;퇴사......... 후 계획따위...&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;그냥 여행이나 가는거지.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;일본은 안간다 했지만&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;유럽 항공권이&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;오사카-인천-파리 티켓이라&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;겸사겸사..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;OSAKA로 고!!&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/212E915057C441731B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F212E915057C441731B&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-01.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;한국말로 써있는 출입국 심사 표지판&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;사진기 찰칵 소리 나자마자&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;노카메라!!!! 노카메라!!!!&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;일본순사의 외침&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;쿨하게 모른척 하고 쌩깠지만 쫄음..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/240D0F5057C4417439&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F240D0F5057C4417439&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-02.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;세계 어디서나 반가운 스타벅스&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;우리나라 회사도 아닌것이&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;우리나라 회사같이 반갑구만&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2536C75057C4417514&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2536C75057C4417514&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-03.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;짐 놓고 점심으로 먹은 우동&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;이름은 모름&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;지도보고 찾아간 곳이라 어떻게 갔는지도 모름&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;첫날이라 정신 없음..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;맛 괜찮음.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2512D95057C4417634&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2512D95057C4417634&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-05.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/262F175057C441771D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F262F175057C441771D&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-06.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;오사카에 왔으니 오사카성 가야지&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;하고 찾아온 오사카성.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;역시 기대를 저버리지 않았음.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;마침 분위기 좋게&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;지나가는 배가 있어서 사진에 담아드림.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2517835057C4417831&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2517835057C4417831&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-07.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2737275057C4417914&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2737275057C4417914&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-08.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;타코야키 맛집이라고 해서 찾아간 곳&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;길거리에 있는 타코야키집.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;일단 손님은 전부다 일본인. 관광객은 없어보임.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;근데 맛은 한국에서 먹는것과 뭐가 다른거지....?&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232D6F4D57C4417A2B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232D6F4D57C4417A2B&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-09.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;오사카=도톤보리&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;도톤보리 = 오사카&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2744A74D57C4417B15&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2744A74D57C4417B15&quot; width=&quot;700&quot; height=&quot;394&quot; filename=&quot;osaka-151023-12.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;오사카 우메다 공중정원&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;춥다..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;너무 추워서 사진이고 뭐고 대충 찍음..&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;이렇게 몇년만에 떠난 혼자여행 첫날 마무리&lt;/p&gt;</description>
      <category>Travel/Japan</category>
      <category>여행</category>
      <category>오사카</category>
      <category>오사카 여행</category>
      <category>오사카성</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/5</guid>
      <comments>https://2sonnn.tistory.com/entry/20151022-%EC%98%A4%EC%82%AC%EC%B9%B4#entry5comment</comments>
      <pubDate>Mon, 29 Aug 2016 23:12:41 +0900</pubDate>
    </item>
    <item>
      <title>Why programmer?</title>
      <link>https://2sonnn.tistory.com/entry/Why-programmer</link>
      <description>&lt;p&gt;내가 Programmer 가 되고싶었던 나이는 13살.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이유는 단 하나.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Make a better world&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그때만 해도 난 뭔가 대단한게 하고 싶었고, 프로그래머라면 좀 더 좋은 세상으로 만들 수 있을 줄 알았다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;우연히 정보를 찾아 블로그를 해매다가 평소에 눈여겨 보지도 않던 블로그 이름을 쳐다보고 불현듯 떠오른 내가 프로그래머가 된 이유.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Make a better world&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;비록 비루한 개발자라고 생각할 수 있지만.. 내가 왜 프로그래머가 됐는지, 그리고 이 길을 걸어가는지 다시 한번 생각해본다.&lt;/p&gt;</description>
      <category>Life/Think</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/4</guid>
      <comments>https://2sonnn.tistory.com/entry/Why-programmer#entry4comment</comments>
      <pubDate>Mon, 29 Aug 2016 22:04:26 +0900</pubDate>
    </item>
    <item>
      <title>Installing nginx (latest version) on Ubuntu 14.04</title>
      <link>https://2sonnn.tistory.com/entry/Installing-nginx-latest-version-on-Ubuntu-1404</link>
      <description>&lt;p&gt;$ sudo add-apt-repository ppa:nginx/stable&lt;/p&gt;&lt;p&gt;$&amp;nbsp;sudo&amp;nbsp;apt-get update&lt;/p&gt;&lt;p&gt;$&amp;nbsp;sudo&amp;nbsp;apt-get install nginx&lt;/p&gt;</description>
      <category>IT/Nginx</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/3</guid>
      <comments>https://2sonnn.tistory.com/entry/Installing-nginx-latest-version-on-Ubuntu-1404#entry3comment</comments>
      <pubDate>Mon, 29 Aug 2016 20:47:42 +0900</pubDate>
    </item>
    <item>
      <title>How To Create, Remove, &amp;amp; Manage Tables in PostgreSQL on a Cloud Server</title>
      <link>https://2sonnn.tistory.com/entry/How-To-Create-Remove-Manage-Tables-in-PostgreSQL-on-a-Cloud-Server</link>
      <description>&lt;h3 style=&quot;margin: 14px 0px 11px; padding: 0px; letter-spacing: -0.5px; font-size: 22px; color: rgb(45, 45, 45); width: 745px; box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;What is PostgreSQL?&lt;/h3&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;PostgreSQL is a database management system that uses the SQL querying language. It is a very stable and feature-rich database system that can be used to store the data from other applications on your VPS.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;In this article, we will discuss how to create and manage tables within the postgreSQL interface. You will learn how to properly configure tables and use them to store your information.&lt;/p&gt;&lt;div name=&quot;how-to-install-and-log-into-postgresql-on-ubuntu&quot; data-unique=&quot;how-to-install-and-log-into-postgresql-on-ubuntu&quot; style=&quot;box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;margin: 10px 0px; padding: 0px; font-weight: 400; letter-spacing: 0.2px; font-size: 28px; color: rgb(45, 45, 45); box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;How to Install and Log Into PostgreSQL on Ubuntu&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;In this guide, we will install PostgreSQL on Ubuntu 12.04, but it should be available in most other distributions' default repositories.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Type the following commands to install:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;sudo apt-get update
sudo apt-get install postgresql postgresql-contrib&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;After installation, create a new user to manage the database we'll be creating:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;sudo adduser &lt;span class=&quot;highlight&quot; style=&quot;color: rgb(233, 72, 73); box-sizing: border-box; background: 0px 0px;&quot;&gt;postgres_user&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Log into the default PostgreSQL user (called &quot;postgres&quot;) to create a database and assign it to the new user:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;sudo su - postgres
psql&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;You will be dropped into the PostgreSQL command prompt.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Create a new user that matches the system user you created. Then create a database managed by that user:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;CREATE USER &lt;span class=&quot;highlight&quot; style=&quot;color: rgb(233, 72, 73); box-sizing: border-box; background: 0px 0px;&quot;&gt;postgres_user&lt;/span&gt; WITH PASSWORD '&lt;span class=&quot;highlight&quot; style=&quot;color: rgb(233, 72, 73); box-sizing: border-box; background: 0px 0px;&quot;&gt;password&lt;/span&gt;';
CREATE DATABASE &lt;span class=&quot;highlight&quot; style=&quot;color: rgb(233, 72, 73); box-sizing: border-box; background: 0px 0px;&quot;&gt;my_postgres_db&lt;/span&gt; OWNER &lt;span class=&quot;highlight&quot; style=&quot;color: rgb(233, 72, 73); box-sizing: border-box; background: 0px 0px;&quot;&gt;postgres_user&lt;/span&gt;;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Exit out of the interface with the following command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;\q&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Exit out of the default &quot;postgres&quot; user account and log into the user you created with the following commands:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;exit
sudo su - &lt;span class=&quot;highlight&quot; style=&quot;color: rgb(233, 72, 73); box-sizing: border-box; background: 0px 0px;&quot;&gt;postgres_user&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Sign into the database you created with the following command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;psql &lt;span class=&quot;highlight&quot; style=&quot;color: rgb(233, 72, 73); box-sizing: border-box; background: 0px 0px;&quot;&gt;my_postgres_db&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;We are now ready to learn about table management.&lt;/p&gt;&lt;div name=&quot;table-creation-syntax-in-postgresql&quot; data-unique=&quot;table-creation-syntax-in-postgresql&quot; style=&quot;box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;margin: 10px 0px; padding: 0px; font-weight: 400; letter-spacing: 0.2px; font-size: 28px; color: rgb(45, 45, 45); box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;Table Creation Syntax in PostgreSQL&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Our database does not have any tables yet. We can verify this by asking PostgreSQL to give us a listing of the available tables with this command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;\d&lt;/pre&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 28px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;No relations found.&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;We can create a new table by adhering to the following syntax:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;CREATE TABLE new_table_name (
	table_column_title TYPE_OF_DATA column_constraints,
	next_column_title TYPE_OF_DATA column_constraints,
	table_constraint
	table_constraint
) INHERITS existing_table_to_inherit_from;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;The part after the closing parenthesis up until the semi-colon is an optional construction to inherit all columns from an existing table in addition to the columns listed in the earlier definition.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;The part inside of the parentheses is divided into two parts: column definitions and table constraints.&lt;/p&gt;&lt;h3 style=&quot;margin: 14px 0px 11px; padding: 0px; letter-spacing: -0.5px; font-size: 22px; color: rgb(45, 45, 45); width: 745px; box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;PostgreSQL Column and Table Definitions&lt;/h3&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Column definitions follow this syntax pattern:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;column_name data_type (optional_data_length_restriction) column_constraints&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;The column name should be self-explanatory.&lt;/p&gt;&lt;h3 style=&quot;margin: 14px 0px 11px; padding: 0px; letter-spacing: -0.5px; font-size: 22px; color: rgb(45, 45, 45); width: 745px; box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;PostgreSQL Data Types&lt;/h3&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;The data type can be any of the following:&lt;/p&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;boolean&lt;/span&gt;: Use &quot;boolean&quot; or &quot;bool&quot; to declare a true or false value.&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;character values&lt;/span&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;char&lt;/span&gt;: holds a single character&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;char (#)&lt;/span&gt;: holds # number of characters. Spaces will be inserted to fill any extra room.&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;varchar (#)&lt;/span&gt;: holds a maximum of # number of character. Can contain less.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;integer values&lt;/span&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;smallint&lt;/span&gt;: whole number between -32768 and 32767.&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;int&lt;/span&gt;: whole number between -214783648 and 214783647.&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;serial&lt;/span&gt;: Auto-populated integer number.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;floating-point values&lt;/span&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;float (#)&lt;/span&gt;: floating point number with at least # points of precision.&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;real&lt;/span&gt;: 8-byte floating point number&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;numeric (#,after_dec)&lt;/span&gt;: real number with # number of digits, and after_dec digits after decimal&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;date and time values&lt;/span&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;date&lt;/span&gt;: stores a date value&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;time&lt;/span&gt;: stores a time value&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;timestamp&lt;/span&gt;: stores a date and time value&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;timestamptz&lt;/span&gt;: stores a timestamp that includes timezone data&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;interval&lt;/span&gt;: stores the difference between two timestamp values&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;geometric data&lt;/span&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;point&lt;/span&gt;: stores a pair of coordinates that define a point&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;line&lt;/span&gt;: stores a set of points that map out a line&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;lseg&lt;/span&gt;: stores data that defines a line segment&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;box&lt;/span&gt;: stores data that defines a rectangle&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;polygon&lt;/span&gt;: stores data that defines any enclosed space&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;device specifications&lt;/span&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;inet&lt;/span&gt;: stores an IP address&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;macaddr&lt;/span&gt;: stores a device MAC address&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;margin: 14px 0px 11px; padding: 0px; letter-spacing: -0.5px; font-size: 22px; color: rgb(45, 45, 45); width: 745px; box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;PostreSQL Column and Table Constraints&lt;/h3&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Column definitions can also have constraints that provide rules for the type of data found in the column. The following can be used as space-separated values following the data type:&lt;/p&gt;&lt;ul style=&quot;margin: 0px; padding: 0px; box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;NOT NULL&lt;/span&gt;: column cannot have null value&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;UNIQUE&lt;/span&gt;: column value must not be the same for any record. Null is always considered a unique value&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;PRIMARY KEY&lt;/span&gt;: combination of the above two constraints. Can only be used once per table&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;CHECK&lt;/span&gt;: ensure that a condition is true for values in the column&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 3px 20px; padding: 0px; box-sizing: border-box; list-style: disc outside none; line-height: 1.5em;&quot;&gt;&lt;span style=&quot;font-weight: 700; box-sizing: border-box;&quot;&gt;REFERENCES&lt;/span&gt;: value must exist in a column in another table&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;After the columns are defined, table-wide constraints may be declared. Table-wide constraints can be either UNIQUE, PRIMARY KEY, CHECK, or REFERENCES.&lt;/p&gt;&lt;div name=&quot;how-to-create-a-table-in-postgresql&quot; data-unique=&quot;how-to-create-a-table-in-postgresql&quot; style=&quot;box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;margin: 10px 0px; padding: 0px; font-weight: 400; letter-spacing: 0.2px; font-size: 28px; color: rgb(45, 45, 45); box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;How to Create a Table in PostgreSQL&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;Let's create a test table to practice on. We will create a table called &quot;pg_equipment&quot; that defines various pieces of playground equipment. Type the following table definition:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;CREATE TABLE pg_equipment (
	equip_id serial PRIMARY KEY,
	type varchar (50) NOT NULL,
	color varchar (25) NOT NULL,
	location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
	install_date date
	);&lt;/pre&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 28px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;NOTICE:  CREATE TABLE will create implicit sequence &quot;pg_equipment_equip_id_seq&quot; for serial column &quot;pg_equipment.equip_id&quot;
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index &quot;pg_equipment_pkey&quot; for table &quot;pg_equipment&quot;
CREATE TABLE&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;We can see our new table by typing &quot;\d&quot; into the prompt:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;\d&lt;/pre&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 28px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;                       List of relations
 Schema |           Name            |   Type   |     Owner     
--------+---------------------------+----------+---------------
 public | pg_equipment              | table    | postgres_user
 public | pg_equipment_equip_id_seq | sequence | postgres_user
(2 rows)&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;The table is listed, as well as the sequence created by the &quot;equip_id&quot; serial data type declaration.&lt;/p&gt;&lt;div name=&quot;how-to-change-table-data-in-postgresql&quot; data-unique=&quot;how-to-change-table-data-in-postgresql&quot; style=&quot;box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;margin: 10px 0px; padding: 0px; font-weight: 400; letter-spacing: 0.2px; font-size: 28px; color: rgb(45, 45, 45); box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;How to Change Table Data in PostgreSQL&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;We can change the definition of our tables with the following general syntax:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE table_name &lt;em style=&quot;box-sizing: border-box;&quot;&gt;Action_TO_Take&lt;/em&gt;;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;For example, we can add a column to our &quot;pg_equipment&quot; table by entering this command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE pg_equipment ADD COLUMN functioning bool;&lt;/pre&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 28px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;We can see the extra column by typing:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;\d pg_equipment&lt;/pre&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 28px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;    Column    |         Type          |                            Modifiers                            
--------------+-----------------------+-----------------------------------------------------------------
 equip_id     | integer               | not null default nextval('pg_equipment_equip_id_seq'::regclass)
 type         | character varying(50) | not null
 color        | character varying(25) | not null
 location     | character varying(25) | 
 install_date | date                  | 
 functioning  | boolean               |
 . . .&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;To add a default value that specifies that &quot;equipment should be considered working unless otherwise noted&quot;, give the following command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE pg_equipment ALTER COLUMN functioning SET DEFAULT 'true';&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;If we want to ensure that the value is also not null, we can do this:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE pg_equipment ALTER COLUMN functioning SET NOT NULL;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;To rename the column, use the following syntax:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE pg_equipment RENAME COLUMN functioning TO working_order;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;To remove the column we just created, enter this command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE pg_equipment DROP COLUMN working_order;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;We can rename the entire table with this command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ALTER TABLE pg_equipment RENAME TO playground_equip;&lt;/pre&gt;&lt;div name=&quot;deleting-tables-in-postgresql&quot; data-unique=&quot;deleting-tables-in-postgresql&quot; style=&quot;box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;margin: 10px 0px; padding: 0px; font-weight: 400; letter-spacing: 0.2px; font-size: 28px; color: rgb(45, 45, 45); box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;Deleting Tables in PostgreSQL&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;We can delete the table we created by typing:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;DROP TABLE playground_equip;&lt;/pre&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 28px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;DROP TABLE&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;If we give that command to a table that does not exist, we will receive the following error:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;ERROR: table &quot;playground_equip&quot; does not exist&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;To avoid this error, we can tell postgreSQL to delete the table if it exists and return successfully either way. We do this by issuing the following command:&lt;/p&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 0px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;DROP TABLE IF EXISTS playground_equip;&lt;/pre&gt;&lt;pre style=&quot;font-family: monospace, monospace; font-size: 14px; border-radius: 3px; box-sizing: border-box; word-wrap: normal; padding: 13px 17px; margin-top: 28px; margin-bottom: 28px; overflow: auto !important; background-color: rgba(0, 0, 0, 0.0470588);&quot;&gt;NOTICE:  table &quot;playground_equip&quot; does not exist, skipping
DROP TABLE&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;This time, it tells us that the table was not found, but continues instead of throwing an error.&lt;/p&gt;&lt;div name=&quot;conclusion&quot; data-unique=&quot;conclusion&quot; style=&quot;box-sizing: border-box; font-family: proxima-nova, sans-serif; font-size: 16px; line-height: 24px;&quot;&gt;&lt;/div&gt;&lt;h2 style=&quot;margin: 10px 0px; padding: 0px; font-weight: 400; letter-spacing: 0.2px; font-size: 28px; color: rgb(45, 45, 45); box-sizing: border-box; font-family: proxima-nova, sans-serif;&quot;&gt;Conclusion&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;You should now know enough to create and manage simple tables in PostgreSQL. These skills will be helpful if you are managing data from another application, or learning the how to control PostgreSQL from the command line.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 22px; margin-left: 0px; padding: 0px; box-sizing: border-box; font-size: 16px; line-height: 28px; font-family: proxima-nova, sans-serif;&quot;&gt;출처 -&amp;nbsp;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-create-remove-manage-tables-in-postgresql-on-a-cloud-server&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://www.digitalocean.com/community/tutorials/how-to-create-remove-manage-tables-in-postgresql-on-a-cloud-server&lt;/a&gt;&lt;/p&gt;</description>
      <category>IT/Postgresql</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/2</guid>
      <comments>https://2sonnn.tistory.com/entry/How-To-Create-Remove-Manage-Tables-in-PostgreSQL-on-a-Cloud-Server#entry2comment</comments>
      <pubDate>Sun, 28 Aug 2016 23:36:51 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu 한영키</title>
      <link>https://2sonnn.tistory.com/entry/Ubuntu-%ED%95%9C%EC%98%81%ED%82%A4</link>
      <description>&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;1.&amp;nbsp;'시스템설정&amp;nbsp;-&amp;gt;&amp;nbsp;언어지원&amp;nbsp;-&amp;gt;&amp;nbsp;언어&amp;nbsp;설치/제거'에&amp;nbsp;들어가서&amp;nbsp;'한국어'&amp;nbsp;선택&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;2.&amp;nbsp;'시스템설정&amp;nbsp;-&amp;gt;&amp;nbsp;텍스트&amp;nbsp;입력창&amp;nbsp;-&amp;gt;사용할&amp;nbsp;입력&amp;nbsp;소스'에서&amp;nbsp;'한국어&amp;nbsp;(Hangul)'&amp;nbsp;추가&amp;nbsp;및&amp;nbsp;'이전&amp;nbsp;소스로&amp;nbsp;전환'&amp;nbsp;(혹은&amp;nbsp;'다음&amp;nbsp;소스로&amp;nbsp;전환'&amp;nbsp;을&amp;nbsp;'Ctrl+한영키'로&amp;nbsp;설정&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;3.&amp;nbsp;한영키만&amp;nbsp;단독으로&amp;nbsp;사용하기&amp;nbsp;:&amp;nbsp;'dconf-editor'&amp;nbsp;설치&amp;nbsp;및&amp;nbsp;사용&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&amp;nbsp;$&amp;nbsp;sudo&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;dconf-editor&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;org&amp;nbsp;-&amp;gt;&amp;nbsp;gnome&amp;nbsp;-&amp;gt;&amp;nbsp;desktop&amp;nbsp;-&amp;gt;&amp;nbsp;wm&amp;nbsp;-&amp;gt;&amp;nbsp;keybindings&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 0px; line-height: 18px; color: rgb(61, 68, 68); font-family: &amp;quot;2186745_9&amp;quot;; font-size: 12px; text-align: justify;&quot;&gt;'switch-input-source'&amp;nbsp;혹은&amp;nbsp;'switch-input-source-backward'의&amp;nbsp;내용을&amp;nbsp;'Hangul'&amp;nbsp;만으로&amp;nbsp;수정&lt;/p&gt;</description>
      <category>IT/Linux</category>
      <author>2sonnn</author>
      <guid isPermaLink="true">https://2sonnn.tistory.com/1</guid>
      <comments>https://2sonnn.tistory.com/entry/Ubuntu-%ED%95%9C%EC%98%81%ED%82%A4#entry1comment</comments>
      <pubDate>Sun, 28 Aug 2016 21:40:15 +0900</pubDate>
    </item>
  </channel>
</rss>