환경

운영체제: Windows 10

메인보드: MAG B660M MORTAR DDR4

 

서론

필자는 가끔 인터넷 방송을 하기에 안쓰는 노트북을 송출컴으로 송출 환경을 만들고자 하였다.

 

이때 이전에 라즈베리파이 실험용으로 사둔 HDMI 캡쳐 보드를 다시 가져와서 사용해 보았다. (obs-ndi는 딜레이가 조금 있어서 사둔 캡쳐 보드를 어떻게든 사용하고 싶었다)

 

환경상 송출컴 OBS로의 입력 신호는 HDMI를 통해 전부 가는 구조였기에 HDMI와 이어폰 둘 다로 시스템 사운드를 내보내야 하는 상황이다.

사운드 관리용으로 오디오 인터페이스까지 사용하기에는 마이크 음질 퀄리티가 중요한 방송도 아니었기에 적당히 사운드카드의 스테레오 믹스 기능을 사용하기로 했다.

 

그래서 검색을 통해 찾은 방법으로 사운드카드 드라이버를 설치하고 스테레오 믹스를 활성화 한 후 설정을 마쳐 보았는데 (이 부분은 검색하면 많이 나오니 생략하겠다) 스테레오 믹스가 전혀 시스템 사운드를 가져오지 못하는 문제가 발생했다.

 

이에 검색으로도 나오질 않는 방법을 찾아내어 글로 남긴다.

 

다만, 사운드카드나 메인보드 제조사에 따라 인터페이스가 다르거나 방법이 적용되지 않을 수 있다.

 

방법

사운드카드 드라이버를 설치하면 사운드카드 전용 인터페이스를 가진 프로그램이 설치되는데, 필자의 경우 Realtek Audio Console 이라는 앱이었으며 MSI사의 메인보드이므로 인터페이스에 MSI 로고가 있었다.

 

Realtek Audio Console 앱 화면

 

여기에서 상단의 톱니바퀴를 누르고, "재생 장치" 에서 "프런트 헤드폰 장치가 연결되어 있으면 리어(rear) 출력 장치를 음소거합니다" 에 체크하면 된다.

 

 

음소거 체크가 해제되어 있는 경우는 데스크탑 후면 단자에 이어폰을 연결하면 스테레오 믹스가 동작한다.

 

상세한 로직은 알 수 없으나 아무래도 출력 장치가 스피커로 되어 있어야만 동작하는 듯 하며, 할당 우선순위는 전면 단자가 있으면 후면 단자를 우선으로 스피커 할당, 전면 단자에 Realtek HD Audio 2nd output 할당인듯 하다.

 

후면 단자가 비활성화되면 우선순위에 따라 전면 단자에 스피커가 할당되어 스테레오 믹스가 잘 동작하는 것으로 보인다.

 

 

즐방 하세요

환경: Windows 10

 

서론

최근 알고리즘을 풀어볼까 싶어 VSCode에 C/C++ Extension을 설치하였다.

 

평소 로그 검색의 용이함을 위해 IDE의 언어를 영어로 설정하기에 VSCode도 영어로 해둔 채 코드를 짜고 있는데

 

그림과 같이 Hover가 한글로 뜨는 현상이 발생했다.

 

에러 로그도 한글로 뜬다.

 

 

locale.json 파일을 만들어 "locale":"en"을 집어넣어 보기도 했는데 변화는 없었다.

 

검색해 보니 MS C/C++ Extension가 OS의 언어 설정을 가져와서 보여주는 현상이라고 한다.

좀더 정확히는 locale 데이터를 VSCode가 이미 로드된 후에 가져와서 적용되기 전에 로드를 끝내는 듯.

 

자세한 이유는 아래 링크를 참고해보자.

 

https://github.com/microsoft/vscode-cpptools/issues/4600#issuecomment-598859777

 

Inconsistent Language with VSCode · Issue #4600 · microsoft/vscode-cpptools

Type: LanguageService Describe the bug OS and Version: Windows 10 Family Original Default Language: zh-CN Display Language set to: en-US VS Code Version: 1.39.2 C/C++ Extension Version: 0.26.1 Othe...

github.com

 

 

설정에서는 도무지 언어를 변경할 방법을 찾을 수 없어 그냥 실행 시 --locale=en 플래그를 주고 사용하는 방법을 택했다.

 

바로가기 사용

 

 

바로가기를 이용하려면 위처럼 바로가기의 위치를 먼저 찾고

 

우클릭 > 속성에서 바로가기에 --locale=en 플래그를 추가하고 적용하면 된다.

 

 

실행(Win + R) 사용

 

VSCode의 환경변수 경로는 기본적으로 아래와 같다.

C:\Users\<유저 이름>\AppData\Local\Programs\Microsoft VS Code\bin

 

이곳에는 code.cmd라는 batch file이 있는데 Win + R로 code를 입력하면 이것이 실행된다.

 

이 파일은 아래와 같이 되어있는데

@echo off
setlocal
set VSCODE_DEV=
set ELECTRON_RUN_AS_NODE=1
"%~dp0..\Code.exe" "%~dp0..\resources\app\out\cli.js" --ms-enable-electron-run-as-node %*
endlocal

 

뒤에 --locale=en 플래그를 추가하여 실행하도록 만들면 된다.

@echo off
setlocal
set VSCODE_DEV=
set ELECTRON_RUN_AS_NODE=1
"%~dp0..\Code.exe" "%~dp0..\resources\app\out\cli.js" --ms-enable-electron-run-as-node --locale=en %*
endlocal

 

결과

 

 

위와 같이 영문 설명으로 출력되는 것을 확인할 수 있다.

가상 데스크톱 관련 단축키를 알지 못하는 분들은 요약보다 본문을 다 읽기를 권장한다.

<요약>

1. Ctrl + Alt + Del로 작업 관리자 창을 연다.
2. 윈도우 + Tab으로 작업 보기를 연다.
3. 작업 관리자 창을 새 데스크톱으로 드래그 앤 드롭한다.
4. 새로운 데스크톱을 클릭하여 이동한다.
5. 작업 관리자 창에서 게임 프로세스를 선택하고 작업 끝내기를 누른다.
6. Ctrl + 윈도우 + F4로 복제한 데스크톱을 닫는다.

 

아무래도 좋은 서론


필자는 평소 리그 오브 레전드, 통칭 롤이라는 게임을 즐겨 한다.

 

게임 실행 중 작업 관리자로 확인해본 프로세스


이 게임은 기본적으로 위의 이미지에서 확인할 수 있듯

"League of Legends (TM) Client(32비트)" - 실제 게임 프로세스에 해당
"League of Legends(32비트)" - 흔히 클라이언트라고 불리는 인게임 이전의 채팅, 큐, 상점 등을 담당하는 프로세스

로 나뉜다. (프로세스 네이밍과 흔히 불리는 명칭이 다른 것이 흥미롭다)

하지만 간혹가다 League of Legends (TM) Client(32비트), 즉 실제 게임 프로세스를 제대로 실행하지 못하고 프리징이 걸리는 경우가 있다.
컴퓨터를 조금이라도 다뤄본 사람은 이 경우 보통 작업 관리자를 이용한 프로세스 강제종료를 생각하게 된다.
하지만 이 프로세스를 전체 화면 모드로 사용하고 있는 경우, 프리징이 걸린 게임 화면이 언제나 가장 윗 레이어에서 입력을 받아 작업 관리자 창에 접근하지 못하는 현상이 발생한다. Alt + Tab으로 창을 이동해봐도 언제나 상위에 프리징 걸린 클라이언트가 자리하고 있다.

지금까지는 필자도 이 경우 프로세스를 종료할 방법이 없어 강제 재부팅을 했지만 재부팅 없이 프로세스를 처리할 방법이 떠올라 간단히 공유하고자 한다.

본론

먼저 Windows 10 에서만 가능한 방법임을 밝혀둔다.

Windows 10에는 "가상 데스크톱(Virtual Desktops)" 이라는 기능이 존재한다.
간단히 설명하자면 화면을 새로 만들어 마치 여러 대의 모니터로 사용하듯 여러 화면을 사용할 수 있는 기능이다.

즉, 가상 데스크톱을 만들어 작업 관리자 창을 그곳으로 이동하고 프로세스를 종료시키는 방법을 이용하면 되는 일인 것이다.

 

공식 홈페이지에서 가져온 가상 데스크톱 단축키


(가상 데스크톱 닫기나 전환 단축키를 알지 못한 채 추가하면 귀찮은 일이 발생하므로 가상 데스크톱 추가 전에 미리 단축키를 숙지하자.)

윈도우 + Ctrl + D를 누르면 가상 데스크톱이 추가된 것을 확인할 수 있다. 이때 윈도우 + Ctrl + 양옆 방향키를 통해 가상 데스크톱간 전환이 가능하다.

이 가상 데스크톱은 "작업 보기"(단축키 윈도우 + Tab) 기능을 통해 서로간에 창을 이동할 수 있다.

작업 보기를 열고, 작업 관리자 창을 새로 만든 데스크톱으로 드래그 앤 드롭한다.
(혹은 새로 만든 데스크톱에서 작업 관리자 창을 연다.)

 

새로 만든 가상 데스크톱으로 옮겨주자

 

그 후에는 롤 프로세스를 찾아 종료하면 된다.


독자분들의 빠른 재접을 응원합니다.




가상 데스크톱 참고 링크 (Azure에서 제공하는 "Windows Virtual Desktop"과는 다른 기능이다.)

- 마이크로소프트 공식 홈페이지 바로 가기 키 안내 페이지
- 마이크로소프트 Cloud Technical Expert의 가이드 글 (영문)

필자는 거추장스러워 표시 해제해 두었는데, 기본적으로 작업 표시줄에 존재하는 필름 모양의 아이콘으로도 "작업 보기" 기능에 접근이 가능한 모양이다.

 

작업 보기 아이콘

 

행렬의 성질에 관한 진위판별이나 증명은 발상이 상당히 까다롭다고 느낀다.

특히 수능공부할때 삽질했던 기억이 있어 PTSD가 저절로 오는 것이다..

 

 

여하튼 나는 A, B, I는 같은 차수를 가진 정사각행렬이고 I - AB가 invertible할때, I - BA가 invertible함을 보이는 과정을 알고 싶었다. 이때 문제에서 B(I - AB) = (I - BA)B를 이용하라는 지시가 있었다.

 

웹에서 찾아보면 다짜고짜 I - BA에 B(I - AB)^(-1)A + I를 곱하는 의문의 논리 비약을 보여주는데

이 풀이과정을 분석하여 문제의 지시에 맞는 적절한 발상을 찾아내어 공유해 보고자 한다.

 

발상의 핵심은, AB = I이면 A와 B는 invertible하다는 것과 (위 제시된 문제와는 다른 정사각행렬 A, B) ... *

한쪽 변에는 I, 다른쪽 변에는 I - BA꼴을 만들어 인수로 묶는 것이다.

 

B(I - AB) = (I - BA)B <- 양변의 우측에 (I - AB)^(-1)을 곱한다.

B = (I - BA)B(I - AB)^(-1) <- 양변의 우측에 A를 곱한다.

BA = (I - BA)B(I - AB)^(-1)A <- 양변에 I - BA를 더한다.

I = (I - BA)B(I - AB)^(-1)A + I - BA <- 우변을  I - BA로 묶는다.

I = (I - BA)(B(I - AB)^(-1)A + I)

 

이러면 우변에 상술한 B(I - AB)^(-1) + I가 나타나게 되고 *에 의해 I - BA는 invertible함이 증명된다.

아무래도 좋은 서론

요새 제로콜라가 맛있어졌다.

전부터 탄산류를 즐기는 편이었는데 뭔가 일반 콜라는 뒷맛이 깔끔하지 않다는 느낌을 지울 수 없었다.

그러던 중 주변에서 제로콜라를 마시는 걸 발견하고 시도해보았는데 생각보다 깔끔하고 잘 맞았다.

처음 출시될 쯤 호기심에 사먹었을 때는 뭔가 맛이 허전해서 별로였는데 입맛이 바뀌었나보다..

어쨌든 그리하여 인터넷 쇼핑으로 큰 단위 구매를 하고자 하였다.

 

이 글을 쓴 이유

인터넷 쇼핑으로 제로콜라를 시키고자 하였는데 아마도 특정 경로를 통해 쇼핑몰에 진입하면 할인이 적용되는 매커니즘이 존재하는 것 같다. 눈썰미가 좋은 분들은 알고있겠지만 모르는 분들을 위해 글로써 남겨본다.

 

 

네이버 쇼핑 "my단골"을 통한 진입을 예시로 들어보겠다.

네이버 쇼핑의 경우 스토어찜에 의한 추가 포인트 적립을 받으려면,

 

1. 원하는 물건이 있는 스토어를 찜하고,

 

2. 모바일 네이버의 "my페이" 메뉴로 진입한 후 스크롤을 쭉쭉 내리면 찜한 스토어의 상품을 볼 수 있다. (모바일 네이버는 m.naver.com 으로 진입할 수 있다)

 

3. 이 화면에서 해당 상품을 찾아 누르면 올바른 경로로(스토어찜 추가 포인트적립을 적용한 상태로) 구매할 수 있다. 이때 어떻게든 다른 페이지로 넘어가지 말고 모바일 네이버 "my페이"의 레이아웃 내에서 해결하는 것이 중요하다.

 

my페이 탭의 스토어찜 리스트 중 원하는 스토어를 찾은 모습

 

차이점 비교

먼저 일반적인 방법으로 쇼핑몰에 진입했을 경우 url에는 상품번호만 보인다.

 

url 부분 확대

 

일반적인 방법으로 구매하고자 할 경우

 

다음으로 스토어찜 할인 경로로 진입하는 경우이다.

 

최대 적립 포인트 부분에 my단골 추가적립이 추가되었고,

url에 네이버 파라미터로 보이는 NaPm이 존재하는 것을 확인할 수 있다.

 

 

url 부분 확대

 

스토어찜 포인트 추가적립 경로로 진입한 경우

 

 

이와 비슷한 매커니즘은 네이버 뿐 아니라 다른 쇼핑몰에도 존재하니 인터넷쇼핑시에 참고하면 좋다.

오랜만에 cli 환경 colorscheme을 바꿔보려고 이것저것 검색하며 시행착오를 겪은 결과 내가 쓰는 환경에서 일관되게 colorscheme을 변경하려면

 

1. putty 테마 색 변경

2. nvim 환경에서의 편집 창 테마 변경

3. nvim plugin airline 부분의 테마 변경

 

이렇게 세 부분의 테마를 모두 변경해야 한다는 것을 깨달았다.

이에 대략적인 방법(+ oh-my-zsh powerlevel10k의 올바른 설정)을 글로 남겨본다.

* putty

- Color theme

putty-color-themes github에서 원하는 테마의 레지스트리 파일과 _puttycolor.js 파일을 program files 하위의 Putty 폴더에 두고 레지스트리 파일을 _puttycolor.js파일에 드래그앤드롭으로 설정 등록

세션별 설정은 추가 작업 필요

 

Putty Configuration 

 

- Window/Appearance

 Font: D2Coding (혹은 다른 powerline font)

 -> oh-my-zsh powerlevel10k theme의 올바른 적용을 위함

 

- Wondow/Colours

 Indicate bolded text by changing: The font

 -> 설정하지 않으면 bolded text에 colorscheme이 제대로 적용되지 않는 경우가 있음. e.g. putty solarized dark

 

- Connection/Data

 Terminal-type string: xterm-256colors

 -> 안하면 터미널 시작시 warning 출력

 

* oh-my-zsh

powerlevel10k 설치

 

* nvim

vim-bootstrap

 

- ~/.config/nvim/init.vim

 

 "" Color

 "Plug 'tomasr/molokai'

 "Plug 'dracula/vim'

 Plug 'altercation/vim-colors-solarized'

 

 "silent! colorscheme molokai
 "silent! colorscheme dracula

 set background=dark
 silent! colorscheme solarized

 

 let g:airline_theme = 'hybrid'

 -> vim colorscheme과 어울리게 airline 테마를 바꿔준다.

     설정하지 않으면 vim 위아래 airline colorscheme과 vim colorscheme이 달라질 수 있다

 

등등으로 init.vim 설정 후 vim 실행

:PlugInstall 입력으로 color 플러그인 install

nvim은 .vimrc에서 설정하지 않고 init.vim에서 설정함을 기억하자

 

 

콘솔 인터페이스는 맨날 보는게 글씨라 colorscheme이나 shell theme을 설정해야 그나마 보기 좋다

 

nvim colorscheme과 airline colorscheme을 적용한 모습

 

putty color theme과 oh-my-zsh powerlevel10k를 적용한 모습

 

최근 컴퓨터를 바꿔 크롬을 다시 깔았다.

 

초기 설정을 만지작거리고 웹서핑을 하고 있는데 일부 사이트에서 아이디 입력란에 과거에 입력했던 아이디가 자동완성으로 나타나는 문제가 발생했다. (필자의 경우는 트위터 로그인 아이디가 자동완성으로 나타났다)

 

기록 삭제가 아닌 기능 해제를 원해서 이것저것 검색을 해봐도 크롬의 옛 설정 레이아웃 기준으로만 설명이 되어있었다.

 

명확하게 기능 구분이 되어있지 않아 명시되지 않은 하위 기능을 유추해야 하는 상황인데 금방 찾긴 했으나 짜증이 올라와서 팁글로 남겨본다.

 

 

1줄 요약

설정 -> 자동 완성 -> 주소 및 기타 -> 주소 저장 및 자동 입력 해제

 

 

고급 옵션을 건드릴 필요도 없이 이 방법으로 해결했다.

+ Recent posts