월별 글 목록: 2014년 10월월

파일 타입별 확장자 분류..

파일을 기반으로 하는 서비스를 제공하는 많은 클라우드 서비스들은 파일을 타입별로 분류해서 제공하기도 하고 확장자를 기준으로 파일을 구분해서 파일의 정보를 알려준다. 전통적으로 파일을 구분하는 방법인 파일 확장자는 특정한 파일이 어떤 파일인지 구분하는 목적으로 만들어진 분류 방법으로, 확장자에 대한 자세한 정보는 나무위키 확장자 에서 확인할 수 있다. 그리고 http://filext.comhttp://www.file-extensions.org 에서도 확장자에 대한 정보를 확인할 수 있다.

많은 운영체제에서 디스크를 탐색하는 애플리케이션들은 개별 확장자에 대한 정보나 파일의 헤더를 확인해서 파일의 메타정보나 미리보기등도 제공한다. 하지만 디스크의 파일에 대한 타입별 분류는 거의 제공하지 않는다. 물론 이 기능보다는 인덱스를 통해서 쉽게 검색하도록 지원하고 있다.

그래서, 파일 기반의 서비스를 위해서 파일의 타입이 구분돼야 하는 서비스에서 유용하게 사용할 수 있는 파일 타입을 구분해서 정리해 봤다. 데이터는 다음과 같다.

텍스트 파일 : .applescript, .as, .as3, .c, .cc, .clisp, .coffee, .cpp, .cs, .css, .csv, .cxx, .def, .diff, .erl, .fountain, .ft, .h, .hpp, .htm, .html, .hxx, .inc, .ini, .java, .js, .json, .less, .log, .lua, .m, .markdown, .mat, .md, .mdown, .mkdn, .mm, .mustache, .mxml, .patch, .php, .phtml, .pl, .plist, .properties, .py, .rb, .sass, .scss, .sh, .shtml, .sql, .tab, .taskpaper, .tex, .text, .tmpl, .tsv, .txt, .url, .vb, .xhtml, .xml, .yaml, .yml 그리고 확장자 없는 파일

문서 파일 : .csv, .doc, .dochtml, .docm, .docx, .docxml, .dot, .dothtml, .dotm, .dotx, .eps, .fdf, .key, .keynote, .kth, .mpd, .mpp, .mpt, .mpx, .nmbtemplate, .numbers, .odc, .odg, .odp, .ods, .odt, .pages, .pdf, .pdfxml, .pot, .pothtml, .potm, .potx, .ppa, .ppam, .pps, .ppsm, .ppsx, .ppt, .ppthtml, .pptm, .pptx, .pptxml, .prn, .ps, .pwz, .rtf, .tab, .template, .tsv, .txt, .vdx, .vsd, .vss, .vst, .vsx, .vtx, .wbk, .wiz, .wpd, .wps, .xdf, .xdp, .xlam, .xll, .xlr, .xls, .xlsb, .xlsm, .xlsx, .xltm, .xltx, .xps

이미지 : .bmp, .cr2, .gif, .ico, .ithmb, .jpeg, .jpg, .nef, .png, .raw, .svg, .tif, .tiff, .wbmp, .webp

비디오 : .3g2, .3gp, .3gpp, .3gpp2, .asf, .avi, .dv, .dvi, .flv, .m2t, .m4v, .mkv, .mov, .mp4, .mpeg, .mpg, .mts, .ogv, .ogx, .rm, .rmvb, .ts, .vob, .webm, .wmv

오디오 : .aac, .aif, .aifc, .aiff, .au, .flac, .m4a, .m4b, .m4p, .m4r, .mid, .mp3, .oga, .ogg, .opus, .ra, .ram, .spx, .wav, .wma

이북 : .acsm, .aeh, .azw, .cb7, .cba, .cbr, .cbt, .cbz, .ceb, .chm, .epub, .fb2, .ibooks, .kf8, .lit, .lrf, .lrx, .mobi, .opf, .oxps, .pdf, .pdg, .prc, .tebr, .tr2, .tr3, .xeb, .xps

디스크 이미지 : .bin, .dmg, .img, .iso, .lcd, .ooo

압축 파일 : .ace, .alz, .bz2, .gz, .jar, .rar, .tar, .xz, .zip, 7z

이 자료는 클라우드 서비스의 대표인 Dropbox의 개발자 사이트에서 분류한 자료이고 이 자료에 더해서 디스크 이미지와 압축 파일의 분류를 추가했다.

* Reference
https://www.dropbox.com/developers/reference/devguide

안드로이드 컬러에서 알파(Alpha)값 사용

안드로이드 위젯에 많은 경우 알파(투명) 값을 줘서 위젯을 투명하게 만들기도 한다. 대부분의 경우 프로젝트에서 사용하는 컬러는 /values/colors.xml 파일에 기술한다. 이 파일에 기술하는 컬러는 #AARRGGBB의 형태를 가지고 있다. 이 형태는 자신이 가지고 있는 색을 표현하기 위해서 16진수의 2자리로 표현되어 있다. 그래서 각 A, R, G, B의 범위는 0~ 255의 값을 가지고 있다. 안드로이드에서 컬러는 이 클래스(http://developer.android.com/reference/android/graphics/Color.html)에 잘 설명되어 있다.

알파(A)의 값(0~100)에 해당하는 16진수의 헥사 값을 알아보자. 참고로 투명한 정도에 따라서 0~100%의 값으로 확인해보자. 알파값은 투명(0) ~ 불투명(100)의 값을 가지고 있다. 투명도에 따른 16진수의 헥사값은 다음의 공식으로 값을 확인할 수 있다. 아래의 20%의 값은 일반적으로 투명도가 80%라고 표현을 한다.

20% : 255 * 0.2 = 51 : 16진수의 헥사 값 33 : 투명도가 80%라고 한다.
50% : 255 * 0.5 = 127.5 : 반올림해서 80

이걸 기준으로 투명도에 따른 16진수 헥사 값을 확인하는 자바 코드는 다음과 같다.

		for (double i = 1; i >= 0; i -= 0.01) {
			i = Math.round(i * 100) / 100.0d;
			int rounded = (int) Math.round(i * 255);
			String hex = Integer.toHexString(rounded).toUpperCase();
			
			if (hex.length() == 1)
				hex = "0" + hex;
			
			int percent = (int) (i * 100);
			
			System.out.println(String.format("%d%% — %s", percent, hex));
		}

이 코드의 결과 값은 다음과 같다.

100% — FF
99% — FC
98% — FA
97% — F7
96% — F5
95% — F2
94% — F0
93% — ED
92% — EB
91% — E8
90% — E6
89% — E3
88% — E0
87% — DE
86% — DB
85% — D9
84% — D6
83% — D4
82% — D1
81% — CF
80% — CC
79% — C9
78% — C7
77% — C4
76% — C2
75% — BF
74% — BD
73% — BA
72% — B8
71% — B5
70% — B3
69% — B0
68% — AD
67% — AB
66% — A8
65% — A6
64% — A3
63% — A1
62% — 9E
61% — 9C
60% — 99
59% — 96
57% — 94
56% — 91
56% — 8F
55% — 8C
54% — 8A
53% — 87
52% — 85
51% — 82
50% — 80
49% — 7D
48% — 7A
47% — 78
46% — 75
45% — 73
44% — 70
43% — 6E
42% — 6B
41% — 69
40% — 66
39% — 63
38% — 61
37% — 5E
36% — 5C
35% — 59
34% — 57
33% — 54
32% — 52
31% — 4F
30% — 4D
28% — 4A
28% — 47
27% — 45
26% — 42
25% — 40
24% — 3D
23% — 3B
22% — 38
21% — 36
20% — 33
19% — 30
18% — 2E
17% — 2B
16% — 29
15% — 26
14% — 24
13% — 21
12% — 1F
11% — 1C
10% — 1A
9% — 17
8% — 14
7% — 12
6% — 0F
5% — 0D
4% — 0A
3% — 08
2% — 05
1% — 03
0% — 00

아래의 0%가 투명하고 100%가 불투명하기 때문에, UI 가이드에서 90%의 투명도로 지정한 경우 #1ARRGGBB와 같이 10%의 헥사값을 추가해서 원하는 컬러를 표현할 수 있다.

* Reference
http://stackoverflow.com/questions/11285961/how-to-make-a-background-transparent-20-in-android