<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>누울 수 있는데 왜 앉아있어야 하지?</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Fri, 23 Sep 2022 05:51:38 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>누울 수 있는데 왜 앉아있어야 하지?</title>
            <url>https://velog.velcdn.com/images/now___xong/profile/6a3c6bd3-3666-47ae-8f05-6fbb9793f7fa/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. 누울 수 있는데 왜 앉아있어야 하지?. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/now___xong" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[ [LINUX] 파일 & 디렉토리 권한 (소유권 / 허가권 )]]></title>
            <link>https://velog.io/@now___xong/LINUX-%ED%8C%8C%EC%9D%BC-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B6%8C%ED%95%9C-%EC%86%8C%EC%9C%A0%EA%B6%8C-%ED%97%88%EA%B0%80%EA%B6%8C</link>
            <guid>https://velog.io/@now___xong/LINUX-%ED%8C%8C%EC%9D%BC-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B6%8C%ED%95%9C-%EC%86%8C%EC%9C%A0%EA%B6%8C-%ED%97%88%EA%B0%80%EA%B6%8C</guid>
            <pubDate>Fri, 23 Sep 2022 05:51:38 GMT</pubDate>
            <description><![CDATA[<h1 id="디렉토리-및-파일-권한">디렉토리 및 파일 권한</h1>
<p>파일 또는 디렉토리의 권한을 확인하기 위해 <code>ls -l</code> 명령어를 입력하면 아래와 같은 출력 형식으로 나열되는 디렉토리/파일 들을 볼 수 있다.</p>
<img src=https://velog.velcdn.com/images/now___xong/post/ad5a56c8-dd3a-47cf-804a-a7e70184f7ed/image.jpg>



<br>

<h3 id="◆-파일-유형">◆ 파일 유형</h3>
<p>출력값의 가장 앞은 문자값으로 파일 유형을 나타낸다. 출력되는 문자값들은 아래와 같다.</p>
<pre><code>- : 일반 파일
d : directory
l : link (심볼릭 링크 파일)
p : named pipe
s : socket
c : character device (터미널과 모뎀같이 바이트의 열로 데이터를 처리하는 디바이스)
b : block device (하드 드라이브나 CD-ROM 같이 블록 단위의 데이터를 처리하는 디바이스)</code></pre><br>

<br>

<h3 id="◆-permission">◆ Permission</h3>
<p>디렉토리 또는 파일에 접근하여 읽거나 쓰거나 실행할 권리를 나타내는 것으로 3개씩 끊어서 사용자, 그룹, 기타 사용자로 관리한다.</p>
<img src=https://velog.velcdn.com/images/now___xong/post/989ce7f5-72f8-46ef-bb42-113aa8b9985b/image.jpg width=400>

<pre><code>user: 파일을 만든(생성) 소유주
group: 파일을 만든 소유주가 속한 그룹의 사용자
other: 기타 사용자</code></pre><br>

<p>허가권 변경 명령어인 chmod를 사용하여 아래와 같은 명령어를 사용해본 적이 있을것이다. </p>
<p><code>chmod 755 test.txt</code> </p>
<p>chmod 바로 뒤에 오는 숫자는 퍼미션의 속성을 표현하는 것으로 이 숫자들은 8진수를 이용하여 표현되었다.</p>
<br>

<table>
<thead>
<tr>
<th align="center">속성</th>
<th align="center">파일</th>
<th align="center">디렉토리</th>
</tr>
</thead>
<tbody><tr>
<td align="center">r</td>
<td align="center">열기, 읽기</td>
<td align="center">파일 나열(정렬) 허용</td>
</tr>
<tr>
<td align="center">w</td>
<td align="center">쓰기, 잘라내기</td>
<td align="center">파일 생성/삭제/이름 변경 가능</td>
</tr>
<tr>
<td align="center">x</td>
<td align="center">파일 실행</td>
<td align="center">디렉터리 들어올 수 있도록 허용</td>
</tr>
</tbody></table>
<br>


<h3 id="◆-8진법-권한-표현">◆ 8진법 권한 표현</h3>
<br>

<table>
<thead>
<tr>
<th align="center">8진법</th>
<th align="center">권한</th>
</tr>
</thead>
<tbody><tr>
<td align="center">0</td>
<td align="center">---</td>
</tr>
<tr>
<td align="center">1</td>
<td align="center">--x</td>
</tr>
<tr>
<td align="center">2</td>
<td align="center">-w-</td>
</tr>
<tr>
<td align="center">3</td>
<td align="center">-wx</td>
</tr>
<tr>
<td align="center">4</td>
<td align="center">r--</td>
</tr>
<tr>
<td align="center">5</td>
<td align="center">r-x</td>
</tr>
<tr>
<td align="center">6</td>
<td align="center">rw-</td>
</tr>
<tr>
<td align="center">7</td>
<td align="center">rwx</td>
</tr>
</tbody></table>
<br>

<br>

<br>
<br>

<br>

<h1 id="chmod">Chmod</h1>
<hr>
<br>

<h3 id="◆-사용자-그룹-기타-사용자에게-권한-한번에-부여">◆ 사용자, 그룹, 기타 사용자에게 권한 한번에 부여</h3>
<pre><code>$ chmod [권한] [파일/디렉터리]
ex) chmod 755 test.txt
→ 사용자는 모든 권한 허용, 그룹과 다른 사용자는 읽기+실행만 가능</code></pre><br>

<h3 id="◆-사용자별--권한-부여-및-제거">◆ 사용자별 / 권한 부여 및 제거</h3>
<pre><code>$ chmod [option]  
→ option에 들어가는 기호는 누구에게, 어떤 권한을, 부여할지 제거할지를 기호로 표현하여 나타낸다.

→ 기호는 아래 표 참고 ***</code></pre><br>

<table>
<thead>
<tr>
<th align="center"></th>
<th align="center">설명</th>
</tr>
</thead>
<tbody><tr>
<td align="center"></td>
<td align="center">u : 사용자 허가권</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">g : 그룹 허가권</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">o : 기타 사용자 허가권</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">a : 모두(전체)</td>
</tr>
<tr>
<td align="center">기호</td>
<td align="center">+ : 권한 추가</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">- : 권한 제거</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">= : 권한 지정</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">r : 읽기</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">w : 쓰기</td>
</tr>
<tr>
<td align="center"></td>
<td align="center">x : 실행</td>
</tr>
</tbody></table>
<br>

<pre><code>ex) $ chmod u=rw test.txt
→ test.txt 파일에 대하여 사용자(u)에 읽기, 쓰기(rw)권한 지정, 초기화(=)

ex) $ chmod u+rw test.txt
→ test.txt 의 소유자(u)에게 읽기(r) , 쓰기(w) 권한을 추가 부여(+)

ex) $ chmod a=rw test.txt
→ test.txt 파일을 이용하는 모두(a)에게 읽기(r), 쓰기(rw) 권한 지정, 초기화(=)
$ chmod a=rw file.txt

ex) $ chmod g-w test.txt
→ test.txt 의 소유그룹(g)에게 쓰기(w) 권한 제거(-)

ex) $ chmod o-wxr test.txt
→ 그외 계정에게 모든 권한을 제거(-)
→ rwx의 순서는 변경하여도 무방. o-rwx = o-wxr
</code></pre><br>

<br>


<h3 id="◆-그-외-옵션">◆ 그 외 옵션</h3>
<br>

<table>
<thead>
<tr>
<th align="center"></th>
<th align="center">설명</th>
</tr>
</thead>
<tbody><tr>
<td align="center">-R, --recursive</td>
<td align="center">특정 디렉터리 내의 파일과 디렉터리에 대해 재귀적으로 허가권 변경</td>
</tr>
<tr>
<td align="center">-C, --changes</td>
<td align="center">변경된 파일이나 디렉터리에 대한 자세한 정보를 출력</td>
</tr>
<tr>
<td align="center">-f , --silent, --quite</td>
<td align="center">에러메시지 출력을 제한</td>
</tr>
<tr>
<td align="center">--reference</td>
<td align="center">모드 대신 파일에 지정한 모드를 사용</td>
</tr>
</tbody></table>
<br>

<pre><code>$ chmod -R 755 myfiles

→ 디렉터리 이하의 모든 파일과 디렉터리에 대해 (-R)
→ 사용자는 읽기, 쓰기, 실행(4+2+1) 권한을 부여하고 ,
→ 그룹과 다른 사용자는 읽기 및 실행(4+1) 권한 부여
</code></pre><br>

<br>

<br>

<h1 id="chown">Chown</h1>
<hr>
<ul>
<li><p>파일이나 디렉터리의 사용자 및 그룹의 소유권을 변경.</p>
</li>
<li><p>소유권 변경은 오직 루트 사용자만 가능하다. (sudo, 비밀번호 입력 필요할 확률 高)</p>
</li>
</ul>
<pre><code>$ chown [options] owner:[group] files
→ [options]는 chmod 옵션과 같다.

ex) $ chown user11 test.txt
→ # test.txt 파일을 소유자를 user11로 변경

ex) $ sudo chown user7:group3 test.txt
→ test.txt 파일의 소유자를 사용자는 user7, 그룹은 group3으로 소유자 변경

ex) $ sudo chown -R user1:group3 myDirectory
→  myDirectory 디렉터리 이하 모든 파일 및 디렉터리에 대한 소유자를 사용자는 user1, 그룹은 group3으로 소유자 변경
</code></pre><br>

<br>

<br>

<br>

<br>

<br>

<br>



<br>

<br>

<br>


<h3 id="reference">Reference</h3>
<hr>
<p><a href="https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%ED%8C%8C%EC%9D%BC-%EA%B6%8C%ED%95%9C-%EC%86%8C%EC%9C%A0%EA%B6%8C%ED%97%88%EA%B0%80%EA%B6%8C-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC?category=890814">[LINUX] 📚 파일 &amp; 디렉토리 권한 (소유권 / 허가권 / 특수권한) 💯 정리</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[iOS] 앱 간 이동, 외부 앱 실행 방법. URI Scheme이란?]]></title>
            <link>https://velog.io/@now___xong/iOS-%EC%95%B1-%EA%B0%84-%EC%9D%B4%EB%8F%99-%EC%99%B8%EB%B6%80-%EC%95%B1-%EC%8B%A4%ED%96%89-%EB%B0%A9%EB%B2%95.-URI-Scheme%EC%9D%B4%EB%9E%80</link>
            <guid>https://velog.io/@now___xong/iOS-%EC%95%B1-%EA%B0%84-%EC%9D%B4%EB%8F%99-%EC%99%B8%EB%B6%80-%EC%95%B1-%EC%8B%A4%ED%96%89-%EB%B0%A9%EB%B2%95.-URI-Scheme%EC%9D%B4%EB%9E%80</guid>
            <pubDate>Wed, 31 Aug 2022 06:24:11 GMT</pubDate>
            <description><![CDATA[<p>공부한 것을 정리하는 용도의 글이므로 100% 정확하지 않을 수 있습니다.
참고용으로만 봐주시고, 내용이 부족하다고 느끼신다면 다른 글도 보시는 것이 좋습니다.
+ 틀린 부분, 수정해야 할 부분은 언제든지 피드백 주세요. 😊</p>
<p>해당 글은 Swift 공식 문서를 기반으로 여러 블로그의 글을 읽고 작성되었습니다.
블로그들의 출처는 맨 아래에 있습니다.</p>
<p>                                                 by. nowoey</p>
<hr>
<br>

<br>


<p>안드로이드 개발을 했을 때는 앱 간 이동 방법으로 Intent를 사용했었다.</p>
<p>iOS 개발을 하면서 앱에서 앱으로 이동하는 방법을 구글링하면서 깨달은 점은...
안드로이드의 intent 방식이 아주,,,매우,,, 편하고 쉬운 것이었다는 것... 🥲
<br></p>
<p>iOS는 기본적으로 <strong>샌드박스 환경</strong>이기 때문에 다른 앱들 간 정보를 주고 받는 것이 간단하지 않다고 한다.
어쨌든 개발은 해야하니... 열심히 구글링을 하고, 블로그를 정독했다...</p>
<p>나는 이해가 되지 않으면 적용도 응용도 되지 않는 사람이기때문에 어느정도는 이해가 될 때까지 계속 찾아보고 정독하는 편이다.
(그래서 어느순간 디지털 마케팅 블로그까지 읽고 있더라구요...?)
<br></p>
<p>그리고 나는 진짜 여러개를 보고 정독했지만.... 다른 사람들은 글 하나만 읽고도 이해가 됐음 좋겠고,
내가 나중에 다시 볼 때도 이거 하나만 보려고 이해한 내용을 정리해보려 한다... 🙃🙃🙃
<br></p>
<p>어쨌든 앱간 이동은 보통 딥링크를 통해서 한다.
그런데, <strong>딥링크(Deeplink)</strong>가 뭐지??</p>
<br>

<br>

<br>

<br>

<h1 id="🔷-deeplink">🔷 Deeplink?</h1>
<hr>
<p>딥링크(Deeplink)란 쉽게 말해 상세 콘텐츠로 유저를 랜딩 시키는 링크를 말한다.
대부분의 웹 링크가 딥링크에 속한다.</p>
<p>모바일 딥링크는 <strong>URI Scheme, Universal Lin(iOS), 앱링크(AOS)</strong> 이렇게 3가지 방식으로 구분된다.
<br></p>
<p>간단하게 요약하면 아래와 같다.</p>
<ul>
<li>** URI Scheme** : 애플의 _<strong>iOS9 이전</strong>_까지의 표준 딥링크 형식</li>
<li><strong>유니버설 링크</strong> : _<strong>iOS9부터 그 이후</strong>_의 표준 딥링크 형식</li>
</ul>
<br>

<br>

<h2 id="🟡-uri-scheme">🟡 URI Scheme</h2>
<hr>
<ul>
<li>앱의 고유한 scheme을 정의하고, 이 scheme으로 시작하는 URL을 열면 이 scheme을 갖고 있는 다른 앱을 실행.
(물론 해당 앱이 설치되어있어야 이동 가능)</li>
<li>But, 애플 앱 스토어에서 해당 앱이 정의한 scheme의 고유성을 보장해주지 않기 때문에 다른 앱들이 자신이 정의한 scheme을 사용하고 있을 수 있음. 
(동일한 scheme을 가진 앱 사이에서 랜덤 실행됨. 보안상 헛점 존재 —&gt; 그래서 등장한 것이 유니버셜 링크)</li>
</ul>
<br>

<br>

<h2 id="🟡-universal-link-ios">🟡 Universal Link (iOS)</h2>
<hr>
<ul>
<li>앱 번들 아이디를 미리 특정 도메인의 웹 사이트에 등록하는 방식
(당연히 해당 도메인과 서버의 소유권이 있어야 사용 가능)</li>
<li><em><strong>앱에서는 유니버셜 링크를 허용할 도메인 추가, 서버에서는 apple-app-site-association 파일 등록 필요</strong></em></li>
<li>유니버설 링크로 들어오는 요청은 UIApplicationDelegate의 application:continueUserActivity:restorationHandler:메서드에서 전달받은 NSUserActivity객체를 사용해 처리 가능 ??? (해당 부분 Objc 이므로 swift 찾아봐야 함.... 후...)</li>
</ul>
<br>


<p>조금 더 깊게 들어가보면, Universal Link의 발전은 아래와 같다.</p>
<h3 id="🔸-1-direct-deep-link">🔸 1. Direct Deep Link</h3>
<ul>
<li>초창기 딥링크 형태</li>
<li>앱이 설치된 유저의 경우 특정 페이지로 랜딩이 되는것은 가능했지만, 앱이 설치되지 않은 유저의 경우 각 플랫폼의 앱스토어로 이동되며 설치 후 앱을 열었을 때 딥링크는 유실됨.</li>
<li>이러한 단점을 보완하고자 디퍼드 딥링크 개념이 등장<br>

</li>
</ul>
<h3 id="🔸-2-deferred-deep-link">🔸 2. Deferred Deep Link</h3>
<ul>
<li>Direct Deep Link와 마찬가지로 앱 미설치자는 각 플랫폼의 앱스토어로 이동되지만, 설치 후 앱을 열엇을 때 링크가 유실되지 앟고 특정 컨텐츠로 이동됨.</li>
<li>그러나 각각의 플랫폼별에서만 작동한다는 한계가 존재. AOS 딥링크는 AOS에서만, iOS 딥링크는 iOS에서만 작동하기 때문에 트래킹 링크를 발급받으려면 2번의 생성작업을 거쳐야 했고, 따라서 이로인해 광고를 집행할 때에도 목적이 동일한 하나의 캠페인을 AOS캠페인, iOS캠페인 이렇게 나누어져야 함. </li>
<li>위의 문제를 해결하기 위해 원링크 개념이 등장했다.<br>

</li>
</ul>
<h3 id="🔸-3-one-link">🔸 3. One Link</h3>
<ul>
<li>하나의 링크에서 각각의 플랫폼으로 자동 분기처리해주는 원링크.</li>
</ul>
<p>예를 들어 쇼핑몰에서 뭔가 구매를 하면 카카오톡 알림톡으로 주문 내역이 오겠죠?
그 주문 내역을 확인하려고 링크를 클릭했을 때, 앱이 없다면 그 앱을 설치할 수 있는 앱 스토어로 이동하고!
앱이 있다면 바로 앱의 그 주문 내역 페이지로 이동시켜주는 것이 원링크인 것!!!!!</p>
<p>물론 찾아보니 개인이 만들 수 있는 것이 아니라 솔루션 회사에서 마케팅 일환으로 제공하고 있는 것 같았다...</p>
<br>

<br>

<p>그래서 할 수 없이 앱 개발자만 노력하면 되는 URI Scheme을 사용해보았다...😀</p>
<br>

<br>

<br>

<br>


<h1 id="uri-scheme-사용">URI Scheme 사용</h1>
<hr>
<p>1 : 발신 앱, 수신 앱 모두 구현
2 ~ 4 : 발신 앱 구현
5 : 수신 앱 구현
<br></p>
<h2 id="1-unique-uri-scheme-등록br">1. Unique URI Scheme 등록<br></h2>
<p>먼저 위에서 언급한 것과 같이 앱의 고유한 scheme을 등록해주어야 한다.
scheme을 주소라고 생각하면 이해가 빠르다.</p>
<p>물건을 배송할 때, 집 주소가 필요한 것 처럼 특정 앱으로 이동시키기 위해서는 앱만의 고유한 주소가 필요한 것!
<br></p>
<p>프로젝트의 Info탭으로 이동한 후, 아래처럼 URL Types를 추가해준다.</p>
<img src = https://velog.velcdn.com/images/now___xong/post/9e2bc7d0-d4eb-42af-8ef0-93e39968ffbd/image.png width = 800>
<br>

<p>Icone은 none으로 둬도 상관 없고, Role도 Editor로 둬도 상관은 없지만 아래 두가지는 꼭! 입력해야 한다.</p>
<ul>
<li><p>identifier : 유일성을 보장하기 위해 보통 회사 도메인과 앱 이름을 합쳐서 명시하는게 일반적이나 겹치지 않을 정도로만 작성해도 무방하다.</p>
</li>
<li><p>URL Schemes : URL에 사용할 접두어 정의.</p>
</li>
</ul>
<br>

<br>


<h2 id="2-infoplist">2. Info.plist</h2>
<p>Info.plist &gt; Information PropertyList 밑에
<strong>LSApplicationQueriesSchemes의 하위항목으로 호출할 앱 이름(uri scheme)을 입력</strong>한다.</p>
<p>Info.plist에 위의 항목을 추가해주지 않으면 아래와 같은 에러가 발생한다.</p>
<p><code>-canOpenURL: failed for URL: &quot;호출 앱(uri scheme)&quot; - error: &quot;This app is not allowed to query for scheme&quot;</code> </p>
<br>

<br>



<h2 id="3-url-query-string">3. url query String</h2>
<p>URL(string: ) 함수를 사용하여 이동할 url과 query를 선언한다.</p>
<pre><code>ex) 

url = URL(string: &quot;urischeme://open?VC=testVC&amp;color=purple&amp;food=cake&amp;birth=0716&quot;)</code></pre><p>위의 url 예시를 보면 가장 처음 urischme은 1    번에서 말한 고유한 uri scheme을 말한다.</p>
<p>너무 쉬운 uri scheme을 사용하면 스마트폰 내 앱 중에 같은 uri scheme을 가진 앱들 중 랜덤으로 이동하거나 선택하여 이동할 수도 있으므로 적절하게 만드는 것이 낫다.</p>
<p>uri scheme 뒤쪽으로는 GET 방식으로 내가 좋아하는 색, 음식, 생일을 입력해놓았다.</p>
<p>이동만 할 것인지, 이동 후 어떤 View로 보낼지, 어떤 data를 전송할 것인지 key=value 형식으로 작성한다.</p>
<p>URL 인스턴스 형태로 전달되기 때문에 위와 같이 입력하여 전달하면 이동한 앱에서 파싱을 통해 특정 View로 보내거나 데이터를 전달받아 사용할 수 있다.</p>
<br>

<br>


<h2 id="4-canopenurl_-url-url">4. canOpenURL(_ url: URL)</h2>
<p>canOpenURL(_ url: URL) -&gt; Bool 함수를 사용하여 2에서 작성한 url의 유효성을 체크해야 한다.</p>
<pre><code>ex)

if UIApplication.shared.canOpenURL(schemaUrl) {
     UIApplication.shared.open(schemaUrl, options: [:], completionHandler: nil)
} else {
    // alert, 앱 스토어 연결 코드 등
}
</code></pre><p>유효성 결과 true(success)가 떨어지면 UIApplication.shared.open(url, options, completionHandler) 함수를 작성한다.</p>
<p>false로 떨어지면 url을 재확인하는 코드나 앱 스토어 연결 코드 등 자유롭게 후 처리 코드를 작성하면 된다.</p>
<br>

<br>

<h2 id="5-scenedelegate">5. SceneDelegate</h2>
<p>수신하여 파싱하는 부분은 SceneDelegate에서 구현한다.</p>
<p>❗️❗️ 만약 SceneDelegate 파일이 없고 AppDelegate파일만 존재하는 경우, 아래 함수를 사용한다.</p>
<pre><code>func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -&gt; Bool {

} </code></pre><p>❗️❗️ 저는,, sceneDelegate 파일이 있기 때문에 sceneDelegate에서 구현했습니다.</p>
<pre><code>func scene(_ scene: UIScene, openURLContexts URLContexts: Set&lt;UIOpenURLContext&gt;) {
    guard let url = URLContexts.first?.url else { return }
    let urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false)
    let urlQueryItems = components?.queryItems ?? []
    ...
</code></pre><p>URLComponents객체를 통해 queryItems 객체에 접근할 수 있다.
그래서 저렇게 작성하면 파싱 준비가 끝난 것이고, 이제 파싱을 어떻게 할 지는 본인 자유이다. 😀👍</p>
<br>

<br>


<br>


<br>

<hr>
<h3 id="reference">Reference</h3>
<ul>
<li><a href="https://jacobwoo.tistory.com/entry/%EB%94%A5%EB%A7%81%ED%81%ACDeeplink%EB%9E%80">딥링크(Deeplink)란?</a></li>
<li><a href="https://help.dfinery.io/hc/ko/articles/360039757433-%EB%94%A5%EB%A7%81%ED%81%AC-Deeplink-URI%EC%8A%A4%ED%82%B4-%EC%9C%A0%EB%8B%88%EB%B2%84%EC%85%9C-%EB%A7%81%ED%81%AC-%EC%95%B1%EB%A7%81%ED%81%AC-%EA%B5%AC%EB%B6%84%EA%B3%BC-%EC%9D%B4%ED%95%B4">딥링크(Deeplink) : URI스킴, 유니버셜 링크, 앱링크 구분과 이해</a></li>
<li><a href="https://ohgyun.com/706">iOS: 유니버셜 링크 적용하기</a></li>
</ul>
]]></description>
        </item>
    </channel>
</rss>