2013년 5월 24일 금요일

관심사

http://users.sosdg.org/~qiyong/lxr/

더 냉정하게 이야기드리면.

일단 7년차면 이미 두세개정도의 스크립트 언어는 마스터해야했을 시점입니다.

php , perl , python , ruby 중에 2개정도는 익혀두셔야하고.. ( 전 python 은 적당히 하고 나머지 3개는 보고 수정가능한 수준까지는 했습니다. )
c/c++/asm 으로 언어 확장정도는 코딩가능할정도가 되어야합니다.
디비는 mysql/pgsql/oracle 정도는 해야하고..
network 장비는 L3/L4/L7 VPN VLAN 정도 대략 만져야하구요.
스토리지도 san 장비 정도는 매뉴얼 보고 다룬 경험이 있어야합니다.

김정균님 말대로 프로그래머보다 잘해야 SE 라고 부를수 있습니다.

저는 현재 대략 10년차 SE 고.. 현재 여러가지 하지만 잠깐 하고 있는 일이

QOS, L7, DDOS 방어 장비,Flow 장비등 50대 장비를 관리하는 시스템을 만들고 있습니다. ( SI 성이긴합니다. )
개발은 python 으로 하고 웹단은 django 디비는 pgsql
백엔드는 syslogd , snmp , ssh client , ftp client 를 비동기로 엮어서 필요한 데이터를 수집해서 가공하고 웹단에서 조회가능하게 pgsql 에 밀어넣는겁니다.
대부분 라이브러리를 불러다가 쓰지만 많이 짰고 각종의 프로토콜이 어떻게 돌아가는지를 다 이해하고 있습니다.
웹은 html 을 대략 이해하고 css / javascript 를 적당히 쓰고 ( 요즘은 jquery 를 쓰지만 ) comet 을 쓰기위한 cometd 도 직접구현했습니다. ( twisted 기반 )
동접 1000/2000 정도의 tcp 써버는 파이썬으로 구현할수 있고 뭐 그거 넘어가면 그 때 c 로 짜면 된다는 생각으로 뭔가 만듭니다.
물론 코드는 훌륭한건 아니고 그냥 적당히 동작하는 정도입니다.

SE 가 딱히 어떻게 해야한다기보다.. 문제해결에 포커스를 맞춘게 SE 라고 생각합니다.
문제 상황이 주어지면 주어진 자원으로 해결이 가능해야하고.. 그게 코딩이든 솔루션의 조합이든 말이죠.
전 아직까지 사업이나 돈의 개념 그리고 소모자원의 개념이 많이 부족한데 그게 부족한건 저도 알고 있고 나머지는 SE 로 살고 있다고 생각합니다.
아직은 뭔가 사람을 다루는 직급이 아니지만 사람도 시스템의 개념으로 다루기 위해서 많이 공부는 하고 있습니다. ( 일종의 절차를 만드는 거죠 )
다시금 이야기드리지만..
SE 는 프로그래머의 슈퍼셋입니다. ( 코딩은 않하거나 못해도 되지만 어떻게 도는지는 세세히 알아야하니까 결국 해봤어야하는거죠 )
( 알고리즘도 당연히 프로그래머 이상으로 해야한다고 생각합니다. 실천은 못하지만 ㅠㅠ )
사랑하지 않으면 떠나라 라는 책을 추천해드립니다.
http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8991268358

SE = 프로그래머 + system admin + network admin + 경험

이라고 생각합니다.

심은솔: ㅇ

복권 대신 꽃을 사보세요
사랑하는 가족을ㅇ 위해,
그리고 나 자신을 위해,
꽃 두 세송이라도 사서
모처럼 식탁위에 놓아보면
당첨 확률 백퍼센트인
며칠간의 잔잔한 행복을 얻을수 있습니다.

어느 책에서

최재원: 더 느려지기2

서로들 빨대를 꽂으며 무엇을 취해가고 싶지 않아요 ,
그냥 좋으면 좋은거고 아니면 아닌거겠죠
변함을 내가 어떻게 조정할수 있는 문제가 아닌거 같아요.
그렇다고 사랑받기 위해서 나를 맞추는건 너무 서글프잖아요;;

지금 내모습 그대로 나를 사랑해주세요~

불가 용어에 시절인연 (時節因緣) 이란게 있다.

모든 인연에는 오고 가는 시기가 있다는 뜻이다.

굳이 애쓰지 않아도
만나게 될 인연은 만나게 되어있고,

무진장 애를 써도 만나지 못할 인연은 만나지 못한다는 것이다.

사람이나 일,
물건과의 만남도

또한 깨달음과의 만남도
그 때가 있는 법이다.

아무리 만나고실은
사람이 있어도

혹은 갖고 싶은것이 있어도,

시절인연이 무르 익지 않으면

바로옆에 두고도 만날수 없고,
손에 넣을수 없는 법이다.

만나고 싶지 않아도, 갖고싶지않아도,

시절의 때를 만나면 기어코 만날수밖에 없다.

헤어짐도 마찬가지다.

헤어지는 것은 인연이 딱 거기 까지이기 때문이다.
사람이든 재물이든
내 품안에, 내 손안에서

영원히 머무는 것은 하나도 없다.

그렇게 생각하면 재물 때문에
속상해 하거나 인간 관계 때문에 섭섭해할 이유가 하나도 없다.

2013년 5월 3일 금요일

java split 사용시 문제점

java에서 split 메소드를 사용하는 도중에
String str = "abc:def:ghi:jkl";

String data[] = str.split(":");

이렇게 하면 분리하는데
String str = "abc.def.ghi.jkl";

String data[] = str.split(".");

. 으로 분리를 하면 분리되지 않는다.

split의 인자로 들어가는 String 토큰이 regex 정규식이기 때문이다.
정규식에서 .은 무작위의 한 글자를 의미한다고 한다.

그러면 "모든 문자가 토큰이 되기 때문에" 배열에 남는 게 없게 되는 것이다.

따라서 이스케이프 문자를 앞에 붙여 줘야 한다
. 그런데 String 안에 이스케이프 문자인 \를 써 주려면 \\라고 써 줘야 한다.
따라서 \\라고 쓰는 것이다. 그래서 \\.이라고 쓰면 정규식 쪽에서는 \.라고 인식을 하고 실제 .을 찾게 되는 것이다.

기호를 써서 split를 쓸 때 뭔가 작동을 안 하면 \\을 붙여 보라.

참, 그냥 \라고만 붙여야 하는 것도 있는데, 아래 애들이다.

\b \t \n \f \r \” \’ \\

참고하면 될 것이다.

참고 http://mytory.net/archives/285