E D R , A S I H C RSS

Freechal Album Spider

1002 κ°€ λ§Œλ“€μ—ˆλ˜ 프리첼 μ•¨λ²”νΌμ˜€κΈ° ν”„λ‘œμ νŠΈ. (10μ›” 20일 ~ 29일) 그와 κ΄€λ ¨ν•œ ν”„λ‘œμ νŠΈ ν›„κΈ°.

μž‘μ—…λ™κΈ°

프리첼이 μœ λ£Œν™”λ˜λ©΄μ„œ μ£Όμœ„ μ‚¬λžŒλ“€μ΄ κ²Œμ‹œνŒλ“€μ„ ν”„λ¦¬μ²Όλ‘œλΆ€ν„° 이전을 ν•˜κΈ° μ‹œμž‘ν•˜μ˜€λ‹€. μ£Όμœ„ μ•„λŠ” κ΅νšŒμ„ λ°°λ“€μ˜ κ²½μš°λŠ” 그쀑 μˆ­μ‹€λŒ€μ—μ„œ κ²Œμž„λ°©μ„ μš΄μ˜ν•˜μ‹œλŠ” 뢄이 μžˆμ–΄μ„œ κ΅νšŒμ‚¬λžŒλ“€ μ „μš© μ„œλ²„λΌ ν•˜λ‚˜ λ§ˆλ ¨ν•˜κ³  κ²Œμž„λ°©μ—μ„œ ꡴리기둜 ν•œλ‹€. 프리첼 κ²Œμ‹œνŒ λ³€ν™˜κΈ°μ˜ 경우 μ΄λΈ λ²”μš©μ μΈ μ œλ‘œλ³΄λ“œλ‚˜ μ΄μ§€λ³΄λ“œμ—μ„œ μ œκ³΅μ„ ν•˜μ§€λ§Œ, μ•¨λ²”μ΄λ‚˜ 화일 백업은 μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€. 그리고, κ²Œμ‹œνŒ 백업을 ν• λ•Œμ—” 프리첼 κ΄€λ¦¬μžκ°€ κΈ°μ‘΄ κ²Œμ‹œνŒλ“€μ˜ μ ‘κ·Ό κΆŒν•œμ •λ„λΌ μ‘°μ ˆν•΄μ€˜μ•Ό ν•œλ‹€. λ‘œκ·ΈμΈμ²˜λ¦¬κ°€ μ•ˆλ˜μ–΄μžˆκΈ° λ•Œλ¬ΈμΈλ°, μ œλ‘œλ³΄λ“œ κ²Œμ‹œνŒ λ³€ν™˜κΈ°λΌ λ³΄λ‹ˆ μΏ ν‚€ κ΄€λ ¨ μ²˜λ¦¬κ°€ μ—†μ—ˆλ‹€.

마침 개인적으둜 자주 μ΄μš©ν•˜λŠ” ClientCookie κ°€ 있기 λ•Œλ¬Έμ— μ‰½κ²Œ μž‘μ„±ν•  수 μžˆμ„κ²ƒμ΄λΌ νŒλ‹¨, μ–΄λŠμ •λ„ μŠ€μΌ€μ„을 작고 μž‘μ—… μ‹œμž‘.~

ν”„λ‘œν† μ½œ 뢄석

처음 무엇을 ν•΄μ•Ό 할지 κ³ λΌμ„ ν•΄μ•Ό ν•˜λŠ”λ°, 일단은 '이λΈμ§€λΌ κ°€μ Έμ˜€λŠ”κ²Œ κ°€λŠ₯ν•œκ°€?' λΌ λ¨Όμ € ν•˜κ²Œ λ˜μ—ˆλ‹€. ν”„λ¦¬μ²Όμ˜ 경우 이λΈμ§€λΌ μ–»μ–΄μ˜€λŠ” 방법이 getImage.asp 화일을 ν†΅ν•΄μ„œλ§Œ κ°€λŠ₯ν•˜λ‹€. 일반 JPG 링크가 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ—, getImage.asp 둜 λ„˜κ²¨μ£ΌλŠ” μΈμžλ“€μ„ μ•Œμ•„λ‚΄μ•Ό ν•œλ‹€.

1002 λŠ” webdebug 와 Proxomitron λ‘κ°œλΌ μ΄μš©ν•˜λŠ”λ°, λ‘˜ λ‹€ μΌμ’…μ˜ ν”„λ‘μ‹œ μ„œλ²„μ²˜λŸΌ μ΄μš©ν•˜μ—¬ HTTP 둜 μ†‘μˆ˜μ‹  λ˜λŠ” GET/POST, HTTP Header λ°μ΄ν„°λ“€μ˜ λ‘œκ·ΈλΌ ν™•μΈν•  수 μžˆλ‹€. λ‘˜μ„ 이용, ν”„λ‘œν† μ½œ 뢄석을 ν•˜μ˜€λ‹€.

ν”„λ‘œκ·Έλž˜λ°

ꡐ회 μ‚¬λžŒμ΄ μš΄μ˜ν•˜λŠ” κ²œλ°©μ—μ„œ μž‘μ—…; κΈˆμ—°μΈ 겜방이 μ΄λ ‡κ²Œ μ’‹μ„μˆ˜κ°€. ν•œμͺ½μ˜ μ„ΈλΈλ‚˜μ‹€μ˜ 기독ꡐ κ΄€λ ¨ μ„œμ μ΄ λΉΌκ³‘ν•˜κ²Œ μ°¨ μžˆλŠ” 것이 인상적.

vi - python - ctags - grep 쑰합이 손에 μ°Έ 잘 λ“€μ–΄λ§žλŠ”λ‹€. λ‹€λ₯Έ Python μͺ½ 쒋은 IDE듀을 잘 λͺ»μ ‘ν•΄μ„œ κ·ΈλŸ°μ§€ 개인적으둠 κ°€μž₯ νŽΈν•œ 쑰합이 λ˜μ—ˆλ‹€. 타 κ°œλ°œνˆ΄λ“€λ‘œ μž‘μ—…ν• λ•Œ ν•˜λ˜ 일듀을 μ΄κ²ƒλ“€μ˜ μ‘°ν•©μœΌλ‘œ μ˜μ‹μ μœΌλ‘œ ν•  수 있게 λœλ‹€.

μ²˜μŒμ—λŠ” λͺ¨λ“ˆμ— λŒ€ν•΄ Remote Test λΌ λ¨Όμ € μ§„ν–‰ν–ˆλ‹€κ°€, Local Test λ‘œμ„œ 일단 HTML λ¬Έμ„œλΌ λ°›μ•„λ†“κ³ , μ΄λΌ TDD 둜 ν•˜λ©΄μ„œ 데이터듀을 μΆ”μΆœν•˜λŠ”κ²ƒμ΄ λ‚«κ² λ‹€ νŒλ‹¨, Local Html Test λΌ μž‘μ„±ν•΄λ‚˜κ°”λ‹€. 이전 ProjectPrometheus μ—μ„œ ν–ˆμ—ˆλ˜ 방법과 λΉ„μŠ·ν–ˆμ—ˆλ˜μ§€λΌ, μΌμ‚¬μ²œλ¦¬λ‘œ 거의 ν•˜λ£¨λ™μ•ˆ κ΄€λ ¨ μž‘μ—…λ“€μ΄ 끝났닀.

μž‘μ—…μ„ 계속 ν•˜λ‹€ λ³΄λ‹ˆ, 각 λͺ¨λ“ˆλ“€μ— λŒ€ν•΄ BottomUp μŠ€νƒ€μΌλ‘œ μž‘μ„±μ΄ λ˜μ—ˆλ‹€. 근데, 막상 'λ‹€μŒμ— ν•΄μ•Ό 할일은?' μ§ˆλ¬Έμ„ ν•΄λ³΄λ‹ˆ, μ€ λ©λ©ν•΄μ‘Œλ‹€. μ΄λž˜μ„œλŠ” μ•ˆλ˜κ² λ‹€κ³  νŒλ‹¨, 일단 λ§Œλ“€μ–΄λ†“μ€ 개개의 λͺ¨λ“ˆλ“€μ„ 근거둜 μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ„ 그리고 κ·Έ μˆœμ„œλΌ μž‘μ•„λ‚˜κ°”λ‹€.

각 λͺ¨λ“ˆλ“€μ΄ μ„œλ‘œ λΆˆλŸ¬μ Έμ•Ό ν•  μˆœμ„œλ“€μ„ μ •ν•˜κ³  λ‚œλ’€, λ‚΄κ°€ λ§Œλ“  각 λͺ¨λ“ˆλ“€μ„ μΌμ’…μ˜ SpikeSolution 처럼 라이브러리 μ—°μŠ΅ν•˜λ“이 μ΄μš©ν•΄λ³΄μ•˜λ‹€. κ·ΈλŸ¬λ©΄μ„œ μž μ‹œ λ†“μ³€λ˜ 흐름을 λ‹€μ‹œ μž‘μ•˜λ‹€. μ΄λŸ¬ν•œ 일듀을 μ˜μ‹μ μœΌλ‘œ, 그리고 '무엇을 ν• κΉŒ - 이것을 ν•˜μž' 라고 생각해낼 수 μžˆμ—ˆλ˜ 것이 기뢄을 μ°Έ μ’‹κ²Œ ν–ˆλ‹€.

초반 3μΌμ •λ„λŠ” TDD λΌ ν•˜κ³  ν›„λ°˜μ˜ PBI μŠ€νƒ€μΌλ‘œ ν…ŒμŠ€νŠΈ μ½”λ“œμ΄ μ§„ν–‰ν–ˆλŠ”λ°, ν›„λ°˜μœΌλ‘œ 갈수둝 μž‘μ—… 진척도가 떨어지고, μ½”λ“œμ— λŒ€ν•œ 이해도도 떨어짐을 λŠκΌˆλ‹€.

주둜 μ œλ‘œλ³΄λ“œ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜κΈ° μœ„ν•œ λ°μ΄ν„°λ² μ΄μŠ€ μ €μž₯ 뢀뢄인데, 첫번째 μ΄μœ λ‘œλŠ” μ œλ‘œλ³΄λ“œ DB 의 μŠ€ν‚€λ§ˆλΌ μ œλŒ€λ‘œ νŒŒμ•…ν•˜μ§€ λͺ»ν•œκ²ƒμ΄ λ¬Έμ œμ˜€λ‹€. 이 λ¬Έμ œλŠ” 프리첼->μ œλ‘œλ³΄λ“œ 컨버터 PHP μ†ŒμŠ€λΌ λ³΄κ³  μ΄λΌ Python 으둜 ν¬νŒ…ν•˜μ˜€λ‹€. 이전에 PHP ν”„λ‘œκ·Έλž˜λ°μ„ 많이 ν–ˆκΈ° λ•Œλ¬Έμ— μ΅μˆ™ν–ˆκ³ , μ–΄μ°¨ν”Ό 같은 μ–΄μ±κ΅°(?)의 언어이λ€λ‘œ 별닀λ₯Έ 어렀움이 μ—†μ—ˆλ‹€. ν•˜μ§€λ§Œ, ν…ŒμŠ€νŠΈ κ²½μš°λΌ λͺ…ν™•ν•˜κ²Œ ν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ—, μž‘λ™μ΄ μ œλŒ€λ‘œ λ˜μ§€ μ•ŠλŠ”μ§€μ— λŒ€ν•΄μ„œλŠ” κ²Œμ‹œνŒ λ³€ν™˜λ’€ 맀번 μ›Ήμ—μ„œ λ‚˜μ˜¨ κ²°κ³ΌλΌ ν™•μΈν•΄μ•Ό ν–ˆλ‹€.

λ˜ν•˜λ‚˜ λ¬Έμ œλ‘œλŠ” μ΄μƒν•˜κ²Œ MySQLdb λͺ¨λ“ˆμ΄ λ¬Έμ œλΌ μΌμœΌμΌ°λŠ”λ°, update query λΌ λ‚ λ¦΄λ•Œ μ—λŸ¬λ°œμƒμ„ ν•˜λŠ” κ²ƒμ΄μ˜€λ‹€. λ˜‘κ°™μ€ 쿼리문을 μ‰˜μ—μ„œ μ‹€ν–‰ν–ˆμ„λ•ŒλŠ” 잘 λ˜μ—ˆλŠ”λ°, MySQLdb 의 cursor ν΄λž˜μŠ€λΌ μ΄μš©, μΏΌλ¦¬λΌ λ‚ λ¦¬λ©΄ 싀행이 μ•ˆλ˜λŠ” κ²ƒμ΄μ˜€λ‹€. (DB 에 μ μš©μ€ λ˜λŠ”λ°, μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.) 이 뢀뢄에 λŒ€ν•΄μ„œλŠ” 일단 try-except 둜 λ•œμ§ˆμ²˜λ¦¬λΌ ν–ˆμ§€λ§Œ, 그리 기뢄쒋진 μ•Šλ‹€. μˆ˜μ •μ΄ ν•„μš”ν•˜λ‹€.

질문

μ œκ°€ python을 μ „ν˜€ λͺ°λΌμ„œ κ·ΈλŸ¬λŠ”λ°μš”, 이거 μ‚¬μš©λ²•μ€ μ•Œλ € μ£Όμ‹œκ² μ–΄μš”.
μ•”λ§Œ 해도 μ•ˆ λ˜μ„œμš”.. freechal μ•¨λ²”μš©λŸ‰μ΄ λ„ˆλ¬΄ μ»€μ Έμ„œ μ•¨λ²”μ˜ 일뢀뢄을 μ΄μ£Όν•˜λ €κ³  ν•˜λŠ”λ°, 이λΈμ§€ κ°€μ Έμ˜€λŠ” 뢀뢄을 PHP둜 ν•˜λŠ”λ° 잘 μ•ˆλ˜μ„œμš”..
이글을 보면 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€...
λŠ¦κ²Œμ„œμ•Ό 보게 λ˜μ–΄μ„œ..; μ§€κΈˆλ„ μž‘λ™μ„ ν• λŸ°μ§€λŠ” 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. μ•Œλ°”λ•Œλ¬Έμ— λ°”λΉ μ„œ μœ μ§€λ³΄μˆ˜λΌ λͺ»ν•˜λŠ” 쀑인지라.. freechal service UI κ°€ λ°”λ€Œλ©΄ κΉ¨μ§€λŠ” 녀석일것인지라..; μ‚¬μš©ν•˜κΈ°μ „μ— ν•„μš”ν•œ κ²ƒμœΌλ‘  Python 2.2x 버전 정도와 MySQLdb λΌμ΄λΈŒλŸ¬λ¦¬κ°€ ν•„μš”ν•˜κ³ μš”. ν•΄λ‹Ή proper.py 화일을 λ§žμΆ°μ£Όμ‹ λ’€, freechalscript.py λΌ μ‹€ν–‰ν•΄μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€. 같은 역할을 ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ€ http://www.perlmania.or.kr μ—μ„œ λ¨Όμ € κ΅¬ν˜„λœκ±Έλ‘œ κΈ°μ–΅ν•©λ‹ˆλ‹€. κ±°κΈ°μ„œ ν•΄λ‹Ή κ°•μ’Œλ„ 있던걸둜 κΈ°μ–΅ν•˜μ˜€λ‹ˆ μ°Έμ‘°ν•˜μ„Έμš”. --1002
μš°μ„  κ°μ‚¬ν•©λ‹ˆλ‹€. 근데 μ—λŸ¬κ°€ λ‚˜λ„μš”^^; μ œκ°€ ν˜„μž¬ 이λΈμ§€ κ°€μ Έμ˜€λŠ” 뢀뢄을 μ²˜λ¦¬λΌ λ„μ €νžˆ λͺ»ν•˜κ² λŠ”데, ν˜Ήμ‹œ 이 λΆ€λΆ„μ—μ„œ μ£Όμ˜ν•˜μ—¬μ•Ό ν•  뢀뢄이 μžˆλ‚˜μš”? python도 Header setting같은 κ±° ν•˜λ‚˜μš”? μ „ PHP둜 ν•˜κ³  μžˆκ±°λ“ μš”..
μ›λ¦¬λŠ” λ³΄ν†΅μ˜ 이런λ₯˜μ˜ ν”„λ‘œκ·Έλž¨ (HTTP 둜 λ¬Έμ„œ κ°€μ Έμ˜€κ³  슀트링 νŒŒμ‹±ν•˜μ—¬ λ°μ΄ν„°λ‘œ κ°€κ³΅ν•˜κ³  DB에 μ €μž₯) 이 λΉ„μŠ·ν•©λ‹ˆλ‹€. 단, μ•¨λ²”κ²Œμ‹œνŒμ˜ 경우 둜그인이 ν•„μš”ν•œλ°, 이 경우 μΏ ν‚€ μ²˜λ¦¬λΌ μœ„ν•œ header setting을 ν•΄μ€˜μ•Όκ² μ£ . Perl 같은 경우 LWP, Python 의 경우 ClientCookie, Java 의 경우 HttpUnit(μ›λž˜μ˜ μš©λ„λŠ” λ‹€λ₯΄μ§€λ§Œ, 이런 ν”„λ‘œκ·Έλž¨μ„ μœ„ν•œ 간이 λΈŒλΌμš°μ € 라이브러리둜 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.) λ“±μ˜ λΌμ΄λΈŒλŸ¬λ¦¬λΌ μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€. 그리고, 이λΈμ§€μ˜ κ²½μš°λŠ” ν•΄λ‹Ή URL을 보고 λ‹€μ‹œ HTTP Connection 을 μ—΄μ–΄μ„œ μ–»μ–΄μ™€μ„œ binary둜 μ €μž₯ν•΄μ•Ό ν•œλ‹€λŠ” 것이 μœ μ˜μ‚¬ν•­μ΄ λ˜κ² μŠ΅λ‹ˆλ‹€. (HTML만 μ–»μ–΄μ˜€λ©΄ img tag 의 λ§ν¬λ“€λ§Œ 있겠죠.) 그리고 header setting μ—μ„œ μ•½κ°„ λΈλ¬˜(?)ν•œ 뢀뢄이 μžˆλ˜κ²ƒ κ°™λ˜λ°, μ €λŠ” 걍 webdebug 둜 μΊ‘μ³ν•œκ±° κ·ΈλŒ€λ‘œ 보낸지라..; 이 뢀뢄은 CVS의 μ½”λ“œ μ°Έμ‘°ν•˜μ„Έμš”. --1002

κ°μ‚¬ν•©λ‹ˆλ‹€. Imageκ°€μ Έμ˜€λŠ” 뢀뢄이 κ·Έ λ™μ•ˆ μ•ˆ λ˜μ„œ ν¬κΈ°ν•˜κ³  μžˆμ—ˆλŠ”λ°, 덕뢄에 PHP둜 ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. ^^ μ œκ°€ Header setting을 잘λͺ»ν–ˆλ”κ΅°μš”.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:17
Processing time 0.0308 sec