<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코나's 이야기.</title>
    <link>https://mocona.tistory.com/</link>
    <description>돌고 돌고 돌고 돌아서..

결국 내가 도착한 곳은 Ti Story..

참 오래 걸린듯... :)

조금씩, 하나씩 꾸며 나가기......</description>
    <language>ko</language>
    <pubDate>Mon, 25 May 2026 23:00:08 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>코나</managingEditor>
    <image>
      <title>코나's 이야기.</title>
      <url>https://t1.daumcdn.net/cfile/tistory/132AB10F49ADCA202C</url>
      <link>https://mocona.tistory.com</link>
    </image>
    <item>
      <title>WWDC2021 - Day2</title>
      <link>https://mocona.tistory.com/189</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;언텍트 시대에 집에서 혼자(?) 늦게 뒷북치는 WWDC2021, Day2 !&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;&lt;b&gt;What&amp;rsquo;s&amp;nbsp;new&amp;nbsp;in&amp;nbsp;UIKit&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Productivity&lt;br /&gt;-&amp;nbsp;OS는&amp;nbsp;따로,&amp;nbsp;개발&amp;nbsp;환경은&amp;nbsp;하나로,&amp;nbsp;Gazua!&lt;br /&gt;UI&amp;nbsp;refinements&lt;br /&gt;-&amp;nbsp;지못미,&amp;nbsp;테이블&amp;nbsp;뷰!&amp;nbsp;이제는&amp;nbsp;SwiftUI&amp;nbsp;에&amp;nbsp;밀려(?)&amp;nbsp;List&amp;nbsp;라&amp;nbsp;불리게&amp;nbsp;된겐가..&amp;nbsp;ㅠ.ㅜ&lt;br /&gt;API&amp;nbsp;Enhancements&lt;br /&gt;-&amp;nbsp;pulldown?&amp;nbsp;popup!&amp;nbsp;SubMenus?!&amp;nbsp;들이&amp;nbsp;추가되다니!&lt;br /&gt;-&amp;nbsp;안녕,&amp;nbsp;roundedRect..?&amp;nbsp;아닌가,&amp;nbsp;Welcome&amp;nbsp;back,&amp;nbsp;인가...?&amp;nbsp;;)&lt;br /&gt;-&amp;nbsp;UIKit&amp;nbsp;에서&amp;nbsp;자꾸만&amp;nbsp;SwiftUI&amp;nbsp;의&amp;nbsp;냄새가&amp;nbsp;난다..&amp;nbsp;나만&amp;nbsp;그런가..;&lt;br /&gt;-&amp;nbsp;슬슬&amp;nbsp;Scene&amp;nbsp;기반으로&amp;nbsp;넘어오라는&amp;nbsp;듯..&amp;nbsp;ㅎㅎ&lt;br /&gt;Security&amp;nbsp;and&amp;nbsp;privacy&lt;br /&gt;-&amp;nbsp;Location&amp;nbsp;button?!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What&amp;rsquo;s&amp;nbsp;new&amp;nbsp;in&amp;nbsp;Swift&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Swift&amp;nbsp;packages&amp;nbsp;updates&lt;br /&gt;-&amp;nbsp;엑스코드와의&amp;nbsp;통합,&amp;nbsp;묶음제공&amp;nbsp;-&amp;nbsp;JSON&amp;nbsp;-&amp;nbsp;도&amp;nbsp;좋아보임&lt;br /&gt;-&amp;nbsp;애플의&amp;nbsp;다양한&amp;nbsp;패키지&amp;nbsp;제공.&amp;nbsp;일단&amp;nbsp;Collections,&amp;nbsp;Algorithms&amp;nbsp;은&amp;nbsp;좀&amp;nbsp;챙겨봐야&amp;nbsp;하지&amp;nbsp;않을까..&lt;br /&gt;-&amp;nbsp;DocC&amp;nbsp;좋네..&amp;nbsp;:)&lt;br /&gt;-&amp;nbsp;ARC&amp;nbsp;Optimize&amp;nbsp;Object&amp;nbsp;Lifetimes&amp;nbsp;옵션&amp;nbsp;추가&lt;br /&gt;Ergonomic&amp;nbsp;improvements&lt;br /&gt;-&amp;nbsp;여러&amp;nbsp;SE&amp;nbsp;들을&amp;nbsp;묶었더니~&amp;nbsp;짜잔~!&amp;nbsp;SwiftUI&amp;nbsp;가&amp;nbsp;더&amp;nbsp;심플하고&amp;nbsp;강력해졌습니다~~~&lt;br /&gt;-&amp;nbsp;Result&amp;nbsp;Builder&amp;nbsp;표준화,&amp;nbsp;enum&amp;nbsp;:&amp;nbsp;Codable&amp;nbsp;키&amp;nbsp;설정&amp;nbsp;없이&amp;nbsp;바로&amp;nbsp;사용&amp;nbsp;가능!&lt;br /&gt;Async&amp;nbsp;and&amp;nbsp;concurrent&amp;nbsp;programming&lt;br /&gt;-&amp;nbsp;Actor&amp;nbsp;는&amp;nbsp;Reference&amp;nbsp;type&amp;nbsp;이지만,&amp;nbsp;멀티테스킹에&amp;nbsp;맞게&amp;nbsp;'룰'을&amp;nbsp;가지고&amp;nbsp;있음.&amp;nbsp;;)&lt;br /&gt;Swift6&lt;br /&gt;-&amp;nbsp;커밍&amp;nbsp;쑨~&amp;nbsp;더&amp;nbsp;안전한&amp;nbsp;컨커런시~&amp;nbsp;근데,&amp;nbsp;컴파일러&amp;nbsp;스냅샷이&amp;nbsp;뭔가염??&amp;nbsp;;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What&amp;rsquo;s&amp;nbsp;new&amp;nbsp;in&amp;nbsp;Foundations&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;AttributedString&lt;br /&gt;-&amp;nbsp;와...&amp;nbsp;마크다운으로&amp;nbsp;문서를&amp;nbsp;이쁘게&amp;nbsp;꾸밀&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;되었네;;;&lt;br /&gt;-&amp;nbsp;여기다&amp;nbsp;로케이션을&amp;nbsp;뿌려서&amp;nbsp;언어별로&amp;nbsp;적절히&amp;nbsp;마크다운으로&amp;nbsp;적용을&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;되었네?!&lt;br /&gt;Formatters&lt;br /&gt;-&amp;nbsp;드디어!&amp;nbsp;타입에&amp;nbsp;기본&amp;nbsp;장착(?)이&amp;nbsp;되었다!!!&lt;br /&gt;-&amp;nbsp;어쩐지&amp;nbsp;모르게&amp;nbsp;풍겨지는&amp;nbsp;SwiftUI&amp;nbsp;의&amp;nbsp;Modifier&amp;nbsp;향기..&amp;nbsp;ㅠ.ㅜ&lt;br /&gt;-&amp;nbsp;그나저나&amp;nbsp;SwiftUI,&amp;nbsp;preview&amp;nbsp;에서&amp;nbsp;locale&amp;nbsp;설정도&amp;nbsp;되는구나...;;&lt;br /&gt;Grammar&amp;nbsp;agreement&lt;br /&gt;-&amp;nbsp;이거&amp;nbsp;너무&amp;nbsp;좋다!!&amp;nbsp;ㅠ.ㅜ&amp;nbsp;단수,&amp;nbsp;복수&amp;nbsp;자동처리,&amp;nbsp;남성형,&amp;nbsp;여성형&amp;nbsp;스타일까지&lt;br /&gt;-&amp;nbsp;이걸&amp;nbsp;모두&amp;nbsp;자동~&amp;nbsp;이라고&amp;nbsp;해놓곤&amp;nbsp;스크립트를&amp;nbsp;열심히&amp;nbsp;짜야&amp;nbsp;하는&amp;nbsp;듯..(!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;Indexing!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;What&amp;rsquo;s&amp;nbsp;new&amp;nbsp;in&amp;nbsp;UIKit&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Productivity&lt;br /&gt;**&amp;nbsp;OS는&amp;nbsp;따로,&amp;nbsp;개발&amp;nbsp;환경은&amp;nbsp;하나로,&amp;nbsp;Gazua!&lt;br /&gt;&lt;br /&gt;iPad&amp;nbsp;Multitasking&lt;br /&gt;-&amp;nbsp;새로운&amp;nbsp;센터드&amp;nbsp;씬&amp;nbsp;추가&lt;br /&gt;-&amp;nbsp;씬을&amp;nbsp;하단에도&amp;nbsp;붙일&amp;nbsp;수&amp;nbsp;붙일&amp;nbsp;수&amp;nbsp;있음&lt;br /&gt;-&amp;nbsp;UIWindowScene&amp;nbsp;을&amp;nbsp;통해서&amp;nbsp;적용&lt;br /&gt;Pointer&amp;nbsp;band&amp;nbsp;selection&lt;br /&gt;-&amp;nbsp;다중&amp;nbsp;선택&lt;br /&gt;Pointer&amp;nbsp;accessories&lt;br /&gt;-&amp;nbsp;마우스&amp;nbsp;포인터를&amp;nbsp;변경&lt;br /&gt;Keyboard&amp;nbsp;shortcuts&amp;nbsp;-&amp;nbsp;UI가&amp;nbsp;변경됨&lt;br /&gt;관련&amp;nbsp;영상&amp;nbsp;&amp;nbsp;:&amp;nbsp;~&amp;nbsp;iPad&amp;nbsp;Apps&amp;nbsp;to&amp;nbsp;the&amp;nbsp;next&amp;nbsp;level&lt;br /&gt;&amp;gt;&amp;nbsp;Focus&amp;nbsp;system&amp;nbsp;&lt;br /&gt;-&amp;nbsp;아이패드에서도&amp;nbsp;적용&amp;nbsp;됨.&lt;br /&gt;-&amp;nbsp;키보드&amp;nbsp;이용&amp;nbsp;(Focus&amp;nbsp;on&amp;nbsp;Keyboard&amp;nbsp;navigation&amp;nbsp;영상&amp;nbsp;참고)&lt;br /&gt;Multi-touch&amp;nbsp;drag&amp;nbsp;&amp;amp;&amp;nbsp;drop&lt;br /&gt;-&amp;nbsp;이제&amp;nbsp;아이폰도&amp;nbsp;가능!&lt;br /&gt;-&amp;nbsp;WWDC17년&amp;nbsp;영상들과&amp;nbsp;동일&lt;br /&gt;UI&amp;nbsp;refinements&lt;br /&gt;**&amp;nbsp;지못미,&amp;nbsp;테이블&amp;nbsp;뷰!&amp;nbsp;이제는&amp;nbsp;SwiftUI&amp;nbsp;에&amp;nbsp;밀려(?)&amp;nbsp;List&amp;nbsp;라&amp;nbsp;불리게&amp;nbsp;된겐가..&amp;nbsp;ㅠ.ㅜ&lt;br /&gt;&lt;br /&gt;Toolbar,&amp;nbsp;tabbar&amp;nbsp;visual&amp;nbsp;update&lt;br /&gt;contentviewscroll이&amp;nbsp;viewcontroller&amp;nbsp;에&amp;nbsp;기본적으로&amp;nbsp;property&amp;nbsp;제공됨?&lt;br /&gt;List&amp;nbsp;headers&lt;br /&gt;.plain,&amp;nbsp;.grouped,&amp;nbsp;&lt;br /&gt;prominentInsetGrouped&amp;nbsp;:&amp;nbsp;사이드바&amp;nbsp;처럼&amp;nbsp;동작.&lt;br /&gt;extraPromentInsetgrouped&amp;nbsp;:&amp;nbsp;애플워치&amp;nbsp;앱처럼&amp;nbsp;볼드로&amp;nbsp;동작.&lt;br /&gt;UIListSeparatorConfiguration&lt;br /&gt;-&amp;nbsp;지난&amp;nbsp;업데이트&amp;nbsp;14.5&amp;nbsp;에서&amp;nbsp;추가&lt;br /&gt;Sheets&amp;nbsp;Presentations&lt;br /&gt;-&amp;nbsp;half&amp;nbsp;height&amp;nbsp;sheets&lt;br /&gt;-&amp;nbsp;Optionally&amp;nbsp;non-modal&amp;nbsp;&lt;br /&gt;-&amp;nbsp;관련&amp;nbsp;영상&amp;nbsp;:&amp;nbsp;Customize&amp;nbsp;and&amp;nbsp;resize&amp;nbsp;sheets&amp;nbsp;in&amp;nbsp;UIKit&lt;br /&gt;UIDatePicker&amp;nbsp;-&amp;nbsp;시간도&amp;nbsp;고를&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;휠&amp;nbsp;나옴~&lt;br /&gt;API&amp;nbsp;Enhancements&lt;br /&gt;**&amp;nbsp;pulldown?&amp;nbsp;popup!&amp;nbsp;SubMenus?!&amp;nbsp;들이&amp;nbsp;추가되다니!&lt;br /&gt;**&amp;nbsp;안녕,&amp;nbsp;roundedRect..?&amp;nbsp;아닌가,&amp;nbsp;Welcome&amp;nbsp;back,&amp;nbsp;인가...?&amp;nbsp;;)&lt;br /&gt;&lt;br /&gt;UIButton&amp;nbsp;API&lt;br /&gt;-&amp;nbsp;plain&amp;nbsp;-&amp;nbsp;gray,&amp;nbsp;tinted,&amp;nbsp;filled,&amp;nbsp;multiful&amp;nbsp;line&amp;nbsp;:&amp;nbsp;button&amp;nbsp;configurations&lt;br /&gt;-&amp;nbsp;pulldown,&amp;nbsp;popup&amp;nbsp;추가됨&lt;br /&gt;-&amp;nbsp;맥에서&amp;nbsp;맥에&amp;nbsp;맞게&amp;nbsp;잘&amp;nbsp;모이게&amp;nbsp;동작함&lt;br /&gt;-&amp;nbsp;corner&amp;nbsp;도&amp;nbsp;있네.&lt;br /&gt;meet&amp;nbsp;the&amp;nbsp;uikit&amp;nbsp;button&amp;nbsp;video&lt;br /&gt;submenus&lt;br /&gt;-&amp;nbsp;위&amp;nbsp;비디오에서&amp;nbsp;다룸&lt;br /&gt;SFSymbol&lt;br /&gt;-&amp;nbsp;팔레트,&amp;nbsp;멀티&amp;nbsp;컬러&amp;nbsp;추가됨&lt;br /&gt;-&amp;nbsp;대표색을&amp;nbsp;고르고&amp;nbsp;설정하면&amp;nbsp;적절하게&amp;nbsp;채워짐&lt;br /&gt;-&amp;nbsp;Design&amp;nbsp;and&amp;nbsp;build&amp;nbsp;SFSymbols,&amp;nbsp;SF&amp;nbsp;Symbols&amp;nbsp;in&amp;nbsp;UIKit&amp;nbsp;and&amp;nbsp;AppKit&amp;nbsp;videos&lt;br /&gt;Content&amp;nbsp;size&amp;nbsp;category&amp;nbsp;limits&lt;br /&gt;-&amp;nbsp;동적&amp;nbsp;타입&amp;nbsp;사이즈를&amp;nbsp;뷰&amp;nbsp;하이라키에&amp;nbsp;맞춰서&amp;nbsp;제약&amp;nbsp;가능&lt;br /&gt;-&amp;nbsp;최소&amp;nbsp;최대&amp;nbsp;크기&amp;nbsp;설정&amp;nbsp;가능&lt;br /&gt;UIColor&amp;nbsp;enhancements&lt;br /&gt;-&amp;nbsp;system&amp;nbsp;~&lt;br /&gt;Dynamic&amp;nbsp;tint&amp;nbsp;color&amp;nbsp;:&amp;nbsp;UIColor.tintColor&lt;br /&gt;colorPickerController&amp;nbsp;에&amp;nbsp;지속적&amp;nbsp;선택&amp;nbsp;옵션&amp;nbsp;추가&lt;br /&gt;TextKit2&lt;br /&gt;-&amp;nbsp;새로운&amp;nbsp;텍스트&amp;nbsp;레이아웃&amp;nbsp;api&lt;br /&gt;-&amp;nbsp;UITextField&amp;nbsp;뒤에서&amp;nbsp;사용됨&lt;br /&gt;-&amp;nbsp;특별한&amp;nbsp;적용&amp;nbsp;필요는&amp;nbsp;없음&lt;br /&gt;-&amp;nbsp;Meet&amp;nbsp;TextKit2&amp;nbsp;video&lt;br /&gt;UIScene&amp;nbsp;state&amp;nbsp;restoration&lt;br /&gt;-&amp;nbsp;NSUserActivity&amp;nbsp;:&amp;nbsp;인터페이스&amp;nbsp;상태를&amp;nbsp;표현해&amp;nbsp;줌&lt;br /&gt;-&amp;nbsp;텍스트&amp;nbsp;동작&amp;nbsp;상태&amp;nbsp;속성&amp;nbsp;추가&lt;br /&gt;-&amp;nbsp;스토리보드&amp;nbsp;로드&amp;nbsp;후&amp;nbsp;상태&amp;nbsp;복구용&amp;nbsp;콜백&lt;br /&gt;-&amp;nbsp;상태&amp;nbsp;복구용으로&amp;nbsp;확장&amp;nbsp;가능&lt;br /&gt;-&amp;nbsp;이제&amp;nbsp;슬슬&amp;nbsp;씬&amp;nbsp;베이스로&amp;nbsp;넘어오시랍니다..;;&lt;br /&gt;-&amp;nbsp;Take&amp;nbsp;your&amp;nbsp;iPad&amp;nbsp;Apps&amp;nbsp;to&amp;nbsp;the&amp;nbsp;next&amp;nbsp;level&lt;br /&gt;Scene&amp;nbsp;level&amp;nbsp;sharing&lt;br /&gt;앱&amp;nbsp;안에서&amp;nbsp;공유&amp;nbsp;가능한&amp;nbsp;것을&amp;nbsp;표현&lt;br /&gt;-&amp;nbsp;시리의&amp;nbsp;share&amp;nbsp;this&amp;nbsp;기능에&amp;nbsp;서용되거나&lt;br /&gt;-&amp;nbsp;NSSharingServicePickerToolbarItem&amp;nbsp;on&amp;nbsp;Mac&lt;br /&gt;-&amp;nbsp;Design&amp;nbsp;great&amp;nbsp;actions&amp;nbsp;for&amp;nbsp;shortcuts,&amp;nbsp;Siri,&amp;nbsp;and&amp;nbsp;suggestions&amp;nbsp;video&lt;br /&gt;-&amp;nbsp;qualities&amp;nbsp;of&amp;nbsp;a&amp;nbsp;great&amp;nbsp;mac&amp;nbsp;cat.&amp;nbsp;app&amp;nbsp;video&lt;br /&gt;Cell&amp;nbsp;configuration&amp;nbsp;closure&lt;br /&gt;-&amp;nbsp;컬렉션&amp;nbsp;뷰&amp;nbsp;테이블&amp;nbsp;뷰&lt;br /&gt;-&amp;nbsp;셀상태&amp;nbsp;변경에&amp;nbsp;편해짐&lt;br /&gt;-&amp;nbsp;상속따윈&amp;nbsp;필요&amp;nbsp;없다&lt;br /&gt;-&amp;nbsp;cell.configurationUpdateHandler&amp;nbsp;closure&amp;nbsp;확인&lt;br /&gt;Diffable&amp;nbsp;data&amp;nbsp;source&amp;nbsp;improvements&lt;br /&gt;-&amp;nbsp;apply&amp;nbsp;snapshots&amp;nbsp;애니메이션&amp;nbsp;없이.&amp;nbsp;-&amp;nbsp;찾아보자&lt;br /&gt;Performance&lt;br /&gt;Cell&amp;nbsp;prefetching&amp;nbsp;기능&amp;nbsp;향상&lt;br /&gt;뒤에서&amp;nbsp;동작하는&amp;nbsp;방식이&amp;nbsp;바뀌어서&amp;nbsp;퍼포먼스가&amp;nbsp;2배이상&amp;nbsp;빨라짐,&amp;nbsp;특별히&amp;nbsp;바꿀건&amp;nbsp;없음&lt;br /&gt;추가된&amp;nbsp;비동기를&amp;nbsp;이용,&amp;nbsp;퍼포먼스가&amp;nbsp;더&amp;nbsp;빨라졌다&amp;nbsp;함.&lt;br /&gt;Make&amp;nbsp;blazing&amp;nbsp;fast&amp;nbsp;lists&amp;nbsp;and&amp;nbsp;collection&amp;nbsp;views&amp;nbsp;video&lt;br /&gt;&lt;br /&gt;Swift&amp;nbsp;async/await&lt;br /&gt;&amp;nbsp; -&amp;nbsp;UI&amp;nbsp;func&amp;nbsp;중&amp;nbsp;메인타야&amp;nbsp;하는&amp;nbsp;겅유,&amp;nbsp;컴파일&amp;nbsp;타임에&amp;nbsp;다&amp;nbsp;MainActor&amp;nbsp;를&amp;nbsp;적용해주게&amp;nbsp;됨&lt;br /&gt;-&amp;nbsp;그&amp;nbsp;외에&amp;nbsp;UIImage&amp;nbsp;preppations&amp;nbsp;계열들은&amp;nbsp;async/await&amp;nbsp;으로.&lt;br /&gt;-&amp;nbsp;Meet&amp;nbsp;async/await&amp;nbsp;in&amp;nbsp;swift&lt;br /&gt;-&amp;nbsp;Meet&amp;nbsp;asyncSeq.&amp;nbsp;videos&lt;br /&gt;&lt;br /&gt;Security&amp;nbsp;and&amp;nbsp;privacy&lt;br /&gt;Location&amp;nbsp;Button&lt;br /&gt;-&amp;nbsp;One-time&amp;nbsp;access&amp;nbsp;to&amp;nbsp;location&lt;br /&gt;-&amp;nbsp;Meet&amp;nbsp;the&amp;nbsp;Location&amp;nbsp;Button&amp;nbsp;Vdo&lt;br /&gt;&lt;br /&gt;표준&amp;nbsp;붙여넣기&amp;nbsp;아이템&amp;nbsp;추가됨&lt;br /&gt;붙여넣기&amp;nbsp;디텍션에&amp;nbsp;여러&amp;nbsp;표준&amp;nbsp;추가&lt;br /&gt;Private&amp;nbsp;click&lt;br /&gt;&lt;br /&gt;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What&amp;rsquo;s&amp;nbsp;new&amp;nbsp;in&amp;nbsp;Swift&amp;nbsp;5.5&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Swift&amp;nbsp;packages&amp;nbsp;updates&lt;br /&gt;Swift&amp;nbsp;Package&amp;nbsp;Index&amp;nbsp;:&amp;nbsp;컨트리뷰트라네&amp;hellip;&amp;nbsp;ㅎㅎ&amp;nbsp;엑스코드에서&amp;nbsp;바로&amp;nbsp;지원된다네.&lt;br /&gt;Package&amp;nbsp;collections&amp;nbsp;in&amp;nbsp;Xcode&lt;br /&gt;-&amp;nbsp;여기서&amp;nbsp;찾아서&amp;nbsp;바로&amp;nbsp;붙여넣능ㄹ&amp;nbsp;수&amp;nbsp;있음.&lt;br /&gt;-&amp;nbsp;json&amp;nbsp;file&amp;nbsp;로&amp;nbsp;퍼블리시도&amp;nbsp;되고&lt;br /&gt;-&amp;nbsp;필요에&amp;nbsp;따라서&amp;nbsp;묶어서&amp;nbsp;팀원들끼리&amp;nbsp;쉐어&amp;nbsp;가능&lt;br /&gt;-&amp;nbsp;검색도&amp;nbsp;가능&lt;br /&gt;Apple&amp;nbsp;Package&amp;nbsp;도&amp;nbsp;있음&lt;br /&gt;Swit&amp;nbsp;collections&lt;br /&gt;-&amp;nbsp;GitHub.com/apple/swift-collections&lt;br /&gt;-&amp;nbsp;Deque&amp;nbsp;:&lt;br /&gt;-&amp;nbsp;OrderedSet&lt;br /&gt;-&amp;nbsp;OrderedDictionary&lt;br /&gt;The&amp;nbsp;Algorithms&amp;nbsp;Packages&lt;br /&gt;-&amp;nbsp;40개&amp;nbsp;제공중.&lt;br /&gt;Swift&amp;nbsp;System&lt;br /&gt;-&amp;nbsp;로우&amp;nbsp;레벨&amp;nbsp;인터페이스&amp;nbsp;(시스템&amp;nbsp;콜용)&lt;br /&gt;Swift&amp;nbsp;Numerics&lt;br /&gt;-&amp;nbsp;Float15&amp;nbsp;support&amp;nbsp;on&amp;nbsp;Apple&amp;nbsp;silicon&amp;nbsp;macs&lt;br /&gt;ArgumentParser&lt;br /&gt;-&amp;nbsp;쉘&amp;nbsp;컴프리션&amp;nbsp;스크립트&amp;nbsp;처리&amp;nbsp;등에&amp;nbsp;사용&lt;br /&gt;-&amp;nbsp;터미널&amp;nbsp;앱의&amp;nbsp;옵션?&lt;br /&gt;Swift&amp;nbsp;on&amp;nbsp;server&lt;br /&gt;-&amp;nbsp;&lt;br /&gt;개발자&amp;nbsp;경험도&amp;nbsp;더&amp;nbsp;발전됨&lt;br /&gt;-&amp;nbsp;Swift&amp;nbsp;DocC&amp;nbsp;::&amp;nbsp;엑스코드에서&amp;nbsp;바로&amp;nbsp;문서로&amp;nbsp;뿅~&lt;br /&gt;-&amp;nbsp;비디오도&amp;nbsp;여러개&amp;nbsp;있음&lt;br /&gt;빌드&amp;nbsp;향상&lt;br /&gt;-&amp;nbsp;모듈을&amp;nbsp;바꿀때&amp;nbsp;더&amp;nbsp;빨리&amp;nbsp;빌드됨&lt;br /&gt;-&amp;nbsp;컴파일이&amp;nbsp;시작&amp;nbsp;전에&amp;nbsp;더&amp;nbsp;빨라짐&lt;br /&gt;-&amp;nbsp;재빌드&amp;nbsp;타이밍도&amp;nbsp;줄어듬&lt;br /&gt;메모리&amp;nbsp;관리&lt;br /&gt;-&amp;nbsp;ARC&amp;nbsp;에서&amp;nbsp;Optimize&amp;nbsp;Object&amp;nbsp;Lifetimes&amp;nbsp;옵션&amp;nbsp;추가됨&lt;br /&gt;-&amp;nbsp;ARC&amp;nbsp;in&amp;nbsp;Swift:&amp;nbsp;Basics&amp;nbsp;and&amp;nbsp;beyond&lt;br /&gt;&lt;br /&gt;Ergonomic&amp;nbsp;improvements&lt;br /&gt;SE&amp;nbsp;문서들&amp;nbsp;이야기&amp;nbsp;-&amp;nbsp;스펙&amp;nbsp;말이지.&lt;br /&gt;Result&amp;nbsp;Builders&amp;nbsp;:&amp;nbsp;표준화&amp;nbsp;됨&amp;nbsp;:&amp;nbsp;SE-0289&lt;br /&gt;enum&amp;nbsp;:&amp;nbsp;codable&amp;nbsp;추가됨&lt;br /&gt;Property&amp;nbsp;wrappers&amp;nbsp;on&amp;nbsp;parameters&amp;nbsp;:&amp;nbsp;SE-0293&lt;br /&gt;&amp;hellip;&amp;nbsp;이런건&amp;nbsp;일단&amp;nbsp;다&amp;nbsp;What&amp;rsquo;s&amp;nbsp;new&amp;nbsp;in&amp;nbsp;SwiftUI&lt;br /&gt;Async&amp;nbsp;and&amp;nbsp;concurrent&amp;nbsp;programming&lt;br /&gt;async&amp;nbsp;:&amp;nbsp;문법적으로,&amp;nbsp;함수가&amp;nbsp;멈출수&amp;nbsp;있게&amp;nbsp;지원되도록&amp;nbsp;컴파일&amp;nbsp;해야&amp;nbsp;해~&lt;br /&gt;await&amp;nbsp;:&amp;nbsp;결과&amp;nbsp;나올때까지&amp;nbsp;기다려~~~~~&lt;br /&gt;expl&amp;nbsp;str&amp;nbsp;conn&amp;nbsp;in&amp;nbsp;swift&amp;nbsp;video&lt;br /&gt;-&amp;nbsp;try&amp;nbsp;하나로&amp;nbsp;병렬로&amp;nbsp;돌아가는&amp;nbsp;애들의&amp;nbsp;error&amp;nbsp;를&amp;nbsp;잡아서&amp;nbsp;처리를&amp;hellip;..!!&lt;br /&gt;Actor&amp;nbsp;를&amp;nbsp;통한&amp;nbsp;데이터&amp;nbsp;망가짐을&amp;nbsp;보완&lt;br /&gt;-&amp;nbsp;async&amp;nbsp;await&amp;nbsp;으로&amp;nbsp;호출&lt;br /&gt;-&amp;nbsp;actor&amp;nbsp;호출시&amp;nbsp;앞에&amp;nbsp;무조건&amp;nbsp;&amp;nbsp;await&amp;nbsp;이&amp;nbsp;있어야&amp;nbsp;함&lt;br /&gt;-&amp;nbsp;레퍼런스&amp;nbsp;타입&amp;nbsp;임&amp;nbsp;하지만&amp;nbsp;멀티테스킹에&amp;nbsp;맞게&amp;nbsp;안전하게&amp;nbsp;사용될&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;룰을&amp;nbsp;가짐~~&lt;br /&gt;-&amp;nbsp;~&amp;nbsp;with&amp;nbsp;swit&amp;nbsp;actors&amp;nbsp;video&lt;br /&gt;&lt;br /&gt;Swift6&lt;br /&gt;&amp;nbsp;-&amp;nbsp;안전한&amp;nbsp;컨커런시~~~~~~&lt;br /&gt;&amp;nbsp;-&amp;nbsp;compiler&amp;nbsp;snapshot&amp;nbsp;써보기&lt;br /&gt;&lt;br /&gt;&amp;mdash;-&lt;br /&gt;&lt;b&gt;What&amp;rsquo;s&amp;nbsp;new&amp;nbsp;in&amp;nbsp;Foundations&lt;/b&gt;&lt;br /&gt;&amp;mdash;-&lt;br /&gt;AttributedString&lt;br /&gt;-&amp;nbsp;구조체로&amp;nbsp;제공&lt;br /&gt;-&amp;nbsp;String과&amp;nbsp;호환&lt;br /&gt;-&amp;nbsp;지역화&amp;nbsp;가능&lt;br /&gt;-&amp;nbsp;안전하고&amp;nbsp;보안에&amp;nbsp;강함&lt;br /&gt;AttributedString&amp;nbsp;View&lt;br /&gt;String(localized:&amp;hellip;)&lt;br /&gt;AttributedString(localized:&amp;hellip;)&lt;br /&gt;SwiftUI&amp;nbsp;:&amp;nbsp;text에서&amp;nbsp;MD&amp;nbsp;같이&amp;nbsp;동작하네?&lt;br /&gt;Codable&amp;nbsp;지원.&lt;br /&gt;Attributed&amp;nbsp;Key&lt;br /&gt;MarkdownDecodableAttributedStringKey..&amp;nbsp;?!&lt;br /&gt;Attribute&amp;nbsp;Scopes&lt;br /&gt;결국,&amp;nbsp;커스텀&amp;nbsp;포멧을&amp;nbsp;마크다운&amp;nbsp;같은걸&amp;nbsp;써서&amp;nbsp;해결가능&amp;nbsp;-&amp;nbsp;텍스트만으로.&lt;br /&gt;&lt;br /&gt;Formatters&lt;br /&gt;-&amp;nbsp;Date&amp;nbsp;formatter가&amp;nbsp;심플해짐&lt;br /&gt;date&amp;nbsp;안에&amp;nbsp;formatted&amp;nbsp;가&amp;nbsp;들어감.&amp;nbsp;ㅎㅎ&lt;br /&gt;속도&amp;nbsp;퍼포먼스를&amp;nbsp;위해서&amp;nbsp;컴파일&amp;nbsp;시점에서부터&amp;nbsp;처리하기&amp;nbsp;위한&amp;nbsp;목표.&lt;br /&gt;뭔가&amp;hellip;.&amp;nbsp;SwiftUI&amp;nbsp;Modifier&amp;nbsp;같은&amp;nbsp;느낌&amp;hellip;&lt;br /&gt;날짜&amp;nbsp;사이&amp;nbsp;계산도&amp;nbsp;쉽네;;;&amp;nbsp;Range&amp;nbsp;느낌.&lt;br /&gt;&amp;nbsp; SwiftUI&amp;nbsp;preview에서&amp;nbsp;locale&amp;nbsp;설정도&amp;nbsp;되네&amp;nbsp;&lt;br /&gt;문자&amp;nbsp;-&amp;gt;&amp;nbsp;date&amp;nbsp;할때도&amp;nbsp;좀&amp;nbsp;더&amp;nbsp;직관적으로&amp;nbsp;바뀜.&lt;br /&gt;-&amp;nbsp;숫자에&amp;nbsp;format이&amp;nbsp;들어감&amp;nbsp;호옹..&lt;br /&gt;SwiftUI&amp;nbsp;Text에는&amp;nbsp;format&amp;nbsp;도&amp;nbsp;들어갔네.&lt;br /&gt;Grammar&amp;nbsp;agreement&lt;br /&gt;-&amp;nbsp;좋아&amp;nbsp;좋아.&amp;nbsp;단수,&amp;nbsp;복수&amp;nbsp;처리&lt;br /&gt;Automatic&amp;nbsp;Grammar&amp;nbsp;Agreement&lt;br /&gt;남성형,&amp;nbsp;여성형&amp;nbsp;스타일?!&lt;br /&gt;inflact&amp;nbsp;options&lt;/p&gt;</description>
      <category>테크 칼럼</category>
      <category>WWDC</category>
      <category>WWDC2021</category>
      <category>뒷북</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/189</guid>
      <comments>https://mocona.tistory.com/189#entry189comment</comments>
      <pubDate>Fri, 1 Oct 2021 05:07:55 +0900</pubDate>
    </item>
    <item>
      <title>WWDC2021 - Day1</title>
      <link>https://mocona.tistory.com/188</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;뜬금없이 간만에 티스토리에 글을 쓰게 되고...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심지어, 2021년 WWDC 이야기. :)&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;6월에는 게으르미즘에 미루어 두었던, WWDC2021 을, 올해는 가을에 혼자 시작해 봅니다.&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;Platform state of the union&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 짧은 소감. (제 페북에 올린 글을 그대로 복붙;;ㅎㅎ)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;눈길을&amp;nbsp;끌었던&amp;nbsp;건..&amp;nbsp;대략&amp;nbsp;세가지&amp;nbsp;정도.&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Concurrency&lt;/i&gt;&lt;br /&gt;&amp;nbsp;-&amp;nbsp;async&amp;nbsp;/&amp;nbsp;await,&amp;nbsp;&lt;br /&gt;&amp;nbsp;-&amp;nbsp;Structured&amp;nbsp;concurrency,&amp;nbsp;&lt;br /&gt;&amp;nbsp;-&amp;nbsp;Actors&amp;nbsp;&amp;amp;&amp;nbsp;@&amp;nbsp;MainActor&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;영상을&amp;nbsp;본&amp;nbsp;다음,&amp;nbsp;작년&amp;nbsp;11월에&amp;nbsp;김정&amp;nbsp;님이&amp;nbsp;올려주신&amp;nbsp;글도&amp;nbsp;같이&amp;nbsp;보면&amp;nbsp;꿀잼.&amp;nbsp; &lt;br /&gt;&lt;a href=&quot;https://medium.com/@jungkim/스위프트-동시성-로드맵에-대하여-about-swift-concurrency-roadmap-ccf651c09c4c&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://medium.com/@jungkim/스위프트-동시성-로드맵에-대하여-about-swift-concurrency-roadmap-ccf651c09c4c&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;AR&amp;nbsp;의&amp;nbsp;RealityKit2&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&amp;nbsp;-&amp;nbsp;바로&amp;nbsp;해보고&amp;nbsp;싶은건&amp;nbsp;Object&amp;nbsp;Capture&amp;nbsp;&amp;amp;&amp;nbsp;API.&amp;nbsp;(Reality&amp;nbsp;3D&amp;nbsp;가즈아~)&lt;br /&gt;&amp;nbsp;(아&amp;nbsp;근데&amp;nbsp;아이폰이..&amp;nbsp;크흑..&amp;nbsp;ㅠ.ㅜ)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;i&gt;Facetime&amp;nbsp;Share&amp;nbsp;Play&amp;nbsp;의&amp;nbsp;GroupActivity&lt;/i&gt;&lt;br /&gt;&amp;nbsp;-&amp;nbsp;적용해보고&amp;nbsp;싶어짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;그&amp;nbsp;외에&amp;nbsp;스크린&amp;nbsp;타임&amp;nbsp;api&amp;nbsp;도..&amp;nbsp;요건&amp;nbsp;어떤&amp;nbsp;의미에서&amp;nbsp;이래도&amp;nbsp;되나..?&amp;nbsp;싶었음.&amp;nbsp; &lt;br /&gt;&lt;b&gt;Day2&amp;nbsp;는,&amp;nbsp;What's&amp;nbsp;new&amp;nbsp;party~!&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Platform state of the union&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Indexing.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;XCode cloud&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Swift&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Concurrency&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;async / await&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 비동기를 쉽게 돌릴수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;Structured concurrency&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- async let 으로 선언하여, 동시에 동작하게 만들 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;Actors&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 안전한 컨커런시용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 구조체와 같은 문법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- async / await 사용과 잘 섞어 사용 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;@MainActor 속성을 이용해서, await 으로 함수를 호출하면, 메인쓰레드를 타게 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;for try await line in url.lines {&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;&amp;hellip;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;}&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SwiftUI 의 발전&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;우리도 써야 하거든 ㅎㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;접근성도 향상됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 관련 모디파이어도 추가됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;새로운 메터리얼 스타일도 추가됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 관련 내용을 깔쌈하게 먹여줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SwiftUI in iPad SwiftPlaygrounds&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;앱 빌드도 가능하게 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;엑스코드로 자연스럽게 가져올 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;플레이 그라운드도 엑스코드와 동일한 레벨의 프리뷰 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;콘솔도 지원해주는 구나&amp;hellip; :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앱스토어에 올리기까지 되네?! ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;올해 하반기에 지원된다네 ㅋㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AR&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;ar 가능한 장비가 1빌리언&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;RealityKit2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;랜더링 등등 다양한거 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;Object Capture&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;amp; API!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;포토 리얼리티 가즈아~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;레이 트레이싱도 된당~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;유니티, 시네마포디, 클론도 지원~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;엑스코드에서 바로 3D가 확인되네;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;앱클립으로 3디 보여주고 앱으로 연결 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;steam effect 가 중요한 듯 ㅋㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;이런 저런 효과 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Unified Metal Platform&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;메모리와의 물리적 거리가 짧아지고, 모든 플랫폼에 적용되기 시작하면서 성능이 급상승하게 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;그래픽 &amp;amp; 컴퓨트 인티그레이션&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 같은 파이프라인으로 적용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;고해상도 주파수 디스플레이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- pro motion display&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;온 스크린 가상 패드도 기본 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;다양한 조이패드 지원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;선택 쉐이더 디버거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;텐스쳐 컨버터 툴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;메탈 디버거 타임라인 뷰&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람들과의 연결 &amp;amp; 프라이버시의 중요성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;우리 앱에서도 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Focus&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- interruption level apis&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- passive&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- active&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- time sensitive&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- critical&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;메신저 레벨에서 아바타를 노티에 보여줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;노티피케이션 서머리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;포커스 상태를 우리 앱이 받아서 적용할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크린타임 api&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;Managed Settings&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 다양한 제약 사항들을 걸 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 숙제 하려므나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 심지어 잠그거나 지우기도 제한 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;Device Activity&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 토큰으로 상태를 넘겨받아서 관련된 제약사항이 허가 사항을 넘길 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 심지어 응원도 하네.. ㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;가족으로 묶은 상태에서 말이지..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위젯&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;extra size widget for iPad&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;Smart Stack Widget + 위젯 추천&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;Facetime like portal&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;SharePlay&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 그룹 플레이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;- 동시 재생, 상태 공유&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;GroupActivity protocol&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;AVPlayer @published 로 마무리..;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; &lt;/span&gt;화면 공유가 아닌, 터치를 전달, 앱이 받아서 처리하도록 동작.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>테크 칼럼</category>
      <category>WWDC</category>
      <category>WWDC2021</category>
      <category>뒷북</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/188</guid>
      <comments>https://mocona.tistory.com/188#entry188comment</comments>
      <pubDate>Fri, 1 Oct 2021 05:00:32 +0900</pubDate>
    </item>
    <item>
      <title>[번역]2016년에 iOS를 배운다는건 어떤 느낌일까</title>
      <link>https://mocona.tistory.com/187</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;번역한 글 하나를 올립니다. (글 자체를 올리는게 참 오래간만... 쿨럭)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재미있게 보시길. :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;a class=&quot;tx-link&quot; href=&quot;https://medium.com/@mocona/번역-2016년에-ios를-배운다는건-어떤-느낌일까-5920a71febe2#.ibqez41bh&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[번역]2016년에 iOS를 배운다는건 어떤 느낌일까&lt;/a&gt; &amp;lt;&amp;lt;&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;2021.10.01 덧붙임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 아니 왜 이 글이 비공개였지?! ;;&lt;/p&gt;</description>
      <category>테크 칼럼</category>
      <category>ios</category>
      <category>모바일</category>
      <category>코딩공부</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/187</guid>
      <comments>https://mocona.tistory.com/187#entry187comment</comments>
      <pubDate>Fri, 2 Dec 2016 09:08:04 +0900</pubDate>
    </item>
    <item>
      <title>짧게 정리해보는 WWDC 2016 Keynote</title>
      <link>https://mocona.tistory.com/186</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 683px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/254B014D575F07F316&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F254B014D575F07F316&quot; width=&quot;683&quot; height=&quot;512&quot; filename=&quot;IMG_0093.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;.12 시간 전, 경건히 시청 준비를....&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;워치 OS&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 엔지니어를 갈아 넣.... 쿨럭;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 앱 스위칭이!&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 우와.. 장애자 운동 지원..&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;iOS&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 시리 개발자 지원&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 퀵 타입&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 사진&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;... 적다가 귀찮.. 어차피 저보다 더 훌륭한 분들이 멋지게 정리하실걸 알기에... 그보다 감상평으로!&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;짧은 감상평 #wwdc 키노트&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. &amp;nbsp;플랫폼이 젊어지려고 한다....! (운명임)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. &amp;nbsp;디자인적인 부분의 통일성이 인상적&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 특별히 두드러졌던.. 뉴스 &amp;amp; 뮤직.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. iOS 머테리얼 첫 적용(iOS6)때 이미 다 틀 잡아놓은거, 업데이트 타이밍만 늦춘듯한 느낌.&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 하얀방의 그분;은 이제 드디어 원하는대로 다 바꾼 듯한 느낌이...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. &amp;nbsp;흠... 이쯤되면 다 좋은데 과연 네트워크 없이 얼마나 동작할까..?&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 개인적으로는 맥 OS 에서의 시리 동작시 네트워크 연동 rate가 제일 궁금.....;;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 다시말해 macOS 에 시리 인식 부분이 어느정도 '로컬'에 탑재돼 나오려나..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5.그나저나 대체 애플 워치팀에서는 엔지니어를 얼마나 갈아넣은 게요;;;;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;마지막으로....&lt;/p&gt;&lt;p&gt;&amp;nbsp;(소근소근) 잘들어.. 구글이 아니였어, 애플이었어! 빅 브라더가 말이지......&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;원 모어 띵.&lt;/p&gt;&lt;p&gt;&amp;nbsp;소프트웨어에 좀 더 많이 집중하는 애플을 보니, 오래간만에 애플답다..라는 느낌이 드는 키노트였다랄까...&lt;/p&gt;&lt;p&gt;&amp;nbsp;그러니까, 예를들어.. '딥러닝? 우린 이렇게 생각하고 이렇게 적용하고 있지!' 라는 느낌 아닌 느낌!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-코나-&lt;/p&gt;</description>
      <category>삽질기/iPhone Dev</category>
      <category>WWDC</category>
      <category>애플</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/186</guid>
      <comments>https://mocona.tistory.com/186#entry186comment</comments>
      <pubDate>Tue, 14 Jun 2016 04:23:19 +0900</pubDate>
    </item>
    <item>
      <title>iPad Pro. 간단 평.</title>
      <link>https://mocona.tistory.com/185</link>
      <description>&lt;p&gt;제목은 아이패드 프로인데.. 이야기가 전개되면서 애플을 까봅니다. 떼찌떼찌.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;며칠전 애플 신사이바시 스토어에서 짧게 만져보았던 iPad Pro 에 대한 이야기를 해볼까 한다.&lt;/p&gt;&lt;p&gt;총평을 먼저 내리면, ‘완벽한 하드웨어와 이를 받쳐주지 못하는 소프트웨어’라고나 할까.&lt;/p&gt;&lt;p&gt;...... (&lt;a href=&quot;https://medium.com/@mocona/ipad-pro-짧은-감상-909b1993b8d1&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;더보기...&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>테크 칼럼</category>
      <category>아이패드프로</category>
      <category>애플</category>
      <category>통합</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/185</guid>
      <comments>https://mocona.tistory.com/185#entry185comment</comments>
      <pubDate>Tue, 1 Dec 2015 16:51:43 +0900</pubDate>
    </item>
    <item>
      <title>유니클로의 흥미로운 콜라보레이션, 그리고 모바일.</title>
      <link>https://mocona.tistory.com/184</link>
      <description>&lt;p&gt;지난주 유니클로에서 만났던 흥미로운 콜라보레이션 단상입니다. :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;역시 미디엄으로 적었습니다. :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;지난 토요일 일본 유니클로 매장에서 발견한 흥미로운 콜라보레이션.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;새로 개봉하는 ‘찰리 브라운’ 영화에 맞춰서 (이상하게 난 피너츠보다 찰리 브라운이라 부르는게 좋다. :) ) 유니클로와 콜라보레이션을 진행하는 것이다. :)&lt;/p&gt;&lt;p&gt;크게 세가지로 나누어 지는데... (&lt;a href=&quot;https://medium.com/@mocona/유니클로의-흥미로운-콜라보레이션-그리고-모바일-21ed2a472ff7#.1w2b4r6v4&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;더보기...&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>테크 칼럼</category>
      <category>모바일</category>
      <category>유니클로</category>
      <category>콜라보레이션</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/184</guid>
      <comments>https://mocona.tistory.com/184#entry184comment</comments>
      <pubDate>Tue, 1 Dec 2015 10:05:21 +0900</pubDate>
    </item>
    <item>
      <title>sails.js 에 대한 단상 #1</title>
      <link>https://mocona.tistory.com/183</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;미디엄(!) 계정 오픈 겸, 오래간만에 글하나 남깁니다. :)&lt;/span&gt;&lt;/p&gt;&lt;p name=&quot;2104&quot; id=&quot;2104&quot; class=&quot;graf--p graf-after--p&quot; style=&quot;margin: 29px 0px 0px; font-family: medium-content-serif-font, Georgia, Cambria, 'Times New Roman', Times, serif; font-size: 21px; line-height: 1.58; letter-spacing: -0.003em; color: rgba(0, 0, 0, 0.8);&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;sails.js 를 이용해서 본격적으로 개발을 시작한 지 약 3개월이 지났다.&lt;/span&gt;&lt;/p&gt;&lt;p name=&quot;1a96&quot; id=&quot;1a96&quot; class=&quot;graf--p graf-after--p&quot; style=&quot;margin: 29px 0px 0px; font-family: medium-content-serif-font, Georgia, Cambria, 'Times New Roman', Times, serif; font-size: 21px; line-height: 1.58; letter-spacing: -0.003em; color: rgba(0, 0, 0, 0.8);&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;물론 기술 검토 기간을 고려한다면, 한달 정도를 덧붙여야 하지만, 지금 진행중인 프로젝트의 날짜를 고려해보면 대략 3개월.&lt;/span&gt;&lt;/p&gt;&lt;p name=&quot;72fd&quot; id=&quot;72fd&quot; class=&quot;graf--p graf-after--p&quot; style=&quot;margin: 29px 0px 0px; font-family: medium-content-serif-font, Georgia, Cambria, 'Times New Roman', Times, serif; font-size: 21px; line-height: 1.58; letter-spacing: -0.003em; color: rgba(0, 0, 0, 0.8);&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;아직 프로젝트가 끝나지 않은 상황에서 무엇인가를 논하기에는 부족한 부분이 많지만, 이 글은 현 시점에서의 sails.js 에 대한 내 소감을 담는것을 목표로 한다. ..... (&lt;/span&gt;&lt;a href=&quot;https://medium.com/@mocona/sails-js-에-대한-단상-1-2313d50339ce&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;글보기&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 9pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>삽질기/sails.js</category>
      <category>JavaScript</category>
      <category>Nodes</category>
      <category>sailsjs</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/183</guid>
      <comments>https://mocona.tistory.com/183#entry183comment</comments>
      <pubDate>Mon, 16 Nov 2015 19:19:20 +0900</pubDate>
    </item>
    <item>
      <title>ubuntu 에서 apache 와 node.js 를 사이좋게~ 함께 살게 만들기.</title>
      <link>https://mocona.tistory.com/182</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;기술 검토(?) 겸, 이틀간 node.js 를 이용해서 이런 저런 스터디 &amp;amp; api 개발을 했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제, 서버에 올려야 하는데......&lt;/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;기존 APM 이 동작중인 상태에서, node.js 로 작성된 서버가 '같이 잘 살아야'만 하는 상황이 됨.&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;1. 내부적으로 다른 포트에 node.js 기반의 (다른것도 물론 가능) 서버를 열고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. apache 의 VirtualHosts 설정에서 ProxyPass 를 설정해서,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 특정 url 로 접근시, 1번으로 '돌려주는' 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 외부에서 보면, 특별히 변화 없음. 내부적으로만 돌려막기(?) 하는 동작으로 보임. :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자, 이제 설정을 해보자.&lt;/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;먼저 준비물 - module - 2개.&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;mod_proxy, mod_proxy_http&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;1. ubuntu apache 서버는 기본적으로 두 모듈이 '설치'가 되어있음.&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;/etc/apache2/mods-available&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;- 이 안에, proxy, proxy_http 설치된 상태.&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;- 실제 설치는, 내부적으로는 ./mods-enabled 에 sort link 해주면 됨.&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;sudo a2enmod proxy&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;sudo a2enmod proxy_http&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;./mods-enabled 안에서 소프트 링크 확인.&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;2. 가상 호스트 설정.&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;./sites-available 내부의 기존파일 혹은 신규 파일 추가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;다음 내용 추가, 수정 등등 적당히.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;DocumentRoot /var/www/example.com/public_html&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;ServerName &amp;nbsp;www.example.com&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;# Index file and Document Root (where the public files are located)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;DirectoryIndex index.html index.php&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;# Log file locations - 아래는 필요하다면.. :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;LogLevel warn&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;ErrorLog &amp;nbsp;/var/www/amazeapp.com/log/error.log&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;CustomLog /var/www/amazeapp.com/log/access.log combined&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;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;ProxyRequests off&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&amp;lt;Proxy *&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;Order deny,allow # 이부분의 경우, 콤마(,) 사이에 공백 없어야 함!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;Allow from all&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&amp;lt;/Proxy&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&amp;lt;Location /&amp;gt; # 내부적으로 접속 노드를 늘리고 싶다면 여기에 추가. :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;ProxyPass http://localhost:3000/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;ProxyPassReverse http://localhost:3000/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;white-space: pre;&quot; class=&quot;Apple-tab-span&quot;&gt; &lt;/span&gt;&amp;lt;/Location&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;sudo a2ensite 파일명 (신규 추가의 경우만.)&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. 아파치, 재시작.&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;잘 됨. 나머지 한가지는 '직접' 연결시 https redirect 설정 부분(얼핏 봤을때 VirtualHost)에 추가로 기억. :)&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;덧붙여서 https 를 cloud flare 의 flexable ssl 접근시, node.js 쪽 pass direct 설정이 필요하다고 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;&amp;nbsp;X-Forwarded-For 를 header 에 포함해주면 서버가 클라이언트의 '진짜' ip 확인 가능 하다고 기억함.&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;X-Forwarded-For&amp;nbsp;은&amp;nbsp;충분히&amp;nbsp;header&amp;nbsp;에서&amp;nbsp;언제든&amp;nbsp;조작이&amp;nbsp;가능하기떄문에&amp;nbsp;진짜&amp;nbsp;ip&amp;nbsp;가&amp;nbsp;아닌&amp;nbsp;클라이언트의&amp;nbsp;ip&amp;nbsp;를&amp;nbsp;가져올&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;방법&lt;s&gt;&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레퍼런스.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;http://garrows.com/blog/running-node-js-and-apache-together-using-mod_proxy/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;https://github.com/sindresorhus/guides/blob/master/run-node-server-alongside-apache.md&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;http://stackoverflow.com/questions/28062159/node-js-https-on-cloudflare&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;node.js 흐으음............ 나중에 좀 정리해서 따로 적어야 할 듯!&lt;/p&gt;</description>
      <category>삽질기/좌충우돌 서버관리</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/182</guid>
      <comments>https://mocona.tistory.com/182#entry182comment</comments>
      <pubDate>Fri, 5 Jun 2015 17:39:35 +0900</pubDate>
    </item>
    <item>
      <title>가벼운 DNS Server, DNS Masq. 그리고 더 가벼운 '리눅스 서버'. JeOS</title>
      <link>https://mocona.tistory.com/181</link>
      <description>&lt;p&gt;시작은 그랬다.&lt;/p&gt;&lt;p&gt;VMWare 안에 NAT 로 개발&amp;nbsp;서버를 놓고, 같은 네트워크 안에서 다른 '장비'가 '고정'된 주소 - ip 말고 ㅠ.ㅜ - 로 접근하고 싶은 것.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1차적인 목표는 VMWare 안의 서버에 DNS - bind9 - 를 올리고, 밖에서 접근하려 하였으나, - UDP, TCP 53 을 열었음 - 실패. (아마도, 안에서 밖으로 나오지 못해서 그런 듯..)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결국, 같은 네트워크에 묶기로 결정, 별도의 DNS 운영으로 결정.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이래저래 잠시 찾다가 재미있는 두가지를 찾아냈다. (일찍 알게 되었다면 전체 서버 설정을 다 이걸로 했을지도)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. Ubuntu 기반의 '가벼운' 리눅스 서버, JeOS - Juice 라고 읽는다 함. - 를 이용해서 서버 설치&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 재미있게도 Virtual Machine 용 패키지가 존재. :) 용량도 가벼운 90메가.&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 가장 매력적인 점은, apt-get 지원! (두둥!)&lt;/p&gt;&lt;p&gt;&amp;nbsp;-&amp;nbsp;http://www.pqr.com/ubuntu-jeos&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. Bind9 말고, 좀 더 가벼운 DNS 서버 물색, 그리고 찾은 DNSMasq.&lt;/p&gt;&lt;p&gt;&amp;nbsp;- apt-get 으로 설치 가능&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 다 필요없고, 설치 후, 그냥 /etc/hosts 에서 원하는거 간단히 설정하면 끝.&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 나중에 다른 네트워크에서 하드웨어 테스트가 필요한 경우, /etc/hosts 정도 설정만 마져주면 됨. (물론, 디바이스쪽 dns 도 수정해줘야..)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결론&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;잠시 테스트 해보니 잘된다! 이상하게 요즘 'OSX Server'를 깔기 싫었는데, 결론적으로 '두개'의 VM 을 돌리는 걸로 마무리! :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1번의 서버는 기본 설정이 256 메가 메모리로 잡혀서 돌아가는 중. 하드 용량은 1기가 max 로 잡힌 상태, 대략 절반 남은 듯. :) - 용량이 커진 이유는 사실, apt-get update, apt-get upgrade.. 때문일지도.. ㅎㅎ :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>삽질기/좌충우돌 서버관리</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/181</guid>
      <comments>https://mocona.tistory.com/181#entry181comment</comments>
      <pubDate>Mon, 25 May 2015 10:53:21 +0900</pubDate>
    </item>
    <item>
      <title>FTP server 자동 실행을 막아두기.</title>
      <link>https://mocona.tistory.com/180</link>
      <description>&lt;p&gt;얼마만의 포스트, 그것도 좌충우돌 서버관리 인지 모르겠습니다. :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Knowledge base 인 관계로, '반말'로 기록합니다. :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;업데이트의 편의성-.-을 위해서 ftp 서버를 설치 완료. - 물론, apt-get 으로.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;vsftpd 의 경우, /etc/vsftpd.conf 에서 관리되는데, 목표는 재부팅등의 경우 자동 실행에서 ftp 데몬을 제거하기.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이래저래 고민중, 선택한 방법은 config 파일 내부에서 listen=ON 항목을 OFF 함으로써 원천적으로 막기.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;반대로 필요한 경우, config 수정 후 다시 서비스 스타트 하기.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;필요할때만 쓸 수 있으니 만족스럽다. :)&lt;/p&gt;</description>
      <category>삽질기/좌충우돌 서버관리</category>
      <author>코나</author>
      <guid isPermaLink="true">https://mocona.tistory.com/180</guid>
      <comments>https://mocona.tistory.com/180#entry180comment</comments>
      <pubDate>Wed, 13 May 2015 21:04:12 +0900</pubDate>
    </item>
  </channel>
</rss>