전체 글 203

오드로이드 XU4 를 개인 클라우드 서버로 - 7. h5ai

h5ai 는 modern HTTP web server index 입니다. 그렇게 써있는데, 감이 안 오시는 분들은 간단하게 파일을 웹에서 내컴퓨터에서 보듯 볼 수 있다고 생각하시면 됩니다. 사실 서버 차원에서 기본적인 웹 디렉토리 리스팅 서비스가 지원되지만, 보기도 나쁘고 보안도 취약해 웹 디렉토리 리스팅을 위해선 h5ai 를 사용하는 것이 더 좋다고 봅니다. h5ai의 보안이 뛰어난 것은 아니지만요.. :) 또한 h5ai는 간단한 문서, pdf, 이미지, 동영상, 소스 코드 뷰어를 지원합니다. 아주 괜찮은 친구에요. 데모 사이트: https://larsjung.de/h5ai/demo/ h5ai 를 위해선 Nginx, Apache 등 웹 서버와 PHP가 설치되어 있어야 합니다. Apache 권장이지만, ..

오드로이드 XU4 를 개인 클라우드 서버로 - 6. Nginx, PHP, MariaDB

PHP로 동적 페이지 구현과, Nginx로 웹 서버를 열 준비를 해봅시다. 그리고 DBMS로는 무료인 MariaDB를 사용합니다. 이 조합은 APM(Apache-PHP-MySQL) 조합과 같이 웹 서비스를 위한 기반으로 많이 사용됩니다. 해당 작업은 HTTP 웹 서버 인덱스를 모던하게 해주는 h5ai와 개인 블로그, 사이트를 구축하기 위한 Wordpress 등을 사용하기 위해 꼭 필요합니다. 아래 설정은 https://blog.lael.be/post/2600 블로그 포스트를 참고했습니다. 해당 포스트는 설명이 너무 잘 나와 있네요. 1. PHP 설치 1.1 저장소 추가 및 설치 PHP 7 버전에 대한 업데이트를 제공하는 저장소를 추가해줍시다. sudo add-apt-repository ppa:ondrej..

오드로이드 XU4 를 개인 클라우드 서버로 - 5. Plex

Plex Media Server는 개인 모바일 기기 등 외부에서 자신의 동영상과 음악을 쉽고 빠르고 간편하게 관리, 스트리밍할 수 있게 해줍니다. 게다가 트랜스코딩을 지원해 원본이 고화질이라도 화질을 낮춰 스트리밍할 수 있어 데이터 또한 아낄 수 있어요. 돈을 내면 여러 사용자가 내 서버에 접속해 스트리밍이 가능하다던가 하지만, 무료로도 여러 기기에서 볼 수 있습니다. 전 제 스마트폰, 태블릿, 노트북에서 접속해서 봅니다. 하지만.. 1분단위로 끊기므로, 노트북이 아닌 모바일 OS에서 제대로 활용하시려면 활성화 코드를 구매해야 합니다. 6천원 정도 합니다. 설치하러 갑시다. 1. Plex Media Server 설치 1.1 저장소 추가 및 설치 Plex Media Server는 armhf(ARM 프로세서..

오드로이드 XU4 를 개인 클라우드 서버로 - 4. Samba

연결한 외장하드는 Samba로 관리하는 게 가장 편하더군요 1. Samba 설정(옵션) Samba 패키지 설치sudo apt-get install samba이미 설치되어 있다고 하네요. 하지만 혹시 모르니 한 번 타이핑 해줍시다. 1.1. Samba 계정 추가Samba 로 공유하는 디렉토리에 접근하기 위해선, 따로 계정을 추가해 줘야 합니다. 편의상 기존 오드로이드 접속 계정(root가 아닌)과 같은 이름으로 추가해줍니다.sudo smbpasswd -a {계정이름} 1.2 Samba 설정sudo vi /etc/samba/smb.conf 파일을 열고, 마지막에 다음 형식으로 추가해줍니다. 제 경우엔,[ODROID NAS - 3.0TB] comment = Awesometic's NAS path = /medi..

오드로이드 XU4 를 개인 클라우드 서버로 - 3. 외장하드 마운트

NAS 용도인데, 외장하드는 꼭 달아야죠. 하지만 주의하실 점은, 유전원 USB 3.0 허브가 아닌 무전원 USB 허브거나 USB 허브 없이 바로 오드로이드에 외장 하드를 꼽으실 경우.. 파워가 부족해 작동하지 않습니다. 하드커널에선 기존 오드로이드용 5V 4A 전원 어댑터가 아닌 NAS 용도를 위한 5V 6A 어댑터를 팔기도 하지만, 전 유전원 허브를 추천드립니다. 그리고 외장하드의 부팅 시 자동 마운트를 위해 /etc/fstab를 수정하지만, 이런 수정은 외장하드를 뺀 후 모르고 fstab 파일을 수정하지 않은 채 재부팅하면 모니터와 키보드를 들고와야 하기 때문에 autofs라는 패키지를 사용하겠습니다. 참고로 전 USB 3.0 유전원 허브에 외장하드 두 개를 달았습니다. 0. USB 외장하드를 오드..

오드로이드 XU4 를 개인 클라우드 서버로 - 2. Webmin 설치

Webmin 은 웹 기반 유닉스 시스템 관리자 인터페이스입니다. OpenMediaVault 등 NAS를 위한 운영체제에는 기본적으로 딸려 있는데, 우린 그런 걸 사용하지 않을 것이기 때문에 사용자 관리, 패키지 업데이트 같은 웹 기반 관리는 불가능하죠. 하지만 Webmin을 통해서는 할 수 있습니다. 설치하러 갑시다. 1. 패키지 설치 1.1 PPA 등록 apt 명령어로 설치, 업데이트하기 위해서 PPA를 등록해줍니다. echo "deb http://download.webmin.com/download/repository sarge contrib" | sudo tee /etc/apt/sources.list.d/webmin.list 그리고 저장소 인증을 위해 GPG 키를 설치합니다. wget http://w..

오드로이드 XU4 를 개인 클라우드 서버로 - 1. 우분투 설치

오드로이드 XU4에서 리눅스 커널 4.9 버전을 공식 지원받기 시작했습니다. 4.9는 LTS 버전으로, 하드커널 블로그에 따르면 2019년 초까지 지원받는다 하네요. 기존 3.10도 LTS지만, 이젠 legacy니까 mainline 커널로 이사해 봅시다. 커널만 따로 컴파일하여 올리는 방법도 있지만, 어차피 이것 저것 해보느라 더러워진 제 오드로이드 XU4에 새로이 하나씩 설정하려고 해요. 설정하면서, 제가 제 오드로이드 XU4를 NAS 및 개인 클라우드 서버로서 설정하는 방법을 포스팅해보려 합니다. 독자가 어느 정도 오드로이드와 리눅스 시스템에 지식이 있다고 생각하며 작성하겠습니다. 주의할 점은! 안정화된 버전이 아니고 한창 디버깅중이라 모든 기능이 정상 작동하진 않을 것입니다. 자주 커널 업데이트를 ..

안드로이드 - MVC 패턴 개념, 안드로이드에서 MVC 패턴의 미묘함

PHP CodeIgniter를 공부하면서.. MVC 패턴이란 걸 알게 됐습니다. 원래 기존에도 프로그램을 만들 때 모듈화에 대한 고민을 했긴 했었는데, 예를 들어 DB에 접근하는 프로그램을 개발할 땐 DB 접근 부분을 완전히 독립시키려 노력한다던가.. 물론 완전히 모듈화시키진 못하고 코드가 중구난방이었습니다. 그러다보니 최근에 MVC 패턴이 있다는 걸 알고 아 역시 이런 디자인 패턴도 있었군! 하면서 한창 공부 중입니다. 안드로이드 개발에선 MVC의 파생격인 MVP 패턴을 이용한다는데, 그 개념을 간단하게 정리하고자 포스팅합니다. [MVC 패턴] MVC 패턴은 Model-View-Controller 패턴을 가리킵니다. 사용자 인터페이스 영역과 비즈니스 로직 영역을 서로 영향 없이 쉽게 고칠 수 있도록, ..

안드로이드 - 외부 스레드에서 UI 스레드로

최근 취업준비를 하면서 개인 안드로이드 프로젝트를 연습삼아 진행하고 있습니다. 하면서 계속 깨닫는 건 멀티스레딩의 중요성입니다. 아무리 튼튼한 자료구조가 있고 복잡한 알고리즘의 빅오가 기가막혀도 기본 스레드(UI 스레드)에서만 작동한다면 ANR이 발생하기 마련입니다. 기본 스레드에선 UI만 다루고, 사용자 눈에 보이지 않는 모든 작업은 뒤에서 적절히 스레드를 줘서 돌려야 스무스하게 아무 일 없는 듯 돌아갈 겁니다. 비록 폰은 뜨거워져도 보기엔 부드러워야 좋다고 생각합니다. 그래서 개발을 진행하기 보다, 머릿속으로 먼저 정리할 겸 포스팅하고 있습니다...... [들어가기 앞서...] 안드로이드는 리눅스 기반 운영체제입니다. 따라서 안드로이드는 리눅스의 정책을 따라갈 것이고, 리눅스의 프로세스와 스레드에 대..