TAR(Tape ARchive)라고하는 것으로 이름에 있듯. 테이프(저장 장치)에 데이터를 입력하듯(하기 위해) 사용하는 포멧이다.


 Tape는 특징이 하나의 파일을 그대로 넣는 것이 특징인데, 파일의 끝과 시작을 알 수가 없다. 그래서 TAR을 이용해서 파일을 일정한 간격으로 나눠서 넣고, 파일의 끝과 시작을 정의 내려서 테이프에 저장/테이프에 읽어오기 등을 할 수 있다.


 이 포멧의 특징은, 해당 파일들을 전부다 일정한 간격으로 균일하게 나눠서 넣는 특징을 갖는다.(그래서 압축이 되지 않고, 오히려 용량이 증가하는 경우도 있다.)


 이 포멧의 단점은 해당 파일을 그대로 넣기 때문에 고장 유무를 알기 어렵고(헤더에서 검사하는 헤더 부분이 없다.)


 그래서, 원본에 온전한 것 처럼 보이지만, 사실은 깨진 경우도 있다.(그래서 SHA-1/2/3이나 MD-5 등을 이용해서 해시값를 따로 가지고 있어야 되는 경우도 있다.)


 주로 사용하는 것은 여러 파일들을 원본을 그대로 묶어 하나의 파일로 만들기 위해서 사용을 한다.


 요즘은 Zip등을 사용하지만, 단일 파일을 압축하는 gzip이나 mcm 등의 파일들에게 문서 압축을 원하는 것은 매우 어렵다. 그래서, 하나의 파일로 묶는 TAR을 사용해야 되는 경우가 생기는 것이다.


 그리고 엄청난 차이는 아니지만, zip/rar 등은, 각 파일마다 압축이 되어 있어서 tar로 묶어서 한 것에 비해선 파일 크기가 크다. 다시 말해 tar로 압축하는게 압축률이 매우 조금 증가시켜주는 경우가 있다.(큰 차이는 아니다.)


 tar는 리눅스(정확하겐 유닉스)에 사용된 압축 방법이라서 Windows에서 사용할려면, 압축 프로그램을 사용하거나(반디집, 알집 Winzip 등), gnu tar을 다운 받아서 사용하는 것이 좋다.


 

compress.zip

 해당 파일을 다운받으면, tar과 gzip등이 들어가 있는 것을 확인 할 수 있다.


 리눅스에서 사용할때는 tar는 gzip도 같이 사용할 수 있기 때문에, 문제 없으나, windows에서는 따로 설정해줘야 된다.


 일단, 리눅스는 잘 알려져 있듯, 다음과 같은 명령어를 사용하면 된다.


1
tar zcvf fileNames.tar.gz fileNames
cs


 fileNames는 폴더/파일 전부다 적용이 된다.


 z : gzip을 사용하기 위한 것으로 gzip을 사용해서 압축을 하고 싶지 않다면, 넣지 않아도 된다.


 c : create의 약자로 압축파일을 만든다라는 뜻이다.


 v : 압축하는 과정을 프린트하여 화면상에 띄운다.


 f : 파일 이름을 지정한다.


 여기서 윈도우는 gzip을 사용하지 못하기 때문에, z을 빼면 된다.


1
tar cvf fileNames.tar.gz fileNames
cs


 이렇게 하면, tar로 압축이 된다.


 다음은 압축을 해제하는 방법이다.


 방법은 유사하나, c로 압축 파일을 생성하는 것이 아닌, x를 이용해서 압축을 해체하면 된다.(x는 무슨 약자인지 모르겠다.)


1
tar xvf fileNames.tar.gz fileNames
cs


Posted by JunkMam
,

 최근 기계식 키보드를 사용하고 있다.(덕분에 한글 타속이 200~300사이였는데, 300~400이 되었다.)


 그런데, 기계식 키보드의 특징이 기판이 무사하다고 할 경우에 기계식 스위치의 수명으로 키가 입력이 안되는 경우도 있다는 점이 있다.


 이것은 자주 사용하지 않는 스위치는 수명이 남아 있지만, 자주 사용하는 스위치는 수명이 빨리 나간다. 라는걸 알 수 있게 된다.


 그래서 이걸 해결하기 위해서 키보드의 키의 정보를 확인하는 장치가 필요하다. 라고 생각하여 검색해보았다.


 키보드 입력을 확인 하는 프로그램이다.


 해당 키보드의 입력이 이상한지 아닌지를 확인 하는 용도로 사용할 수 있다.


 


 해당 프로그램의 모습이다.


 이 프로그램은 터치할 경우에 생기는 프로그램의 정보를 가지고 올 수 있다.


 Num 위에 있는 숫자는 해당 키의 상태를 뜻하는 것이고, 검은색(Ctrl에 있는 부분)은 누르고 있는 상태, 주황색으로 되어 있는 경우는 키보드의 눌렀었던 정보이다.


 Led Test는 키보드의 LED을 확인하는 것으로 Num(Number Lock)이나 ScrLk(Scroll Lock), CapsLock의 불이 제대로 들어오는지 여부를 보여준다.


 해당 키보드에서 불이 들어오는 것으로 LED가 고장났는지 여부를 확인 할 수 있다.


 Clear라는 버튼은 해당 데이터를 전부다 없어진다.


 이렇게해서 키보드를 확인 할 수 있다.


 파일

key_test.exe



'연습' 카테고리의 다른 글

MySQL 백업/복원  (0) 2016.10.10
리눅스 사용법 -사용자 추가하기-  (0) 2016.10.09
Notepad++의 FTP 플러그인(Npp FPT) 설치 및 사용법.  (0) 2016.10.07
Notepad++ 설치  (0) 2016.10.06
그누보드 메뉴 설정.  (0) 2016.10.05
Posted by JunkMam
,

 홈페이지 작업을 할 경우에 FTP로 작업을 하는 경우가 있다.(SFTP는 예전에 작성한 글처럼 보안용 SSL을 사용한 암호화된 FTP이다.)


 설치 방법.



 Plugins > Plugin Manager > Show Plugin Manager을 클릭하면, 다음과 같은 창이 띄워진다.



 여기서 플러그인을 추가할 것을 고를 수 있다.



 여기서 Installed가 된 것을 표기되는데, 여기서 NppFTP라는 Plugin이 있는 걸 알 수 있다.


 여기 NppFTP을 체그한 후에 Install을 클릭하면, 다운로드하면서 Plugin을 설치되는걸 알 수 있다.


 상단, 아이콘에 다음과 같은 아이콘이 추가되고

 Plugins라는 메뉴에서 NppFTP라는 아이템이 추가 되는걸 알 수 있다

 NppFTP을 클릭하면, 다음과 같은 창이 추가 되면서 메모장을 사용할 수 있게 되어 있다.



 여기서 우측창이 FTP을 적용하는 창이다.



 톱늬 바퀴 아이콘을 클릭하면, 현재 메뉴가 띄워진다.

 General settings라는 것은 전역 변수나 메모리 캐시[각주:1]등을 설정할 수 있게 한다. 일반적으로는 Users 폴더에 사용이 되는데, 여기에 저장되는게 싫다면, General settings로 수정하길 바란다.



 Profile settings을 클릭하면, 현재 창이 띄워진다.

 이 창은 접속을 하기 위한 Server 정보를 저장시키는 창이다.

 여기서 Hostname은 서버의 IP를 입력하고(IP가 모르면, 도메인을 사용해도 된다.)


 Port는 접속 포트를 뜻하는 것이다.


 Username은 접속하기 위해서 저장해야되는 정보.


 Password는 고정 Password을 사용하거나 Ask for password라는 것을 하면, 접속할 때마다 물어보는 형태이다.(체크를 하면, 암호 저장이 아니다.)


 Timeout은 접속 시도하는 시간을 뜻하는것이다.


 Initial remote directory는 해당 서버의 접속할 폴더 위치를 뜻한다.


 이렇게해서 폴더의 정보를 입력하면 이상 없이 정보를 입력하게 된 것이다.



 이렇게 Profile settings에 입력한게 추가 되어 있음을 알 수 있다.

 이걸 클릭하면, 이상없이 접속되는지 확인을 할 수 있게 된다.


 접속을 해서 오류가 나지 않는다면, 이상없이 접속이 되고 해당 창에서 Directory Tree가 출력되는걸 알 수 있다.

  1. 메모리 캐시 : 임시적으로 파일을 저장해서 사용할 수 있게 만드는 것이다. [본문으로]
Posted by JunkMam
,

 Hostinger라고 하여, 유/무료 호스팅 사이트이다.


 호스팅이란, 컴퓨터 서버를 다른 곳에 두어 관리하는 것으로 회사가 제공해주는 컴퓨터의 공간을 임시로 빌린다. 라고 보면 간단하게 설명이 될 것이다.


 호스팅의 장점은 IP을 구매할 필요가 없고, 네임서버 같은 웹사이트 등을 제작할때 사용하는 비용을 처리할 수 있으며, 트래픽에 따른 비용을 회사에게 임대하는 비용으로 사용하여 트래픽 증가에 따른 비용을 어느정도는 처리가 될 수 있다.


 이것 때문에, 개인 서버를 운영하는 사람들은 호스팅 회사를 이용하는 것이 아주 편할 수도 있다.


 여기서 설명하고자 하는 사이트는 Hostinger라는 사이트의 호스팅이다.


 사이트 주소는 다음과 같다.


 http://www.hostinger.kr/



 해당 사이트의 가입 형태이다.


 회원이 가입이 되어 있다면, 상단부에 ID와 PASSWORD을 입력할 수 있는 공간이 존재한다.


 


 여기서 가입한 이메일과 PASSWORD를 입력하면, 관리 페이지로 이동하게 되는데,


 


 여기서 간단한 방식으로 호스팅과 도메인 VPS등을 사용할 수 있게 된다.



 새로운 호스팅 계정을 생성하게 되면, 기본(무료)와 프리미엄, 비지니스가 있다.

 저기에 나와있는 가격은 3년 할인 원/월 가격으로, 최대 3년 계약을 할 수 있다.(계약기간이 끝나면, 연장을 할 수 있게 되어 있다. 자세한 사항은 고객센터를 이용하길 바란다.)

 

 무료 호스팅설치를 사용한다면, 도메인과 서브 도메인이 있다.


 도메인은 간단하게 설명하면, 특정 IP의 별명이라고 이해하면 쉽게 이해가 될 것이다.


 naver.com 같은 것이 네이버의 서버(IP) 라고 생각할 수 있지만, 정확하게는 naver.com은 도메인 주소를 뜻한다.

 IP는 숫자(255 or HexCode)로 구성되어 있는 IPv4와 IPv6로 나뉘어 져있는데, 이것을 전부다 외울 수 없기 때문에, 사람들이 알기 쉽게 구성하여 연결하도록 도움을 주는 형태를 도메인이라고 하며, 네임 서버가 그것을 처리해준다.


 서브 도메인은 해당 도메인에서 하위 도메인을 뜻한다.

 쉽게 tistory.com에서 존재하는 내 블로그인 jihadw.tistory.com이 서브 도메인이 된다.


 도메인 또한 유지하기 위해서는 추가 비용이 들기 때문에, 왠만해선 서브 도메인을 사용하는 것이 편하다.


 비밀번호는 FTP등을 사용하기 위해서 구성하는 비밀번호이다.


 이렇게 하면, u(숫자)로 사용자의 번호와 해당 호스팅을 저장할 수 있는 공간이 만들어 지게 된다.


 그 후 웹서버로 사용하든 알아서 사용하면 된다.


 Hostinger는 PHP를 이용하여 구성된 것으로 해당 사이트의 정보를 처리/관리해주게 된다.


 무료 호스팅 상품에서 주의 사항은 2Gbyte의 용량과 100Gbyte의 대역폭[각주:1]을 제공한다.

 2개의 MySQL데이터 베이스와 이메일 계정을 제공하므로, 이걸 이용하는 것도 나쁘진 않다.


 그리고 서버의 안정성이 약간 떨어진다. 라는게 있는데, "CPU의 제한 초과" 및 가끔 사이트의 접속 불안정하므로 간단하게 웹서버를 운용하는 용도로 사용하는 것이 좋을 듯 싶다.

  1. 대역폭이란, 사용자가 사이트를 이용하는 데이터의 폭이라고 이해하면 된다. 대역폭은 사용자와 서버간의 주고 받는 횟수와 파일의 크기에 좌우된다. [본문으로]
Posted by JunkMam
,

 ffmpeg를 이용해서 영상에 있는 소리를 mp3로 추출하는 방법이다.


 

1
ffmpeg -i input.mp4 -codec:a libmp3lame -qscale:a 2 output.mp3
cs



 여기서 mp3로 변환하기 위해서 libmp3lame이라는 라이브러리를 사용하였다.


 qscale는 퀄리티이다. 얼마나 좋음 음색을 표현하는가? 라고 이해하면 될 것 같다.


 여기서 mp3등 연속적인 데이터를 저장시키는 스트림 파일들의 특징은 bitrate라는 것을 가진다.


 bitrate란, bit 데이터 전송률이라고 한다.


 이 데이터가 높으면 높을수록 전송 속도가 빠르고, 효과가 좋다.(하지만, 원본 보다 상향되진 않는다.)

Posted by JunkMam
,

 현재 인공지능을 이용해서 파일을 압축하는 프로그램이 나왔다.

 대표적인 방법으로는 paq라는 프로그램이다.[각주:1]



 paq를 개량해서 lite paq, fast paq 등 경량화 및 속도를 올린 paq 프로그램들이 나왔고, 혹은 paq 방식의 알고리즘인 CM(Context Mixing)을 이용해서 만든 프로그램이 있다.


 여기서 MCM또한 CM 알고리즘을 이용해서 만들어낸 프로그램이다.


 MCM를 사용하는 방법을 작성할려고한다.


 MCM은 일단, 폴더를 제작해서 압축하는 방식이 없다.(단일 파일만 압축할 수 있다는 뜻이다.)


 일단, 각각의 파일을 압축해서 합치는 방식은 오히려 파일 용량의 압축이 적으니 단일 파일을 압축시키는 것이 좋은 경우가 많이 발견되었다.


 MCM을 사용할려면 기본적으로 기준 환경을 맞춰줘야지 속도가 잘 나온다.


 환경

 Memory 최대 8G 이상.


 최고 압축을 사용할려면, Memory가 최대 8G 이상이 아니라면, 오히려 설명이 되어 있는 파일보다 속도가 제대로 안나온다.(페이징 작업에 의해서 속도가 감소하는 걸 느낄 수 있다.)


 paq보다 mcm가 메모리 사용량과 속도명에서 좀 더 좋은 점이 있다.(drt|lpaq을 이용하면 더 낫다 라는 설명이 되어 있지만, drt랑 lpaq가 제대로 안 돌아갔다.)


 아직까진 미완성이지만, mcm를 잘만 사용한다면, 용량을 줄여서 들고 다닐 수 있을 것이라고 나는 생각하고 있다.


 그럼, 이제 MCM을 사용하는 방법을 설명할려고 한다.


 mcm을 친다면, 다음과 같은 문장이 나오는 걸 알 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Error, input or output files missing
======================================================================
mcm compressor v0.83, by Mathieu Chartier (c)2015 Google Inc.
Experimental, may contain bugs. Contact mathieu.a.chartier@gmail.com
Special thanks to: Matt Mahoney, Stephan Busch, Christopher Mattern.
======================================================================
Caution: Experimental, use only for testing!
Usage: mcm.exe [command] [options] <infile> <outfile>
Options: d for decompress
-{t|f|m|h|x}{1 .. 11} compression option
t is turbo, f is fast, m is mid, h is high, x is max (default mid)
0 .. 11 specifies memory with 32mb .. 5gb per thread (default 6)
10 and 11 are only supported on 64 bits
-test tests the file after compression is done
Examples:
Compress: mcm.exe -m9 enwik8 enwik8.mcm
Decompress: mcm.exe d enwik8.mcm enwik8.ref
Failed to parse arguments
cs


 MCM은 총 4가지의 설정과 0~11까지 설정하는 것이 있다.


 t는 turbo, f는 fast, m는 mid, h는 high, x는 Max이다.(기본적으로 mid로 설정되어 있다.)


 t에서 x로 가면 갈 수록 속도가 느리고, 압축률이 높아진다.


 0~11의 설정이 되는데, 이것은 32Mb에서 5~6GByte까지 사용이 된다.


 여기서 10과 11은 64Bit에서만 지원이 가능하므로, 주의를 요한다. 라고 되어있다.


 그리고 압축을 풀려면, d을 사용하면, decompression이라고 할 수 있다.


 압축/풀기 예제

1
2
mcm -x11 enwik8 enwik8.mcm
mcm d enwik8.mcm enwki8
cs

 

 이렇게 해서 사용을 할 수 있게 된다.


 이것이 조금 더 발전을 해서 압축율이 높은 프로그램이 완성이 되었으면 한다.

  1. 참조 : https://en.wikipedia.org/wiki/PAQ(2016-07-08) [본문으로]
Posted by JunkMam
,

 ffmpeg을 병합이 있다면, 잘라내는 방법이 있어야 될 것이다.


 이것 또한, ffmpeg wiki에 들어간다면, 찾을 수 있을 것이다.



 ffmpeg는 병합과 다른 점이 하나의 문서 파일을 이용하는 것이 아닌, 각각의 파일로 처리하는 것이다.


 파일로 출력하는 방식은 다음과 같다.


 

1
ffmpeg -i 자를영상.mp4 -ss 0 -62 -vcodec copy -acodec copy 잘려진 결과.mp4 -y
cs


 여기서 -i는 입력 파일을 뜻하고, -ss는 Start Second, -t는 해당 파일 범위를 뜻한다.


 -t는 Second 단위를 뜻한다.


 -vcodec 혹은 -c:v로도 표현이 가능한 것으로 video codec 혹은 codec : video를 뜻한다.


 -acodec 혹은 -c:a는 audio codec을 뜻한다. codec : audio를 뜻하기도 한다.


 여기서 각각 copy라는 뜻은 잘려나가는 영상의 코덱과 오디오의 설정을 동일화시킨거라도 이해하면 된다.


 -y는 동일 파일을 가지고 있을 경우에는 항상 덮어씌우는 작업을 뜻한다.


 그래서 위의 예제는 자를영상.mp4에서 0초에서 62초까지 잘라서 잘려진 결과.mp4라는 파일이 나오게 되는 것이다.

Posted by JunkMam
,

 ffmpeg을 병합해야되는 경우가 있다.

 병합을 하게 된다면, 용량이 증가하는 경우가 많다. 그래서 병합을 할려면, 한번에 볼려고 생각하는거 아닌이상, 병합을 하지 않는게 나은 것이다.


 ffmpeg의 사용법이 영어로는 존재한다.[각주:1]


 먼저 ffmpeg의 병합을 하기 위해서는 먼저 텍스트 파일로 만들어야한다.


 list.txt

 

1
2
3
4
# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'
cs



 이렇게 제작한다.


 여기서 '#'은 주석처리하는 것이다.


 file '파일명' 으로 설정을 할 수 있다.


 이렇게해서 list.txt을 넣어서 처리하면 된다.


 그런데, 이것이 영상파일이 아닌 정보를 병합하는 것이다. 라는걸 표시해야된다.


 

1
ffmpeg -f concat -i list.txt -c copy output
cs


 이렇게 사용해줘야한다.


 그리고 list.txt을 만드는 방법은 bash shell을 이용해서 넣는 것이다.


 컴퓨터 command을 이용해서 명령어를 이용해서 만들어 낼 수 있다.


 

1
(for %i in (*.wav) do @echo file '%i') > list.txt

cs


 이런식으로 말이다.


 powershell을 이용해서 만드는 것이라면, 다음과 같은 방식으로 표현을 할 수 있다.


 

1
2
3
4
$n=((Get-childItem ./*.mp4).name);
for($i=0; $i -le $n.length; $i++){
    $n[$i]>>list.txt
}
cs


 이렇게하면, 이름순으로 나와서 영상의 이름을 순차적으로 처리해줘야한다.

  1. https://trac.ffmpeg.org/wiki/Concatenate(2016-07-05) [본문으로]
Posted by JunkMam
,

 리눅스에서 xxd라는 프로그램이 존재한다.

 xxd란, 파일을 읽어서 hexa code로 변환해주는 프로그램이다.


 예을 들어서 xxd a.out > a_test.hex


 이런식으로 출력을 하게 되면, 다음과 같은 변화를 볼 수 있다.


 


 이걸 vi으로도 연결 할 수 있는 명령어이다.


 그래서 vi에서 다음과 같은 명령어를 사용하면 바뀌게 된다.


 :%!xxd


 그리고 되돌리기 위해선


 :%!xdd -r


 이렇게 해야지 되돌아간다.


 하지만, vim이 제대로 설치가 안된 상태에서는 다음과 같은 문제가 발생한다.

 


 이렇게


 xxd : command not found


 라는 오류가 발생하는데, 이것은 xxd가 제대로 설치가 되지 않아서 일어나는 현상이다.


 이것은 다음과 같은 사이트에서 설명이 적혀 있다.


 http://programmer-experience.blogspot.kr/2012/08/xxd-command-fedora-linux.html


 이것을 해결 하기 위해선,


 yum install vim-command 혹은

 yum install vim


 이렇게 해서 설치를 하면, 이상없이 사용이 가능하다.


 더 정확하게는 vim-command에서 존재하는 명령어인 xxd을 설치하는 것이기 때문에 vim-command을 설치해줘도 가능하다.


 이제 xxd을 통하여 Hexa Code로 변환하면서 사용하면 된다.


 단, 여기서 문제점은 xxd가 편집 프로그램이 아니다. 값을 변환해주는 프로그램이다.

 그래서 vi을 사용하다보면, 변환을 다시 해줘야 하는 문제점을 가진다. 그래서 사용하기엔 조금 불편하다.

 Hexa Code 변환 프로그램과 편집 프로그램을 같이 사용할 수 있는 프로그램을 구해서 사용하거나 만들어서 사용하는 것이 더 유용할 수 있다.

Posted by JunkMam
,

 7z에서 확인한 checksum을 다른데 가지고 와서 복사 이동 시켜야 되는 상황이 생겼다.


 그래서 명령어를 찾아보니 history에서 h라는 명령어를 사용하면 된다. 라고 나와있었다.

 하지만, 문제는 CRC32만 작동 되어서 문제가 되었다.


 그래서 찾아보니 다음과 같은 사이트에서 설명이 되어 있었다.


 7z h test.txt


 이렇게 사용할 경우 CRC32만 작동이 된다.


 하지만, -scrc{method} 이걸 이용하면, sha-1도 지원해준다.


 예을 들어서 다음과 같이 사용을 할 수 있게 된다.


 7z h -scrcsha256 test.txt


 이렇게 사용하면, sha-256이 지원이 된다.



 sha는 암호 해쉬 함수의 종류로 알고 있지만, 꼭 암호에만 사용되는게 아니다.


 해쉬 함수의 특징은 압축된 데이터로 중복/원본을 못하게/알게 사용하는 것이 목적이다.


 예을 들어서 "aasdlfkjaskrj14-0dflkjcxvlkjsadf123"이라는 데이터가 있고, 이걸 해쉬 함수를 돌린 결과가 "aswq"라고 하자.

 그러면, "aswq"라는게 "aasdlfkjaskrj14-0dflkjcxvlkjsadf123"이라는 것인지는 모르는 상태에선 "aswq"만으로는 알 수 없다.(암호는 "aswq"에서 "aasdlfkjaskrj14-0dflkjcxvlkjsadf123"가 나와야된다.[복호화])

 그리고 일정 크기(256byte 32byte등)로 줄이기 때문에 원문보다 작게 처리 할 수 있게 되기 때문에 사용되는 용량은 동일 하게 된다.


 문제는 크기가 고정되기 때문에, 중복의 문제점이 생긴다.


 예을 들어서 "aasdlfkjaskrj14-0dflkjcxvlkjsadf123"를 "aswq"로 만들어 냈는데,  "alwkdnwkalwkjaiweo1231laad"로도 "aswq"가 나오게 되면, 중복이 발생하게 된다.

 이 중복은 꼭 "aasdlfkjaskrj14-0dflkjcxvlkjsadf123"을 알 필요 없이 다른걸로 처리할 수 있다. 라는 뜻이 되며, 이것은 보안의 문제점이 생기게 된다.


 즉, 해쉬 = 암호. 라는 생각을 가지면 안된다.(암호만 사용하기엔 불안해서 사용하는 부분이라고 보는게 맞을 것이다.)


 필자는 "중복"(해쉬에선 충돌이라고 한다.)이 없다고 가정하여 데이터를 안전하게 저장되어 있는지 확인 할 때 쓸려고 하는 것이다.

Posted by JunkMam
,