<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Env on 42Class</title><link>https://42class.com/categories/env/</link><description>Recent content in Env on 42Class</description><generator>Hugo -- gohugo.io</generator><language>ko</language><lastBuildDate>Sat, 22 May 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://42class.com/categories/env/index.xml" rel="self" type="application/rss+xml"/><item><title>RDP(Mac to Windows)환경에서 Mac OS환경과 동일한 단축키 사용하기</title><link>https://42class.com/posts/rdpmac-to-windows%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-mac-os%ED%99%98%EA%B2%BD%EA%B3%BC-%EB%8F%99%EC%9D%BC%ED%95%9C-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/</link><pubDate>Sat, 22 May 2021 00:00:00 +0000</pubDate><guid>https://42class.com/posts/rdpmac-to-windows%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-mac-os%ED%99%98%EA%B2%BD%EA%B3%BC-%EB%8F%99%EC%9D%BC%ED%95%9C-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/</guid><description>&lt;h2 id="개발은-mac-os에서-하는데-운영-데이터-조회는-windows에서-해야-하네"&gt;개발은 Mac OS에서 하는데 운영 데이터 조회는 Windows에서 해야 하네&amp;hellip;
&lt;/h2&gt;&lt;p&gt;운영을 하다 보면 DB에 접근해서 데이터 확인을 해야 할 일이 빈번한데 DB에 접근 가능한 환경이 윈도우 기반인 경우가 있습니다.&lt;br&gt;
개발 작업은 주로 Mac에서 진행을 하고 있고 어쩔 수 없이 RDP를 이용해 원격접속을 이용합니다.&lt;br&gt;
저 같은 경우 SQL작성 시에 주로 사용하는 프로그램은 &lt;a class="link" href="https://dbeaver.io/" target="_blank" rel="noopener"
 &gt;DBeaver&lt;/a&gt;입니다.&lt;br&gt;
&lt;a class="link" href="https://dbeaver.io/" target="_blank" rel="noopener"
 &gt;DBeaver&lt;/a&gt;는 &lt;strong&gt;Mac OS&lt;/strong&gt;버전과 &lt;strong&gt;Windows&lt;/strong&gt;버전이 있고 자주 사용하는 단축키는 아래 표와 같이 미묘하게 다릅니다.&lt;br&gt;
그래서 두 가지 환경을 수시로 전환하면서 쿼리를 짜다보면 &lt;span style="color:orange"&gt;생산성이 떨어지고 짜증이 치밀어 오릅니다. &lt;/span&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Command&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Mac OS&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Windows&lt;/th&gt;
 &lt;th style="text-align: center"&gt;RDP(Mac to Windows)&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Home&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ←&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ←&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ←&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;End&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + →&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + →&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + →&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Page Up&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ↑&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ↑&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ↑&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Page Down&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ↓&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ↓&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ↓&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Copy&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + C&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + C&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + C&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Paste&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + V&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + V&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + V&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Cut&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + X&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + X&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + X&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Undo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + Z&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + Z&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + Z&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;한영전환&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Right ⌘&lt;/td&gt;
 &lt;td style="text-align: center"&gt;한/영&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Right ⌥&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;span style="color:yellow"&gt; &lt;strong&gt;Mac OS&lt;/strong&gt; 환경의 단축키와 &lt;strong&gt;RDP(Mac to Windows)&lt;/strong&gt; 환경의 단축키를 맞추고 싶다!! &lt;/span&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;RDP(Mac to Windows)&lt;/strong&gt; 에서 한참동안 작업하다가 단축키가 손에 익은 상태에서 &lt;strong&gt;Mac OS&lt;/strong&gt;로 돌아오면 버벅대고 &lt;strong&gt;Mac OS&lt;/strong&gt;에서 한 동안 로컬 개발하다가 &lt;strong&gt;RDP(Mac to Windows)&lt;/strong&gt; 에서 운영하면 또 버벅대고..
하여간 환경 전환 때마다 계속 버벅이게 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;span style="color:orange"&gt;도저히 이렇게는 못해먹겠다 싶어 방법을 찾아보았습니다.&lt;/span&gt;&lt;br&gt;
단축키를 한 쪽 환경에 맞춰야 겠다고 생각했고, 자주 사용하는 &lt;strong&gt;Mac OS&lt;/strong&gt;환경에 단축키를 맞추기로 했습니다.&lt;/p&gt;
&lt;h2 id="먼저-한영-전환부터"&gt;먼저 한/영 전환부터
&lt;/h2&gt;&lt;p&gt;저는 &lt;strong&gt;Mac OS&lt;/strong&gt;에서 한영전환을 우측 **Right ⌘**키를 사용하고 있습니다.&lt;br&gt;
지금은 Mac을 사용하고 있지만 예전에 오랫동안 Windows를 사용 했었습니다.&lt;br&gt;
스페이스 바로 우측 옆에 키가 한영전환으로 사용되는 거에 너무 익숙합니다.&lt;br&gt;
그래서 맥을 사용 하면서도 처음부터 그렇게 매핑해두고 사용하고 있습니다.&lt;br&gt;
딱히 Mac을 사용할 때 우측 **Right ⌘**키를 사용하는 경우가 거의 없기도 하구요.&lt;/p&gt;
&lt;p&gt;하지만 &lt;strong&gt;RDP(Mac to Windows)&lt;/strong&gt; 에서는 한영전환이 **Right ⌥**키로 매핑됩니다.&lt;br&gt;
바로 한 칸 차이 지만 실제 몰두 해서 타이핑 할 때 요 한칸 차이 땜에 엄청 버벅이고 있더군요.&lt;br&gt;
그래서 &lt;a class="link" href="https://karabiner-elements.pqrs.org/" target="_blank" rel="noopener"
 &gt;&lt;strong&gt;Karabiner&lt;/strong&gt;&lt;/a&gt;를 이용해 &lt;span style="color:orange"&gt;RDP전용 Profile을 하나 만들고 해당 Profile에선 **Right ⌘**키와 **Right ⌥**키를 서로 스위칭&lt;/span&gt; 했습니다.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Karabiner Profile 추가&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/profile-add.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;한영전환 Key Remapping&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/comman-option-switch.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;한영전환 변경 후 Key Mapping 상태&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Command&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Mac OS&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Windows&lt;/th&gt;
 &lt;th style="text-align: center"&gt;RDP(Mac to Windows)&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Karabiner RDP Profile&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Home&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ←&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ←&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ←&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;End&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + →&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + →&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + →&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Page Up&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ↑&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ↑&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ↑&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Page Down&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ↓&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ↓&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ↓&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Copy&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + C&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + C&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + C&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Paste&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + V&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + V&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + V&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Cut&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + X&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + X&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + X&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Undo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + Z&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + Z&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + Z&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;한영전환&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Right ⌘&lt;/td&gt;
 &lt;td style="text-align: center"&gt;한/영&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Right ⌥&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;Right ⌘&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="rdp-client-tool-옵션의-한계-그리고-fnmac키와-키를-스위칭"&gt;RDP Client tool 옵션의 한계 그리고 Fn(Mac)키와 ⌘키를 스위칭
&lt;/h2&gt;&lt;p&gt;Mac을 사용하면서 Copy,Paste 등은 항상 &lt;strong&gt;⌘+C,⌘+V&lt;/strong&gt;를 사용합니다.&lt;br&gt;
RDP Client에서도 이 부분을 잘 알고 있어서인지, Client tool에서 옵션으로 제공합니다.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;RDP Client 설정 (참고로 &lt;strong&gt;RDP(Mac to Windows)&lt;/strong&gt; 에서 **⌘**키는 &lt;strong&gt;Windows Key&lt;/strong&gt;로 인식합니다.)&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/rdp-client.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;
&lt;p&gt;하지만 &lt;span style="color:orange"&gt;아쉽게도 &lt;strong&gt;⌘ + 방향키&lt;/strong&gt; 조합으로 Home,End,Page Up,Page Down을 사용하는 부분까지는 지원되지 않습니다.&lt;/span&gt;&lt;br&gt;
애초에 &lt;span style="color:orange"&gt;목적은 &lt;strong&gt;RDP(Mac to Windows)&lt;/strong&gt; 에서도 &lt;strong&gt;Mac OS&lt;/strong&gt;와 완전히 동일한 단축키 구성을 맞추는 것&lt;/span&gt;입니다.&lt;br&gt;
그래서 &lt;strong&gt;Fn(Mac)&lt;/strong&gt; 키와 &lt;strong&gt;Left ⌘&lt;/strong&gt; 키를 스위칭 했습니다.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Fn(Mac) 과 Left ⌘ 스위칭&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/arrow-key.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;
&lt;h2 id="karabiner-complex-modification을-이용하여-copypaste-등-자주-사용하는-단축키만-remapping"&gt;karabiner Complex Modification을 이용하여 Copy,Paste 등 자주 사용하는 단축키만 Remapping
&lt;/h2&gt;&lt;p&gt;&lt;span style="color:orange"&gt; &lt;strong&gt;Fn(Mac)&lt;/strong&gt; 키와 &lt;strong&gt;Left ⌘&lt;/strong&gt; 키가 스위칭 됨에 따라 &lt;strong&gt;Fn(Mac)+C,Fn(Mac)+V&lt;/strong&gt;로 바뀌어 버린 Copy,Paste를 &lt;strong&gt;karabiner Complex Modification&lt;/strong&gt;기능을 이용해 &lt;strong&gt;⌘+C,⌘+V&lt;/strong&gt; 로 재설정 해주었습니다.&lt;/span&gt;&lt;br&gt;
스위칭을 하지 않고 &lt;strong&gt;⌘+방향키&lt;/strong&gt; 를 Home,End,Page Up,Page Down으로 매핑해줄수도 있습니다.&lt;br&gt;
하지만 &lt;strong&gt;⌘+방향키&lt;/strong&gt;조합은 이미 Mac OS에서 사용하는 단축키라서 스위칭 후 Fn키에 매핑하는 방식으로 진행했습니다.&lt;br&gt;
설정방법은 아래 링크와 캡처화면 및 코드 참고하시어 진행하시면 됩니다.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;karabiner에서 제공하는 문서입니다. &lt;a class="link" href="https://karabiner-elements.pqrs.org/docs/json/typical-complex-modifications-examples" target="_blank" rel="noopener"
 &gt;complex modifications example&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;

 &lt;blockquote&gt;
 &lt;p&gt;이미 저장소엔 여러 사람들이 올려 둔 karabiner Complex Modification Rule이 있습니다. &lt;a class="link" href="https://ke-complex-modifications.pqrs.org" target="_blank" rel="noopener"
 &gt;Rule Repostory&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/rules-repository.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Rule은 Json형태로 구성됩니다. &lt;a class="link" href="https://genesy.github.io/karabiner-complex-rules-generator" target="_blank" rel="noopener"
 &gt;Rule Generator&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/rule-generator.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;아래 코드는 제가 작성해서 적용한 cut, copy, paste, undo Rule의 code입니다.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;title&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;RDP cut, copy, paste, undo&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;rules&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Fn+x &amp;gt; Cmd+x&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;manipulators&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;mandatory&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;fn&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;basic&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Fn+c &amp;gt; Cmd+c&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;manipulators&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;c&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;mandatory&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;fn&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;c&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;basic&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Fn+v &amp;gt; Cmd+v&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;manipulators&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;v&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;mandatory&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;fn&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;v&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;basic&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Fn+z &amp;gt; Cmd+z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;manipulators&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;basic&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;mandatory&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;fn&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;z&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;z&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;이 코드는 아래 링크로 Generator에 바로 접근할 수도 있습니다.&lt;br&gt;
&lt;a class="link" href="https://genesy.github.io/karabiner-complex-rules-generator/#eyJ0aXRsZSI6IlJEUCBjdXQsIGNvcHksIHBhc3RlLCB1bmRvIiwicnVsZXMiOlt7ImRlc2NyaXB0aW9uIjoiRm4reCA&amp;#43;IENtZCt4IiwibWFuaXB1bGF0b3JzIjpbeyJmcm9tIjp7ImtleV9jb2RlIjoieCIsIm1vZGlmaWVycyI6eyJtYW5kYXRvcnkiOlsiZm4iXX19LCJ0byI6W3sia2V5X2NvZGUiOiJ4IiwibW9kaWZpZXJzIjpbImNvbW1hbmQiXX1dLCJ0eXBlIjoiYmFzaWMifV19LHsiZGVzY3JpcHRpb24iOiJGbitjID4gQ21kK2MiLCJtYW5pcHVsYXRvcnMiOlt7ImZyb20iOnsia2V5X2NvZGUiOiJjIiwibW9kaWZpZXJzIjp7Im1hbmRhdG9yeSI6WyJmbiJdfX0sInRvIjpbeyJrZXlfY29kZSI6ImMiLCJtb2RpZmllcnMiOlsiY29tbWFuZCJdfV0sInR5cGUiOiJiYXNpYyJ9XX0seyJkZXNjcmlwdGlvbiI6IkZuK3YgPiBDbWQrdiIsIm1hbmlwdWxhdG9ycyI6W3siZnJvbSI6eyJrZXlfY29kZSI6InYiLCJtb2RpZmllcnMiOnsibWFuZGF0b3J5IjpbImZuIl19fSwidG8iOlt7ImtleV9jb2RlIjoidiIsIm1vZGlmaWVycyI6WyJjb21tYW5kIl19XSwidHlwZSI6ImJhc2ljIn1dfSx7ImRlc2NyaXB0aW9uIjoiRm4reiA&amp;#43;IENtZCt6IiwibWFuaXB1bGF0b3JzIjpbeyJ0eXBlIjoiYmFzaWMiLCJmcm9tIjp7Im1vZGlmaWVycyI6eyJtYW5kYXRvcnkiOlsiZm4iXX0sImtleV9jb2RlIjoieiJ9LCJ0byI6W3sia2V5X2NvZGUiOiJ6IiwibW9kaWZpZXJzIjpbImNvbW1hbmQiXX1dfV19XX0=" target="_blank" rel="noopener"
 &gt;RDP cut, copy, paste, undo&lt;/a&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;생성한 룰은 Install하여 Karabiner에 적용합니다.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/rule-add.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;설정 후 &lt;strong&gt;Mac OS&lt;/strong&gt; 와 &lt;strong&gt;RDP Profile&lt;/strong&gt;모든 단축키 구성이 같아졌습니다.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: center"&gt;Command&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Mac OS&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Windows&lt;/th&gt;
 &lt;th style="text-align: center"&gt;RDP(Mac to Windows)&lt;/th&gt;
 &lt;th style="text-align: center"&gt;Karabiner RDP Profile&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Home&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ←&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ←&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ←&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + ←&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;End&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + →&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + →&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + →&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + →&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Page Up&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ↑&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ↑&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ↑&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + ↑&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Page Down&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + ↓&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Win) + ↓&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Fn(Mac) + ↓&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + ↓&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Copy&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + C&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + C&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + C&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + C&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Paste&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + V&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + V&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + V&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + V&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Cut&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + X&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + X&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + X&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + X&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;Undo&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + Z&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Ctrl + Z&lt;/td&gt;
 &lt;td style="text-align: center"&gt;⌘ + Z&lt;/td&gt;
 &lt;td style="text-align: center"&gt;&lt;span style="color:yellow"&gt;⌘ + Z&lt;/span&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: center"&gt;한영전환&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Right ⌘&lt;/td&gt;
 &lt;td style="text-align: center"&gt;한/영&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Right ⌥&lt;/td&gt;
 &lt;td style="text-align: center"&gt;Right ⌘&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;이제 모든 설정이 끝났습니다.&lt;br&gt;
앞으로는 &lt;span style="color:orange"&gt;원격접속시에는 Karabiner Profile을 &lt;strong&gt;RDP Profile&lt;/strong&gt;로 변경해서 사용하면 &lt;strong&gt;Mac OS&lt;/strong&gt;와 완전히 동일한 단축키 구성&lt;/span&gt;으로 사용할 수 있습니다.&lt;/p&gt;
&lt;h2 id="karabiner-profile-전환의-불편함"&gt;karabiner Profile 전환의 불편함
&lt;/h2&gt;&lt;p&gt;그런데 여기까지 진행하고 보니 Karabiner의 Profile 전환이 불편해졌습니다.&lt;br&gt;
항상 상단바의 아이콘을 클릭하여 Profile을 전환 해야 했습니다.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;항상 상단 바로 이동해서 Profile을 변경하는 건 너무 불편하다.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/profile-change.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;상단 바에 Profile명은 기본으로 노출 되지 않습니다.(옵션을 변경해야 합니다.)&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://42class.com/img/show-profile.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;
&lt;p&gt;Profile 전환도 Complex Modification을 이용하여 단축키 지정이 가능합니다.&lt;br&gt;
&lt;span style="color:orange"&gt;Karabiner cli명령어를 이용하여 프로필 전환 단축키&lt;/span&gt;를 만들 수 있었습니다.&lt;br&gt;
아래는 제가 Profile 전환에 사용한 Rule입니다.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Switch profile (RDP -&amp;gt; Default)&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;title&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Change Profile&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;rules&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Press left-shift+caps_lock to enable default profile&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;manipulators&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;basic&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;mandatory&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;left_shift&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;caps_lock&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;shell_command&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#39;/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_cli&amp;#39; --select-profile &amp;#39;Default&amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a class="link" href="https://genesy.github.io/karabiner-complex-rules-generator/#eyJ0aXRsZSI6IkNoYW5nZSBQcm9maWxlIiwicnVsZXMiOlt7ImRlc2NyaXB0aW9uIjoiUHJlc3MgbGVmdC1zaGlmdCtjYXBzX2xvY2sgdG8gZW5hYmxlIGRlZmF1bHQgcHJvZmlsZSIsIm1hbmlwdWxhdG9ycyI6W3sidHlwZSI6ImJhc2ljIiwiZnJvbSI6eyJtb2RpZmllcnMiOnsibWFuZGF0b3J5IjpbImxlZnRfc2hpZnQiXX0sImtleV9jb2RlIjoiY2Fwc19sb2NrIn0sInRvIjpbeyJzaGVsbF9jb21tYW5kIjoiJy9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvb3JnLnBxcnMvS2FyYWJpbmVyLUVsZW1lbnRzL2Jpbi9rYXJhYmluZXJfY2xpJyAtLXNlbGVjdC1wcm9maWxlICdEZWZhdWx0JyJ9XX1dfV19" target="_blank" rel="noopener"
 &gt;Switch profile (RDP -&amp;gt; Default)&lt;/a&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Switch profile (Default -&amp;gt; RDP)&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;title&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Change Profile&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;rules&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;Press left-shift+caps_lock to enable RDP profile&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;manipulators&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;basic&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;from&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;modifiers&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;mandatory&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;left_shift&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;key_code&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;caps_lock&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;to&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff79c6"&gt;&amp;#34;shell_command&amp;#34;&lt;/span&gt;: &lt;span style="color:#f1fa8c"&gt;&amp;#34;&amp;#39;/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_cli&amp;#39; --select-profile &amp;#39;RDP&amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a class="link" href="https://genesy.github.io/karabiner-complex-rules-generator/#eyJ0aXRsZSI6IkNoYW5nZSBQcm9maWxlIiwicnVsZXMiOlt7ImRlc2NyaXB0aW9uIjoiUHJlc3MgbGVmdC1zaGlmdCtjYXBzX2xvY2sgdG8gZW5hYmxlIFJEUCBwcm9maWxlIiwibWFuaXB1bGF0b3JzIjpbeyJ0eXBlIjoiYmFzaWMiLCJmcm9tIjp7Im1vZGlmaWVycyI6eyJtYW5kYXRvcnkiOlsibGVmdF9zaGlmdCJdfSwia2V5X2NvZGUiOiJjYXBzX2xvY2sifSwidG8iOlt7InNoZWxsX2NvbW1hbmQiOiInL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9vcmcucHFycy9LYXJhYmluZXItRWxlbWVudHMvYmluL2thcmFiaW5lcl9jbGknIC0tc2VsZWN0LXByb2ZpbGUgJ1JEUCcifV19XX1dfQ==" target="_blank" rel="noopener"
 &gt;Switch profile (Default -&amp;gt; RDP)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;여기까지 해서 **RDP(Mac to Windows)**환경에서 &lt;strong&gt;Mac OS&lt;/strong&gt;환경과 완전히 동일하게 단축키를 맞추는 작업을 마쳤습니다.&lt;br&gt;
저와 비슷한 상황을 겪고 계신 분이 있으시면 도움이 되었으면 좋겠습니다.&lt;/p&gt;</description></item><item><title>Mac에서 WSL로 자유롭게 접근하기(ssh와 Port Forwarding)</title><link>https://42class.com/posts/mac%EC%97%90%EC%84%9C-wsl%EB%A1%9C-%EC%9E%90%EC%9C%A0%EB%A1%AD%EA%B2%8C-%EC%A0%91%EA%B7%BC%ED%95%98%EA%B8%B0ssh%EC%99%80-port-forwarding/</link><pubDate>Mon, 03 Aug 2020 00:00:00 +0000</pubDate><guid>https://42class.com/posts/mac%EC%97%90%EC%84%9C-wsl%EB%A1%9C-%EC%9E%90%EC%9C%A0%EB%A1%AD%EA%B2%8C-%EC%A0%91%EA%B7%BC%ED%95%98%EA%B8%B0ssh%EC%99%80-port-forwarding/</guid><description>&lt;h2 id="wsl에서-ssh-서버-세팅하기"&gt;WSL에서 SSH 서버 세팅하기
&lt;/h2&gt;&lt;p&gt;wsl을 설치하면 기본적으로 ssh서버가 세팅되어 있습니다.&lt;br&gt;
하지만 왜 인지는 모르겠으나 wsl에 기본으로 세팅되어 있는 ssh서버는 정상적으로 작동 하지 않습니다.&lt;br&gt;
기본 세팅되어 있는 ssh서버는 제거하고 갈끔하게 새로 세팅하는 것이 좋을 것 같습니다.&lt;br&gt;
일단 제 WSL을 Ubuntu 18.04 배포판이라 apt를 사용하여 설치하겠습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;apt 패키지 매니저부터 update &amp;amp; upgrade하고 진행하겠습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get update &lt;span style="color:#ff79c6"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt-get upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;기본으로 세팅되어 있는 ssh 서버를 제거합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get purge openssh-server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;ssh 서버를 재설치 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get install openssh-server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="windows에서-wsl로-port-forwarding"&gt;Windows에서 WSL로 Port Forwarding
&lt;/h2&gt;&lt;p&gt;작성 중&lt;/p&gt;
&lt;h2 id="wsl-ssh서버---port-forwarding-script-실행-스케쥴러-등록"&gt;WSL SSH서버 / Port Forwarding script 실행 스케쥴러 등록
&lt;/h2&gt;&lt;p&gt;Windows10 PC도 여전히 개발작업에 사용 중이고 수시로 온/오프 하는 랩탑이라서 매번 포트포워딩 잡아주고 ssh서버 실행해주는게 번거로웠습니다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bash.exe -c &lt;span style="color:#f1fa8c"&gt;&amp;#34;sudo service ssh start&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;powershell.exe -ExecutionPolicy Bypass -File D:&lt;span style="color:#f1fa8c"&gt;\w&lt;/span&gt;sl2-network.ps1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;wsl2-network.ps1 : 파일안에 $ports 변수에 포워딩할 포트 지정&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt; = bash.exe -c &lt;span style="color:#f1fa8c"&gt;&amp;#34;ifconfig eth0 | grep &amp;#39;inet &amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$found&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-match&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt;( &lt;span style="color:#8be9fd;font-style:italic"&gt;$found&lt;/span&gt; ){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$matches&lt;/span&gt;[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;} &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;echo &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;The Script Exited, the ip address of WSL 2 cannot be found&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#[Ports]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#All the ports you want to forward separated by coma&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;80&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;443&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;3000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;5000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;22&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#[Static ip]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#You can change the addr to your ip config to listen to a specific address&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$addr&lt;/span&gt;=&lt;span style="color:#f1fa8c"&gt;&amp;#39;0.0.0.0&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports_a&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt; -join &lt;span style="color:#f1fa8c"&gt;&amp;#34;,&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#Remove Firewall Exception Rules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Remove-NetFireWallRule -DisplayName &amp;#39;WSL 2 Firewall Unlock&amp;#39; &amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#adding Exception Rules for inbound and outbound Rules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;New-NetFireWallRule -DisplayName &amp;#39;WSL 2 Firewall Unlock&amp;#39; -Direction Outbound -LocalPort &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports_a&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; -Action Allow -Protocol TCP&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;New-NetFireWallRule -DisplayName &amp;#39;WSL 2 Firewall Unlock&amp;#39; -Direction Inbound -LocalPort &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports_a&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; -Action Allow -Protocol TCP&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt;( &lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt; = &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;; &lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-lt&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt;.length; &lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt;++ ){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt;[&lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;netsh interface portproxy delete v4tov4 listenport=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; listenaddress=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$addr&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;netsh interface portproxy add v4tov4 listenport=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; listenaddress=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$addr&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; connectport=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; connectaddress=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a class="link" href="https://www.tuwlab.com/ece/29302" target="_blank" rel="noopener"
 &gt;SSH 서버 세팅하기&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;WSL환경에서 맥으로 작업환경 옮기면서 SSH접속이 되면 편할 거 같아서 세팅한건데 맥에서 wsl로 ssh 접근 필요하신 분은 사용하시면 될 듯 합니다.&lt;/p&gt;
&lt;p&gt;링크(&lt;a class="link" href="https://www.tuwlab.com/ece/29302" target="_blank" rel="noopener"
 &gt;https://www.tuwlab.com/ece/29302&lt;/a&gt;) 참조하셔서 wsl에 ssh 서버 설치하시고 첨부 한 zip파일 받으셔서 route.bat 파일 시작프로그램에 넣으시면 됩니다.&lt;/p&gt;
&lt;p&gt;route.bat : 파일안에 파워셀스크립트 파일 경로 자신의 경로대로 변경 필요&lt;/p&gt;</description></item><item><title>Docker 개발환경 성능 비교</title><link>https://42class.com/posts/docker-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%B1%EB%8A%A5-%EB%B9%84%EA%B5%90/</link><pubDate>Sat, 13 Apr 2019 00:00:00 +0000</pubDate><guid>https://42class.com/posts/docker-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%B1%EB%8A%A5-%EB%B9%84%EA%B5%90/</guid><description>&lt;p&gt;&lt;img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1ghf5bdzy4aj318g0rs752.jpg" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;
&lt;p&gt;도커 성능 테스트라고는 하지만 각 개발환경 호스트의 파일시스템에 따른 도커볼륨 I/O 속도 테스트 인 것 같다.&lt;/p&gt;
&lt;h1 id="wsl--docker-desktop-for-windows"&gt;WSL + Docker Desktop for Windows
&lt;/h1&gt;&lt;h2 id="eeee"&gt;eeee
&lt;/h2&gt;&lt;h3 id="aaaa"&gt;aaaa
&lt;/h3&gt;&lt;p&gt;이 환경에선 초반에 버그도 많았고, 사용하면서 많은 인내심이 필요했다.
(&lt;em&gt;작년쯤엔 wsl2테스트 해보려고 &lt;a class="link" href="https://github.com/microsoft/WSL/issues/4978" target="_blank" rel="noopener"
 &gt;윈도우 인사이더 프로그램으로 진행하다가 O/S&lt;/a&gt;도 한번 날려 먹고&amp;hellip;.&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;사용하다 보니 점차 안정화 되고, &lt;a class="link" href="https://code.visualstudio.com/docs/remote/containers" target="_blank" rel="noopener"
 &gt;Visual Studio Code에서 원격개발 Extension&lt;/a&gt;도 나오면서 속도가 좀 아쉽긴 했어도 그럭저럭 개발환경으로서 사용할만 했다.&lt;/p&gt;
&lt;h1 id="wsl2--docker-desktop-for-windows"&gt;WSL2 + Docker Desktop for Windows
&lt;/h1&gt;&lt;p&gt;Pages가 다른 블로그 플랫폼 보다 편한 것 같아서 마음에 든다.
다른 사람들도 같이 많이 사용했으면 좋겠다는 생각이 든다.&lt;/p&gt;
&lt;p&gt;YFM에서 정의한 제목을 이중 괄호 구문으로 본문에 추가할 수 있다.
이 글의 제목은 {{ page.title }}이고
마지막으로 수정된 시간은 {{ page.last_modified_at }}이다.&lt;/p&gt;
&lt;h1 id="mac-os--docker-desktop-for-mac"&gt;Mac OS + Docker Desktop for Mac
&lt;/h1&gt;&lt;h1 id="mac-os--docker-desktop-for-macedge"&gt;Mac OS + Docker Desktop for Mac(edge)
&lt;/h1&gt;&lt;p&gt;&lt;img src="https://i.imgur.com/MgxpQbQ.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/nF9Aalx.png" alt="" loading="lazy" class="gallery-image"&gt;
&lt;/p&gt;
&lt;h1 id="ubuntu-1804"&gt;Ubuntu 18.04
&lt;/h1&gt;</description></item></channel></rss>