Visual Studo Code로 SSH 접속시 비밀번호 입력이 반복적으로 나올때 해결방법

공대생의 팁 2020. 5. 16. 01:47


 인터넷을 통해 원격으로 소스코드를 수정하기 위해 Visual Studio Code에 Remote Development 확정설치를 하여 SSH 접속으로 서버 컴퓨터의 소스코드를 작성할 수 있습니다.

 혹시 Visual Studio Code에 SSH 확장 설치에 대해 자세히 알고 싶으신 분들께서는 아래의 포스팅을 통해 기본적인 환경을 구축해줍니다.


VS Code Remote 사용하기 - SSH 방식
https://noooop.tistory.com/entry/VS-Code-Remote-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-SSH-%EB%B0%A9%EC%8B%9D


 이렇게 VS Code에 SSH 방식의 원격 개발환경을 마련하는 과정에서 다음과 같은 문제점이 발생하였습니다.

분명 비밀번호를 입력하였음에도 다음의 화면과 같이 또다시 비밀번호를 요구하는 화면이 나타납니다. 물론 이 상황에서 다시 비밀번호를 입력해도 이러한 현상이 계속 반복되고 있었습니다.

 이 현상은 VS Code를 최신 버전으로 업그레이드 후 원격으로 SSH접속을 하는 과정에서 주로 발생하는 것을 확인할 수 있었습니다. 이 경우 서버에 있는 VS Code와 관련된 설정을 모두 지운 다음 다시 설치해야 접속이 원활해집니다.

 이를 해결하기 위해서는 서버측의 VS Code 설정 관련 자료가 저장되어 있는 .vscode-server 폴더를 삭제하여야 합니다. 다음과 같은 명령어로 서버에 접속하여 .vscode-server 폴더를 제거합니다.

$ cd ~
$ rm -rf .vscode-server

 위와 같이 서버측의 해당 폴더를 삭제한 후 VS Code를 실행한 후 다시 서버에 접속해보시면 10분 이내의 설치 시간이 지난 후 기존처럼 접속하자마자 바로 사용할 수 있게 됩니다.

300x250

VMware에 설치된 Ubuntu에서 한영키 사용방법(20.04)

공대생의 팁 2020. 4. 30. 23:23


 2020년 4월이 되면서 우분투 LTS(장기지원)버전인 20.04 이 등장하였습니다. 데스크탑 버전의 디자인은 더욱 세련되어졌고, 설치 ISO도 어느덧 2.5GB에 육박하였습니다. 예전에 CD-ROM을 기준으로 700MB가 넘지 않으려 했다가 끝내 CD에도 담을 수 없는 크기가 되었을 때 설치에 애를 먹었던 때가 있었지만 오늘날처럼 초고속 인터넷이 발전된 시대에 광학매체인 CD도 거의 사용되지 않는 시대가 되었지요.


 새로 나온 버전을 사용해보기 위해 가상머신을 사용하곤 하는데 VMware를 사용할 때 마다 한영키가 먹히지 않던 것이 상당히 불편했습니다. 물론 Shift+Space를 통해 변환이 가능하지만 Windows 환경에서 한영키를 적극적으로 사용해왔던 저에겐 여전히 한영키가 중요했습니다.

 PC에 직접 설치했을 때엔 잘만 동작하던 한영키가 유독 VMware에 설치된 Windows에서는 한영키가 여전히 동작하는데 왜 Ubuntu에서는 유독 한영키가 먹히지 않는 것인가 찾아보니 VMware에 설치된 Ubuntu에서 한영키에 대한 keycode가 설정이 제대로 되고 있지 않아 발생하는 현상으로 보입니다.

 VMware에서 실행중인 Ubuntu에서 한영키 및 한자키를 사용할 수 있는 방법에 대해 단계별로 설명드리도록 하겠습니다.

1. Ubuntu 설치시 한국어로 설정

 우분투 최신판인 20.04의 경우 초창기판에서 처음부터 영어로 설치할 때 한국어를 설치하는게 번거로운 점이 있었습니다. 처음부터 한국어를 사용하고자 하시는 분은 설치 첫 단계에서 한국어를 선택해주세요.


2. 키보드 레이아웃 선택시 'Korean-Korean(101/104 key compatible)' 선택


 키보드 레이아웃 선택 단계에서 'Korean-Korean(101/104 key compatible)을 선택해주세요. 이 단계에서 한글 키보드를 사용하실 수 있습니다.


 3. 우측 상단의 키보드 선택에서 '한국어(Hangul)' 선택

 한국어(Hangul)모드에서 Shift+Space로 한영변환이 가능합니다.


4. 한영키 keycode 변환 스크립트 작성

 다음과 같은 파일을 생성해줍니다. 제목은 여러분들이 원하시는 대로 작성하셔도 됩니다.

$ vi hangul.sh

1
2
3
#!/bin/bash
setkeycodes 72 122
setkeycodes 71 123
cs


5. 스크립트 실행

 위에서 작성한 스크립트를 실행하여 한영키가 정상적으로 동작하는지 확인합니다.

$ chmod +x hangul.sh

$ sudo ./hangul.sh

 이제 여러분들의 VMware에 설치된 Ubuntu에서 한영키를 사용하실 수 있습니다. 잘 작동되는지 확인해봅니다.

$ xev


6. Systemctl을 통해 Ubuntu 부팅시에도 변경한 설정이 적용될 수 있도록 설정

 위에서 설정된 환경이 우분투를 항상 킬 때마다 자동으로 적용될 수 있도록 System의 서비스에 적용될 수 있도록 하겠습니다. 다음과 같이 서비스를 새로 등록해줍니다.

$ cd /etc/systemd/system/

$ sudo vi hangul.service

1
2
3
4
5
6
7
8
[Unit]
Description=Change Hangul keycode
 
[Service]
ExecStart=/스크립트가 설정된 경로/hangul.sh
 
[Install]
WantedBy=multi-user.target
cs

 이제 위에서 설정한 시스템 서비스를 등록합니다.

$ sudo systemctl enable hangul

$ sudo systemctl start hangul

이제 등록한 서비스가 정상적으로 동작하는지 확인합니다.

$ sudo systemctl status hangul

 여기까지 진행하셨다면 이제부터 Ubuntu를 실행하셨을 때 바로 한영키를 사용하실 수 있습니다!

300x250

Winsorization(윈저화)

공대생의 팁 2020. 3. 1. 00:00


 데이터를 활용하는 과정에서 다음과 같은 문제를 겪는 경우가 있습니다.

  • 상위 극한값(95%) 백분위를 효율적인 방법으로 나타내고자 한다. 약 600개의 변수를 가진 데이터셋을 가지고 있으며, 95% 백분위를 가진 600개의 모든 변수의 극한값을 없애고자 한다.
  • 95%와 5%로 "Winsorize"하기 위해 몇 가지 변수가 있다. 95% 백분위보다 큰 값을 가진 모든 관측지가 95% 백분위값을 가져가고, 5% 백분위보다 작은 값을 가진 모든 관측치가 5% 백분위값을 갖기를 원한다.

 프로그래머가 수백개의 변수의 극한값을 수정하고자 하는 것은 상당히 어려운 일입니다. 이러한 문제들 중 어느것도 Winsorization의 일반적인 정의를 충족시키지 못합니다. 데이터의 Winsorization은 과연 어떤 점을 말하는 것일까요?

 지정된 수의 극한값을 더 작은 데이터값으로 대체하는 과정을 윈저화(Winsorization) 또는 데이터 윈저라이징(Winsorizing)이라 합니다.

 윈저화는 극한값에 민감한 표본 평균을 "강화"하는 방법입니다. 원저화된 평균을 얻기 위해 데이터를 정렬하고 (k+1)번째로 가장 작은 값을 k번째로 가장 작은값으로 바꿉니다. 마찬가지로 (k+1)번째로 가장 큰 값을 k번째로 가장 큰 값으로 대체합니다. 이렇게 새로운 데이터셋의 평균을 윈저화된 평균(Winsorized mean)이라고 합니다. 데이터가 대칭 모집단에서 나온 경우 윈저화된 평균은 모집단 평균에 대한 편견이 없는 추청치라 할 수 있습니다.

 위 그림에서 위쪽 그래프가 원본 데이터, 아랫쪽이 윈저화된 데이터를 나타냅니다. 원본 데이터의 경우 x값이 -4에서 4 사이의 범위에 분포하여 있음을 보실 수 있습니다. 이 때 x=4일 때의 값은 연속되어 있지 않고 따로 떨어져 있어 outlier처럼 보일 수도 있습니다. 이러한 원본 데이터를 윈저화(Winsorization)하여 최저값을 -2로, 최대값을 2로 설정하고 극한값을 벗어나는 값들은 모두 극한값에 추가함으로서 윈저화된 데이터셋을 만듭니다.

 다음으로 윈저화의 특징에 대해 살펴보도록 하겠습니다

  • 윈저화는 대칭입니다. 어떤 사람들은 큰 데이터값만 수정하고자 합니다. 그러나 윈저화는 k번째로 가장 작은 값과 k번째로 가장 큰 값으로 이 극한값을 벗어나는 값들을 해단 k번째 값으로 대체하는 대칭 프로세스입니다.

  • 윈저화는 횟수를 기반으로 합니다. 상위 5%, 95%등 정량형에 근거한 값을 수정하고자 하는 경우가 있습니다. 그러나 정량형을 사용한다고 해서 대칭적인 과정이 되는 것은 아닙니다. \(k_1\)을 하위 5%보다 작은 값의 개수로 하고 \(k_2\)를 상위 5%보다 큰 값의 개수라고 합시다. 데이터에 반복되는 값이 보함되어 있는 경우 \(k_1\)은 \(k_2\)와 같지 않을 수 있으며, 이는 잠재적으로 한 쪽이 다른 쪽보다 더 많은 값으로 바뀜을 의미합니다.

 

윈저화의 장점

  • 평균과 표준 편차와 같은 기존의 통계는 극단적인 값에 민감합니다. 윈저화의 목적은 극한값의 영향을 줄임으로서 기존의 통계로도 충분히 해석할 수 있게 해주는 것입니다.

  • 윈저화는 각 변수와 모든 변수를 확인하는 것이 불가능할 때 수천개의 변수들을 자동으로 처리하는데 사용되기도 합니다.

  • 윈저화된 통계을 기존 통계와 비교하면 오염된 데이터를 포함하거나 꼬리가 길어 모델에서 특별한 처리가 필요할 수 있는 변수를 확인할 수 있습니다.


참고자료:https://blogs.sas.com/content/iml/2017/02/08/winsorization-good-bad-and-ugly.html


300x250