Posted
Filed under 개발/하드웨어

삼성전자 DDR4 16G PC4-21300 (정품)

최저가
83,620 자세히보기
삼성전자 DDR4 16G PC4-21300 (정품) 빠르고 쾌적한 PC 환경을 구축하세요. 최신 인텔 프로세서 호환 끊김 없는 게임 플레이  쾌적한 영상 이미지 소프트웨어 사용 환경  향상된 성능과 안전성  최신 CPU와 메인보드에서 지원하는 DDR4 메모리로 빠르고 쾌적한 PC 환경을 구축하세요. DDR4 메모리는 64비트의 빠른 속도로 데이터를 전송하고 높은 대역폭과 용량으로 데이타 인코딩 오류를 최소화합니다. 게임, 디자인 작업 등 어떠한 용도로 사용하더라도 사용자가 만족하는 최적의 PC 성능을 제공하며, 시스템 리소스를 많이 소모하는 고사양 렌더링 프로그램 사용 시에도 끊김 없이 사용자가 원활하게 작업할 수 있습니다.   최신 프로세서 지원 최신 인텔 프로세서 호환 최신 인텔 프로세서에 호환되며 이전 DDR3 메모리에 비해 더욱 향상된 속도, 넓은 대역폭 그리고 낮은 소비 전력을 자랑합니다. 초고사양 게임 및 전문적인 작업에서 최고의 퍼포먼스를 발휘하고 뛰어난 안정성 및 신뢰성을 제공합니다.     Gaming 초고속 로딩 속도로 끊김 없는 게임 플레이 고사양 시스템을 요구하는 게임에서 더욱 뛰어난 성능을 보여줍니다. 로딩 시간을 단축시켜 게임의 흐름을 끊기지 않게 하며, 많은 양의 데이터가 몰리는 구간에서도 조금의 끊김조차 허용하지 않습니다.  Design 웹, 그래픽, 영상 편집 프로그램 성능 향상 고성능 메모리로 작업 능률을 향상 시켜보세요. 고용량 사진 작업 및 고화질 영상 작업, 렌더링, 인코딩 작업을 할 때 더욱 큰 성능을 발휘합니다. 병목현상을 최소화하여 끊김, 지연 현상을 없애고 쾌적한 작업 환경을 조성할 수 있도록 도와줍니다.  clock 높은 메모리 클럭으로 더욱 빠른 PC환경! 높은 메모리 동작 클럭이 빠른 동작 속도를 제공함으로써, 사용자는 더욱 쾌적한 PC 사용환경을 경험할 수 있습니다. 일반 메모리에 비해 향상된 성능과 안전성으로 게이밍, 그래픽 작업 등 다양한 환경에서 최고의 퍼포먼스를 제공합니다.

다나와 저작권 안내

2019/04/27 00:10 2019/04/27 00:10
Posted
Filed under 개발/게임
2019/04/25 17:32 2019/04/25 17:32
Posted
Filed under 개발/게임
2019/04/25 17:31 2019/04/25 17:31
Posted
Filed under 개발/게임
2019/04/25 17:31 2019/04/25 17:31
Posted
Filed under 개발/게임

한붓그리기


보드게임


## 블럭 지우기


미분류

2019/04/25 17:28 2019/04/25 17:28
Posted
Filed under 개발/게임
  • Hack RUN Appstore

    • 컴퓨터 해킹의 인터페이스를 이용하여 추리소설을 읽는 느낌. 몰입감이 있다.
  • Nimian Legends: BrightRidge HD Appstore

    • 제노기어스의 맵부분만을 짤라내서 커서만 따라다니며 매우 짧은 스토리를 감상하는 게임으로 만든느낌.
  • Hardboiled Appstore

    • 유니티엔진. 미션이 한정되어있는 GTA같은 느낌. 잘 만든것 같긴 한데 개인적으로는 재미를 못느끼는 장르.
  • Radiant One Appstore

    • 쿼터뷰 화면에서 지시에 따라 움직이며 호러 이야기를 보는 어드벤처. 많은 리소스가 투입된 잘 만든 게임.
  • Out There Chronicles - Ep. 1 Appstore

    • 핸드폰용으로 잘 조정된것 같은 노벨형 어드벤처.
  • Hydropuzzle Appstore

    • 카톡으로 보내지는 메시지를 읽는 듯한 어드벤처 게임
  • Preston Sterling

    • https://itunes.apple.com/app/id1096221819
    • 캐릭터는 3d에 음성지원까지 되는 어드벤처. 삼다수의 극한탈출을 떠올리게 한다.
    • 잘 만든 것 같은데 평은 별로 안좋다. 수수께끼에 개연성이 없다는 듯.
  • Return to Grisly Manor Appstore

  • Adventure Beyond Time Appstore
  • The Hunt for the Lost Treasure Appstore
  • STEINS;GATE KR Appstore
  • Rusty Lake: Roots KR Appstore
  • Rusty Lake Paradise KR Appstore
  • Rusty Lake Hotel KR Appstore
  • Cube Escape: Paradox KR Appstore
  • Cube Escape: Theatre KR Appstore
  • Cube Escape: Seasons KR Appstore
  • Cube Escape: The Lake KR Appstore
  • Cube Escape: Arles KR Appstore
  • Cube Escape: Case 23 KR Appstore
  • Cube Escape: Birthday KR Appstore
  • Cube Escape: The Mill KR Appstore
  • Cube Escape: The Cave KR Appstore
  • Cube Escape: Harvey's Box KR Appstore
  • The Man from Hmmbridge Appstore
2019/04/25 17:14 2019/04/25 17:14
Posted
Filed under 개발/하드웨어
사양 출처: http://support.logitech.com/ko_kr/product/mx-anywhere-2s-flow/specs

마우스 사양
연결 유형 USB/BLE
USB VID_PID  
USB 프로토콜 비가시 레이저(암시야)
USB 속도     Full Speed 2.0
표시등(LED)     배터리 상태, 연결 번호
연결/전원 연결 버튼, 켜기/끄기 스위치
배터리 세부 정보 Li-Po(500 mAh)
배터리 수명(충전식) 최장 70일
DPI(최소/최대) 최대 4000 DPI
센서 암시야
스크롤 휠

일반 제품 사양
무선 프로토콜 Unifying 2.4 GHz
Bluetooth 4.0
유선 네트워크 지원 해당 없음
소프트웨어 지원(출시 기준) Logitech Options
OS/플랫폼 지원(출시 기준) Unifying:
Windows® 7, Windows® 8 이상
Mac OS X 10.8+

Bluetooth(필수: Bluetooth 저 에너지 기술):
Windows 8+
Mac OS X 10.10+
제공되는 응용 프로그램(출시 기준) 해당 없음
시스템 요구 사항 • Windows® 7, Windows® 8 이상
• Mac OS X 10.8+
• 소프트웨어 다운로드를 위한 인터넷 연결
• USB 포트 및/또는 Bluetooth 저 에너지 기술
전원 유형 충전식


로지텍 MX Anywhere 2S 무선 마우스 (정품)

최저가
81,170 자세히보기

2019/04/19 14:58 2019/04/19 14:58
Posted
Filed under 개발/그외
OSX에서는 SVG파일을 탐색기에서 확인할 수가 있는데 윈도우의 파일관리자는 미리보기 기능이 없다.

다음 프로그램을 설치하면 윈도우 탐색기에서 SVG가 미리보기로 보이는 모양인데 프로그램이 오래되서 그런가 Windows 10 1809에서는 동작하지 않았다.

* SVG Viewer Extension for Windows Explorer v0.1.1
https://github.com/maphew/svg-explorer-extension/releases


이미지뷰어에서 SVG를 기본적으로 지원하는건 XnView(Extended Version), XnViewMP, IrfanView 등이 있는데 IrfanView는 개인적으로 좋아하지 않는 인터페이스라 제외.

그런데 XnView는 SVG 렌더링에 CADImage.dll 파일을 사용하는데 이게 쉐어웨어라 다음 사이트에서 돈주고 사야하고 렌더링 성능도 구리다.
https://kr.cadsofttools.com/downloads/


그래서 프리웨어 라이브러리가 있나 찾아봤더니 librsvg라는 오픈소스 라이브러리가 존재한다.
https://en.wikipedia.org/wiki/Librsvg


다음 사이트에서 rsvg-convert을 다운받아 rsvg-convert.exe파일을 Xnview의 Plugin 폴더에 복사하고 CADImage.dll 파일을 삭제하면 XnVIew에서 깨끗한 이미지로 SVG 탐색이 가능하다.
https://sourceforge.net/projects/tumagcc/files/rsvg-convert-2.40.20.7z/


더 쉬운 방법은 XnViewMP를 이용하는 것이다. 이넘은 SVG를 그냥 네이티브로 지원해준다.
https://www.xnview.com/en/xnviewmp/

다만 초기 설정에서 SVG를 표시하지 않게 되어 있기 때문에 설정을 해주어야 한다.
도구 → 설정 → 파일 목록 → 사용자 필터 → 제외를 체크 해제한다
2019/04/18 20:08 2019/04/18 20:08
Posted
Filed under 개발/게임
  • DEEMO Appstore

    • 건반형 리듬게임. 피아노 음색 위주.
  • Cytus Appstore

    • 손을 화면 여기저기로 바쁘게 움직여야 하는 리듬게임.
2019/04/16 13:04 2019/04/16 13:04
Posted
Filed under 개발/게임
  • Implosion - Never Lose Hope Appstore

    • 3D액션. 잘만듬. 조작성 좋으나 작은화면에선 잘 안보임.
  • Towaga Appstore

    • 잘만들었음. 난이도가 올라가는 마지막부분에서는 못깨겠음.
  • Ninjas Infinity Appstore

    • 인터페이스는 구식인데 게임디자인은 잘 되어있음.잡아둘수 있는 흡입력도 있음. 다만 화면이 가려지고 입력도 부정확한 편.
  • Duck Bumps Appstore

    • 4p로 시작하고 타 플레이어의 머리를 밟아 점수를 얻음. 1p가 종료된시점부터 플레이가 스킵되는 기능이 좋아보임.
  • Tiny Tanks! Appstore

    • 탱크로 벽에 반사되는 대포를 발사해서 다른 플레이어를 맞추는 게임. 조작성은 나쁘지 않은 편. 메뉴 인터페이스는 날림이지만 게임 자체는 잘 만들었다.
  • Squareface Appstore

    • 언리얼엔진. 3D 액션게임으로 그래픽, 조작감 모두 좋음.
  • Endarked Appstore

    • 폰의 가속도방향을 감지해서 커서를 움직이는 게임. 생각보다 크게 흔들어야 된다.
  • Super Cargo Appstore

    • 카고트럭등 특수차량을 운전하는 시뮬레이터. 의외로 몰입감이 있다.
  • Spin Spell AppStore

    • 폰을 기울여서 공을 목적지로 보냄. 조작감 별로.
  • silver bullet

  • The Sun: Origin

2019/04/16 13:04 2019/04/16 13:04
Posted
Filed under 개발/게임
2019/04/16 12:56 2019/04/16 12:56
Posted
Filed under 개발/게임
  • Clumsy Fish Appstore

    • 유니티엔진. 플래피버드에 바다스킨을 씌운 물건.
    • 게임구성에 있어서 참조할 부분이 많다.
  • SFCave Appstore

    • 터치가 없으면 떨어지는 뱀.
  • Santa Present Drop : delivery Appstore

    • 플래피버드에 크리스마스 스킨 씌운것같은 게임.
  • Line Birds Appstore

    • 플래피버드로 만든 SFCave. 노말 난이도는 빨리 죽게 되어있다. 그리고 무한스테이지에 parallax 스크롤링을 붙였다.
  • Von In Space Appstore

    • 우주인으로 우주를 횡스크롤 진행하는 게임. 중력이 반대라서 가만히 두면 위로 올라간다.
    • 별거 아닌거 같은데 생각보다 좋은 평이 많음.
  • 디디딕! (DDDDIG!)

2019/04/16 12:53 2019/04/16 12:53
Posted
Filed under 개발/게임
  • Super Mario Run Appstore

    • 캐릭터 런게임
  • 안녕 유산균 Appstore

    • 매우 잘 만든 횡스크롤 캐주얼 점프게임. 깔끔한 그래픽, 게임과 어울리는 사운드, 잘 설계된 강화와 과금요소, 충분히 많은 도전과제와 스테이지 등 모든것이 완벽하다.
  • Juicy Sweety: Endless Pipe Appstore

    • 유니티엔진. 3차원 소닉처럼 장애물을 피하며 z축 방향으로 달리는 방식
  • Run Cow Run Appstore

    • 터치감이 그리 좋지 않고 내용이 단순하다. 광고가 이상한 시점에서 나오고 인터페이스도 구식이다.
  • Let it Goat Appstore

    • 점프너비를 고정시킨 8bit 그래픽 런게임. 너무 빨리 죽게 난이도를 조정해놓아서 진행하는 맛이 없다. 광고도 너무 많음.
  • Infinite Islands Appstore

    • SpriteKit 엔진. 2단점프가 가능한 8bit 그래픽 런게임.
  • Ducklings Appstore

    • 유니티엔진. 랜드스케이프 쿼터뷰 화면에서 블록 사이를 점프해서 지나가는 게임. 점프량을 조절한다. 그래픽은 좋은것 같은데 스테이지가 비교적 단순하다는 느낌이 든다. 난이도도 너무 잘 죽게 설계되어있음.
  • 1-Bit Return Appstore

    • 단순한 그래픽의 런게임. 충돌판정이 너무 시비어하게 설정된듯. 너무 잘 죽는다. 광고도 많음.
  • Sonic Forces Appstore

    • 캐릭터를 이용한 레이싱 게임. 재밌긴 한데 유저매치의 압박이 있다. 최적화도 그리 좋은 편은 아닌것 같음.
  • Military Jump: Army Jumping Game

  • Freddie Dredd Freddie's Dead

2019/04/16 12:51 2019/04/16 12:51
Posted
Filed under 개발/게임
  • Falling Alice

  • Dig Deep! Appstore

    • 자동으로 땅을 파고 코인을 먹으면서 밑으로 낙하하는 게임. 8비트 감성도 좋고 퍼포먼스도 좋은 편.
  • Endless Falling Appstore

    • 자유낙하. 스와이프가 좌우이동이며 조작감도 나쁘진 않다. 난이도는 높은편이며 한번에 사망. 표현이 잔인하다.
  • Falling Birdz Appstore

    • 스크린키를 이용함. 좌, 우, 활공 키를 준비했음. 바닥에 각각 특성이 있음. 캐릭터가 너무 작은것 같다
  • Canyon Crash: Fall Down Appstore

    • 인플레이 외의 게임구성은 참고할만 하다. 터치에 대해 움직이는 양이 적어서 조작이 직관적이지 않은 느낌이 든다.
  • The Pit. Appstore

    • 자이로센서로 좌우이동을 수행. 센서를 너무 민감하지 않게 설정했고 랜드스케이프모드로 좌우시야를 넓게 확보한 점은 좋은 듯. 난이도는 애매하다.
  • Ninja Falling Down Appstore

    • 기본은 한쪽으로 이동하고 터치하면 좌우 반전하는 형태. 좌우 무한벽응 참고할만 한듯.
  • Dot Out Appstore

    • 밑으로 떨어지는 원 탈출게임. 인터페이스는 나쁘지 않은 것 같은데 점프타이밍이 이상하게 설정된 듯.
  • Dive Abyss Appstore

    • 바닷속을 배경으로 한 낙하게임.
2019/04/16 12:49 2019/04/16 12:49
Posted
Filed under 개발/그외
*  VS Code 홈페이지
https://code.visualstudio.com/


* 윈도우용 gcc 컴파일러
MinGW-W64
https://mingw-w64.org/doku.php/download

MinGW 설치시 옵션설명
http://klutzy.nanabi.org/blog/2015/03/05/mingw/


* VS Code에서 C/C++ 사용에 필요한 확장기능
 +  C/C++: IntelliSense, debugging, and code browsing.
https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools

 + Code Runner: Run code snippet or code file for multiple languages
https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner

 + CMake Tools: Extended CMake support in Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=vector-of-bool.cmake-tools&ssr=false


* CMake 세팅
https://www.40tude.fr/blog/compile-cpp-code-with-vscode-cmake-nmake

https://www.off-soft.net/ja/software/develop2/vscode-cpp-develop-mingw.html#task
2019/04/15 18:03 2019/04/15 18:03
Posted
Filed under 음악감상실
2019/04/15 09:16 2019/04/15 09:16
Posted
Filed under 개발/하드웨어
나무위키 버터플라이 키보드 항목
https://namu.wiki/w/%EB%B2%84%ED%84%B0%ED%94%8C%EB%9D%BC%EC%9D%B4%20%ED%82%A4%EB%B3%B4%EB%93%9C

노트북을 얇게 만들기 위해 개발된 버터플라이 키보드는, 시간이 지나면서 키보드 속에 먼지가 지속적으로 유입되면 키가 잘 안눌리거나 두번눌리는 불량이 발생한다.

3세대에서는 이 문제에 대응하기 위해 키캡 하부에 실리콘막을 덮었는데 그럼에도 불구하고 불량문제가 발생했다.



이런 불량눌림 문제를 소프트적으로 해결하는 Unshaky 앱이 있다.
키 입력 사이에 딜레이를 설정하고 딜레이보다 빠르게 발생하는 입력은 무시하는 방식으로 해결한다.
https://github.com/aahung/Unshaky
2019/04/12 23:48 2019/04/12 23:48
Posted
Filed under 개발/Linux
Let's encrypt는 사용자에게 무료로 TLS 인증서를 발급해주는 비영리기관이다. 루트 도메인, 서브 도메인, 와일드카드 서브 도메인 등에 대한 인증서 발급이 가능하다.

발급된 인증서의 유효기간은 90일이며 만료 30일 전부터 갱신할 수 있으며 갱신가능 횟수는 무제한이다.

Let's encrypt가 인증서를 발급하는 방식에는 standalone, webroot, dns 세가지가 있는데 여기서는 webroot 명령어를 이용하여 발급한다.

webroot 명령어를 이용하면 자신의 웹서버에서 작동중인 http 프로토콜의 웹사이트에 certbot이 접속하여 서버가 유효한지 확인하고 인증서를 발급한다.

현재 Nginx에서 http://www.test.com이라는 웹사이트를 운영중이고 Nginx 설정은 다음과 같다고 하자.

[code]
server {
    listen 80;
    listen [::]:80;

    server_name www.test.com;

    root /var/www/html;
    index index.html index.htm index.php;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        }
}
[/code]


* certbot 패키지를 설치하고 인증서를 발급한다.
$ sudo apt-get install certbot
$ sudo certbot certonly --webroot --webroot-path=/var/www/html
-d www.test.com


* 발급받은 인증서는 /etc/letsencrypt/live/[인증서이름] 에 저장된다.
cert.pem - 인증서 파일
chain.pem - 인증서 발급자 파일
fullchain.pem - cert.pem 과 chain.pen 을 하나로 합쳐놓은 파일
privkey.pem - 인증암호를 해독하는 개인키

Apache2 서버에서는 cert.pem, chain.pem, privkey.pem 을,
Nginx 서버에서는 fullchain.pem, privkey.pem 을 사용한다.


* Nginx의 서버설정 변경
[code]
server {
    listen 80;
    listen [::]:80;

    server_name www.test.com;
   
    # 모든 http 요청을 https로 301 리다이렉트한다
    return 301 https://$server_name$request_uri;

    root /var/www/html;
    index index.html index.htm index.php;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        }
}


server {
    listen 443;
    listen [::]:443;

    server_name www.test.com;
    root /var/www/html;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    ssl                  on;
    ssl_certificate      /etc/letsencrypt/live/www.test.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/www.test.com/privkey.pem;
    ssl_ciphers  HIGH:!aNULL:!MD5;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }
}
[/code]


* Nginx 서버 재시작
$ sudo systemctl restart nginx


* 발급받은 인증서 확인
$ sudo certbot certificates


* 인증서 갱신
$ sudo certbot renew


* 인증서 취소 및 삭제
$ certbot revoke --cert-path /etc/letsencrypt/live/www.test.com/cert.pem
$ sudo certbot delete --cert-name www.test.com
2019/04/12 13:43 2019/04/12 13:43
Posted
Filed under 개발/Linux
가상호스트(VirtualHost) 기능을 이용하면 하나의 IP로 복수개의 웹서버를 운용할 수 있다.

Nginx에서 가상호스트 이용하기 위해서는 /etc/nginx/nginx.conf 하단의 # Virtual Host Configs 블럭에 가상호스트 설정을 추가하면 된다. 하지만 이러면 가독성도 떨어지고 설정파일이 지저분해진다는 문제가 있으므로 이렇게 하진 않는다.

# Virtual Host Configs 블럭에는 include /etc/nginx/sites-enabled/*; 라는 내용이 있는데 이것이 가상호스트 설정파일을 외부에 따로 작성하여 nginx.conf에서 불러오기 위한 설정이다.

일반적으로는 가상호스트용 설정파일은 /etc/nginx/sites-available/에 작성한 뒤 /etc/nginx/sites-enabled/에 심볼릭링크를 작성하여 불러오는 방식을 사용한다.


*가상호스트 설정
test.com 이라는 도메인을 구입해 사용하고 있다고 가정한다.
도메인관리 사이트에서 작성하고 싶은 가상호스트의 도메인인 abc.test.com을 서버의 IP에 A레코드로 연결시킨다. 서버가 요청을 받았을 때 응답해줄 디렉토리는 /var/www/html/test/라 한다.


* 다음과 같이 파일을 작성한다.
$sudo nano /etc/nginx/sites-available/abc.test.com

[code]
server {
    listen 80;
    listen [::]:80;

    server_name abc.test.com;

    root /var/www/html/test;
    index index.htm index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }
}
[/code]


* sites-enabled에 심볼릭링크를 작성한다.
$ sudo ln -s /etc/nginx/sites-available/abc.test.com /etc/nginx/sites-enabled/abc.test.com


* 설정파일을 검사한 후, Nginx를 재시작한다
$ sudo nginx -t
$ sudo systemctl restart nginx
2019/04/11 14:16 2019/04/11 14:16
Posted
Filed under 개발/iOS
1. 프로젝트 작성시 Include Unit Tests 선택


2. 프로젝트 버전을 1.0 → 0.9.0 으로 변경


3. 빌드시 빌드넘버를 자동으로 증가하도록 함

Xcode 메뉴 → Build Phases → + 버튼 → New Run Script Phase → 다음코드 추가

[code]
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
[/code]

4. Deployment Target을 12.1 → 10.0 으로 변경


5. Cocoapod으로 SwiftLint 설치

pod init -> pod 'SwiftLint' 추가 -> pod install
Xcode 메뉴 → Build Phases → + 버튼 → New Run Script Phase → 「${PODS_ROOT}/SwiftLint/swiftlint autocorrect」 추가
2019/04/10 15:36 2019/04/10 15:36
Posted
Filed under 개발/컨퍼런스

언어




게임


  • 인벤 게임쇼 특집페이지 Link









학회


  • Apple Worldwide Developers Conference (WWDC)




  • Free and Open source Software Developers' European Meeting (FOSDEM)






2019/04/10 10:05 2019/04/10 10:05
Posted
Filed under 개발/Linux
메뉴 → Accessories → SD Card Copier로 USB메모리에 시스템을 떠낸다

Win32DiskImager로 USB메모리를 backup.img로 덤프한다. 백업파일의 크기는 파일내용과 상관없이 USB메모리의 크기를 따른다.

더미공간을 줄이기 위해 zip 등으로 압축한다

img파일의 파티션을 직접 조정해서 크기를 줄일 수도 있지만,  그냥 처음부터 파이의 내용이 대충 꽉 찰정도의 적당한 크기를 가진 USB메모리를 이용하는게 간편하다.

2019/04/09 12:28 2019/04/09 12:28
Posted
Filed under 개발/Linux
* SD카드로 부팅한 상태에서 현재의 부팅모드 확인
$ vcgencmd otp_dump | grep 17
17:1020000a 가 나올 것인데 이걸 17:3020000a 로 바꿀 것이다.

* /boot/config.txt를 수정
$ echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
$ sudo reboot

* 라즈비안을 설치한 USB장치를 준비한다

* USB장치의 /boot/cmdline.txt를 수정

[code]
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=164c1e26-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[/code]


[code]
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[/code]
로 수정한다

* SD로 부팅한 후 USB장치를 마운트
연결된 저장장치 확인
$ fdisk -l
USB장치 마운트
$ mount /dev/sda2 /mnt

* USB장치의 /etc/fstab 을 수정
[code]
proc            /proc           proc    defaults          0       0
PARTUUID=164c1e26-01  /boot           vfat    defaults          0       2
PARTUUID=164c1e26-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
[/code]


[code]
proc            /proc           proc    defaults          0       0
/dev/sda1  /boot           vfat    defaults          0       2
/dev/sda2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
[/code]
로 수정한다.
2019/04/09 12:15 2019/04/09 12:15
Posted
Filed under 개발/Linux
사용자 삽입 이미지

/(루트)
최상의 디렉토리인 루트 디렉토리를 의미하며, 리눅스의 모든 디렉토리들의 시작점이다. 즉, 모든 디렉토리들을 절대경로로 표기할 때에 이 디렉토리로부터 시작해야 한다.

/bin
기본적인 명령어가 저장된 디렉토리. 즉, 리눅스 시스템사용에 있어 가장 기본적이라고 할 수 있는 mv, cp, rm 등과 같은 명령어들이 이 디렉토리에 존재하며 root 사용자와 일반사용자가 함께 사용할 수 있는 명령어 디렉토리이다.

/boot
리눅스 부트로더(Boot Loader)가 존재하는 디렉토리. 즉, GRUB 과 같은 부트로더에 관한 파일들(grub.conf 등)이 이 디렉토리에 존재한다.

/dev
시스템 디바이스(device)파일을 저장하고 있는 디렉토리. 즉, 하드디스크 장치파일 /dev/sda, CD-ROM 장치파일 /dev/cdrom 등과 같은 장치파일들이 존재하는 디렉토리이다.

/etc
시스템의 거의 모든 설정파일이 존재하는 디렉토리. /etc/sysconfig(시스템 제어판용 설정파일), /etc/passwd(사용자관리 설정파일), /etc/named.conf(DNS 설정파일) 등과 같은 파일들이 존재한다.

/etc/mai/
sendmail.cf 나 access 파일등의 sendmail 의 설정파일들이 존재하는 디렉토리.

/etc/ssh/
SSH 서비스, 즉 sshd 데몬에서 사용하는 각종 설정파일들이 존재하는 디렉토리.

/etc/squid/
squid 프락시서버의 설정파일들이 저장된 디렉토리.

/etc/samba/
삼바관련 설정파일들이 저장된 디렉토리

/etc/skel/
계정사용자 생성시의 초기화파일들이 저장된 디렉토리(useradd 에서 사용함)

/etc/rc.d/
부팅레벨별 부팅스크립트파일들이 존재하는 디렉토리.

/etc/rc.d/init.d/
시스템 초기화 파일들의 실제파일들이 존재함.

/etc/pam.d/
PAM 설정 정보파일들이 저장된 디렉토리.

/etc/httpd/
RPM 으로 설치된 아파치 설정파일(httpd.conf 등)들이 저장된 디렉토리.

/etc/cron.d/, /etc/cron.daily/, /etc/cron.hourly/, /etc/cron.monthly/, /etc/cron.weekly/
모두 크론설정파일이 존재하는 디렉토리임.

/etc/xinetd.d/
xinetd 수퍼데몬에 의해 서비스되는 서비스설정파일이 존재함.

/home
사용자의 홈디렉토리, useradd 명령어로 새로운 사용자를 생성하면 대부분 사용자의 ID와 동일한 이름의 디렉토리가 자동으로 생성됨.

/lib
커널모듈파일과 라이브러리파일 즉, 커널이 필요로하는 커널모듈파일들과 프로그램(C, C++ 등)에 필요한 각종 라이브러리 파일들이 존재하는 디렉토리.

/media
DVD, CD-ROM, USB 등과 같은 탈부착이 가능한 장치들의 마운트포인트로 사용되는 디렉토리.

/mnt
/media 디렉토리와 비슷한 용도로 탈부착이 가능한 장치들에 대하여 일시적인 마운트포인트로 사용하는 디렉토리.

/proc
일명 "가상파일시스템" 이라고 하는 곳으로 현재 메모리에 존재하는 모든 작업들이 파일형태로 존재하는 곳이다. 디스크상에 실제 존재하는 것이 아니라 메모리상에 존재하기 때문에 가상파일시스템이라고 부른다. 실제 운용상태를 정확하게 파악할 수 있는 중요한 정보를 제공하며 여기에 존재하는 파일들 가운데 현재 실행중인 커널(kernel)의 옵션 값을 즉시 변경할 수 있는 파라미터파일들이 있기 때문에 시스템 운용에 있어 매우 중요한 의미를 가진다.

/root
시스템 최고관리자인 root 사용자의 개인 홈디렉토리.

/sbin
ifconfig, e2fsck, ethtool, halt 등과 같이 주로 시스템 관리자들이 사용하는 시스템관리자용 명령어를 저장하고 있는 디렉토리.

/tmp
일명 "공용디렉토리" . 시스템을 사용하는 모든 사용자들이 공동으로 사용하는 디렉토리. mysql 에서 사용하는 mysql.sock 등과 같은 소켓파일, 또는 아파치에서 사용하는 세션파일등이 생성되기도 한다. 웹해킹에 사용되기도 해서 주의를 요망.

/usr
시스템이 아닌 일반사용자들이 주로 사용하는 디렉토리. 즉, c++, chsh, cpp, crontab, du, find등과 같이 일반사용자들용 명령어들은 /usr/bin 에 위치한다.

/usr/bin/
일반 사용자들이 사용가능한 명령어 파일들이 존재하는 디렉토리.

/usr/X11R6/
X 윈도우 시스템의 루트 디렉토리.

/usr/include/
C 프로그램에 필요한 헤드파일(*.h) 디렉토리.

/usr/lib/
/lib 에 들어가지 않은 라이브러리 디렉토리.

/usr/sbin/
/bin 에 제외된 명령어와 네트워크관련 명령어가 들어있는 디렉토리.

/usr/src/
프로그램 소스(주로 커널소스)가 저장되는 디렉토리.

/usr/local/
MySQL, Apache, PHP 등과 같은 어플리케이션들을 소스로 컨파일설치할 때 사용되는 장소.

/usr/share/man/
명령어들의 도움말을 주는 메뉴얼(manual)페이지 디렉토리. 즉, 이 디렉토리에는 시스템에서 사용하는 모든 맨페이지파일(man page)이 존재함.

/var
시스템운용중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위한 디렉토리. 거의 모든 시스템로그파일은 /var/log 에 저장되고, DNS 의 zone 설정파일은 /var/named 에 저장되고, 메일파일은 /var/spool/mail 에 저장되며, 크론설정파일은 /var/spool/cron 디렉토리에 각각 저장됨.

/var/tmp/
/tmp 디렉토리와 같은 공용디렉토리. 즉, /tmp 디렉토리와 /var/tmp 디렉토리의 퍼미션은 1777 로서 sticky bit 가 설정되어 있는 공용디렉토리이다. 리눅스 시스템에서 공용디렉토리는 /tmp 와 /var/tmp 둘뿐이다.

/var/log/
시스템로그파일(messages, secure, xferlog 파일등)이 저장되는 디렉토리.

/var/ftp/
vsftp 등과 같은 FTP 서비스를 위한 다운로드될 파일들 즉, FTP 홈디렉토리.

/var/named/
BIND 즉, DNS 에서 사용하는 zone 파일들이 저장되는 디렉토리.

/var/spool/mail/
각 계정사용자들의 메일파일이 저장되는 디렉토리.

/var/spool/lpd/
프린트를 하기 위한 임시 디렉토리(스풀링 디렉토리).

/var/spool/mqueue/
발송을 위한 메일 일시저장 디렉토리.

/var/spool/cron/
각 사용자들의 cron 설정파일들이 저장된 디렉토리.

/var/spool/at/
atd 즉, 예약작업에 관한 파일들이 저장되는 디렉토리.

/lost+found
최상위 디렉토리인 / 디렉토리에만 존재하는 것이 아니라 파일시스템마다 존재할 수 있는 디렉토리임. 이 디렉토리는 fsck 또는 e2fsck 등과 같은 파일시스템 체크 및 복구유틸리티 실행후에 주로 생성이 되는 것으로서 복구되지 않은 채로 블록(block)만 존재하는 파일 즉, 연결이 끊어진 inode 들이 숫자파일형태로 존재하는 곳임. 숫자형태로 존재하는 파일들은 mv 명령어로 파일이름만 바꾸면 바로 복구될 수 있다.

[출처]
https://askubuntu.com/questions/138547/how-to-understand-the-ubuntu-file-system-layout

https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C_%EA%B3%84%EC%B8%B5%EA%B5%AC%EC%A1%B0_%ED%91%9C%EC%A4%80

https://webdir.tistory.com/101
2019/04/09 11:29 2019/04/09 11:29
Posted
Filed under 개발/Linux
LEMP는 Linux + Nginx + MariaDB + PHP7 의 조합을 의미한다. Nginx의 N 대신 발음하기 좋게 EngineX의 E를 쓴다

1. Nginx
Nginx는 Apache와 다르게 비동기서버라서 퍼포먼스가 더 좋고 메모리 소비량도 적다.

* nginx 설치
$ sudo apt install nginx
이 시점에서 서버의 80번 포트로 접속할수 있게 된다.


2. PHP
* Nginx는 PHP를 네이티브로 지원하지 않으므로 Fastcgi Process Manager(FPM)로 구현된 PHP를 설치한다
$ sudo apt install php-fpm
$ sudo nano /etc/nginx/sites-available/default
에서
index index.html index.htm index.nginx-debian.html;
→ index index.html index.htm index.php;
로 수정.

[code]
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
#}
[/code]
에서

[code]
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
[/code]
로 수정.

* 서비스 재시작
$ sudo service nginx reload


3. MariaDB 설치
$ sudo apt install mysql-server php-mysql

* 초기셋업
$ sudo mysql_secure_installation

Enter current password for root (enter for none): 엔터
Set root password? [Y/n] y
New password: 패스워드 입력
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

* 로그인
$ sudo mysql -uroot -p

* 워드프레스용 DB 생성
create database wordpress;

* 워드프레스 DB에 접근할 수 있는 유저 생성
create user 사용자이름 identified by '패스워드';

* 생성한 유저에 워드프레스 DB에 대한 모든 권한을 부여
grant all privileges on wordpress.* to '사용자이름'@'localhost' identified by '패스워드';

* 권한변경을 적용
flush privileges;


4. 워드프레스 설치

* html 폴더 안의 모든 파일 삭제
$ cd /var/www/html/
$ sudo rm *

* 워드프레스 다운로드
$ sudo wget http://wordpress.org/latest.tar.gz

* 다운로드한 파일의 압축해제
$ sudo tar xzf latest.tar.gz

* 워드프레스 폴더안의 모든파일을 현재 폴더로 이동
$ sudo mv wordpress/* .

* 압축파일과 빈 워드프레스 폴더를 삭제
$ sudo rm -rf wordpress latest.tar.gz

* 워드프레스 셋업
http://localhost 로 접속하여 웹브라우저 상에서 셋업


5. SSL 설정

* Let's encrypt 설치
$ sudo apt install letsencrypt

* HTTP-based DCV 방식으로 서버 인증
$ sudo letsencrypt certonly --webroot --webroot-path=/var/www/html -d test.com -d www.test.com

* 인증성공시 인증서 발급
/etc/letsencrypt/live/test.com/ 폴더에 인증서가 생성된다.
cert.pem(인증서 파일), chain.pem(인증서 발급자 파일),
fullchain.pem(cert.pem 과 chain.pen 을 하나로 합쳐놓은 파일),
privkey.pem(인증암호를 해독하는 개인키)

Apache2는 cert.pem, chain.pem, privkey.pem 을 사용.
Nginx는 fullchain.pem, privkey.pem 을 사용.

* Nginx 설정
/etc/nginx/sites-available/default를 다음과 같이 수정한다.

[code]
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name www.test.com test.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 default_server;
    listen [::]:443 default_server;

    root /var/www/html;
    index index.html index.htm index.php;
    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    ssl                  on;
    ssl_certificate      /etc/letsencrypt/live/test.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/test.com/privkey.pem;
    ssl_ciphers  HIGH:!aNULL:!MD5;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }
}
[/code]

* 인증서 갱신
$ sudo letsencrypt renew

* 인증서 삭제
$ certbot revoke --cert-path /etc/letsencrypt/live/test.com/cert.pem
$ certbot delete --cert-name test.com
2019/04/09 08:55 2019/04/09 08:55
Posted
Filed under 개발/Linux
* 한글폰트 설치
sudo apt install fonts-unfonts-core

* 한글입력기 설치
sudo apt install ibus-hangul

* 시스템언어 변경
Menu → Preferences → Raspberry Pi Configuration → Localisation → Set Locale → Language: Korean, Country: KR, Character Set: UTF-8 로 설정.
2019/04/09 07:49 2019/04/09 07:49
Posted
Filed under 개발/Linux
* 방화벽 설정확인
sudo ufw status verbose

* 포트개방
sudo ufw allow [port]/[optional: protocol]
 ex) sudo ufw allow 22/tcp
웹사이트 운용을 위해서는 88/443 포트를 개방

* 포트폐쇄
sudo ufw deny [port]/[optional: protocol]
ex) sudo ufw deny 22/tcp

* ufw 활성화
sudo ufw enable

* Gufw 설치 (GUFW를 통해 GUI 방식으로 ufw 설정가능)
sudo apt install gufw

2019/04/09 00:18 2019/04/09 00:18