반응형

테스트 기종: 갤럭시 노트8 (SM-N950N)
Android OS: 오레오 (Oreo, 8.0.0)
테스트 스피커: MI Bluetooth Speaker


언젠가부터 스마트폰에서 블루투스 장비와 연결하면 볼륨이 내가 생각하는 것과 다르게 너무 극단적으로 출력되기 시작했다. 예를 들면, 스마트폰에서 볼륨을 제일 작은 단계로 딱 한 칸만 올렸는데, 실제로 출력되는 소리는 가장 작은 단계가 무색하게 아주 크게 출력되었다. 개인적으로는 샤오미의 블루투스 스피커 또는 현대자동차의 순정 네비와 블루투스로 연결할 때 이런 현상이 나타났다.

특히 샤오미 블루투스 스피커의 경우에는 전원버튼 외에는 독립된 볼륨 조절 버튼이 없다. MI Bluetooth Speaker를 연결한 뒤에 음악을 켜고 스마트폰에서 단지 볼륨을 딱 한 칸만 (제일 낮은 단계) 올렸을 뿐인데, 거의 최대 출력과 다름없는 크기로 소리가 갑자기 쩌렁쩌렁 울려 퍼져서 매우 당황했다.


확인해 보니 이건 블루투스 장비와의 볼륨 동기화 설정 때문에 나타나는 문제로 확인되었다.
비단 안드로이드뿐만 아니라 윈도우 운영체제에서도 설정에 따라 똑같은 현상이 일어날 수 있다.

안드로이드 운영체제 기반인 삼성 갤럭시 노트8에서는 아래와 같이 설정을 해제할 수 있다.


1. 설정 > 연결 > 블루투스에 들어가서, 오른쪽 상단의 메뉴 (점 세개)를 누른다.
메뉴 중에서 "미디어 음량 동기화"를 선택한다.


2. 미디어 음량 동기화 설정 화면에서 토글 버튼을 눌러서 "사용 안 함"으로 설정한다.


이렇게 미디어 음량 동기화를 해제한 뒤에 스마트폰의 볼륨 버튼을 사용하여 미디어 음량을 조절하면 작은 음량부터 설정할 수 있다.

반대로 스마트폰에서 미디어 음량을 충분히 키웠는데도 블루투스 장비에서 들리는 소리가 너무 작아서 문제가 될 때에는 위의 방법대로 설정에 들어가서 미디어 음량 동기화를 다시 켜면 된다.


참고로 삼성 갤럭시 스마트폰에서 볼륨 버튼 한 번으로 조절할 수 있는 볼륨의 크기를 더 미세하게 조정하고 싶으면 별도의 앱을 설치해야 한다. 구글 플레이 스토어 또는 갤럭시 앱스에서 "Sound Assistant" 앱을 설치하면 된다. 앱을 설치한 뒤에 고급 설정에서 음량 간격을 10보다 작게 할 수 있다.




반응형
블로그 이미지

Bryan_

,
반응형

블록체인 기술은 산업계(각 코인 페이지나 github)에서 슬쩍 살펴보면 너무 빨리 변화하는 것 같은데, 학계에서 보면 그 속도를 따라가지 못하는 것 같다. 보통은 학계에서 처음 새로운 기술을 만들어 내고, 학계 내에서 주목을 받다가 업계의 자금 지원이 더해지면서 업계에도 마침내 기술이 적용되어 이후로는 지속적을 발전하는 경우를 많이 보았다. 그런데 블록체인은, 물론 사토시(Satoshi Nakamoto)의 논문이(어느 저널이나 학회에도 게재되지 않았다) 출발점이 되기는 했지만, 이후로 수많은 코인이 신규 발행되고 새로운 합의 알고리즘과 새로운 블록체인이 셀 수 없을 정도로 많이 개발되었는데 정작 그 많은 것들이 논문으로는 거의 발표가 안되는 것 같다. 오히려 백서를 먼저 만들고, ICO를 통해 산업계와 일반 사용자들의 투자자금을 먼저 모으고, 그걸로 바로 개발과 상용화에 바로 가는 경우가 다수이다.


소프트웨어 정의 네트워킹(SDN)은 그 개념이 정립된 직후부터 학계에서 논문이 폭발적으로 쏟아져 나왔고, 그 중에 유망한 기술들이 유명한 통신장비 업체들에 의해 앞다투어 적용되면서 오픈 네트워킹에 대한 새로운 경쟁이 일어났다.

인공지능(머신러닝)도 산업계가 엄청난 자금을 쏟아부어서 연구를 지원하고 있어서 학계가 아닌 업계가 주도하는 것 같지만 실제로는 그 연구 결과가 대부분 유명한 인공지능/머신러닝 관련 학회에 끊임없이 발표가 되고 있다. 컴퓨터공학 분야에서 인공지능 관련 학회는 순식간에 top을 차지하고, 한동안은 엄청난 자금 투자로 인해 미친 듯한 속도로 뛰어난 논문들이 쏟아져 나올 듯 하다. 인공지능 기술 개발에 적극적인 거대 IT 기업들의 인공지능 자문 담당을 맡은 사람들 중에서 유명한 대학교수가 많은 것도 특징이다.


물론 비트코인을 비롯한 암호화폐 시장에 광풍이 불어 닥치니까 당연히 수많은 컴퓨터 분야 학회/저널에서 call for paper를 통해 블록체인을 키워드로 언급하며 논문을 모집하고 있지만, 정작 진짜 블록체인 기술의 발전을 주도하는 유명한 대표들이나 개발자들(예를 들면 비탈릭 부테린?)은 논문을 출판하는 데 별로 관심이 없어 보인다. 그들은 교수가 아니니까 당연히 그럴 수밖에. 개발 능력이 충분하고, 그렇다고 학술적인 기반이 없는 것도 아니라서 그들이 직접 움직이면 세상을 바로 변화시킬 수 있는 상황이니 논문에서부터 개념이 정립되어 출발할 필요가 없는 것일 수도 있다. 그리고 기술적인 부분에 대한 설명이나 토론은 깃허브 페이지나 미디엄(medium), 스팀잇(steemit) 같은 곳에서 활발하게 일어나고 있다. 심지어 학회도 기존 학회 대신 암호화폐 회사들끼리 자체 포럼을 개최한다.

이제는 대학교에서 교수들이 블록체인을 다음 연구 거리로 삼고 연구를 진행하기 위해 애쓰는 상황이다. 우리 연구실도 IoT와 관련된 데이터를 다루거나 통신, 가상화 등을 연구하다가, 이제 "IoT에 블록체인을 접목한다"는 엄청난(...) 목표를 가지고 조사를 하고 있다. 하지만 IoT에서 블록체인 기술을 적용하는 논문들은 아직까지는 너무 초보적이고, 기술적인 디테일을 찾아볼 수 없다. 그저 IoT에 블록체인을 적용하면 어떤 점이 좋아지고, 원래 안 되던 뭔가가 된다는 식의 뜬구름 잡는 소리만 할 뿐. 그렇게 블록체인이 연동되는 그림으로만 존재하는 아키텍처도 논문에 들어가 있지만, 정작 실험과 평가 결과는 그 아키텍처의 성능을 전혀 알려주지 않는다.

블록체인에서 블록을 생성하는 방법은 작업 증명(proof of work; PoW)에 이어서 지분 증명(proof of stake)이 나온 지도 벌써 한참 되었다. 이미 그 두 가지 외에 새로운 증명 방식이 또 여러 가지로 개발되고 있다. 그런데 IoT에 블록체인을 적용하려면, 일반 피씨, 아니 스마트폰보다도 성능이 훨씬 떨어지는 IoT 기기들을 대상으로 증명과 해싱, 채굴 등을 어떻게 하겠다는 것인지 2018년 7월을 기준으로 그 어떤 논문도 설명하지 않고 있다. 기본적으로 PoW를 가정하고 가는 것 같은데, 해싱 파워를 무슨 수로 확보하려는 것일까?
결국 어떤 논문에서는 해싱 파워 자체를 낮춰서 타협을 보려는 것 같고 (그렇게 낮추기 시작하면 그냥 불편한 블록체인을 쓸 필요 없이 현행 보안 기술을 쓰는 게 낫다), 다른 논문에서는 여러 개의 IoT 기기들을 묶어서 관리하는 피씨 같은 강력한(?) 성능의 장비가 블록 생성과 합의 등의 작업을 수행하고 IoT 기기는 그 아래에 붙어서 시키는 일만 하는 존재로 정의하는 경우도 있다. 결국 IoT에 블록체인을 직접 적용하는 것이 아니다.

하지만 매일같이 신규 발행되는(ICO) 코인들 중에서는 블록체인의 처리 속도를 획기적으로 높이면서 PoW 만큼의 보안 수준을 유지하는 다양한 방법들이 쏟아져 나오고 있고, 비트코인이나 이더리움도 마냥 놀고 있는 게 아니라 단점으로 지적받는 트랜잭션 처리 성능을 높이고 PoW의 비효율성(고성능 장비 강요로 인한 에너지 낭비)을 근본적으로 없애기 위한 다양한 시도를 계속 하고 있다.


암호화폐 시장의 특성이 중/소규모 개발자들에 의한 신규 화폐 발행과 이를 통한 일반 투자자들(기업이 아닌)의 관심으로 굴러가는 형태라서 연구소에서 먼저 개발된 미래지향적 기술을 실현하기 위해 거대 IT 기업이 자금을 투입하는 것과는 차이가 있다. 결국 기술의 정점을 확인하려면 현재 주목받고 인정받는 블록체인 기술이나 관련 암호화폐 플랫폼의 기술 발전 상황(github?)을 따라가야 하는 상황이다. 어느 쪽이 반드시 옳다고 할 수는 없다. 비록 학계에 있는 입장이라서 학계가 잘 따라가지 못하는 모양이 아쉬울 뿐...





반응형
블로그 이미지

Bryan_

,
반응형

*모델: 갤럭시 노트8 (Samsung Galaxy Note 8)

*통신사: LGU+

*안드로이드 버전: 8.0.0 (오레오)

*Samsung Experience 버전: 9.0


갤럭시 노트8을 사용하면서 대부분의 기능과 성능에 전혀 문제가 없는데, 언제부턴가 유일하게 어플 서랍(앱 서랍)에서 홈 화면으로 나갈 때만 프레임이 뚝 끊기면서 렉이 걸린 채 화면이 전환되었다. 그러니까, 삼성 익스피리언스(Samsung Experience) 홈 화면에서 위/아래로 스와이프해서 앱 서랍 화면에 들어왔다가, 여기서 다시 위/아래로 스와이프해서 홈 화면으로 돌아가면 뚝뚝 끊긴다.


처음에는 백그라운드 실행 중인 앱들 중에서 덩치가 좀 크다고 생각되는 앱들을 삭제해 보았고, 위젯을 하나씩 없애 보기도 했고, 재부팅도 여러 번 해 보았지만 전혀 문제가 개선되지 않았다. 스마트폰을 사용하면서 다른 부분에서 느려지는 경우가 없었기에 일상 사용에는 지장이 없었지만, 진짜 유일하게 앱 서랍과 홈 화면 사이에 전환할 때에만 애니메이션 효과가 끊어지는 것처럼 나타나서 상당히 거슬렸다.


의심되는 원인을 한 가지 찾았는데, 갤럭시 노트8의 테마를 전체적으로 바꿨다가 (잠금화면, 홈화면, AOD, 아이콘 한꺼번에 모두) 다시 원래대로 돌아오고 나서부터 이런 현상이 발생하는 듯 했다.


문제는 의외로 간단하게 해결되었는데, 그 대신 작은 대가를 치러야 했다.
Samsung Experience 앱의 데이터를 날려서 초기화시키면 되는데,
이것은 결국 런처를 초기화하는 것이므로, 홈 화면이 초기화되는 것과 같다.
즉, 내가 설정해 둔 아이콘 배치와
위젯이 모두 사라진다.


<해결 방법>

*주의사항:
아래 작업을 수행하면 개인이 설정해 둔 홈 화면이 삭제되고 공장초기화 직후의 화면으로 초기화된다.
홈 화면 구성을
기억해야 하는 경우, 스크린샷으로 미리 백업해 둘 필요가 있다.
홈 화면 관련 설정이나 구성을 삼성 클라우드에 백업할 수도 있겠지만, Samsung Experience와 관련된 버벅임이 확실하다면 클라우드에 백업해 둔 설정을 가져오면서 버벅임 증상까지 복구되는(...) 일이 생길 수도 있으므로 주의를 요한다.


1. 설정 > 애플리케이션 에 들어간다.

2. 모든 애플리케이션이 표시되도록 하고, "Samsung Experience 홈" 앱을 선택한다.

3. 저장공간을 누르고 표시되는 화면에서, "데이터 삭제""캐시 삭제"를 각각 눌러 수행한다.



이렇게 하고 나면 홈 화면이 노트8을 공장초기화 했을 때와 같은 모양으로 바뀌어 있을 것이다.
평소에 쓰던 앱들은 하나도 삭제되는 일이 없으므로, 홈 화면만 새로 구성해 주면 된다. 단지 귀찮을 뿐... ㅜㅜ
이 상태에서 앱 서랍에 진입했다가 홈 화면으로 나와 보면 렉이 말끔히 사라져 있음을 확인할 수 있다.




반응형
블로그 이미지

Bryan_

,
반응형

이더리움의 창시자 비탈릭 부테린이 블록체인 트릴레마(trilemma)를 언급한 것으로 알고 있다. 그 세 가지 꼭지점은 

  1. 탈중앙화(decentralization)
  2. 보안성(security)
  3. 확장성(scalability)

이다.

현재 시중에 나와 있는 암호화폐들이 사용하는 블록체인은 대부분 위의 세 꼭지점 중에서 하나 또는 최대 두 개까지 해결할 수 있고, 세 가지를 동시에 만족시키는 것은 현재로써는 물리적으로 불가능하다고 봐야 한다.


가령 비트코인과 이더리움은 분산화와 보안성에 먼저 초점을 맞추고 개발을 시작했는데, 사용자 수가 아주 많은 지금에 와서는 트랜잭션 처리 속도가 매우 느려서 문제가 되고 있다. 이걸 최대한 빠르게 하려는 보완책으로 나오는 라이트닝 네트워크 같은 방법들은 사실은 속도를 얻기 위해서 일시적으로 보안을 희생시키는 것으로 봐야 한다.


최근 몇 년간 블록체인 광풍이 대학원 연구실들을 덮치고 있고, 최근에는 보안을 전문으로 하는 연구실 말고도 블록체인에 관심을 갖기 시작하는 상황이 되었다.

기존에 데이터베이스를 가지고 잘 쓰고 있던 시스템에 블록체인을 집어넣어서 어떻게 해 보려는 시도가 많이 되고 있는데, 사실 마냥 블록체인을 집어넣기만 하면 구현은 할 수 있을지언정 그게 진짜 무슨 의미를 갖는지는 고민을 해 봐야 한다.

기존에 하나의 서버에 저장하고 있던 정보를 블록체인에 기록하겠다는 목표 하나만 가지고 달려들면, 이걸 또 미리 승인된 장비들을 가정하고서 그들끼리만 합의할 수 있도록 만들게 된다면 (프라이빗 블록체인), 과연 그게 지난 오랜 세월 동안 연구해 온 "분산 데이터베이스"에 비해서 무엇이 더 좋다고 말할 수 있을까? 근본적인 측면에서 고민을 해 보고, 트릴레마 중에서 달성 불가능한 한 꼭지를 포기하기로 결정했다면 논문을 쓸 때 그 포기한 영역으로 어떻게 해 보려는 시도를 하는 것이 아닌지 조심스럽게 생각해야 한다.

반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu Server 16.04


연구실 서버에 있는 40개의 CPU 코어를 쪼개서 쓰기 위해 우분투 서버 위에 qemu-kvm을 설치하고, 가상 머신(VM)들을 관리하기 위해서 virt-manager라는 GUI 프로그램도 사용하고 있는데, VM 개수가 10개가 넘어가자 작은 문제가 하나 생겼다.


연구실 구성원 모두가 터미널(shell) 환경에서만 작업하는 게 아니라서 호스트 서버의 GUI 화면에도 원격으로 접속할 수 있도록 XRDP와 xfce4-session을 설치해 두었는데, RDP로 접속하면 호스트 서버의 GUI 화면 (xfce4-session에 연결되는 VNC 서버)에 대한 기본 포트는 5910으로 되어 있다.


참고로 XRDP에서 디폴트 설정을 그대로 쓰면 로그인할 때마다 포트번호 -1 값으로 새로운 세션을 새로 실행하게 되고, 그러면 5910번 포트에서 숫자가 1씩 커지면서 세션이 하나씩 새로 생성이 된다.

이전에 이미 만들어 둔 세션에 다시 접속하려면 포트번호에 5910을 입력하면 되는데 (참고: XRDP 기존 세션 재활용하기), 어느 날 포트번호 5910을 입력했더니, 호스트 서버의 화면 대신 내가 예전에 생성했던 VM의 내부 화면이 나타났다.


왜 그런가 해서 보니, qemu-kvm에서 실행 중인 VM의 개수가 10개를 넘어가 있어서 그런 거였다.

(16개 중에 12개의 VM이 실행중... 각각 localhost로 VNC 서버를 돌린다. 즉, 5900~5911까지의 포트가 모두 VM의 화면으로 쓰이는 상태다.)


QEMU에서 VM을 하나 생성하면 해당 VM의 화면을 보여주기 위해서 VM마다 자체적으로 VNC 서버를 실행하고, 그 VNC 화면마다 포트번호가 하나씩 할당이 되는데, 그게 5900번부터 시작한다. 그런데 qemu가 실행하는 VM의 개수가 10개를 넘으면, 10번째로 실행되는 VM은 가상 머신의 화면 출력을 위해 포트번호 5910을 할당받게 된다.


다만, 여기에 호스트 서버의 xfce4 세션이 먼저 실행이 되고 포트번호 5910을 미리 할당받고 있는 상태였으면 VM의 화면이 5910 포트를 할당받는 일은 없었을 것이다. 그러나 호스트 서버를 재부팅시키고 나서, 자동으로 시작하도록 설정되어 있는 모든 VM들이 자동으로 부팅이 먼저 되고, 호스트 서버의 xfce4 세션은 사용자가 명시적으로 실행시켜 주지 않으 5910번 포트가 비어 있게 되므로 10번째로 자동 시작되는 VM이 자연스럽게 5910을 할당받게 된다. 그리고 부팅 직후에 자동으로 같이 부팅되는 VM의 개수가 10개를 넘어간다면, xfce4 세션을 qemu-kvm 서비스보다도 먼저 부팅 직후에 자동으로 실행돼서 세션 하나를 만들어주도록 설정하지 않는 이상 VM 중의 하나가 5910 포트를 점유하게 된다.


결국 원격 데스크톱 연결 앱으로 서버에 접속할 때 맨 처음 나타나는 XRDP 세션 로그인 화면(맨 위의 화면)에서 5911, 5912, ... 이렇게 하나씩 포트번호를 바꿔 가며 접속을 시도해 보니, 호스트 서버를 위한 GUI 세션은 5915번에 할당되어 있었다. (그 당시에 VM 15개가 실행중이었음) 이 상황을 연구실 학생들과 공유를 해야 하는데... 설명하기가 쉽지 않다. ㅜㅜ


여러가지 측면에서 리눅스 서버를 공동으로 관리할 때의 불편함이 있는 것 같다. 그냥 후배들이 똑같은 문제에 봉착하면 그 때 그냥 나와 같은 과정을 거쳐서 XRDP, xfce4-session, qemu-kvm 서비스 및 데몬들이 5900부터 시작하는 포트 번호를 할당받고 반대로 5910 포트를 통해 접근을 시도하면서 서로 어떤 영향을 끼치는지 직접 겪어 보는 수밖에 없는 듯 하다.

회사라면 이런 일을 System administrator가 대신 해 주지만, 연구실은 그렇지 않으니까... 매번 동일한 문제가 생기면 똑같이 겪어 보고 배우는 것이 각자의 이해를 넓히는 측면에서도 바람직한 것이 아닐까 하는 생각도 든다.



반응형
블로그 이미지

Bryan_

,