Posts tagged ‘Java’

Java 그리고 애증

나는 자바의 팬이 아니다.
간결하지 못한 코드, 상대적으로 느린 실행속도 등.. 쉽게 갈 수 있는 것들을 미묘하게 어렵게 만드는 재주가 뛰어나다고 생각하기 때문..

물론 이 모든 핑계는 내가 자바를 잘 다루지 못하기 때문에 벌어지는 일임에는 분명하지만 […..] 그래도 내 탓 보다는 다른걸 비난 하는 것이 더 쉬우니까.. :-p

그러나 자바의 장점까지 무시하는 것은 아닌데..
Write once run anywhere라는 꿈과 이상을 실현하기 위해 매우 폭넓은 환경을 지원하며 멀티플랫폼을 지원해야 하는 상황이면 자바도 매우 괜찮은 선택 옵션이 되기도 하며 더군다나 쉽사리 망하지 않는 오라클이라는 회사가 뒤에서 개발을 하고 있다라는 것 자체만으로도 이 언어/플랫폼이 순식간에 사라지지는 않을 것이라는 안정감을 주기에 충분하니까.

그리고 거기에 따라오는 희생(?)은 jvm이라는 가상머신을 실행해야만 하는 구조의 한계로 시스템 리소스를 온전히 사용하기 힘들다라는 점.. 가상머신을 실행해야 하기에 생기는 매우 큰 버전 의존성 들은 아쉬운 부분.

말은 이렇게 하지만 하둡+스파크+카프카 등을 사용하는 입장에서는 더욱 더 가까워질 수 밖에 없는 상황이고 나 역시 말은 팬이 아니라고 했지만 어쩌면 이미 벗어날 수 없다라는 것을 알고 있기에 이렇게 애증이라는 단어를 써가며 이야기를 하고 있는 것이겠지..

python을 최근에 사용하고 있음.

내가 python을 쓰기 시작한 역사를 거슬러 올라가면 1999년이었나 2000년이었나 당시 사무실에 근무? 비슷하게 나왔던 후배랑 프로그래밍 언어 이야기를 하는데 자기는 python이 최고라는 이야기를 했었고 그게 처음으로 python과 만나게 되었던 계기..

물론 어느 언어나 마찬가지로 처음에는 뭔가 흥미로운 것을 찾아서 알아보다가 Hello World랑 루프 몇 개 돌려보고 우와~ 하면서도 정작 쓸만한 기능을 만들어야 하는 시간이오면 내가 잘 안쓰던 언어에 모르는 함수들을 불러야하고 책에 나와있는 예제나 어려운 영어로 된 웹사이트를 뒤져보더라도 내가 원하는 딱 그 기능을 찾기는 정말로 힘들기에 책/인터넷에 나와있는 예제와 프로젝트가 거의 90%이상 같은 상태이거나 해당 언어를 반드시 써야하는 상황이 아니면 원래 그냥 자기가 쓰던 익숙한 녀석으로 처리를 하는 것이 보통..

 

python 역시 나에게는 위와 다름 없는 언어중 하나 였었음.. Hello World를 찍어본게 다였지;; 제대로 써보지도 않았고 다시 쓸 일이 생기리라고는 생각지도 않았던 그런 언어..

그랬던 내가 지금 해야하는 그리고 하고싶은 프로젝트를 python으로 진행 하리라고는 생각도 못했다라는 사실.. ㅎ

몇 달 전에 간만에 다시 python으로 Hello World을 찍어보면서 뭔가 다른 것들 할 것들이 있나 알아보기 시작을 했는데.. 이게 생각보다 지원되는 함수가 장난이 아니게 많은거라;; 특히 json관련 데이터를 다루는데에는 정말 편하게 되어있는 것을 발견!! 덕분에 당시에 나를 심각하게 괴롭히던 문제 하나였던 json 데이터를 그냥 쌩 텍스트로 -_- mysql에다가 다른 엔지니어가 넣어놓은 것을(왜 그랬어ㅠㅠ) 파싱해야하는 상황에 이 python을 적용, 첫 프로젝트를 성공적으로 완료할 수 있었고 그게 이 언어를 계속 쓰게 만드는 계기가 되었음. 어찌보면 왜 그랬냐라고 불평을 줄줄이 늘어놓았었지만 어느정도는 고마운 마음까지 들고 있는 요즘 상황 🙂

그 덕분에 하나하나 문법도 함수들도 익숙해지기 시작하고 이제는 업무를 진행하는데 이거 없이 진행해도 상관없는? 경우가 있어도 미묘하게 아쉬워하면서 가능하면 사용할 곳을 찾아가며 재미있게 쓰는 단계에 접어들었음.

 

언어를 배우는데 투자한 시간으로는 c++, java가 1~2위를 다투고 그럴텐데 공력이 부족한 것인지 아니면 프로젝트를 제대로 못만나서 그런건지 아직은 제대로 써본 적이 없었는데 그냥 곁눈질로 재미있겠다 하고 심심풀이로 배웠던 php, python의 경우에는 실제 업무에서 상당히 많이 쓰이는게 아이러니라면 아이러니.. 물론 배우기가 쉽기에 업무에 적용하기도 쉬웠으니 이렇게 이야기 할 수 있겠지만 🙂

주문한 책이 도착했음 ㅎ

갑자기 공부 바람이 불어서 🙂

일하느냐고 어찌 시간을 낼 수가 없다라는 핑계로 몇 년 책 안보고 그냥 있는거 가지고 살아왔더니 이제 그나마 가지고 있는 것들도 다 써버려서 바닥이 드러나기에 다시 좀 채워넣어보는 기간을 두기로 결정..

…아주 잡다하게-_-;; 책을 질러버렸음;;

실무에서는 거의 사용되지 못할 postgresql이라던가;; IDC관리자도 아니면서 시스코 네트워킹이라던가 -ㅅ-
예전에 잠깐 보고 지금까지 그냥 버려두고 있었던 Java를 위해 jdk를 다 설치하고 이건 왜 계속 흥미가 있는건지 모르겠는 python까지..

연말까지 모든 주말을 반납해도 이거 다 볼 수 있을까 싶은데 주말마다 잠 자고 놀러다니기 바빠서 책은 언제 볼지 모르겠다라는 ㅎ
그냥 이런저런 장난감 대신에 다른 사람들이 ‘보기에 좋은’ 책을 산 것이 아닌가 싶은 느낌이랄까 ㅎ

그래도 뭔가 안하던가 하니까 재미는 있다 🙂

Cassandra database

많은 Apache 프로젝트 중 하나
Facebook이 사용하고 있고 (라기보단 저기서 부터 시작 되었고) 최근에 Twitter도 사용하기로 했다라는 환상의(?) DB

아직 잘 안써봐서 모르겠지만.. 첫 느낌은..

‘자바를 이용한 배열+배열의 인덱싱’

문서도 안 읽어보고 그냥 내 맘대로 깔고 실행해본 결과의 느낌임 ㅎ
내심 나중에 이 글을 보면서 땅을 치며 후회하길 살짝은 바라고 있기도 함;;

자세한 소감은 좀 써본 다음에 이어서 🙂

IT 로 취직 쉽게 하는 방법

먼저.. 지금 일을 하고 계신 분들께서 보시면 좀 까칠 하게 생각 하실 수 있습니다
그리고 완전 개인적인 생각이니 동의 안하시면 그냥 1박 2일 보세요 ㅋ 그게 더 즐거워요 ㅎ

IT로 돈 벌고 나름 잘 살아남기 위한 방법

1. 지금이라도 늦지 않았습니다. Java를 하십시오
이유 – 지금 MS 기술의 그늘에서 월급 받는 중이라면 상관이 없지만 만약에 지금 시작을 하려는 분이라면.. Java를 하십시오.. 일반 소비자 시장에서 잘 먹히는 C++ 및 각종 MS기술보다 대규모 기업시장에서 많이 쓰이는 Java가 내 주머니에 돈을 가져다줄 확률이 더 높습니다.. 특히 외국에 나갈 생각이 있다라면 Java쪽이 좀 더 유리 할 수 있습니다

2. Web 관련 언어를 하나 정도는 익혀 두는 편이 좋을 수 있습니다
이유 – 전통적인 어플리케이션의 위치가 나름 많이 줄어드는 것 같습니다. 결국 프로그램이 하는 일은  DB에 값을 넣고 저장되어있는 DB의 값을 불러와서 원하는 모양새로 보여주는 것이 대부분인데.. 유지보수 및 관리가 나름 쉬운 웹 기반으로 제작이 되는 경우가 많으니 완전 까막눈만 아닐 정도로는 알아두면 나중에 대처하기가 쉬울듯.. 사실 Java나 C++를 공부 했으면 php에 접근을 하기 매우 쉬울 꺼고 그냥 쉽게 적응 할 수도 있을테니 완전 배척만 하지 말아주세요 🙂

3. DB를 다룰 줄 알면 편합니다
이유 – 한국에서는 개발자가 DB설계도 하고 쿼리도 짜야하고 알아서 다 해야하는 경우가 있으니 더욱 더 -_-;;
나중에 뻑나는건 나중일이 되는 경우가 많으니 일단은 지금 할 줄 아는 것이 중요하고.. DB의 중요성은 어디에서 누구에게 물어봐도 다 인정 할 껍니다.. 물론 DBA가 있다면 DBA를 더욱 괴롭히세요 🙂

4. 소프트웨어 개발을 포기 하세요
이유 – 그게 어찌보면 가장 나은 빠른 방법일 가능성도 있습니다
대안으로 공부를 해야 할 것은 네트워크, 보안 그리고 하드웨어 입니다

네트워크라는 것이 사실 매우 간단한데 프로그램의 어셈블리 같은 느낌이 강해서 접근을 하는 방법이 어렵지 개념이 잡혀 있으면 슬슬 따라오는 경우가 많습니다.. 다 따라오지 않는 것이 문제가 되기는 하지요 -ㅂ-;; 단점은 네트워크라는 것이 언제 장애가 발생을 할 지 모르기 때문에 24/7 대기를 해야하는 경우가 많이 생긴다라는 것..

하드웨어의 경우는 아무리 인터넷이 발전을 하고 컴퓨터가 발전을 해도 결국 어디에선가 서버라는 녀석이 보내주는 데이터에 의존을 해야하고 그 서버를 담당하는 자원이 생각보다는 모자라기에 서버 쪽의 하드웨어 (단순 서버 및 스토리지 포함) 쪽에 대한 이해도가 높다면 매우 큰 도움이 될 것입니다

그리고.. 가장 중요한…
뭔가 똥꼬가 찌릿찌릿하고 머리 속에서 떠나지 않는다라면 잡으세요..

다만 똥인지 된장인지 가려가면서 먹어야합니다 -_-;;
이게 참 어려운데.. 먹어보기 전에는 모르는 경우가 많기에.. 일단 간을 보고 제대로 씹기전에 삼킬지 뱉을지를 잘 결정해야 합니다..

돈 몇 푼 따라 갔다가 그거에 목 매달고 살게 될 수도 있으니.. 하고 싶은거 정해서 그거 잘 밀고 나가면 됩니다 🙂

Outlook에 대항할 오픈소스 일정관리 소프트웨어 thunderbird + lightning (sunbird)

사용자 삽입 이미지사용자 삽입 이미지사용자 삽입 이미지

사실 한 방에 Exchange server + Outlook 의 조합을 이길 수 있을 것이라 생각하지는 않는다

다만 좋은 대안이 하나둘씩 나오고 있으며 많은 기능들이 오픈소스화 되어 무료로 사용을 할 수 있어지며 소스가 자유롭기에 다양한 플랫폼에서 컴파일을 자유롭게 할 수 있으며 반대로 Java를 이용하여 여러 플랫폼을 지원하기도 한다.

내 컴퓨터에는 상당히 많은 수의 오픈소스 프로젝트의 산물들이 설치되어있고 그 것들을 이용하는 것이 일종의 즐거움이라고 할까.. 쏠쏠 한 재미를 주는 것을 부정할 수는 없을듯 🙂

물론 업무에서는 회사에서 Exchange를 사용하고 있기에 outlook을 쓰고 문서들의 공유 역시 MS Office를 통하여 하나 유독 손이 잘 가지 않는 것이 있다면 그게 바로 일정관리, 캘린더 부분이었다. 이상하게도 outlook에서 제공하는 캘린더 기능은 잘 사용하지 않게 되는 건 아마도 email client 라는 인식이 너무나 강해서 인것인지 바로 아래쪽에 있는 탭을 누르는것 조차 하지 않게 되는 것이 현실인것 같지만 이상하게도 thunderbird+lightninggoogle calendar의 조합에는 손이 잘 간다 🙂

사용 방법은 간단 먼저 thunderbird를 설치 한 후 add on 으로 lightning을 설치 – 현재 03/26/2008기준 lightning 버전은 0.7이며 thunderbird 2.0.x 버전을 지원한다 – 후 보면 아래쪽에 calendar 라는 항목이 생기며 달력을 사용할 수 있게 된다 🙂
그 뒤에 마지막 provider for google calendar 를 add-on시켜주면 google calendar와의 연동도 완성 google calendar 의 내용도 마음껏 가져오고 수정하고 할 수 있게 된다 🙂

mail은 gmailimap으로 끌어오면 되고 일정은 google calendar 를 이용하여 모든 플랫폼에서 자유롭게 읽고 수정을 할 수 있으니 기능상으로 보자면 exchange+outlook의 기능을 돈 한푼 안들이고도 사용을 할 수 있게 되었다

여기에 Zimbra 와 같은 open source mailing server 를 이용한다면 메일서버도 캘린더도 모두 in house에서 처리…

그냥 놓고보면 물론 Exchange+Outlook에서 제공되는 install and use 정도의 ‘나름’ 쉬운 설정과는 거리가 멀지만 사용할 수 있는 좋은 환경과 그것을 제대로 쓸 수 있는 어플리케이션이 있다면 많은 부분 대체를 할 수 있을 것이라 생각된다 🙂

사실 개인적으론 Sunbird를 사용하다가 이거 어떻게 온라인으로 사용안되나를 찾아보다가 google calendar와의 연동을 알았으며 그 것을 다시 email client 에 넣어주는 lightning project 를 찾게되어 즐거움에 글을 남겨놓는다 😀

ps. 현재 매킨토시에서는 thunderbird 2.0.x버전의 경우 imap관련 한글 에러? 버그? 비슷한게 있으니 사용에 주의가 필요할 수도… 물론 알파버전인 3.0.x의 경우에는 문제없이 사용중~ 어여 천둥새도 베타로 올라갔으면 하는 마음 ㅎ