์ผ๋ฌ์คํธ๋ ์ดํฐ ๊ณต๋ถํ๋ ค๊ณ ์ฐพ๋ ๋์ค Adobe์์ ์ ๊ณตํ๋ ๋ฉ๋ด์ผ์ ์ฐพ์๋ค.ย
๋น๋ก ๋ฒ์ ผ๋ ๋ค๋ฅด๊ณ ํ๊ธ๋ก ์ค๋ช ๋์์ง๋ง ๊พ ์ธ๋งํ๋ค.
DEAR READER
d e v o n
occasionally subtle
No title available
he wasn't even looking at me and he found me
we're not kids anymore.
dirt enthusiast
๐ชผ
Lint Roller? I Barely Know Her

if i look back, i am lost
Sade Olutola
2025 on Tumblr: Trends That Defined the Year
Cosmic Funnies
cherry valley forever

โ

No title available

blake kathryn

No title available
Peter Solarz

PR's Tumblrdome
seen from United Kingdom
seen from Russia

seen from Brazil

seen from United States
seen from United States
seen from United States

seen from United States
seen from United States
seen from United States

seen from United States

seen from United States

seen from United States
seen from United States
seen from United States
seen from United States
seen from United States
seen from United Kingdom
seen from Vietnam
seen from United States
seen from Russia
@88240-blog
์ผ๋ฌ์คํธ๋ ์ดํฐ ๊ณต๋ถํ๋ ค๊ณ ์ฐพ๋ ๋์ค Adobe์์ ์ ๊ณตํ๋ ๋ฉ๋ด์ผ์ ์ฐพ์๋ค.ย
๋น๋ก ๋ฒ์ ผ๋ ๋ค๋ฅด๊ณ ํ๊ธ๋ก ์ค๋ช ๋์์ง๋ง ๊พ ์ธ๋งํ๋ค.
#eclipse heapsize ๋๋ฆฌ๊ธฐ
์ฐธ๊ณ ์ฌ์ดํธ ์ฒ์๋ถ๋ถ ๋ฐ๋ผํ๋ค๊ฐ ๊ท์ฐฎ์์ ์ ์ผ ๋ง์ง๋ง๋ง ๋ฐ๋ผํ๋๋ฐ ๋๋ค.
์... ๋ญ์ง?... ์ฌํผ ๋ด๊ฐ ํ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. Eclipse์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ย memory monitor
Eclipse ๋ฉ๋ด๋ฐ : Window > Preferences > General
Show heas status ์ฒดํฌ๋ฐ์ค์ ํ
2. Plugin ์ค์น
ย http://www.kyrsoft.com/downloads/downloads.htmlย ์ฐธ๊ณ
1) Eclipse Status Monitor
a. ์ URL์์ย stmemmonitor_v1.1_R3.1.1_dist.zipย ํ์ผ ๋ค์ด๋ก๋ํ๋ค.
b. ๋ค์ด๋ก๋ ํ zip ํ์ผ์์ย plugins ๋๋ ํ ๋ฆฌ ํ๋จ์ com.kyrsoft.stmemmon_1.1.0 ๋๋ ํ ๋ฆฌ๋ฅผย Elipse pluins ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌํ๋ค.
c. Eclipse๋ฅผ ์ฌ์คํํ๋ค.
์ฐ์ธก ํ๋จ ์ํ๋ฐ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์ธํ ์ ์๋ค.
Window > Preferences > Status Memory Monitor์์ ์ต์ ์ ์ค์ ํ ์ ์๋ค.
* Status Monitor Monitor๋ก ํ๊ธฐ๋์ด ์๋ค.
2) Eclipse Memory Monitor
a. ์ URL์์ย swt_memmonitor_v1.6_R3.1.1_dist.zipย ํ์ผ ๋ค์ด๋ก๋ํ๋ค.
b. ๋ค์ด๋ก๋ ํ zip ํ์ผ์์ย plugins ๋๋ ํ ๋ฆฌ ํ๋จ์ de.kyrsoft.memmonitor_1.6.0 ๋๋ ํ ๋ฆฌ๋ฅผย Elipse pluins ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌํ๋ค.
c. Eclipse๋ฅผ ์ฌ์คํํ๋ค.
์ฐ์ธก ํ๋จ ์ํ๋ฐ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์ธํ ์ ์๋ค.
Window > Preferences > Memory Monitor์์ ์ต์ ์ ์ค์ ํ ์ ์๋ค.
3. eclipse.exe ๋ฐ๋ก๊ฐ๊ธฐ ์์ฑ์ค์
์ด๊ฒ์ด ์ง์ ํ eclipse ์์ฒด ๋ฉ๋ชจ๋ฆฌ ์ค์ ์ธ๋ฏ ํ๋ค.
eclipse์์ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ํฐ๋ก ํ์ธํด ๋ณด๋,ย ์๋์ ๊ฐ์ด vm option์ผ๋ก ์ค์ ํ heap size๊ฐ ์ ์ฉ๋๋ค.
eclipse.exe๋ฅผ ์คํํ ๋ arguments๋ฅผ ์ ๋ฌํด ์ค๋ค.
ย ย C:\eclipse-galileo\eclipse.exe -vmargs -Xms512m -Xmx512m -XX:MaxPermSize=128m
[์ถ์ฒ]ย Eclipse Memory Monitor & Heap Size|์์ฑ์ย saturna
#PHP - injection SQL ํดํน ๋์์ฑ
1.ย ์ผ๋ฐ ๋์ฑ
-๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋์ ํ๋ ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ค์ ์ ๊ฒํ์ฌ ์ฌ์ฉ์์ ์ ๋ ฅ ๊ฐ์ด SQL injection์ ๋ฐ์์ํค์ง ์๋๋ก ์์ ํ๋ค.
-์ฌ์ฉ์ ์ ๋ ฅ์ด SQL injection์ ๋ฐ์์ํค์ง ์๋๋ก ์ฌ์ฉ์ ์ ๋ ฅ ์ ํน์๋ฌธ์(' " / \ ; : Space -- +๋ฑ)๊ฐ ํฌํจ๋์ด ์๋์ง ๊ฒ์ฌํ์ฌ ํ์ฉ๋์ง ์์ ๋ฌธ์์ด์ด๋ ๋ฌธ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ์๋ ์๋ฌ๋ก ์ฒ๋ฆฌํ๋ค.
-SQL ์๋ฒ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ์ง ์๋๋ก ์ค์ ํ๋ค. ๊ณต๊ฒฉ์๋ ๋ฆฌํด ๋๋ ์๋ฌ ๋ฉ์์ง์ ๋ํ ๋ถ์์ ํตํ์ฌ ๊ณต๊ฒฉ์ ์ฑ๊ณตํ ์ ์๋ SQL Injection ์คํธ๋ง์ ์์๋ผ ์ ์๋ค. ๋ฐ๋ผ์ SQL ์๋ฒ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ธ๋ถ์ ์ ๊ณตํ์ง ์๋๋ก ํ๋ค.
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์ ๊ถํ์ ์ ํํ๋ค. ๊ฐ๋ฅํ๋ฉด ์ผ๋ฐ ์ฌ์ฉ์ ๊ถํ์ผ๋ก๋ ๋ชจ๋ system stored procedures์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ SQL Injection ์ทจ์ฝ์ ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด์ ๋ํ ์ ์ด๊ถ์ ์ป๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉ์ค์ธ ์๋ฒ์ ๋ํ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋๋ก ํ๋ค.
-php.ini ์ค์ ๋ณ๊ฒฝ : php.ini ์ค์ ์ค magic_quotes_gpc ๊ฐ์ On์ผ๋ก ์ค์ ํ๋ค.
Magic quotes
Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On ย ; Off์์ On์ผ๋ก ๋ณ๊ฒฝํ๋ค.
Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off
2. PHP์ผ๊ฒฝ์ฐ ์์ ๋ฐฉ๋ฒ
-addslashes() ํจ์ ์ฌ์ฉ
: ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฐ๋ค($_GET, $_POST)์ ๋ชจ๋ addslashes() ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ฒ๋ฆฌํ์ฌ ์ค๋ค.
: ์ฉ๋? DB Query์ ๊ฐ์ด ์ธ์ฉ๋ ๋ถ๋ถ์์ ์ญ์ฌ๋์ฌ๋ฅผ ๋ถ์ฌ์ ๋ฐํํ๋ค. ํด๋น ๋ฌธ์์๋ ์์ ๋ฐ์ดํ, ํฐ ๋ฐ์ดํ, ์ญ์ฌ๋์ฌ, NULL์ด ์๋ค. SQL Injection ๊ณต๊ฒฉ์ ์ํด์ ์ฌ์ฉํ๋ค.
: ์ ์ฉ ๊ฐ๋ฅํ PHP : PHP 3 ์ด์
-์์ ํ SQL Injection ์์
$query = sprintf("SELECT id,password,username FROM user_table WHERE id='%s';",addslashes($id));
// id๋ณ์๋ฅผ ๋ฌธ์ํ์ผ๋ก ๋ฐ๊ณ , id๋ณ์์ ํน์๋ฌธ์๋ฅผ ์ผ๋ฐ๋ฌธ์๋ก ๋ณํํ๋ค.
// @ ๋ก php ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ง๋๋ค.
KTH3 ์ปจํผ๋ฐ์ค ๊น์์์จ์ UX, ์ ์์ผ ํ๊ณ ์ถ์ด์๋ฅผ ๋ณด๋ฉด์ย ๊ณต๋ถํ๋ค๊ฐ
Agile ์ ๋ฆฌ๊ฐ ์๋์์ด์ ํผ์๋ค.ย
๋ค์ ๋งํฌ๋ ์ฐธ๊ณ ํ ๊ฒ. 2012 H3 ์ปจํผ๋ฐ์ค ๊น์์์จ์ UX, ์ ์์ผ ํ๊ณ ์ถ์ด์ ๊ฐ์ฐ๋ด์ฉ์ด๋ค.
*ย http://h3.kthcorp.com/2012/session/index/S040
# linux console ๊ณต๋ถ (์งํ์ค...)
* ๋ค์ด๊ฐ๊ธฐ ์์
์ฐ์ฐ์(operator)์ ํผ์ฐ์ฐ์(operand)์ ๋ํ ๊ฐ๋ ์ ๊ฐ๋จํ๊ฒ ์์๋ก ์ค๋ช ํ์๋ฉด,
1 + 2 = 3 ์ผ๋, ์ฌ๊ธฐ์ +์ =๋ ์ฐ์ฐ์์ด๋ฉฐ 1, 2, 3์ ํผ์ฐ์ฐ์๋ผ๊ณ ํ๋ค.
๊ฐ๋จํ๊ฒ ์ฐ์ฐ์๋ ์ฐ์ฐ์ ํ๋ ๊ฒ์ด๋ฉฐ ํผ์ฐ์ฐ์๋ ์ฐ์ฐ์ ๋นํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ฝ๋ค.
๋ค์ํ๋ฒ, ์์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ค 2๋ฒ์ ์๋ฅผ ๋ค์๋ฉด
$ echo "some string" > file์์ echo, >, file์ ์ฐ์ฐ์์ด๊ณ some string์ ํผ์ฐ์ฐ์์ด๋ค.
์ ์ด์ ๊ณต๋ถ๋ฅผ ์์ํด๋ณด์!
1. ๋น ํ์ผ ๋ง๋ค๊ธฐ
$ > file
์ฐธ๊ณ ) ํ์ผ์ด ์์ฑ๋์๋์ง ํ์ธํ๊ธฐ ์ํด $ ls
2. file์์ ๋ด์ฉ ์ฝ์
2.1) $ echo "some string" > file
๊ฐฑ์ . ๋ด์ฉ ๋ฎ์ด ์์ฐ๊ธฐ
2.2) $ echo "something..." >> file
๋ง๋ถ์ด๊ธฐ. ์ด์ด์ฐ๊ธฐ
์ฆ, >์ >> ๋๋ค ํ์ผ์์ ๋ด์ฉ์ ์ฝ์ ํ ์ ์๋ค.
ํ์ง๋ง >๋ ์๋ก ์ฐ๋๊ฒ์ด๊ณ >>๋ ์๋ ๋ด์ฉ ๋ค์ ์ด์ด ์ฐ๋ ๊ฒ์ด๋ค.
์ฐธ๊ณ ) ๋ด์ฉ ํ์ธํ ๋๋ $ cat file
3. ๊ฐํ ๋ฐ๊พธ๊ธฐ๊ฐ ๋์ง ์๋๋ก ๋ด์ฉ ์ฝ์ ํ๊ธฐ
1, 2๋ฒ๊ณผ ๊ฐ์ด ๋ด์ฉ์ ์ ๋ ฅํ๋ฉด ์๋์ผ๋ก ์ํฐ๋ฅผ ์น ๊ฒ ์ฒ๋ผ ๊ฐํ์ด ๋ฐ๋๋๋ก ๋๋ค.ย
ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ดํ๋ฉด ๋จ ๋ฐ๊พธ๊ธฐ๊ฐ ๋์ง ์๋๋ค.
$ echo -n "foo bar baz" >> file
์ถ๋ ฅ) some string
ย ย ย ย something...
ย ย ย ย foo bar baz $ ์ฝ์๋ช ๋ น์ด ์ ๋ ฅ ์ฐฝ์ด ์ด๋ ๊ฒ ๋ฐ๋ก ์์๋๋ค (๊ฐํ๋ฐ๊พธ๊ธฐ๋ฅผ ์ํ์ผ๋ฏ๋ก)
* ์ฐธ๊ณ ์ฌ์ดํธ :
http://www.catonmat.net/blog/bash-one-liners-explained-part-one/
#Yahoo yuicompressor
- yahoo ย yuicompressor ์ฌ์ฉ ๋ฐฉ๋ฒย
https://github.com/yui/yuicompressor/downloads
์ด๋ถ๋ถ์ ์ฐธ๊ณ ํด์ ์ฌ์ฉํ๋ฉด ๋๋ค.
java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js --charset utf-8
์ค๋ช ์ ํ์๋ฉด,
yuicompressor๋ฅผ ๋ค์ด๋ฐ์์ ์์ถ์ ํ์ด๋ณด๋ฉด yuicompressor-x.y.z.jar๋ผ๋ ํ์ผ์ด์๋ค.
๊ทธ๊ฑธ ์์ ํด๋ ์์ ๊ฐ์ด ๋ฃ์ผ๋ฉด ๋๋ค.
์ฐธ๊ณ ๋ก x.y.z๋ ๋ฒ์ ผ์ ๋งํ๋ฉฐ, ํ์ฌ๊น์ง ๋์จ ์ต์ ๋ฒ์ ผ์ 2.4.7๋ฒ์ ผ์ธ๋ฐ
๋ง์ฝ ์ ๋ฒ์ ผ์ ์ด๋ค ์น๊ณ ์๋ฅผ ๋ค์๋ฉด
yuicompressor-2.4.7.jar์ด๋ผ๊ณ ๋ฃ์ผ๋ฉด ๋๋ค๋ ๋ง!
๊ทธ๋ฆฌ๊ณ myfile.js๋ min.js๋ก ๋ฐ๊ฟํ์ผ๋ช ์ ๋ ฅ
myfile-min.js๋ ๋ฐ๊ฟํ์ผ๋ช ์ ์ง์ ํ๋ค.
- yahoo yuicompressor ๋ค์ด๋ฐ๋๊ณณย
http://developer.yahoo.com/yui/compressor/
* ์ฐธ๊ณ ์ฌ์ดํธ
:ย http://guny.kr/js-packing-editplus/ย (์ค๋ช ์๋์์ผ๋ ์ฐธ๊ณ !)
#PHP - ํ์ผ์ ํ์ฅ์๋ง ๋บ ํ์ผ์ด๋ฆ ๊ฐ์ ธ์ค๊ธฐ
$file_ext = strtolower(substr(strrchr($ํ์ผ์ด๋ฆ๊ฐ์ง๋ณ์, "."), 1)); $fileNameWithoutExt = substr($ํ์ผ์ด๋ฆ๊ฐ์ง๋ณ์, 0, strrpos($ํ์ผ์ด๋ฆ๊ฐ์ง๋ณ์, "."));
๋ค์์ 0๋ฒ์งธ ๋ฌธ์์ด์ ๊ฐ์ ธ์ค๋๊ฒ(strrchr). ๋ฐ๋ผ์ ํ์ฅ์๋ง ๊ฐ์ ธ์จ๋ค.
#PHP - ์์ถํ๊ธฐ & ์์ถํ๊ธฐ
1. ์์ถ ํ๊ธฐ
// mkdir {์์ถํ ๋๋ ํ ๋ฆฌ๋ช } // unzip {์์ถํ์ผ๋ช } -d{์์ถํ ๋๋ ํ ๋ฆฌ๋ช } $_ROOT = "{์์ถํ ์ ๋๊ฒฝ๋ก}"; $dir_op = $_ROOT."/์์ถํ ํด๋ ๋ช "; mkdir($dir_op); //ํด๋ ์์ฑ chmod($dir_op, 0777); //๊ถํ ๋ถ์ฌ exec("unzip ์์ถํ์ผ๋ช -d $dir_op"); //์์ง ํด์ //exec("unzip test.zip -d $dir_op");
2. ์์ถ ํ๊ธฐ
exec("zip -r output.zip ์์ถํ๊ฒฝ๋ก");
# ์ดํด๋ฆฝ์ค ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ tip
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ์ ๊ฒฝ์ฐ, ๋ฐ๋ก ํจ์ ์ ์ธํ๊ณ ํธ์ถ์ ํ๋ค.
์ด๋ด๊ฒฝ์ฐ ๋์ค์ ์์ค๋ฅผ ๋ณด๋๋ฐ ํธ์ถ์ ํ๊ณณ์ ๋ณด์ด์ง๋ง ์ ์ธํ๊ณณ์ ๋ชจ๋ฅด๊ฒ ๋ค.
๋๋ ์ ์ธํ๊ณณ์ ์๊ฒ ๋๋ฐ ํธ์ถ ํ๊ณณ์ ๋ชจ๋ฅด๊ฒ ๋ค ํ ๊ฒฝ์ฐ
F3์ ๋๋ฅด๋ฉด ๊ทธ๊ณณ์ ํ๋ฐฉ์ ์ฐพ์ ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ดํ๋ฉด๋๋ค.
1. ๋ด workspace๊ฐ ์ด๋์ง ์ฐพ๋๋ค.
: ๋ชจ๋ฅผ ๊ฒฝ์ฐ ์ดํด๋ฆฝ์ค์ file - switch workspace์ ๊ฐ๋ฉด ๋ด ์์ ํ๋ ๊ณณ์ ๋ณผ์์๋ค.
: ๋ด workspace๊ฐ ์ฌ๋ฌ๊ตฐ๋ ์ผ ์๋์๋ค. ํ์ธ ์ ํ ๊ฒ.
2. ๊ทธ workspace์์ย RemoteSystemsTempFiles ํด๋์ ๋ค์ด๊ฐ๋ฉดย .projectํ์ผ์ด ์๋ค.
:ย .projectํ์ผ์ ๋ด์ฉ ์์ ์ ๋๋ฅด๊ณ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅ์ํ๋ค.
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>org.eclipse.php.core.PHPNature</nature>
3. ๋ค์ ์ดํด๋ฆฝ์ค๋ฅผ ์ฌ์ํด ํ์ธํด๋ณธ๋คย
* ์ฐธ๊ณ ์ฌ์ดํธ :ย
http://www.patrickjwaters.com/blog/2011-07-24/how-setup-eclipse-php-pdt-remote-system-explorer-theme-manager-and-drupal-plugins/35
PHP, HTML, CSS, Javascript, jQuery, Photoshop, Illustrator, GIT, amazone SDK AWS, node.js... ํ ๊ฒ ์ฐ๋๋ฏธ์ด๋ค. HTML5(์น์ฑ)๋ ๊ณต๋ถํ๊ณ ์ถ์๋ฐ ํ๊ณ ์ถ๋ค ๋ง์ ๋ชปํ๊ฒ ์. ์ง๊ธํด์ผํ๋๊ฒ๋ ๊ฐ๋น ๋ชปํ๊ฒ ์ด์ ใ ใ ๊ฒ๋ค๊ฐ ์ฌํ ํ๋๊ฒ๋ค๋ ์์ ์๋ฐ ๊ฒํฃ๊ธฐ...... ๋นก์๊ตฌ๋ง~
์น์ฑ์ ๊ณต๋ถํ๊ณ ์ถ๋ค
# jQuery - html()๊ณผ val() ์ฌ์ฉ๋ฐฉ๋ฒ
1. val()
-ย val() : ย input, select,textarea ๋ฑ์ form elements์์ ๊ฐ์ ๊ตฌํ๋ค.
ย .val(value) : form elements์ ๊ฐ์ ์ง์ ํ๋ค.
- ๊ฐ์ ๋ณ๊ฒฝ ํ ๋ : $(๋ณ๊ฒฝํ ๋ถ๋ถ ์ ํ).val(๊ฐ);
ย ๊ฐ์ ๊ฐ์ ธ ์ฌ ๋ : $(๋ณ๊ฒฝํ ๋ถ๋ถ ์ ํ).val(๊ฐ);
ex) $('input').val('helloworld); //input์ value ๊ฐ์ helloworld๋ผ๊ณ ๋ฃ๋๋ค
ย ย ย $('input').val(); //input์ value๊ฐ์ ๊ฐ์ ธ์จ๋ค.
2. html()
- $(selector).html(content);
- html() ๋ฉ์๋์ ์ผ์นํ๋ HTML์๋ฆฌ๋จผํ ๋ด์ฉ์ ๋ณ๊ฒฝ
ex) $('p').html("helloworld");
* ์ ์ผ ์ดํด๊ฐ ์ฌ์ ๋ ์ค๋ช ์ ์ ๊ณตํด์ค ์ฌ์ดํธ :ย http://cafe.naver.com/buldon/899
# google-code-prettify
syntaxhighlighter๋ฅผ ๋ด๊ฐ ์ ์ด์ฉ์ ๋ชปํ๋๊ฑด์ง ์์๊ตฌ๋ถ๋ ์์๋ผ๊ณ
์ฌ์ฉ๋ ๋ถํธํด google์์ ์ง์ํด์ฃผ๋ย prettify๋ฅผ ์ฌ์ฉํ๊ธฐ๋กํ๋ค.
๊ทผ๋ฐ ์ด๊ฑด ๋ line number๊ฐ ๋์ค์ง ์๋๋ค....
์ง์ฆ์ง์ฆ!!! ๊ทธ๋๋ syntaxhighlighter๊ฐ ๋ ์๋์๋๊ฑฐ๊ฐ์๋ฐ ๋ค ์์ด์ค๋ช ์ด๋ผ...
google code prettify๋ ํ๊ธ๋ก ์ค๋ช ๋์๋ ์๋ฃ๋ ๋ง๊ณ ํด์ ๊ธ๋ฐฉ ๋ฐ๊พธ๊ธดํ์ง๋ง
line number๋ ์๊ณ ๊น๋ํ์ง ์์ ๋๋...
์ฐ์ ๊ท์ฐฎ์ผ๋๊น ์ค๋์ ์ฌ๊ธฐ๊น์ง!
์์ค์ฝ๋ ๋ค์ด๋ฐ์ ์ ์ฉ ํ ๊ฒ์๋ฌผ์ ์ธ๋๋
<pre class="prettyprint">๋ฅผ ์ ๋ ฅํ์ฌ ์ฌ์ฉํ๋ฉด ๋๋ค.
*์ฐธ๊ณ ์ฌ์ดํธย
- ์ฌ์ฉ ๋ฐฉ๋ฒ :
http://ghebook.blogspot.kr/2011/09/google-code-prettify.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/LjfQi+(%EC%A1%B0%EA%B8%88%EC%9D%80+%EB%8A%90%EB%A6%AC%EA%B2%8C+%EC%82%B4%EC%9E%90.)
- google-code-prettify ์ฌ์ดํธ :ย
http://code.google.com/p/google-code-prettify/
# HTML Table ๊นจ์ง๋ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ
ํ ์ด๋ธ์ ๋ง๋ค์๋๋ฐ ํ ์ด๋ธ์์ ๋ด์ฉ์ด
์๋ฅผ๋ค์ด ์์ด๋ก ํ๋ฒ๋ ๋์ด์ฐ๊ธฐ ์๊ธฐ ๊ธธ๊ฒ์ด ๋ด์ฉ์ผ ๊ฒฝ์ฐ๊ฐ ๋ค์ด๊ฐ๋ค๋ฉดย
ํ ์ด๋ธ์ด ๊นจ์ง๊ฒ ๋๋ค. ์ด๋ด๋ css๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ๋ฉด ์๋์ผ๋ก ํ ์ด๋ธ ํฌ๊ธฐ์๋ง์ถฐ
์๋ ๊ฐํ์ด ๋์ด ํ ์ด๋ธ ๊นจ์ง๋๊ฒ์ ๋ฐฉ์ง ํ ์ ์๋ค.
word-break: break-all;
# PHP ๊ฒ์ํ - DB์ ์ ์ฅ๋ ๋ฆฌ์คํธ ์ฐจ๋ก๋ฐ๋ก ์ถ๋ ฅ
๊ฒ์ํ ์ค ๊ฒ์ํ์ ์ ๋ ฅ๋ ๊ธ๋ค์ ๋ฆฌ์คํธ๋ฅผ ๋ณด๋ ํ์ด์ง๋ฅผ ๋ง๋ค๋,
๊ทธ ๋ฆฌ์คํธ๋ฅผ ๋ฝ๊ธฐ์ํด์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด๋๋ค. ์ฐ์ ,
$scale = 10; //ํ ํ์ด์ง์ ๋ณด์ฌ์ค ๋ชฉ๋ก ๊ฐฏ์
PHP ํ์ผ ์๋จ์ ํ ํ์ด์ง ๋น ๋ช๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ๋ณด์ฌ์ค์ง ์ง์ ํ๋ค.
๊ทธ ๋ค์์ DB์์ ๋ด์ฉ์ ๋ถ๋ฌ์ฌ๋
$TABLENAEM_SQL = "SELECT * FROM TABLENAEM ORDER BY ID DESC";
์ ๊ฐ์ด ORDER BY ID DESC ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ถ๋ฌ์จ๋ค
๋ง์ง๋ง์ผ๋ก ํ์ด์ง ๊ณ์ฐ์ ํ๊ณ for๋ฌธ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์ฐจ๋ก๋ฐ๋ก ์ถ๋ ฅํ๋ค.
//ํ์ด์ง ๊ณ์ฐ if ($total_record % $scale == 0) $total_page = floor($total_record/$scale); else $total_page = floor($total_record/$scale) + 1; if (!$_GET['page']) $page = 1; else $page = $_GET['page']; $start = ($page - 1) * $scale; $number = $total_record - $start; //๋ฆฌ์คํธ ์ถ๋ ฅ for ($i=$start; $i<$start+$scale && $i < $total_record; $i++) { mysql_data_seek($TABLENAME_RESULT, $i); $TABLENAME = mysql_fetch_array($TABLENAEM_RESULT); $pos = $TABLENAME[SUBJECT]; $pos = mb_strimwidth($pos,0,50,"..."); $user_ip = $TABLENAME['user_ip']; $country = $TABLENAME['country']; $date = $TABLENAME['date']; echo " <tr> <td> $number </td> <td> $user_ip </td> <td> $country </td> <td> $date </td> </tr> "; $number--; } }
# ํ์ผ ๋ฐ ํด๋ ๊ถํ ๋ฐ๊พธ๊ธฐ - chmod
$ chmod <option> <8์ง์> <๋์>ย
- optionย
: ์ต์ ์ ์ข ๋ฅ์๋ย -c,-f,-v,-R๊ฐ ์๋ค. ์์ธํ ๋ด์ฉ์ย $ chmod --help๋ฅผ ์จ์ ํ์ธํด๋ณด์.
: ์ด ์ค ์์ ์ฃผ๋ก ์ฐ์ด๋๊ฒ์ -R(recursive)๋ก์จ ํ์ ๋๋ ํ ๋ฆฌ๋ ํ์ผ ๋ชจ๋์ chmod ์ค์ ์ ์ ์ฉํ๋ค๋ ๊ฒ.
- <8์ง์>
: 8์ง์๋ 1, 2, 4์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
: 1์ ์คํ ๊ถํ / 2๋ ์ฐ๊ธฐ ๊ถํ/ 4๋ ์ฝ๊ธฐ ๊ถํ์ ๋ํ๋ธ๋ค
- <๋์>
: ๊ถํ์ ๋ถ์ฌํ ํด๋๋ ํ์ผ ๋ช ์ ์ ๋ ฅํ๋ฉด ๋๋ค.
์์ ) chmod -R 777 filename๋ฅผ ํ๋ฉด
ํด๋ ๊ถํ์ ๋ค์ ์์ ์ฒ๋ผ ์ฐ๋ฉด ๋ชจ๋ ์ฌ์ฉ์๊ฐย ์ฐ๊ธฐ, ์ฝ๊ธฐ, ์คํํ๋๋ก ๋ฐ๊ฟ์ ์๋ค.
์์์ ์ค๋ช ํ ๋ฐ์ ๊ฐ์ด ์ฌ๊ธฐ์ 777์ rwx(user ๊ถํ) rwx(group ๊ถํ) rwx(other ๊ถํ) ์ผ๋ก r: ์ฝ๊ธฐ๊ถํ, w: ์ฐ๊ธฐ๊ถํ x: ์คํ๊ถํ ์ด๋ผ ๋ถ๋ฅธ๋ค.
๋ง์ฝ ์์ ๋ช ๋ น์ด์ฒ๋ผ chmode -R 777 filename์ผ ๋, 777์ด๋ผ๊ณ ๋ฃ์ผ๋ฉด user, group, other์๊ฒ ๋ชจ๋ ๊ถํ์ ์ ๋ถ ์ค๋ค๋ ์๋ฏธ๊ฐ ๋๋ค๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์, user๊ถํ(1+2+4) group๊ถํ(1+2+4) other๊ถํ(1+2+4)ย
ย ย ย ย ย => 1(์ฝ๊ธฐ ๋จ) + 2(์ฐ๊ธฐ ๋จ) + 4(์คํ ๋จ) ์ด๋ผ๋ ๊ฒ!
# ์ฒจ๋ถํ์ผํ ํ์ผ์ ์๋ฒ(์์ํด๋)์ ์ ๋ก๋ ํ๋ ๋ฐฉ๋ฒ
amazon aws ses๋ mime๋ฅผ ์จ์ ์ฒจ๋ถํ์ผํ๋ ๋์ค.
๋ง์ง๋ง ์์ ์ผ๋ก htmlํ์ผ์ ๋ง๋ค์ด ๋ฉ์ผ ๋ณด๋ด๋ ๋ชจ์์๋ง ๋ง๋ค๋ฉด ๋์ ํ๋ฑ ๋๋ด๋ คํ๋๋ฐ
๊ถํ์ด ์์ด์ ์ ๋ก๋๊ฐ ์๋ผใ ใ
print_r($_FILES); ํด๋ณด๋ [error] => 0 ์ด ๋์ค๋๊ฑฐ๋ณด๋ ์ ๋๋ก ๋๋๊ฑฐ๊ฐ์๋ฐ
(2๊ฐ ๋์์ผ ์๋ฌ๋ผ๊ณ ํ๋ค) ๋ด์ผ ์ฃผ์๋ ์ค์๋ฉด ์ฌ์ญค๋ด์ผ๊ฒ ๋ค.
!) ๋ฐฉ๊ธ ์ฃผ์๋ํํ ์ฐ๋ฝ์์ ํด๊ฒฐํจ. ํ์ผ ๊ถํ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ ๋ก๋ ํ ํด๋์ ์์ ํด๋์ ๋ง์ฐ์ค๋ฅผ ๊ฐ๋ค๋๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ ํด๋ฆญ!
Launch Terminal์ ๋ค์ด๊ฐ๋ค > chmode 707 ์ ๋ก๋ํด๋๋ช ์ ๋ ฅํ๋ฉด ๋ก.
(everyone์ผ๋ก ๋ฃ๋ ๋ฐฉ๋ฒ์ด ์๋ค๋๋ฐ ๊ท์ฐฎ๋ค. ์ฐ์ ์ ๋๋๊น pass~)
์, ์ด์ ๋๋์ด ์ฒจ๋ถํ์ผํ ํ์ผ์ ์๋ฒ์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
$file = "uploads/"; //์ ๋ก๋ ๊ฒฝ๋ก //์ ๋ก๋ ๊ฒฝ๋ก์ ํ์ผ๋ช ๊ฐ์ ธ์ด (๋ฐ๋ผ์ ์ ๋ก๋ํ ํ์ผ์ ๊ฒฝ๋ก๊ฐ ๋จ) $file = $file . basename($_FILES['attachment']['name']); //์ ๋ก๋ ํ ๋์๋์ง ํ์ธ (์ ๋ก๋๋์์๊ฒฝ์ฐ true(๋๋1), ๋ฐ๋ false(๋๋0) ๋ฐํ) if(move_uploaded_file($_FILES['attachment']['tmp_name'], $file)) { echo "Success!" } else{ echo "Fail!"; } echo "error : "; print_r($_FILES); echo "";
- $_FILES์ ์์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค.
: $_FILES['userfile']['tmp_name']ย - ์น ์๋ฒ์ ์์๋ก ์ ์ฅ๋ ํ์ผ์ ์์น. : $_FILES['userfile']['name']ย - ์ฌ์ฉ์ ์์คํ ์ ์์ ๋์ ํ์ผ ์ด๋ฆ. : $_FILES['userfile']['size']ย - ํ์ผ์ ๋ฐ์ดํธ ํฌ๊ธฐ. : $_FILES['userfile']['type']ย - ํ์ผ์ MIME ํ์ ์ ๊ฐ๋ฆฌํด. ์๋ฅผ ๋ค์ด, text/plain์ด๋ image/gif. : $_FILES['userfile']['error']ย - ํ์ผ ์ ๋ก๋ํ ๋ ์ผ์ด๋ ์ค๋ฅ ์ฝ๋๋ฅผ ์๋ ค์ฃผ๋๋ฐ, PHP 4.2.0์์ ์ถ๊ฐ๋จ.
- ์ฌ๊ธฐ์ย userfile๋ input์ผ๋ก ๊ฐ์ ธ์จ name๊ฐ์ ๋งํ๋ค.
-ย move_uploaded_file($_FILES['attachment']['tmp_name'], $file)
:move_uploaded_file๋ ์๋ฒ ํ์ผ์์ ์ ๋ก๋ํด์ฃผ๋ ํจ์
: $_FILES['input์์ ๊ฐ์ ธ์จ name๊ฐ]['tmp_name'] ์ฌ๊ธฐ์ 'tmp_name'๋ ์์ํ์ผ๋ช ์ ์ง์ ํด์ฃผ๋๊ฒ์ด๋ค. ๊ผญ 'tmp_name'๋ฅผ ์ธ๊ฒ
: $file์๋ ์ ๋ก๋ํ ๊ฒฝ๋ก์ ์ ๋ก๋ํ ํ์ผ๋ช ์ ํฉ์ณ ์ฌ๋ฆฐ๋ค.
ex) ์ ๋ก๋ํ ๊ฒฝ๋ก๋ uploads/ ์ด๊ณ , ์ ๋ก๋ํ ํ์ผ๋ช ์ test.txt์ผ๊ฒฝ์ฐ
uploads/test.txt๋ฅผ ๋ง๋ค์ด์ฌ๋ฆฐ๋ค. (๋ฐ๋ผ์ 'uploads/test.txt' ์ด๋ ๊ฒ ์ฐ๋ผ๋ ๋ง์)
- basename('๋ฌธ์์ด')
:ํ๊ธ๋ก ์ด ๋ด์ฉ์ด ์๋ฆฌ์ง ์๋๋ก ๋ณํํด์ฃผ๋ ํจ์
- print_r($_FILES)
: ๋๋์ง ํ์ธํ ๋!
#PHP์์ ' (๋ฐ์ดํ)์ " (์๋ฐ์ดํ)์ ์ฐจ์ด์
- ๋ฐ์ดํ์์ ๋ฃ์ ๋ด์ฉ์ ๋ฌด์กฐ๊ฑด ๋ชจ๋ ๋ฌธ์์ด์ด๋ค.
- ์๋ฐ์ดํ์์ ๋ณ์๋ฃ์ผ๋ฉด ๋ณ์๋ก ์ถ๋ ฅ, ๋ฌธ์์ด์ ๋ฃ์ผ๋ฉด ๋ฌธ์์ด์ด๋ค.
- ๋ค์ ์์ ๋ฅผ ์ฐธ๊ณ ํ์!
$h = "Hello"; echo "$h World"; //์ถ๋ ฅ : Hello World echo '$h World'; //์ถ๋ ฅ : $h World