평소에 책과 친하지 않아서 새해 부터는 책과 친해지고자 결심했습니다. 블로그와도 조금 더 친해져야겠습니다.사무실에 예전부터 있었던 출간된지 꽤 오래된 웹 진화론을 최근에서야 읽었습니다. 웹 진화론은 웹이 어떤 변화를 몰고 왔는지, 어떤 가능성을 가지고 있는지, 변화와 가능성이 나에게 어떤 영향을 줄 수 있는지에 대해 아주 잘 쓰여졌습니다. 저자는 웹 플랫폼의 무한한 가능성에 대해 그리고 그 가능성을 보여준 구글에대해, 아마존을 통해 소개되는 롱테일에 대해, 웹2.0의 토대인 오픈API와 블로그가 가지는 의미 그리고 오픈소스에 설명합니다.지금까지(그러나 미처 모두 실감하지 못했던) 그리고 앞으로 불어올 엄청난 변화의 소용돌이 속에서 내 모습을 생각 해 볼 수 있었습니다. 틈틈히 집중해서 재밌게 읽은 책입니다. 늦게나마 이책을 읽게되 다행이라고 생각되는, 꼭 주변 사람들에게 추천하고 싶은 명서 입니다. 작년에 출간된 웹진화론2도 읽어볼 생각입니다.
평소에 책과 친하지 않아서 새해 부터는 책과 친해지고자 결심했습니다. 블로그와도 조금 더 친해져야겠습니다.사무실에 예전부터 있었던 출간된지 꽤 오래된 웹 진화론을 최근에서야 읽었습니다. 웹 진화론은 웹이 어떤 변화를 몰고 왔는지, 어떤 가능성을 가지고 있는지, 변화와 가능성이 나에게 어떤 영향을 줄 수 있는지에 대해 아주 잘 쓰여졌습니다. 저자는 웹 플랫폼의 무한한 가능성에 대해 그리고 그 가능성을 보여준 구글에대해, 아마존을 통해 소개되는 롱테일에 대해, 웹2.0의 토대인 오픈API와 블로그가 가지는 의미 그리고 오픈소스에 설명합니다.지금까지(그러나 미처 모두 실감하지 못했던) 그리고 앞으로 불어올 엄청난 변화의 소용돌이 속에서 내 모습을 생각 해 볼 수 있었습니다. 틈틈히 집중해서 재밌게 읽은 책입니다. 늦게나마 이책을 읽게되 다행이라고 생각되는, 꼭 주변 사람들에게 추천하고 싶은 명서 입니다. 작년에 출간된 웹진화론2도 읽어볼 생각입니다.
주말에 Ipod touch를 이용해 야후 모바일 사이트에 방문해 이런저런 서비스를 써봤습니다.
야후모바일 사이트(http://m.yahoo.com)는 ipod터치를 비롯해 브라우져가 탑재된
스마트폰에서 적절한 사이즈로 야후 모바일 서비스를 사용할 수 있었습니다.
구글 모바일도 마찬가지 이지만 좌측정렬로 UI가 심플하게 구성되어서 인지
꼭필요한 기능만 잘 구성되어 있는것 같습니다.
외국사이트와 달리 국내 웹사이트는 복잡한 UI구성으로 쉽게 모바일로 옴기기가
어렵습니다. 그런이유로 모바일 사이트가 많지도 않구요...
풀브라우징이 이슈로 떠오르는 시점에서 심플하고 직관적인 UI가 해답이 아닐까 생각됩니다.
-Dfile=<path-to-file>
-DgroupId=<group-id>
-DartifactId=<artifact-id>
-Dversion=<version>
-Dpackaging=<packaging>
-DgeneratePom=true
http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html
| Ubuntu / Debian IP Configuration Files: |
File: /etc/network/interfaces
- Static IP example:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 208.88.34.106 netmask 255.255.255.248 broadcast 208.88.34.111 network 208.88.34.104 gateway 208.88.34.110Dynamic IP (DHCP) example:
Interfaces:auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet dhcp auto eth2 iface eth2 inet dhcp auto ath0 iface ath0 inet dhcp auto wlan0 iface wlan0 inet dhcp
- lo: Loopback interface (network within your system without slowing down for the real ethernet based network)
- eth0: First ethernet interface card
- wlan0: First wireless network interface
Also see "man interfaces"
위의 내용을 바탕으로 이렇게 수정했더니...
뭐 굳이 공유기에서 강제로 IP를 수정하지 않아도 되는구만.
어쨌든 여러가지 방법을 확인했으니 그걸로 됐다^^
# The primary network interface
# using dhcp
#auto eth0
#iface eth0 inet dhcp
# using static ip
auto eth0
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
출처: http://maxnim.tistory.com/1166706143?srchid=BR1f2975a6d4a0a1cc22fbdb5679c34849fefe9bccb
입국심사대에서 우물쭈물하자 심사관이 한국말로 숙소를 적으라고해 놀랐다. 하긴 성수기에 인천에서 스완니폼 국제공항에 들어오는 비행기가 하루 14대라고 하니 매일 6~7천명이 넘는 한국인 관광객을 맞이하다 보면 그리 크게 놀랄일도 아니라는 생각이 든다.
입국게이트를 지나 밴을타고 호텔로 이동했다. 호텔로 이동하면서 보게된 방콕의 도심 풍경은 한국의 도시들과 크게 다르지 않았으며 (결혼식때문에 첨 가게된 대구시내정도...의 분위기) 교통체증은 서울만큼 심했다.
호텔도착후 약 10시간정도의 자유시간이 주어져 방콕시내를 관광하기로 했다. 사전에 준비가 없었던터라 함께간 친구가 가져온 책을 보고 왓퐁과 시암스퀘어에 가기로 했다. 호텔로비에서 가는길을 물어보니 교통체증때문에 BTS(지상으로 운행되는 METRO)를 이용하라고 했다.
호텔이 Ari역 근처에 위치해서 Ari역까지 툭툭이라고 불리는 삼륜택시를 타고 BTS로 갈아탄후 왓퐁에 도착했다. BTS는 에어컨도 시원하고 방콕주요 지점을 빠르게 갈수 있어 편리했다.
왓퐁거리는 가운데 옷과 악세사리를 파는 노점상을 중심으로 좌우에 노천바나 술집들이 즐비해 있었다. 관광객임을 알아찬 호객꾼들이 여기저기서 호객행위를 하며 달려들었고 거리를 거닐면서 중간중간 go go bar라고 불리는 스트립바도 눈에 띄었다. 날씨가 더운탓에 적당히 둘러보고 적당한 술집에 들어가 맥주를 마셨다. 하이네켄을 한병에 한국돈으로 약 3000원 정도였는데 현지 물가치고는 조금 비싼 편 이었다는걸 나중에 알게됐다. 맥주를 마시고 종업원에게 시암스퀘어로 가는방법을 물어봤는데 걸어서 15분정도거리라고 해 걸어가기로 했다.
친구와 함께 시암스퀘어로 가는 밤거리를 거닐면서 걷기로 한것을 후회했다. 더운날씨도 더운날씨였지만 시암스퀘어로 가는동안 특별이 인상적인 풍경도 없었으며 길거리에 개들이 많아 괜한 위헙을 느끼며 걸었다. 방콕의 택시비는 기본요금이 약 900원이어서 왠만한 거리는 교통체증이 심하지 않는한 싸게 이동할 수 있다.
씨암스퀘어는 방콕중심에 위치한 큰 백화점을 중심으로 주변에 비교적 고급스런 레스토랑이나 술집들이 많은 곳이었다. 바로 BTS역과 연결되어 있어 낮에는 꽤나 많은 젊은이들이 돌아다닐것 같았다. 저녁 8시경이어서 백화점의 매장들이 하나둘씩 문을 닫고 있었다. 백화점은 서울의 왠만한 백화점에 비해 꽤 큰편이었으며 내부는 마치 코엑스몰을 돌아다니는것 같아 특별히 인상적이진 않았다.
씨암스퀘어를 둘러보고 호텔근처의 술집에 들렀는데 태국식 생선요리도 시켰다.
향신료를 꽤나 쓴 요리였는데 생각보다 역하거나 하지않고 먹을만했다. 친구와 맥주잔을 기울이며 방콕에서의 아쉬움을 달랬다.
오전 keynote Session과 오후 3개의 Track으로 구성되었는데 정보통신부에서 3G 이동통신의 주요 이슈 및 정책방향에 대한 발표를 시작으로 연세대, 삼성전자, KTF순서로 keynote세션이 있었습니다. 오전발표에서 연세대 정보대학원 교수님의 발표내용중 급변하는 모바일환경변화에서 모바일 2.0서비스가 가져야할 핵심은 즉시성이라는 말이 인상적이었습니다.
결론을 얘기하자면 기존의 웹2.0을 단순히 모바일로 옮기는것을 넘어 모바일의 특성과 강점을 살려 웹과 차별화된 서비스형태가 사용자에게 가치를 제공해줄수 있다는 것입니다.
오후세션은 Network & service, Terminal & Platform, Killer App & Contents 세가지 트랙으로 진행되었습니다.
Network & service Track에서 상반기에 상용서비스를 시작한 이동통신사와 달리 후발주자로 나선 KT Wibro서비스에 대한 세션에 참석했습니다. 발표내용은 모바일 2.0을 캐치프라이즈로 한 Wibro 서비스 전략에 대한 내용이었습니다. Wibro는 1차적으로 서울을 중심으로 수도권지역에서 망이 구축되었으며 향후 전국주요도시 망 구축을 통해 전국 서비스를 계획하고 있다고 합니다. 8월중으로 와이브로 폰이 출시될 예정이라고 하네요. KT의 Wibro 상용화 계획은 Wibro망을 통해 접속하는 사용자에게 디바이스에 관계없이 동일한 서비스 제공을 목표로 하고 있으며 iphone이나 prada폰과 같은 차세대 스마트폰에대한 전략도 준비중이라고 합니다.
하반기부터는 3G가입 업체에 관계없이 영상통화가 가능해질 전망이라고하니 3G 이동통신 보급도 활발해 질것 같습니다. 국내기술인 Wibro가 하루빨리 이동통신의 표준으로 채택되고 상용화되어 휴대폰을 통해 종량제 요금으로 고품질의 음성통화와 멀티미디어 데이터 서비스를 즐길날이 왔으면 하는 바램입니다.
Terminal & Platform Track에서 발표된 주제에도 관심이 많았는데 동시에 진행되는 바람에 참석하지 못했습니다.
Killer App & Contents Track에서는 발표된 모바일 웹2.0이라는 주제를 중심으로 Wibro기반 모바일 서비스, 모바일 웹표준기술, 풀브라우징, RIA기술, mashup등의 내용과 휴대폰 대기화면, 유무선 연계 서비스 사례등의 내용이 발표되었습니다.
모바일 웹2.0이라는 주제에 걸맞게 weblike rendering에 초점을 맞춰 진행된것 같습니다. 국내에서도 모바일웹 표준을 위한 모바일 웹 포럼이 적극적으로 국제표준을 제안하고 있다는점이 고무적입니다.
웹2.0에이어 모바일 웹2.0이 이슈가 되고 있는것 같은데요. 이는 웹기술의 발달과 모바일 시장의 변화, 휴대인터넷 기술의 진화등 여러 요인으로 인해 모바일 시장에대한 기대감이 반영된것 같다는 생각이 듭니다.
모바일 시장은 향후 기술발전의 중심에 있으며 여러가지 응용서비스들이 가능하지만 사용자가 가치를 느낄만한 서비스를 만들기위한 많은 고민들이 필요한것 같습니다.
Oracle module 소개
Oracle에 접속하기 위해서는 Oracle접속 모듈이 필요한데 이는 파이썬 소스코드를 통해 쉽게 Oracle 서버에 접근할 수 있도록 해주며 SQL명령어를 실행함으로써 얻은 결과를 파이썬코드에서 유용한 형태로 사용할 수 있도록 해준다. 파이썬을 통해 Oracle에 접근하기 위해서 본 글에서는 cx_Oracle 모듈을 사용했다. cx_Oracle모듈은 다음 싸이트에서 최신버전을 다운받을 수 있다. http://sourceforge.net/projects/cx-oracle/ 설치되어 있는 파이썬 버전과 사용하고있는 오라클 버전에 맞는 모듈을 다운받아 설치하면 된다. 그밖에 다른 모듈을 사용할 경우 다음 페이지를 참조하여 적절한 모듈은 사용하면 된다. http://www.python.org/topics/database/modules.html
설치방법
리눅스
$ tar -xzvf cx_Oracle-4.3.1.tar.gz
$ cd cx_Oracle-4.3.1
$ python setup.py build
$ python setup.py install
윈도우
다운받은 실행파일을 실행하면 python설치 디렉토리를 찾아 자동으로 설치된다. cx_Oracle-4.3.1-win32-10g-py25.exe
Oracle 접속방법
- 1.먼저 설치된 cx_Oracle모듈을 import한다.
>>> import cx_Oracle
- 2.Database에 접속한다.
- connect( [user, password, dsn, mode, handle, pool, threaded, twophase])
- 일반적인 접속을 위해서는 id와 passwd 그리고 dsn(data source name:TNSNAMES.ora파일 참고)이 필요하다.
- 추가적인 파라미터는 필요에 따라 접속시 지정할 수 있으며 일반적인 접속을 위해서 아래와 같이 접속하였다.
>>>orcl = cx_Oracle.connect('id/passwd@dsn')
예제코드
-
>>> import cx_Oracle >>> orcl = cx_Oracle.connect('id/passwd@dsn') >>> curs = orcl.cursor() >>> curs.execute('select * from blogmore where btype=\'BEST\'') >>> row = curs.fetchone() #상위 1개의 row만 가져온다. >>>print row #해당 row가 turple형태로 출력된다. (155, 'BEST', 'antiright', '\xb4\xeb\xb8\xb6\xbf\xd5', '\xb4\xeb\xb8\xb6\xbf\xd5 \xb9\xe6\xb6\xfb\xb1\xe2', None, None, 'http://cfs7.blog.daum.net/upload_control/download.blog?fhandle=MDNPcmlAZnM3LmJsb2cuZGF1bS5uZXQ6L1BST0ZJTEUvMC8wLmpwZy50aHVtYg==&filename=0.jpg-', datetime.datetime(2006, 12, 4, 19, 45, 33)) >>> print row[0], row[1] 155 BEST >>> rows = curs.fetchall() #모든 row를 가져온다. >>> print rows #검색된 모든row가 list형태로 출력된다. >>> print rows[0] 첫번째 row 출력 >>> print rows[0][1] 첫번째 row의 첫번째 필드 출력
참고문헌
http://www.oracle.com/technology/pub/articles/devlin-python-oracle.html
http://www.python.net/crew/atuining/cx_Oracle/html/front.html
이 글은 스프링노트에서 작성되었습니다.
file.close(), file.read([size]) , file.readline()
file.readlines(): 전체라인을 readline()을 이용하여 읽어들인 라인을 리스트에 넣어서 리턴한다.
file.write(str): 문자열 str을 파일에 쓴다.
file.writeline(str): 문자열 리스트를 파일에 쓴다. 줄바꾸기가 자동으로 삽입되지는 않는다.
file.seek(offset,[whence]): whence의 기본 값은 0이다. 0이면 시작 기준, 1이면 현재 위치 기준, 2이민 끝 기준에서 offset만큼 떨어진 위치에 파일 포인터를 위치시킨다.
file.tell(): 파일의 현재위치를 리턴한다.
file.flush(): 버퍼가 다 채워지지 않았어도 내부 버퍼의 내용을 파일에 보낸다.
file.fileno(): file 객체의 파일 기술자(File Descriptor)(정수)를 리턴한다.
file.truncate([size])파일 크기를 지정된 크기로 잘라버림. 인수를 주지 않으면 현재 위치에서 자른다.
file.mode: 파일이 오픈된 모드, file.closed: 1 or 0을 리턴, file.name: open()할 때 사용된 파일 이름
이 글은 스 프 링 노 트에서 작성되었습니다.
#1 디렉토리의 파일목록 얻기
glob모듈의 glob함수 사용: 와일드카드문자 ?(임의의문자 1개와 매칭),* 를 지원한다.
ex)import glob
glob.glob('./[0-9].*')
#2 파일의 추가정보 알아내기
isfile(path)- path가 일반 파일이면 True 리턴
isdir(path)- path가 디렉토리이면 True 리턴
islink(path), ismount(path), exist(path)
파일크기, 접근시간
os.path.getsize('py.py') //실제파일 사이지(윈도우에서는 파일읽기를 통해 계산하는 사이즈와 다를수 있음)
import time
os.path.getatime(path) #접근시간
os.path.getatime(path) #수정시간
#3 경로명 다루기
import os
p=os.path.abspath('a.log') #상대경로를 절대경로로
'C:\\python23\\t.py'
os.path.split(p)
('C:\\python23', 't.py') #(디렉토리와 파일을 분리)
os.path.join('C:\\python23', 't.py') #(디렉토리와 파일을 결합)
#4 URL다루기
urlparse함수는 아래와 같이 분리하여 튜플을 리턴
(addressing, scheme, network location, path, parameter, query, fragment, identifier)
ex)
>>> import urlparse
>>> a='http://3355.daum.net/daum/search/top/TotalList?q=스파이더맨3&skey='
>>> x=urlparse.urlparse(a)
>>>x
('http', '3355.daum.net', '/daum/search/top/TotalList', '', 'q=\xbd\xba\xc6\xc4\xc0\xcc\xb4\xf5\xb8\xc73&skey=', '')
>>> urlparse.urlunparse(x)
'http://3355.daum.net/daum/search/top/TotalList?q=\xbd\xba\xc6\xc4\xc0\xcc\xb4\xf5\xb8\xc73&skey='
>>> urlparse.urljoin(a, 'SearchTop')
'http://3355.daum.net/daum/search/top/SearchTop'
>>> urlparse.urljoin(a, '/')
'http://3355.daum.net/'
이 글은 스 프 링 노 트에서 작성되었습니다.


