<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zizi_Dev</title>
    <link>https://ios2080dev.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 27 Jun 2026 22:14:36 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ziziDev</managingEditor>
    <item>
      <title>[iOS] FNC TAG_READER_TEST_ZIZI</title>
      <link>https://ios2080dev.tistory.com/221</link>
      <description>&lt;div style=&quot;background-color: #0a0a0a; color: #d8dee9; text-align: start;&quot;&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/baeL0C/dJMcabvLKnL/gLPRkFcvxrBKKEPBNIrCm0/BuildingAnNFCTagReaderApp.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;BuildingAnNFCTagReaderApp.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.11MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/dbX2VG/dJMb995Nuks/YpB0DA82rrmbqFTl1y2kh1/BuildingAnNFCTagReaderApp%202.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;BuildingAnNFCTagReaderApp 2.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.16MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #0a0a0a; color: #d8dee9; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #0a0a0a; color: #d8dee9; text-align: start;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;/*&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;See the LICENSE.txt file for this sample&amp;rsquo;s licensing information.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;Abstract:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;The view controller that scans and displays NDEF messages.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;*/&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIKit&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;CoreNFC&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;/// - Tag: MessagesTableViewController&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #87c3ff;&quot;&gt;MessagesTableViewController&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UITableViewController&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;NFCNDEFReaderSessionDelegate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;NFCTagReaderSessionDelegate &lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - Properties&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; reuseIdentifier &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;reuseIdentifier&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; detectedMessages &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; [NFCNDEFMessage]()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session: NFCNDEFReaderSession&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagSession: NFCTagReaderSession&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; detectedTagInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;]() &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// 일반 태그 정보 저장&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - View Lifecycle&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;override&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;() {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// 왼쪽에 &quot;카드 스캔&quot; 버튼 추가&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; cardScanButton &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIBarButtonItem&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;카드 스캔&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;plain&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;target&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;action&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;#selector&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;beginGeneralTagScanning&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(_:)))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; navigationItem.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;leftBarButtonItem&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; cardScanButton&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// 오른쪽 &quot;Scan&quot; 버튼은 Storyboard에 이미 있음&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - Actions&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;/// - Tag: beginScanning&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;@IBAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;beginScanning&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;sender&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: Any) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;guard&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; NFCNDEFReaderSession.readingAvailable &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertController&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Scanning Not Supported&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;message&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;This device doesn't support tag scanning.&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;preferredStyle&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alert&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; )&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;addAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;OK&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;handler&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;present&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(alertController, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;animated&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: true, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;completion&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;NFCNDEFReaderSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;delegate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;queue&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;invalidateAfterFirstRead&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: false)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Hold your iPhone near the item to learn more about it.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - NFCNDEFReaderSessionDelegate&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;/// - Tag: processingTagData&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readerSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCNDEFReaderSession, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;didDetectNDEFs&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;messages&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: [NFCNDEFMessage]) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// Process detected NFCNDEFMessage objects.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;detectedMessages&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;contentsOf&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: messages)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tableView&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;reloadData&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;/// - Tag: processingNDEFTag&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readerSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCNDEFReaderSession, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;didDetect&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tags&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: [NFCNDEFTag]) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tags.count &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ebc88d;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// Restart polling in 500ms&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; retryInterval &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchTimeInterval.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;milliseconds&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ebc88d;&quot;&gt;500&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;More than 1 tag is detected, please remove all tags and try again.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;global&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;asyncAfter&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;deadline&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;now&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; retryInterval, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;execute&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;restartPolling&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; })&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// Connect to the found tag and perform NDEF message reading&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tag &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tags.first&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;connect&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;to&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: tag, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;completionHandler&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: { (&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Error&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;in&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; nil &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; error {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Unable to connect to tag.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;invalidate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tag.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;queryNDEFStatus&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;completionHandler&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: { (&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;ndefStatus&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCNDEFStatus, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;capacity&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Int&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Error&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;in&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .notSupported &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; ndefStatus {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Tag is not NDEF compliant&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;invalidate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; nil &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; error {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Unable to query NDEF status of tag&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;invalidate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tag.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readNDEF&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;completionHandler&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: { (&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;message&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCNDEFMessage&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Error&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;in&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; statusMessage: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; nil &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; error &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; nil &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; message {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; statusMessage &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Fail to read NDEF from tag&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; statusMessage &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Found 1 NDEF message&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// Process detected NFCNDEFMessage objects.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;detectedMessages&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(message&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tableView&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;reloadData&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; statusMessage&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;invalidate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; })&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; })&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; })&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;/// - Tag: sessionBecomeActive&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readerSessionDidBecomeActive&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCNDEFReaderSession) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;/// - Tag: endScanning&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readerSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCNDEFReaderSession, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;didInvalidateWithError&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// Check the invalidation reason from the returned error.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; readerError &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; error &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;as?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; NFCReaderError {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// Show an alert when the invalidation reason is not because of a&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// successful read during a single-tag read session, or because the&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// user canceled a multiple-tag read session from the UI or&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// programmatically using the invalidate method call.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; (readerError.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;readerSessionInvalidationErrorFirstNDEFTagRead&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; (readerError.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;readerSessionInvalidationErrorUserCanceled&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertController&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Session Invalidated&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;message&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: error.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;localizedDescription&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;preferredStyle&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alert&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; )&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;addAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;OK&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;handler&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;present&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(alertController, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;animated&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: true, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;completion&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// To read new tags, a new session instance is required.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; nil&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - addMessage(fromUserActivity:)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;addMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;fromUserActivity&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;message&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCNDEFMessage) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;detectedMessages&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(message)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tableView&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;reloadData&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - General Tag Reading (ISO7816, MiFare, FeliCa)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;@IBAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;beginGeneralTagScanning&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;sender&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: Any) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;guard&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; NFCTagReaderSession.readingAvailable &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertController&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Scanning Not Supported&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;message&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;This device doesn't support tag scanning.&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;preferredStyle&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alert&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; )&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;addAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;OK&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;handler&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;present&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(alertController, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;animated&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: true, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;completion&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagSession &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;NFCTagReaderSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;pollingOption&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: [.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;iso14443&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;iso15693&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;iso18092&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;], &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;delegate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagSession&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;카드나 태그를 iPhone 상단에 가까이 대주세요.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagSession&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - NFCTagReaderSessionDelegate&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;tagReaderSessionDidBecomeActive&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCTagReaderSession) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Tag reader session became active&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;tagReaderSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCTagReaderSession, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;didInvalidateWithError&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; readerError &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; error &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;as?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; NFCReaderError {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; (readerError.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;readerSessionInvalidationErrorFirstNDEFTagRead&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; (readerError.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;code&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;readerSessionInvalidationErrorUserCanceled&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertController&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;세션 종료&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;message&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: error.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;localizedDescription&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;preferredStyle&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alert&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; )&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; alertController.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;addAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;UIAlertAction&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;확인&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;handler&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;present&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(alertController, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;animated&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: true, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;completion&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: nil)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tagSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; nil&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;tagReaderSession&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;session&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCTagReaderSession, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;didDetect&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tags&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: [NFCTag]) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tags.count &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ebc88d;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;태그가 2개 이상 감지되었습니다. 하나만 남겨주세요.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;global&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;asyncAfter&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;deadline&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;now&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;milliseconds&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #ebc88d;&quot;&gt;500&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;restartPolling&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tag &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tags.first&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;connect&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;to&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: tag) { (&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Error&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;in&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; error &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; nil {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;invalidate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;errorMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;태그에 연결할 수 없습니다.&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagType &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;switch&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tag {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;iso7816&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; iso7816Tag)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagType &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;ISO7816 (신용카드/스마트카드)&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readISO7816Tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(iso7816Tag)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;miFare&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; miFareTag)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagType &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;MiFare (출입카드/교통카드)&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readMiFareTag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(miFareTag)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;feliCa&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; feliCaTag)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagType &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;FeliCa (교통카드)&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readFeliCaTag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(feliCaTag)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;iso15693&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; iso15693Tag)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagType &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;ISO15693&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readISO15693Tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(iso15693Tag)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;@unknown&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;default:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagType &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Unknown Tag Type&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tagInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;알 수 없는 태그 타입입니다.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; fullInfo &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;[&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tagType&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tagInfo&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; DispatchQueue.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;main&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// NDEF 메시지 형태로 변환하여 표시&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; record &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;NFCNDEFPayload&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;nfcWellKnown&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;T&quot;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .utf8)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;identifier&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;payload&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: fullInfo.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: .utf8)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; )&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;let&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; message &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;NFCNDEFMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;records&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: [record])&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;detectedMessages&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;insert&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(message, &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;at&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #ebc88d;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tableView&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;reloadData&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;alertMessage&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;태그 읽기 완료&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; session.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;invalidate&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// MARK: - Tag Reading Helpers&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readISO7816Tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCISO7816Tag) &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;UID: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;identifier&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Historical Bytes: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;historicalBytes?&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;??&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;없음&quot;&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Application Data: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;applicationData?&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;??&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;없음&quot;&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;* 암호화된 데이터는 읽을 수 없습니다&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readMiFareTag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCMiFareTag) &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;UID: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;identifier&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;switch&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; tag.mifareFamily {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .plus&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;타입: MiFare Plus&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;ultralight&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;타입: MiFare Ultralight&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;desfire&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;타입: MiFare DESFire&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;case&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;unknown&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;타입: Unknown MiFare&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;@unknown&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;default:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;타입: Unknown&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;Historical Bytes: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;historicalBytes?&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;??&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;없음&quot;&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;* 출입카드/교통카드 데이터는 암호화되어 있습니다&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readFeliCaTag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCFeliCaTag) &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;UID: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;currentIDm&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;System Code: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;currentSystemCode&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;* 교통카드 잔액 등은 암호화되어 읽을 수 없습니다&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #82d2ce;&quot;&gt;func&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;readISO15693Tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;: NFCISO15693Tag) &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;UID: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;identifier&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;IC Manufacturer Code: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;icManufacturerCode&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info &lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;IC Serial Number: &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;\(&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;tag.&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;icSerialNumber&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;%02X&quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;$0&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;) }.&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #efb080;&quot;&gt;separator&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d6d6dd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; info&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;-------&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #0a0a0a; color: #d8dee9; text-align: start;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;xml&lt;/span&gt;&lt;span style=&quot;color: #aaa0fa;&quot;&gt; version&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;1.0&quot;&lt;/span&gt;&lt;span style=&quot;color: #aaa0fa;&quot;&gt; encoding&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;!&lt;/span&gt;&lt;span style=&quot;color: #83d6c5;&quot;&gt;DOCTYPE&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c1808a;&quot;&gt;plist&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt; PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;&lt;a href=&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;http://www.apple.com/DTDs/PropertyList-1.0.dtd&lt;/a&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;plist &lt;/span&gt;&lt;span style=&quot;color: #aaa0fa;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #e394dc;&quot;&gt;&quot;1.0&quot;&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;dict&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;com.apple.developer.associated-domains&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;applinks:example.com&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;com.apple.developer.nfc.readersession.formats&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;NDEF&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;TAG&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;ISO7816&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt;FELICA&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #d8dee9;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;dict&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fad075;&quot;&gt;plist&lt;/span&gt;&lt;span style=&quot;color: #898989;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--------&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Swift</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/221</guid>
      <comments>https://ios2080dev.tistory.com/221#entry221comment</comments>
      <pubDate>Tue, 11 Nov 2025 21:35:36 +0900</pubDate>
    </item>
    <item>
      <title>[React Native] 라이브러리 모음</title>
      <link>https://ios2080dev.tistory.com/220</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #111111; text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;https://www.npmjs.com/package/react-native-keyboard-aware-scroll-view&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;react-native-keyboard-aware-scroll-view&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;686&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bu2xZH/btsO6iqdA3A/BP5IKkD3LELU6Q6FTlHw4k/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bu2xZH/btsO6iqdA3A/BP5IKkD3LELU6Q6FTlHw4k/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bu2xZH/btsO6iqdA3A/BP5IKkD3LELU6Q6FTlHw4k/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bu2xZH/btsO6iqdA3A/BP5IKkD3LELU6Q6FTlHw4k/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;373&quot; height=&quot;686&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;686&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 style=&quot;background-color: #ffffff; color: #111111; text-align: center;&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;a href=&quot;https://www.npmjs.com/package/react-native-toast-message&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;reate-native-toast-message&lt;/a&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PoqlG/btsO5kP0SUU/sYesGUxk9Vf241AqqJM690/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PoqlG/btsO5kP0SUU/sYesGUxk9Vf241AqqJM690/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PoqlG/btsO5kP0SUU/sYesGUxk9Vf241AqqJM690/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/PoqlG/btsO5kP0SUU/sYesGUxk9Vf241AqqJM690/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;165&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;a href=&quot;https://react-hook-form.com&quot;&gt;react-hook-form&lt;/a&gt;&lt;/h2&gt;
&lt;figure id=&quot;og_1762950832186&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;React Hook Form - performant, flexible and extensible form library&quot; data-og-description=&quot;Performant, flexible and extensible forms with easy-to-use validation.&quot; data-og-host=&quot;react-hook-form.com&quot; data-og-source-url=&quot;https://react-hook-form.com&quot; data-og-url=&quot;https://react-hook-form.com&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://react-hook-form.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://react-hook-form.com&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;React Hook Form - performant, flexible and extensible form library&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Performant, flexible and extensible forms with easy-to-use validation.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;react-hook-form.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3주동안 만들었던 앱.. RN 처음 해보고 고생했었던.. 실시간으로 API 만들어서 나한테주고 외국인이랑 소통하고 디자인도 중간에 변경된다고 들어서 멘탈 붕괴오고 이래저래 힘들었던 그래도 중간에 어느정도 사람들도 투입해서 조금씩 서폿을 해줘서 끝낼 수 있었던&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PILADUCK WELLNESS.. 고생한 만큼 그래도 짧은 시간동안 앱을 만들었다는거에 의의를 가지고 마무리 지었던 기억..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 RN을 하게된다면 라이브러리는 추가할 예정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>React Native</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/220</guid>
      <comments>https://ios2080dev.tistory.com/220#entry220comment</comments>
      <pubDate>Fri, 4 Jul 2025 22:07:50 +0900</pubDate>
    </item>
    <item>
      <title>[React Native | Expo] iOS 시뮬레이터가 안 될 때: Xcode must be fully installed 오류 해결법</title>
      <link>https://ios2080dev.tistory.com/219</link>
      <description>&lt;h3 style=&quot;text-align: center;&quot; data-end=&quot;812&quot; data-start=&quot;786&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Xcode must be fully installed 오류 해결법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;1506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuALak/btsO1IpTt9Q/diQW7ePPAbn9qHVKBbAEtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuALak/btsO1IpTt9Q/diQW7ePPAbn9qHVKBbAEtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuALak/btsO1IpTt9Q/diQW7ePPAbn9qHVKBbAEtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuALak%2FbtsO1IpTt9Q%2FdiQW7ePPAbn9qHVKBbAEtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;702&quot; height=&quot;1506&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;1506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;812&quot; data-start=&quot;786&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;812&quot; data-start=&quot;786&quot; data-ke-size=&quot;size18&quot;&gt;✅ 2. Xcode 개발 도구 경로 설정&lt;/p&gt;
&lt;p data-end=&quot;836&quot; data-start=&quot;814&quot; data-ke-size=&quot;size16&quot;&gt;터미널을 열고 아래 명령어를 입력하세요&lt;/p&gt;
&lt;pre id=&quot;code_1751456586727&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo xcode-select -s /Applications/Xcode.app/Contents/Developer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;✅ 3. Xcode 라이선스 동의&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Xcode 설치 후 처음 사용할 때는 라이선스 동의가 필요합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1751456635672&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo xcodebuild -license&lt;/code&gt;&lt;/pre&gt;
&lt;p data-end=&quot;1166&quot; data-start=&quot;1145&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1166&quot; data-start=&quot;1145&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1166&quot; data-start=&quot;1145&quot; data-ke-size=&quot;size16&quot;&gt;✅ 4. iOS 시뮬레이터 실행&lt;/p&gt;
&lt;p data-end=&quot;1194&quot; data-start=&quot;1168&quot; data-ke-size=&quot;size16&quot;&gt;Expo 프로젝트에서 다음 명령어로 실행합니다&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1194&quot; data-start=&quot;1168&quot; data-ke-size=&quot;size16&quot;&gt;실행 후 i&lt;/p&gt;
&lt;p data-end=&quot;1194&quot; data-start=&quot;1168&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1751456647726&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npx expo start&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;473&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzwxaA/btsO0Vb9LKV/h8EERhK2cg72hbxttaCm41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzwxaA/btsO0Vb9LKV/h8EERhK2cg72hbxttaCm41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzwxaA/btsO0Vb9LKV/h8EERhK2cg72hbxttaCm41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzwxaA%2FbtsO0Vb9LKV%2Fh8EERhK2cg72hbxttaCm41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;473&quot; height=&quot;228&quot; data-origin-width=&quot;473&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항목 체크리스트&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ Xcode 설치&lt;/td&gt;
&lt;td&gt;App Store에서 설치 후 한 번 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅ 개발자 도구 설정&lt;/td&gt;
&lt;td&gt;xcode-select 명령어 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅ 라이선스 동의&lt;/td&gt;
&lt;td&gt;sudo xcodebuild -license 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅ 시뮬레이터 실행&lt;/td&gt;
&lt;td&gt;npx expo start &amp;rarr; i 입력&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⭐️ &lt;b&gt;터미널에서 실행 중일 때&lt;/b&gt; ⭐️&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;806&quot; data-start=&quot;751&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;781&quot; data-start=&quot;751&quot;&gt;&lt;b&gt;r &amp;rarr; 빠른 새로고침 (Fast Refresh)&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;806&quot; data-start=&quot;784&quot;&gt;&lt;b&gt;R &amp;rarr; 전체 리로드 (앱 재시작)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1710&quot; data-start=&quot;1700&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-end=&quot;1710&quot; data-start=&quot;1700&quot; data-ke-size=&quot;size23&quot;&gt;  마무리&lt;/h3&gt;
&lt;p data-end=&quot;1808&quot; data-start=&quot;1712&quot; data-ke-size=&quot;size16&quot;&gt;이제 iOS 시뮬레이터에서 Expo 앱을 문제없이 실행할 수 있습니다!&lt;br /&gt;혹시 expo 자체에서 문제가 발생하는 경우는 expo doctor 명령어도 참고해보세요.&lt;/p&gt;
&lt;p data-end=&quot;1808&quot; data-start=&quot;1712&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1808&quot; data-start=&quot;1712&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1808&quot; data-start=&quot;1712&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-end=&quot;1835&quot; data-start=&quot;1810&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;도움이 되셨다면 댓글이나 공감 부탁드려요  &lt;/b&gt;&lt;/p&gt;</description>
      <category>React Native</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/219</guid>
      <comments>https://ios2080dev.tistory.com/219#entry219comment</comments>
      <pubDate>Wed, 2 Jul 2025 20:46:26 +0900</pubDate>
    </item>
    <item>
      <title>[JS] 자바스크립트 DOM 요소 선택 정리</title>
      <link>https://ios2080dev.tistory.com/217</link>
      <description>&lt;h1 data-end=&quot;103&quot; data-start=&quot;80&quot;&gt;✅ 자바스크립트 DOM 요소 선택 정리&lt;/h1&gt;
&lt;p data-end=&quot;211&quot; data-start=&quot;105&quot; data-ke-size=&quot;size16&quot;&gt;DOM(Document Object Model)에서 HTML 요소를 자바스크립트로 선택할 수 있는 여러 가지 방법이 있습니다. 아래는 가장 자주 사용하는 선택자들에 대한 설명과 차이점&lt;/p&gt;
&lt;hr data-end=&quot;216&quot; data-start=&quot;213&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;240&quot; data-start=&quot;218&quot; data-ke-size=&quot;size26&quot;&gt;  getElementById&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;292&quot; data-start=&quot;242&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;265&quot; data-start=&quot;242&quot;&gt;✅ &lt;b&gt;id 속성값&lt;/b&gt;으로 요소를 선택&lt;/li&gt;
&lt;li data-end=&quot;292&quot; data-start=&quot;266&quot;&gt;✅ &lt;b&gt;항상 하나의 요소만 반환 (단일)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span&gt; title = &lt;/span&gt;&lt;span&gt;&lt;span&gt;document&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;span&gt;getElementById&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;myTitle&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;358&quot; data-start=&quot;355&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;390&quot; data-start=&quot;360&quot; data-ke-size=&quot;size26&quot;&gt;  getElementsByClassName&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;472&quot; data-start=&quot;392&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;418&quot; data-start=&quot;392&quot;&gt;✅ &lt;b&gt;class 속성값&lt;/b&gt;으로 요소를 선택&lt;/li&gt;
&lt;li data-end=&quot;472&quot; data-start=&quot;419&quot;&gt;  &lt;b&gt;여러 요소를 선택할 수 있으며, HTMLCollection을 반환&lt;/b&gt; (유사 배열)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span&gt; items = &lt;/span&gt;&lt;span&gt;&lt;span&gt;document&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;span&gt;getElementsByClassName&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;menu-item&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); items[&lt;/span&gt;&lt;span&gt;&lt;span&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;].&lt;/span&gt;&lt;span&gt;&lt;span&gt;innerText&lt;/span&gt;&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;첫 번째 메뉴&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;580&quot; data-start=&quot;577&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;610&quot; data-start=&quot;582&quot; data-ke-size=&quot;size26&quot;&gt;  getElementsByTagName&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;702&quot; data-start=&quot;612&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;657&quot; data-start=&quot;612&quot;&gt;✅ &amp;lt;div&amp;gt;, &amp;lt;h1&amp;gt;, &amp;lt;p&amp;gt; 등 &lt;b&gt;태그명으로 요소를 선택&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;702&quot; data-start=&quot;658&quot;&gt;  &lt;b&gt;여러 요소를 선택할 수 있으며, HTMLCollection 반환&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span&gt; headers = &lt;/span&gt;&lt;span&gt;&lt;span&gt;document&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;span&gt;getElementsByTagName&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;h1&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); &lt;/span&gt;&lt;span&gt;&lt;span&gt;console&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;span&gt;log&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(headers.&lt;/span&gt;&lt;span&gt;&lt;span&gt;length&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); &lt;/span&gt;&lt;span&gt;&lt;span&gt;// h1 태그 몇 개?&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;814&quot; data-start=&quot;811&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;837&quot; data-start=&quot;816&quot; data-ke-size=&quot;size26&quot;&gt;  querySelector&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;934&quot; data-start=&quot;839&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;898&quot; data-start=&quot;839&quot;&gt;✅ &lt;b&gt;CSS 선택자 방식&lt;/b&gt;으로 요소를 선택 (.class, #id, tag, 조합 가능)&lt;/li&gt;
&lt;li data-end=&quot;934&quot; data-start=&quot;899&quot;&gt;  &lt;b&gt;가장 처음 발견되는 하나의 요소만 반환 (단일)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span&gt; firstItem = &lt;/span&gt;&lt;span&gt;&lt;span&gt;document&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;span&gt;querySelector&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;.menu li&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1004&quot; data-start=&quot;1001&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1030&quot; data-start=&quot;1006&quot; data-ke-size=&quot;size26&quot;&gt;  querySelectorAll&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1108&quot; data-start=&quot;1032&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1077&quot; data-start=&quot;1032&quot;&gt;✅ CSS 선택자 방식으로 &lt;b&gt;모든 일치하는 요소를 NodeList로 반환&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1108&quot; data-start=&quot;1078&quot;&gt;  &lt;b&gt;반복문 (forEach) 사용 가능&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;const&lt;/span&gt;&lt;/span&gt;&lt;span&gt; allItems = &lt;/span&gt;&lt;span&gt;&lt;span&gt;document&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;span&gt;querySelectorAll&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;.menu li&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;); allItems.&lt;/span&gt;&lt;span&gt;&lt;span&gt;forEach&lt;/span&gt;&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;item&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt; =&amp;gt; { item.&lt;/span&gt;&lt;span&gt;&lt;span&gt;style&lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;span&gt;color&lt;/span&gt;&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;&lt;span&gt;&quot;blue&quot;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;; }); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1240&quot; data-start=&quot;1237&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1254&quot; data-start=&quot;1242&quot; data-ke-size=&quot;size26&quot;&gt;✍️ 요약 비교표&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;선택자방식반환 형태여러 개 선택 가능?반복 가능?
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1661&quot; data-start=&quot;1256&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1661&quot; data-start=&quot;1367&quot;&gt;
&lt;tr data-end=&quot;1410&quot; data-start=&quot;1367&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1386&quot; data-start=&quot;1367&quot;&gt;getElementById&lt;/td&gt;
&lt;td data-end=&quot;1393&quot; data-start=&quot;1386&quot; data-col-size=&quot;sm&quot;&gt;id&lt;/td&gt;
&lt;td data-end=&quot;1401&quot; data-start=&quot;1393&quot; data-col-size=&quot;sm&quot;&gt;단일 요소&lt;/td&gt;
&lt;td data-end=&quot;1405&quot; data-start=&quot;1401&quot; data-col-size=&quot;sm&quot;&gt;❌&lt;/td&gt;
&lt;td data-end=&quot;1410&quot; data-start=&quot;1405&quot; data-col-size=&quot;sm&quot;&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1493&quot; data-start=&quot;1411&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1438&quot; data-start=&quot;1411&quot;&gt;getElementsByClassName&lt;/td&gt;
&lt;td data-end=&quot;1448&quot; data-start=&quot;1438&quot; data-col-size=&quot;sm&quot;&gt;class&lt;/td&gt;
&lt;td data-end=&quot;1465&quot; data-start=&quot;1448&quot; data-col-size=&quot;sm&quot;&gt;HTMLCollection&lt;/td&gt;
&lt;td data-end=&quot;1469&quot; data-start=&quot;1465&quot; data-col-size=&quot;sm&quot;&gt;✅&lt;/td&gt;
&lt;td data-end=&quot;1493&quot; data-start=&quot;1469&quot; data-col-size=&quot;sm&quot;&gt;  (for, spread 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1551&quot; data-start=&quot;1494&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1519&quot; data-start=&quot;1494&quot;&gt;getElementsByTagName&lt;/td&gt;
&lt;td data-end=&quot;1524&quot; data-start=&quot;1519&quot; data-col-size=&quot;sm&quot;&gt;태그&lt;/td&gt;
&lt;td data-end=&quot;1541&quot; data-start=&quot;1524&quot; data-col-size=&quot;sm&quot;&gt;HTMLCollection&lt;/td&gt;
&lt;td data-end=&quot;1545&quot; data-start=&quot;1541&quot; data-col-size=&quot;sm&quot;&gt;✅&lt;/td&gt;
&lt;td data-end=&quot;1551&quot; data-start=&quot;1545&quot; data-col-size=&quot;sm&quot;&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1597&quot; data-start=&quot;1552&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1570&quot; data-start=&quot;1552&quot;&gt;querySelector&lt;/td&gt;
&lt;td data-end=&quot;1580&quot; data-start=&quot;1570&quot; data-col-size=&quot;sm&quot;&gt;CSS 선택자&lt;/td&gt;
&lt;td data-end=&quot;1588&quot; data-start=&quot;1580&quot; data-col-size=&quot;sm&quot;&gt;단일 요소&lt;/td&gt;
&lt;td data-end=&quot;1592&quot; data-start=&quot;1588&quot; data-col-size=&quot;sm&quot;&gt;❌&lt;/td&gt;
&lt;td data-end=&quot;1597&quot; data-start=&quot;1592&quot; data-col-size=&quot;sm&quot;&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1661&quot; data-start=&quot;1598&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1619&quot; data-start=&quot;1598&quot;&gt;querySelectorAll&lt;/td&gt;
&lt;td data-end=&quot;1629&quot; data-start=&quot;1619&quot; data-col-size=&quot;sm&quot;&gt;CSS 선택자&lt;/td&gt;
&lt;td data-end=&quot;1640&quot; data-start=&quot;1629&quot; data-col-size=&quot;sm&quot;&gt;NodeList&lt;/td&gt;
&lt;td data-end=&quot;1644&quot; data-start=&quot;1640&quot; data-col-size=&quot;sm&quot;&gt;✅&lt;/td&gt;
&lt;td data-end=&quot;1661&quot; data-start=&quot;1644&quot; data-col-size=&quot;sm&quot;&gt;✅ (forEach)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;1666&quot; data-start=&quot;1663&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1681&quot; data-start=&quot;1668&quot; data-ke-size=&quot;size26&quot;&gt;✅ 추천 사용 방식&lt;/h2&gt;
&lt;blockquote data-end=&quot;1792&quot; data-start=&quot;1683&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1792&quot; data-start=&quot;1685&quot; data-ke-size=&quot;size16&quot;&gt;  앞으로는 querySelector / querySelectorAll을 사용하는 것이 가장 직관적이고 유연&lt;br /&gt;CSS 선택자 문법을 그대로 사용할 수 있어 매우 편리해요!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; data-start=&quot;1663&quot; data-end=&quot;1666&quot; /&gt;
&lt;pre id=&quot;code_1750076297098&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&amp;gt;
    &amp;lt;title&amp;gt;Practive App&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1 autofocus class=&quot;hello&quot; id=&quot;title&quot;&amp;gt;hello!&amp;lt;/h1&amp;gt; &amp;lt;!-- id 는 한번만 사용해야함 class 경우 여러번 쓸 수 없음  그래서 아래있는 id는 무시될 수 있음--&amp;gt;
    &amp;lt;h1 id=&quot;title&quot;&amp;gt;me too!&amp;lt;/h1&amp;gt; &amp;lt;!-- 이건 코드로 불러와도 수정이 되지 않는다--&amp;gt;
    &amp;lt;h1 class=&quot;hello&quot;&amp;gt;me too!&amp;lt;/h1&amp;gt;
    &amp;lt;h1 class=&quot;hello&quot;&amp;gt;me too!&amp;lt;/h1&amp;gt;
    &amp;lt;h1 class=&quot;hello&quot;&amp;gt;me too!&amp;lt;/h1&amp;gt;
    &amp;lt;script src=&quot;app.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1750076314261&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//hello 안에 있는 h1을 가지고 오자
const exam = document.querySelector(&quot;.hello h1&quot;); //.menu &amp;rarr; class=&quot;menu&quot;

const example = document.querySelector(&quot;#title&quot;); //#hello &amp;rarr; id=&quot;hello&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;41&quot; data-start=&quot;32&quot; data-ke-size=&quot;size23&quot;&gt;✅ 정리:&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;구분CSS 선택자예시설명
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;209&quot; data-start=&quot;43&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;209&quot; data-start=&quot;106&quot;&gt;
&lt;tr data-end=&quot;159&quot; data-start=&quot;106&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;118&quot; data-start=&quot;106&quot;&gt;&lt;b&gt;Class&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;128&quot; data-start=&quot;118&quot; data-col-size=&quot;sm&quot;&gt;. (점)&lt;/td&gt;
&lt;td data-end=&quot;137&quot; data-start=&quot;128&quot; data-col-size=&quot;sm&quot;&gt;.box&lt;/td&gt;
&lt;td data-end=&quot;159&quot; data-start=&quot;137&quot; data-col-size=&quot;sm&quot;&gt;class=&quot;box&quot;인 요소 선택&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;209&quot; data-start=&quot;160&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;169&quot; data-start=&quot;160&quot;&gt;&lt;b&gt;ID&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;179&quot; data-start=&quot;169&quot; data-col-size=&quot;sm&quot;&gt;# (샵)&lt;/td&gt;
&lt;td data-end=&quot;189&quot; data-start=&quot;179&quot; data-col-size=&quot;sm&quot;&gt;#main&lt;/td&gt;
&lt;td data-end=&quot;209&quot; data-start=&quot;189&quot; data-col-size=&quot;sm&quot;&gt;id=&quot;main&quot;인 요소 선택&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>CSS HTML JS</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/217</guid>
      <comments>https://ios2080dev.tistory.com/217#entry217comment</comments>
      <pubDate>Mon, 16 Jun 2025 21:08:11 +0900</pubDate>
    </item>
    <item>
      <title>[Android Studio] 상태바 완전 숨기기</title>
      <link>https://ios2080dev.tistory.com/216</link>
      <description>&lt;h2 data-end=&quot;152&quot; data-start=&quot;120&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;- 상태바(Status Bar)를 완전히 숨기는 방법&lt;/h2&gt;
&lt;h3 data-end=&quot;230&quot; data-start=&quot;154&quot; data-ke-size=&quot;size23&quot;&gt;☘️WindowCompat.setDecorFitsSystemWindows() + WindowInsetsController&lt;/h3&gt;
&lt;pre id=&quot;code_1748843812535&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import android.os.Build
import android.view.View
import android.view.WindowInsets
import android.view.WindowInsetsController
import androidx.core.view.WindowCompat

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // 시스템 UI와 겹치게 할 수 있도록 설정 (상태바 포함)
    WindowCompat.setDecorFitsSystemWindows(window, false)

    // 상태바 숨기기
    if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.R) {
        window.insetsController?.hide(WindowInsets.Type.statusBars())
    } else {
        @Suppress(&quot;DEPRECATION&quot;)
        window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
    }

    setContent {
        // Compose UI 작성
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WindowCompat.setDecorFitsSystemWindows(...)&lt;/td&gt;
&lt;td&gt;앱이 상태바나 내비게이션 바 아래로도 확장될 수 있게 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;window.insetsController?.hide(...)&lt;/td&gt;
&lt;td&gt;상태바를 숨김&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN&lt;/td&gt;
&lt;td&gt;(구버전용) 동일 기능&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-end=&quot;1229&quot; data-start=&quot;1221&quot; data-ke-size=&quot;size26&quot;&gt;❗주의사항&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1336&quot; data-start=&quot;1231&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1290&quot; data-start=&quot;1231&quot;&gt;&lt;b&gt;사용자가 다시 화면을 터치하거나 스크롤하면 상태바가 다시 나타날 수 있어요&lt;/b&gt; (임시 숨김일 때).&lt;/li&gt;
&lt;li data-end=&quot;1336&quot; data-start=&quot;1291&quot;&gt;완전한 &amp;ldquo;몰입형 모드(Immersive Mode)&amp;rdquo;로 유지&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1748843895813&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.insetsController?.systemBarsBehavior =
    WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;1221&quot; data-end=&quot;1229&quot; data-ke-size=&quot;size26&quot;&gt;- 완전히 상태바와 내비게이션 바 모두 숨기고 싶을 경우&lt;/h2&gt;
&lt;pre id=&quot;code_1748843936407&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.insetsController?.hide(
    WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars()
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1229&quot; data-start=&quot;1221&quot; data-ke-size=&quot;size26&quot;&gt;-&amp;nbsp; 다시 상태바를 보이게 하려면&lt;/h2&gt;
&lt;pre id=&quot;code_1748843957454&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;window.insetsController?.show(WindowInsets.Type.statusBars())&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Android Studio</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/216</guid>
      <comments>https://ios2080dev.tistory.com/216#entry216comment</comments>
      <pubDate>Mon, 2 Jun 2025 23:00:02 +0900</pubDate>
    </item>
    <item>
      <title>[Android Studio] statusBarsPadding() / enableEdgeToEdge()</title>
      <link>https://ios2080dev.tistory.com/214</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. statusBarsPadding 유무 차이&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HS6Tm/btsOnokbKc4/9E0lNpzQInEUqLqOlk3qRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HS6Tm/btsOnokbKc4/9E0lNpzQInEUqLqOlk3qRK/img.png&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;359&quot; data-is-animation=&quot;false&quot; style=&quot;width: 37.3161%; margin-right: 10px;&quot; data-widthpercent=&quot;37.76&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HS6Tm/btsOnokbKc4/9E0lNpzQInEUqLqOlk3qRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHS6Tm%2FbtsOnokbKc4%2F9E0lNpzQInEUqLqOlk3qRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;696&quot; height=&quot;359&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmnsUk/btsOmhzkNmI/hbB1jc8bhwi5dKWHNo3bJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmnsUk/btsOmhzkNmI/hbB1jc8bhwi5dKWHNo3bJK/img.png&quot; data-origin-width=&quot;684&quot; data-origin-height=&quot;214&quot; data-is-animation=&quot;false&quot; style=&quot;width: 61.5211%;&quot; data-widthpercent=&quot;62.24&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmnsUk/btsOmhzkNmI/hbB1jc8bhwi5dKWHNo3bJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmnsUk%2FbtsOmhzkNmI%2FhbB1jc8bhwi5dKWHNo3bJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&lt;a href=&quot;https://velog.io/@hyemdooly/enableEdgeToEdge-%EB%82%B4%EB%B6%80-%EC%BD%94%EB%93%9C-%EC%95%8C%EA%B3%A0-%EC%93%B0%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;enableEdgeToEdge()&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1748841781808&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;override fun onCreate(savedInstanceState: Bundle?) {
		//앱 콘텐츠가 시스템 UI(상태바, 내비게이션 바) 아래까지 확장되도록 허용
        //전체 앱 화면 이용 가능 하게됨
        enableEdgeToEdge()
        super.onCreate(savedInstanceState)
        Log.d(TAG, &quot;onCreate Called&quot;)
        setContent {
            DessertClickerTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier
                        .fillMaxSize()
                        //해당 컴포넌트에 상단 패딩을 자동으로 추가해서 상태바에 겹치지 않게 해줌
                        .statusBarsPadding(),// 상태바 영역만큼 패딩 추가
                ) {
                    DessertClickerApp(desserts = Datasource.dessertList)
                }
            }
        }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Android Studio</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/214</guid>
      <comments>https://ios2080dev.tistory.com/214#entry214comment</comments>
      <pubDate>Mon, 2 Jun 2025 14:43:15 +0900</pubDate>
    </item>
    <item>
      <title>[Android Studio] Manifest Setting</title>
      <link>https://ios2080dev.tistory.com/213</link>
      <description>&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4; text-align: start;&quot;&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;&amp;lt;!-- &lt;/span&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;인터넷 권한 추가 &lt;/span&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;--&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #d5b778;&quot;&gt;&amp;lt;uses-permission &lt;/span&gt;&lt;span style=&quot;color: #c77dbb;&quot;&gt;android&lt;/span&gt;:name&lt;span style=&quot;color: #6aab73;&quot;&gt;=&quot;android.permission.INTERNET&quot; &lt;/span&gt;&lt;span style=&quot;color: #d5b778;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;</description>
      <category>Android Studio</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/213</guid>
      <comments>https://ios2080dev.tistory.com/213#entry213comment</comments>
      <pubDate>Sun, 1 Jun 2025 23:59:45 +0900</pubDate>
    </item>
    <item>
      <title>AndroidStudio gradle 모음</title>
      <link>https://ios2080dev.tistory.com/212</link>
      <description>&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4; text-align: start;&quot;&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;//Compose ViewModel&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #57aaf7;&quot;&gt;implementation&lt;/span&gt;(&lt;span style=&quot;color: #6aab73;&quot;&gt;&quot;androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;//Network calls&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #57aaf7;&quot;&gt;implementation&lt;/span&gt;(&lt;span style=&quot;color: #6aab73;&quot;&gt;&quot;com.squareup.retrofit2:retrofit:2.9.0&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;//Json to Kotlin object mapping&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #57aaf7;&quot;&gt;implementation&lt;/span&gt;(&lt;span style=&quot;color: #6aab73;&quot;&gt;&quot;com.squareup.retrofit2:converter-gson:2.9.0&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;//Image loading&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #57aaf7;&quot;&gt;implementation&lt;/span&gt;(&lt;span style=&quot;color: #6aab73;&quot;&gt;&quot;io.coil-kt:coil-compose:2.4.0&quot;&lt;/span&gt;)&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;flix&quot; style=&quot;list-style-type: initial; background-color: #ffffff; color: #000000; text-align: initial;&quot;&gt;&lt;code&gt;dependencies {
    def nav_version = &quot;2.9.0&quot;

    implementation &quot;androidx.navigation:navigation-compose:$nav_version&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.android.com/develop/ui/compose/navigation?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developer.android.com/develop/ui/compose/navigation?hl=ko&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1748791083336&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Compose를 사용한 탐색 &amp;nbsp;|&amp;nbsp; Jetpack Compose &amp;nbsp;|&amp;nbsp; Android Developers&quot; data-og-description=&quot;이 페이지는 Cloud Translation API를 통해 번역되었습니다. Compose를 사용한 탐색 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Navigation 구성요소는 Jetpack Compose &quot; data-og-host=&quot;developer.android.com&quot; data-og-source-url=&quot;https://developer.android.com/develop/ui/compose/navigation?hl=ko&quot; data-og-url=&quot;https://developer.android.com/develop/ui/compose/navigation?hl=ko&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b62xKO/hyY0qyZiEB/za36Kk2n7cX6HwjgEKKwlk/img.png?width=1201&amp;amp;height=676&amp;amp;face=0_0_1201_676&quot;&gt;&lt;a href=&quot;https://developer.android.com/develop/ui/compose/navigation?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.android.com/develop/ui/compose/navigation?hl=ko&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b62xKO/hyY0qyZiEB/za36Kk2n7cX6HwjgEKKwlk/img.png?width=1201&amp;amp;height=676&amp;amp;face=0_0_1201_676');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Compose를 사용한 탐색 &amp;nbsp;|&amp;nbsp; Jetpack Compose &amp;nbsp;|&amp;nbsp; Android Developers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 페이지는 Cloud Translation API를 통해 번역되었습니다. Compose를 사용한 탐색 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Navigation 구성요소는 Jetpack Compose&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.android.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뷰에서 더 넓은 화면에 콘텐츠 표시 SDK35 이상 타겟팅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.android.com/develop/ui/views/layout/edge-to-edge?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developer.android.com/develop/ui/views/layout/edge-to-edge?hl=ko&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #f8f9fa; color: #37474f; text-align: left;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;dependencies {
    val activity_version = activity_version
    // Kotlin
    implementation(&quot;androidx.activity:activity-ktx:$activity_version&quot;)
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;kotlin&quot; style=&quot;background-color: #f8f9fa; color: #37474f; text-align: left;&quot;&gt;&lt;code&gt;dependencies {
    val activity_version = activity_version
    // Java language implementation
    implementation(&quot;androidx.activity:activity:$activity_version&quot;)
    // Kotlin
    implementation(&quot;androidx.activity:activity-ktx:$activity_version&quot;)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Android Studio</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/212</guid>
      <comments>https://ios2080dev.tistory.com/212#entry212comment</comments>
      <pubDate>Sun, 1 Jun 2025 23:27:14 +0900</pubDate>
    </item>
    <item>
      <title>[ORACLE] TEXT 글자 찾기</title>
      <link>https://ios2080dev.tistory.com/210</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[ORACLE]&amp;nbsp;TEXT&amp;nbsp;글자&amp;nbsp;찾기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT * FROM USER_SOURCE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WHERE 1=1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AND TEXT LIKE '%찾을 텍스트 이름%';&lt;/p&gt;</description>
      <category>Oracle</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/210</guid>
      <comments>https://ios2080dev.tistory.com/210#entry210comment</comments>
      <pubDate>Wed, 28 May 2025 13:30:41 +0900</pubDate>
    </item>
    <item>
      <title>[CSS] text-align</title>
      <link>https://ios2080dev.tistory.com/209</link>
      <description>&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;https://developing-move.tistory.com/118&quot;&gt;&lt;span style=&quot;color: #1155cc;&quot;&gt;text-align&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 속성의 주요 값&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;값&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설명&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;left&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;텍스트를 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;왼쪽 정렬&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;합니다. (기본값, 특히 왼쪽에서 읽는 언어에서)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;right&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;텍스트를 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;오른쪽 정렬&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;합니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;center&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;텍스트를 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가운데 정렬&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;합니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;justify&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;양쪽 정렬&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로, 텍스트 양쪽 끝을 맞추기 위해 공백을 자동 조정합니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;start&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문장의 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;시작 방향&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 따라 정렬합니다. (LTR 언어는 왼쪽, RTL 언어는 오른쪽)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문장의 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;끝 방향&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 따라 정렬합니다. (LTR 언어는 오른쪽, RTL 언어는 왼쪽)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 1. 블록 요소 자식 정렬 안 됨&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;❌ 잘못된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;div style=&quot;text-align: center;&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;nbsp; &amp;lt;div&amp;gt;나는 가운데 정렬되지 않음&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이유: 안쪽 &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 블록 요소라 텍스트 정렬 영향 안 받음&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 수정된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;div style=&quot;text-align: center;&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;nbsp; &amp;lt;div style=&quot;display: inline-block;&quot;&amp;gt;나는 가운데 정렬됨&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #188038;&quot;&gt;display: inline-block&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;으로 바꾸면 text-align의 영향을 받아 가운데 정렬됨&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 2. Flexbox 쓰는 경우&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;❌ 잘못된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;div style=&quot;display: flex; text-align: center;&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;nbsp; &amp;lt;div&amp;gt;나는 가운데 안 감&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이유: Flexbox에서는 &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;text-align&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 작동하지 않음&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 수정된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;div style=&quot;display: flex; justify-content: center;&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;nbsp; &amp;lt;div&amp;gt;이제 가운데 감&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Flexbox에서는 &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;justify-content&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로 수평 정렬을 해야 함&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 3. 이미지 정렬&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;❌ 잘못된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;img src=&quot;image.jpg&quot; style=&quot;text-align: center;&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이유: &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;img&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 인라인 요소지만 &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;text-align&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;은 부모에게 적용해야 함&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 수정된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;div style=&quot;text-align: center;&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;nbsp; &amp;lt;img src=&quot;image.jpg&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #188038;&quot;&gt;text-align&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;을 부모 블록 요소에 적용해야 이미지가 가운데 정렬됨&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 4. 입력 필드 텍스트 정렬&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;❌ 잘못된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;input type=&quot;text&quot; value=&quot;이 텍스트는 가운데 안 감&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이유: &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;text-align&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 적용되지 않아서 기본 왼쪽 정렬&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 수정된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;input type=&quot;text&quot; value=&quot;가운데 감&quot; style=&quot;text-align: center;&quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #188038;&quot;&gt;input&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 직접 &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;text-align: center&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 주면 가운데 정렬됨&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 5. 자식 요소가 없는 경우&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;❌ 잘못된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;div style=&quot;text-align: right;&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이유: 안에 텍스트가 없으므로 아무 효과 없음&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;✅ 수정된 코드&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f6ae;&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6f6ae; color: #3e5915;&quot;&gt;&amp;lt;div style=&quot;text-align: right;&quot;&amp;gt;텍스트가 있어야 오른쪽 정렬됨&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;텍스트가 있어야 &lt;/span&gt;&lt;span style=&quot;color: #188038;&quot;&gt;text-align&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 보이는 효과가 생김&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>CSS HTML JS</category>
      <author>ziziDev</author>
      <guid isPermaLink="true">https://ios2080dev.tistory.com/209</guid>
      <comments>https://ios2080dev.tistory.com/209#entry209comment</comments>
      <pubDate>Tue, 13 May 2025 15:55:56 +0900</pubDate>
    </item>
  </channel>
</rss>