2018년 10월 3일 수요일

태블릿으로 원격 프로그래밍이 하고 싶어요.

미리 이야기 드리지만, 저는 전문적인 프로그래머는 커녕 백날 예제 코드나 타이핑하고 있는 만년 초보 코더입니다.(이리 된데에는 한개 언어 붙잡고서 한개 영역을 꾸준히 파고 들어야 하는데 그러지 않은게 최대 문제였죠)

근데 프로그래머라고 하면 모두가 가지고 있는 희망이 있는데 그건 '누구나 집에 굴러 다니는 태블릿 하나 정도 있잖아요'로 코딩을 하는 문제에 대해서 이야기 해보려고 합니다.

1) 우리는 왜 이 보잘것(?) 없는 걸로 그러 어려운걸(??) 하고 싶은가?
태블릿으로 한번이라도 문서 작업을(심지어 이 블로그 글을 적고 있는 컴퓨터 조차 태블릿이지만) 해본 사람이라면 알겠지만 문서를 생산하는데 있어서 태블릿은 그렇게 좋은 장비는 아닙니다. 화면부터 우선 쬐끄만해서 글을 작성하는게 그렇게 좋지 않은건 물론이고 제일 큰 문제는 뛰어난 성능의 워드프로세서가 없다는 점입니다.
'명장은 붓을 가리지 않는다'라지만 '안'명장한테는 안그래도 악조건에서 붓까지 나쁘면 이것은 통합적 재난 상황이라는 겁니다. 물론 그 이후 구글 문서와 MS  오피스같이 좋은 툴들이 많이 나온건 사실(더군다나 이 툴들의 대부분이 무료)이지만 그러나 여전히 이들툴을 임베트에서 그림 한장을 어울림을 넣는게 얼마나 빡센 일인지 해보신 분들이라면 이해 하실겁니다.

그러나 (이런 저런 문제에도 불구하고) 꼭 싶습니다.

노트북이 처음 태어 났을 때야 가지고 다닐수 있는 컴퓨터 자체가 혁명이었을 지도 모르지만 지금에 와서는 2kg짜리 초경량 노트북 조차 '광고만' 초경량으로 느껴지는게 사실입니다. 그런 상황에서 성능은 미약하지만 장시간 작동 가능(하다고 광고 하는)하고 가벼운(태블릿 기준으로는 1kg도 헤비영역임) 임베드 컴퓨터에 블루투스 키보드라는 것은 마치 신세계처럼 느껴질 정도의 변화로 느껴질 정도입니다.(더군다나 블루투스 키보드는 접거나 말아서 가지고 다닐 수 있는 녀석 조차 있다)

한번 구매하면 키보드의 교체가 불가능한 노트북과 달리 지릴면 새 키보드로 바꿀수 있고 크기를 감당하면 PC에서 사용하는 풀 사이즈 키보드도 넘쳐나고(물론 모빌리티는 희생해야 하지만) 거기에 태블릿의 경우 3G나 LTE를 통해 직접 인터넷이 가능한 제품도 넘쳐나니 노트북과는 비교할수 없는 이동성을 가지고 있으니 가능하다면 이걸로 프로그래밍 하고 싶다는 생각을 하는게 당연한 순서일 것이다.

2)가능한 환경 1 : 터미널 코딩
만약 당신이 터미널 환경에서 'vi'나 'emacs'  혹은 'nano'등의 CUI환경(과연 이런 열악한 환경에서 처음부터 끝까지 코드를 작성하는 하드코어한 프로그래머가 있을지는 일단 제껴두고)에 익숙한 프로그래머라면 당신은 이미 훌륭한 원격 프로그래밍 환경을 가지고 있을 것이다.(당연한가?)
유닉스 계열의 OS는 당연하게 터미널 환경을 제공하고 ssh나 텔넷(이제는 보안 문제로 쓰는 사람 없어야 정상이겠지만)으로 서버에 원격으로 접속해서 작업을 하는게 당연한 사람들이다.
이 글을 적는 나 조차 홈서버에 직접 키보드와 마우스를 연결하는건 리눅스를 처음 설치하는 때 뿐이고 그 이후에는 당연히 세팅은 ssh로 접속해 변경하는걸로 한지 오래이다.
순정 세팅이라면 어마무시하게 빡세고 GUI 같이 타임머신이라도 타고 나타난 인터페이스의 도움 따위는 절대 기대할수 없는 환경이지만 그러나 가장 빠른 퍼포먼스로 코딩을 입력해 보고 자동화 툴의 구축만 끝나면(make 같은) 가장 빠르게 코드의 컴파일과 실행 자동화 테스트까지 해볼수 있는 환경이다.
ios, 안드로이드 계열을 가리지 않고 터미널 프로그램(유료 무료 가리지 않고) 하나 정도는 있고 당신이 할 일은 이 터미널 프로그램 중 하나를 고르기만 하면 된다.

3)가능한 환경 2 : (코딩 윈도우) + (컴파일과 실행만 서버)
조금 보안이나 퍼포먼스 등에 문제가 있는 환경이기는 하지만, 세상에는 x86윈도우 태블릿이라는 변태스러운 물건도 있다. 대부분 아톰 프로세서라는 어딘가 사도스러운 물건으로(혹은 시지푸스의 벌 같은)작동하는 이 물건은 당연히 윈도우 프로그램이 돌아가고 당연히 윈도우에서 사용하는 거의 모든 IDE툴을 사용 가능하다는 뜻이다.(비록 초기 구동이 느리긴 해도 돌아 갈때는 잘 돌아 간다)
즉, 코딩을 윈도우에서 한 뒤, 이 파일들을 서버에 올리고(파일질라 같은 툴에서 시작해 sftp, ftp, samba서버 등등 방법은 넘처난다) 터미널로 자동화 스크립트를 돌려주고서 결과가 터미널에 나타나길 기다리는 방식이다.
윈도우 GUI환경을 거의 그대로 사용 가능하다는 장점이 있고 호환성이 보장되는 자바나 파이썬 같은 언어라면 가벼운 테스트등을 해보고서 서버에 보내는게 가능하다는 장점이 있지만 동시에 라이브러리가 없는 환경이라면 그냥 익숙한 IDE를 사용한다는 것 외에는 장점이 없는 환경이다.(결정적으로 이런 식으로 작업하다 두 저장소의 코드의 동기화가 적절히 이루어 지지 않을 경우는...)

4)브라우져 코딩
본래는 자바스크립트 같은 언어에서나 사용 가능했을 법한 방법이지만 최근  jupyter notebook을 사용한 코딩이 일상화 되면서 사용 가능한 방법인데 쥬피터 노트북 서버를 구축할 경우 로컬이 아닌 원격에서 당신의 브라우져를 통해서 (코딩)+(문서작성)+(결과물 첨부) 가 가능한 혁신적인 코딩 방법이다. 문법을 익혀야 한다는 불편함이 있지만 수식의 입력 또한 가능하며 최근의 많은 학술적 자료(특히 빅데이터 관련)들이 이런식으로 공개되고 있다는 점을 생각하면 확실히 해볼만한 방법일 것이다.

5)임베드용 IDE툴 사용
사람들이 자주 깜빡하는 내용인데, 당신들이 들고 다니는 거의 모든 기기들은 최소 32비트 CPU와 최소 2기가 메모리를 내장한 유닉스 계열 '컴퓨터'라는 점이다. 단지 보통의 유저들이 코딩 따위를 할리 없으니(더군다나 초기의 그 성냥각만한 모니터로) 그런 쓸때 없는 프로그램 따위는 제외하고 최적화 해서 파는 것일 뿐, 컴파일러나 인터프리터만 제작 설치하면 이것은 코딩이 가능한 컴퓨터로 사용 가능하다는 뜻이다.
루팅을 하지 않더라도 단순히 앱을 하나 설치하기만 하면 실제 코딩에 실행까지 가능한 앱들이 마켓에 등록 되어 있으니 가끔 '비행기 안에서 코딩을 하고 싶다는'어딘가 워크 홀릭스러운 사람이라면 하나 정도 설치해 해볼만함 직도 할 것이다.

결론 : 이상이 내가 경험해 본 원격 혹은 임베드 코딩 환경이다. 아직까지는 지옥에 가까운 환경이지만 그래도 선구자라는건 원래 그런 것이다라는 이야기 밖에는 할 이야기가 없으며, 진짜 하고 싶은 이야기는 당신이 그냥 들고 다니는 컴퓨터는 1950년대 나사의 과학자와 기술자들이 인간을 달에 보내기 위해서(러시아는 그것 조차 없이!) 애지중지 해가며 사용한 컴퓨터는 물론이고 내가 코딩을 배우기 위해서 만져본 xt컴퓨터 보다 훨씬 더 뛰어난 성능에 안정적이기 까지한 컴퓨터 들이다. 그런걸 단지 게임만을 위해 쓴다는 것은 조금은 아깝지 않을까?(물론 게임은 재미 있지만)

2018년 9월 22일 토요일

[리눅스/zfs] zfs 하드디스크 추가

zfs파티션을 쓰다가 용량이다하게되면 아무래도 새 하드디스크를 추가 하고 싶어 지는데 이때 사용 가능한 방법에 대해 기록을 남겨둔다.(CUI에서 기억 짜내려면 의외로 난감)

0) 사전에 추가해 주려는 하드디스크는 zfs형태로 포멧되어 있어야함(그냥 디스크 유틸로 빈공간으로 만들면 됨)

1) sudo fdisk -l 로 새로 추가한 하드디스크가 어느 디바이스 (/dev/sdxx 형태다)로 물렸는지 확인

2) sudo zpool status 명령어로 하드디스크를 추가해 주려는 pool의 명칭 확인

3) sudo zpool add (pool 명) (디바이스 명)

으로 명령 내려주면 끝.(정말 간단하다)

2018년 7월 26일 목요일

[리눅스/zfs] 새 하드디스크 설치시 zfs 파티션 재 마운트 하기(수정)

오늘 다시 시험해 보니 잘못된 부분이 있는 듯 해서 다시 수정합니다.(7/28)

아직 시험 중인 내용이라 확실한지는 뭐하지만 일단 성공해서 글로 남겨 봄니다.

상황 : zfs 로 raid-0를 잡아 sda 와 sdb를 서로 묶어준 상태에서 새로이 os를 설치할 sdd를 붙여준 상태로(기존에 os가 설치 되어 있던 OS는 아직 건재)부팅.

근데 zfs라는게 아무래도 하드 관리를 UUID에 의해서 하는게 아닌 하드명에 의해서 하는지 zfs파티션이 마운트가 않됨.(이래서 home폴더에 자료를 마운트 해주는 형태로 해주어야 안정적임. 그래도 부팅은 무사히 이루어지니)

결국 어찌 저찌해서 인터넷( https://askubuntu.com/questions/123126/how-do-i-mount-a-zfs-pool )에서 찾아낸 방법

1) sudo zpool import   #아마도 모든 zpool의 자료의 목록이 뜬다.(그런데 아직 import 작업을 수행하지는 않는다)
2) sudo zpool import (pool명) #여기서 비로서 pool을 가져옴
3) sudo zpool status    #확인해 보면 zfs 파티션들이 보임
4) sudo zfs mount (파티션명)   #원래 붙었던 파티션에 마운트


/etc/fstab에 치기도 어려운 UUID를 일일이 쳐줄 필요도 없이 원래 하던 시스템에 그대로 마운트 되는 신통방통한 프로그램인듯 하네요.

2018년 5월 21일 월요일

[세미나] 어쩐지 파이썬

이번에 회사 내부에서 파이썬 세미나를 할때(모두들 기계쟁이라서 파이썬이라고 하니 신세계를  만났다는 반응) 만들었던 자료입니다.

원본은 리브레오피스로 작성했고 그걸 다시 ppt파일로 변환했습니다.

부끄럽기 그지없는 부실 자료지만 처음으로 해본 세미나이니 기념으로 올려 봅니다.


https://docs.google.com/presentation/d/1mX_md_KSbkcc7PEyaZVoH5duejdEkz3AUoE9r9_9Voo/edit?usp=sharing

2018년 3월 17일 토요일

노이즈캔슬링 헤드폰에 대한 청각 손상에 대한 소고

일단 전문가하고는거리가 먼 사람이라는걸 밝혀 두고요, 그냥 개인적인 의견이라는걸 밝혀 둡니다.

1) 노이즈 캔슬링 해드폰(혹은 이어폰)은 외부로 부터 들어오는 음파와 정반파 소리를 생성해서 소리를 중화 시켜주는 원리의 제품입니다.(자세한 내용은 이 페이지를 참조하세요)

2) 즉 외부로 부터 들어오는 소리 에너지의 반파 에너지를 생성해서 중화를 시켜 소음을 없애주는 기술입니다

3) 여기서부터가 중요한데, 반파를 시켜 중화를 시켰다는 이야기는 에너지가 소멸되었다는 이야기고 결국 고막에 들려오는 소리는 작은 소리 형태로 줄어든 상태라는 뜻입니다.

4) 통상적으로 이어폰에 의한 청각 손실은 고음(더군다나 외부 소음 때문에 의해 소리를 더 키워 85dB이상의 소리를)을 장시간 노출되었기 때문인데 노이즈캔슬링이 적용된 이어폰의 경우 85dB이하의 소리가 생성된 공간이 귀 주변에 생성된다는 뜻으로 생각할 수 있다는 이야기입니다.

5) 실제로 개인적인 경험으로는 노이즈캔슬링이 적용된 헤드폰을 사용할 경우 주변 소음에도 불구하고 작은 소리로 들을 수 있어 소리를 평상시보다 작은 상태로 듣는 경향이 있습니다.

6) 결국 음악 소리를 지나치게 키운 상태로 장시간 사용 않는다면 큰 문제는 없다는 뜻이라고 본다는 제 의견입니다.(중요한건 고막이 고음 상태에 얼마나 노출되느냐니)

2018년 3월 10일 토요일

오직 용기뿐(Only the brave) 감상평.





















1) 갑자기 보고 싶은 기분이 들어서 보기 시작한 영화입니다.



2) 영화 자체는 어떻게 보면 공식에 무척 충실한 작품입니다. 약쟁이 막장 인생을 살던 주인공이 어느 팀에(보통은 스포츠입니다만) 들어가 팀의 일원으로 성장하며 바른 인간이 된다는 내용에서 크게 벗어난 내용은 없습니다.



3) 일단 이 영화가 그럴저럭 흥행(근데 한국에서는 아냐...)했다고 하는데, 아마도 반전이니 뭐니 하는 내용에 집착 않하고 안정적인 내용으로 쭉 진행한게 정답이었던게 아닌가 싶네요.



4) 볼만한 포인트

 (1) 막장 인생의 개과천선 인생

 (2) 미국 특유의 그 넓디 넓은 평야에서 역시 넓디 넓게 생기는 산불(나라가 커서 그런지 산불도 영 천조국 스케일이다. 저정도 인원 가지고서 진압 가능하다는게 정말 놀라울뿐), 그 산불이 무슨 기름에 불 번지는 속도로 번져 나가는걸 영상으로 담았다.

 (3) 군대에서 방화 지대 공사하던게 생각남...(아닌게 아니라 영화 내내 하는게 나무 자르고 도랑 파고 맞불 놓고이다)

 (4) 더불어 예고편에 나오던 불곰(...)



 (5) 오직 용기만 가지고서 산불과 맞서 싸우던 분들의(이런 분들은 한국에도 있다) 용기와 희생







2018년 1월 27일 토요일

mac os sierra 링크 기록

최근에 보유하고 있는 맥북을 high sierra로 업그레이드 하려고 했으나 아무리 노력해도 제대로 된 설치가 되지 않아 포기

그런데 그 전 버전인 sierra를 아무리 찾아도 마켓에서 찾아 지지 않음...(아 사과 놈들)


검색 결과에서는 사과사에서 서버에서 내려 버렸다는 무시무시한 이야기를 들었으나 다행이도 그런건 아니었음.(아직 서버에 남아 있어)

그 링크를 기록해 두니 혹시라도 설치에 필요하신 분은 요기한게 쓰시기르 바람.

https://itunes.apple.com/kr/app/macos-sierra/id1127487414?mt=12

이건 설치 안내 페이지
https://support.apple.com/ko-kr/HT208202