Java/Based2009. 7. 3. 10:07

http://www.eclipse.org/downloads/

묻지도 따지지도 않고 받아봅니다!

유로파 (3.3), 가니메데(3.4) 에 이어서 갈릴레오 프로젝트가 정식출시 되었다구 하네요.
유로파를 주로쓸때가 자바 처음 배우고 공부할적에 썻었으니..07년도에 나왔구..
가니메데는 회사 취직하고 얼마 안지나 나왔으니.. 작년 이맘때쯤 인듯하네요.. 08년도라..

이제는 갈릴레오가 나왔네요.

처음 유로파를 쓸때부터 한글판을 써보질 않아서..
오히려 전 영문이 더 편하네요.
(그렇다고 영어를 잘하거나 하는거는 아님,  배운데로만 몇가지 기능 사용할뿐  -_-;)

잘 모르는 영어 열심히 파면서... 갈릴레오 연구를 좀 해봐야 할듯...
(이클립스만 3개째 깔아놓은;;)

Posted by 햇 님
Java/Based2009. 1. 19. 21:02
아... 기초중의 상기초이자..
정말 아주아주 처음에 나오는 자바에서의 특수문자....
예를 들자면 머 \n 과 같이 뉴라인 문자 같은거를 출력하구 싶다면... \ (역슬러쉬) 문자의 표현을
실제로 하려면 \\ 두번을 해줘야 print 되는 문자가 \ 로 나오게 된다..  따라서 뉴라인 문자를
그냥 보여주고 싶다면 \n 이 아니라 \\n 으로 표시해야 하는것이다!!!

갑자기 이런 쉬운얘기 왜하나 싶다..

맞다.... 이걸로 열심히 삽질 해주셨다...
장장 2시간에 걸쳐서..... 욕나온다.... ㅆㅂ

위에 내용을 내가 모르는바는 아니지만... 내가 걸려든건 " | "  바로 요문자다... 리눅스에서는
파이프 라인이라고도 불리는것..
이야기를 점점 더 거슬러 올라가자면..
나는 현재 쿠폰을 연동해서 쿠폰정보를 가져와 메일폼에 넣어주고.. 대상자에게 메일을 발송하려고 한다.
(휴대폰을 개통해주어 감사하는 표현의 감사메일이다. 더불어 문자 50건 무료 쿠폰도..  스팸아님니돵 ㅠ.ㅠ)

여기서 쿠폰을 생성해주는 사이트와 연동을 해서 연동페이지의 쿠폰정보를 읽어들이는데..
이정보가 " | " 로 여러개의 값이 구분되어있는지라..
InputStream 으로 받아서  이러쿵저러쿵 쏼라쏼라 해서뤼 String 값으로 받았다.
결국 마지막은 split("|') 메소드를 사용했는데..
자꾸..... 이놈이 nullpoint를 내는것이었다.....   환장하는줄 알았다...
split() 한 값을 찍어보니 가관아니었다...
내 예상으로는 분명 5개의 배열... 혹은 2개의 배열로 나와야 할게... 무련 56개... ;;; 
한글자씩 짤려서 배열에 들어간것이다...   (오메... 대체 무엇이다냐...);

그리고... 이래저래 삽질해보고 땅을 파본결과....
"\\|"  두둥.....;;
이렇게 써야지 " | "  이놈이 인식이되는것이었다~~~~`

아아아~~~악!!!!!!!!!!!!!!

짜증나... 이걸 어떻게 일일히 다 외우냐고!!!!
그러나... 이 삽질로 난.. 다시 이런 실수 하지 않겠다.....    야근..시간을 이렇게 허비하다니.. 제길...
ㅠ.ㅠ

여러분.... 검색해도 | 는 안나오네요... 줴길...   검색창에서도 | 파이프라인처럼 먹히는듯 ㅠ.ㅠ
Posted by 햇 님
Java/Based2008. 12. 26. 14:38
주로 GC 도중 서버가 멈추는 경우를 경험했다.
회사내에서 주로쓰는 프레임웤에 DB 커넥션을 관리하는
프렘임웤에서 커넥션 객체를 만드는 부분에서
만들어지고 이미 쓰여져서 가비지 컬렉팅 대상이 되어야 하는데.
사용후에 close 해주지 않는경우 그대로 남아서
Heap에 메모리영역을 차지하고있는 경우가 있었다.

물론 이외에는 파일처리를 하면서 한번에 많은 객체들이
eden space 에 생성되고, GC 가 일어나는 도중에
멈추는 경우도 있는듯하다..

아직 원인의 파악은 힘들다..
GC 나 Heap 메모리의 설정이 잘못되었을지 모르겠지만..
지금으로선 셋팅의 문제가 아닌 프로그램에서의
메모리 누수가 아닐까 싶다.

아..   주말에만 뻗지 않기를... -_-;
Posted by 햇 님
Java/Based2008. 6. 9. 15:39
객체지향 프로그래밍이라는 말을 많이 들었을겁니다.
물론 컴퓨터언어쪽 관련 전공자가 아니면 좀 생소한 이야기일수도 있지만...
프로그래밍에 취미 혹은 밥벌어 먹을 생각이 있는 분들이라면 한번쯤은 들어봤을 이야기일 테죠

제가 처음 자바를 접했을 당시에는 이 객체지향이라는 말에 참 익숙치 못했고,
어떤 의미인지 파악도 하지 못한체 코딩을 하다보니..
자바라는것에 큰 흥미를 얻지못했고, C++ 또한 객체지향의 개념이 첨가되었기에
갑자기 프로그램쪽에 흥미를 확 잃었던적이 있습니다.

미리 준비된 상태에서 쓰는 글이 아니라 좀 두서가 없지만,
왜 갑자기 이런 이야기를 하는고 하니..

객체지향의 개념을 확실히 이해하고 깨닫기전에
섣부르게 클래스를 만들고 프로그램을 짜기 시작하면
뭐.. 처음에는 문제없이 프로그래밍을 하겠지만 점점 프로그램이 거대화 되어 갈 수록
객체지향이라는 부분을 이해하지 못하는것이 얼마나 큰 문제가 되는지 깨닫게됩니다.

객체지향, 객체 라는것을  설명하기 전에...
왜!  라는 의문을 가져봅니다.

왜 객체지향인 걸까요?
그냥 프로그래밍이 아니라 객체를 지향하는 프로그래밍이라는것이
왜 생겨나게 되었을까 하는 생각을 해봐야 할 거 같습니다.

제 생각을 말하자면 '좀 더 편하게 프로그래밍 하자' , '좀 더 구조적으로 프로그래밍 하자'
이런 생각에 나오게 된게 아닐까 싶습니다.
기존의 프로그램밍 방식에서는 구조적이라던가 코드를 재사용하는데 제약이 많았지만
객체지향이라는 개념이 나오면서 이러한 한덩어리의 프로그램의
조그마한 블럭과 같이 되었다고나 할까요? (블럭 같은거지.. 블럭은 아니죠 ^^)


그렇다면 이 객체라는것은 또 무엇인지 알아야 할 거 같습니다.
그렇다면 저는 한마디로 이렇게 말할겁니다. (대부분 아시겠지만 ^^)
'객체는 모든것 이다.'
그렇습니다. 객체란 모든것입니다. 이 세상의 모든것 들을 모두 다 객체로 보는것이죠.
너와 나도 객체요, 컴퓨터도 핸드폰도, 유리컵도 객체로 봅니다.
컴퓨터 객체라고 하면 컴퓨터라는 객체 하나 또한 여러개의 객체들이 모여서 만들어진
객체가 될 것입니다. (그렇지 않을수도 있습니다)

간단한예로 들자면 컴퓨터에는 마우스라는 객체가 붙어있죠.
마우스객체는 혼자서 동작하지는 못하지만 컴퓨터의 메인보드 객체와 연결되면 동작을 하게 됩니다.
그렇다면 마우스라는 객체는 단 하나의 메인보드 객체와만 연결되야 동작할까요?
대답은 '아니다' 일 겁니다.

회사에서 쓰던 마우스를 집에 가져가서 집에있는 컴퓨터와 연결하면 동작을 안할까요?
USB 포트이냐 PS/2 포트이냐 하는 차이로인해 컨버터가 필요할 지언정 큰 무리없이 사용 할 수 있는것이죠.

다른 예로 대기업에서 한꺼번에 판매하는 데스크탑 PC 와 용산에 가서 자신이 직접 골라 조립한 PC로
보자면 기존의 프로그래밍은 대기업에서 내놓은 서비스형 PC로 고장이 나거나 업그레이드를 하려면
그 회사의 제품과 교체하거나 업그레이드해야하는 반면에 용산에서 산 PC는 그와 상관없이
마음대로(실제로 마음대로는 아니겠지만) 교체, 업그레이드가 가능하다는것입니다.

좀 쉽게 이해하시라고 예를 들었는데 오히려 더 헷갈리시려나요?
하지만 이 개념은 어느 순간.. 확 깨닫는것 같습니다. 그리고 중요한것은 객체지향을 안다 모른다..
객체를 안다 모른다라기 보다는

왜 객체를 쓰는지.. 왜 객체지향적인 프로그래밍이 필요한지에 대해 항상 의문부호를 던져야 하는다는겁니다.
스스로 많이 생각해보시고, 다른사람과도 의논해보는것도 좋고, 토론도 좋을것 같습니다.
다시한번 말씀드리지만..  왜!   왜! 그런것인가?   항시 생각해보시길 바랍니다. ^^
Posted by 햇 님
Java/Based2008. 5. 14. 12:03

1. 자바의 역사
 (1) 1991년 : sun사 Green Project 에서 James Gosling 외 기술자들이
    Oak라는 언어로 제작(가전기기에서사용할 목적)
 (2) 1997년 : jdk 1.1 발표
 (3) 1998년 : jdk 1.2 발표
 (4) 2000년 : jdk 1.3 발표
 (5) 2002년 : jdk 1.4 발표 (엄청난 각광!!!)
 (6) 2004년 : jdk 1.5(5.0) 발표
 (7) 2007년 : jdk 6 발표


2. 자바의 특징
 (1) 플랫폼(OS)에 독립적 : 자바 가상머신(Java  Virtual Machine)이 해당 플랫폼마다 따로
  제공되어서, 동일하 실행결과를 보장한다.
 (2) 객체 지향 언어 : 재사용성, 프로그램의 생산성이 향상
 (3) 멀티 쓰레드를 지원 : Thread 는 Process 보다 작은 단위, 동시 다발적인 작업을 수행할 수 있다.
 (4) 자동 메모리 관리 :  가비지 컬렉터(JVM에 포함되어 있는 소프트웨어)에 의해서 자동관리된다.


-- 학원 다니면서 배운내용을 다시보며.. 정리를 해보자!
Posted by 햇 님
Java/Based2008. 5. 12. 20:38

자바 개발을 위하여 필수!
JDK를 설치해보도록 하겠습니다.
우선은 실습상 편의를 위해서 현재 최신 Relese 된 java 6 가 아닌 java 5를 받도록 하겠습니다.
그리구 우리는 넷빈즈를 사용하지 않을거라서 JDK 만 받으면 되겠습니다~

http://java.sun.com/javase/downloads/index_jdk5.jsp  로 가시면 여러가지 및에
JDK 5.0 어쩌구 저쩌구 붙은 많은 목록이 나옵니다.
우리는 이중에서 JDK 5.0 만 받도록하겠습니다.
JDK 5.0 Update 13 이라는 목록 옆의  download 버튼을 누르면 새로운화면으로 넘어갑니다.
(08.05.07일 수정 : 현재 update 15로 변경되었구요.. 업데이트 버젼은 크게 상관이없는것으로 압니다.)

JDK 를 받기위해서는 License Agreement 에 Accept 를 체크해주어야 합니다.
다시한번 화면이 깜빡이고 나면 다운로드를 받으면 되겠습니다.
운영체제를 확인하고 그에 알맞는 JDK를 받도록합니다.

전 Windows에서 계발을 하려하기 때문에 Windows 버젼을 받았습니다.
( 윗부분 페이지가 약간 바뀌었네요. 운영체제를 셀렉트박스로 선택하게 되었습니다. 그리고 약관동의하시면 되겠습니다.)

Windows Offline Installation, Multi-language   라고 된것이 Windows 버젼입니다.
앞으로의 설명 또한 Windows에서의 설치에 국한된 설명 및 설정이 되겠습니다.

다운로드하고 설치파일을 더블클릭하면 설치가 시작됩니다.

사용자 삽입 이미지


라이센스에 동의해 줍시다. - 안그러면 삐집니다  :(
그뒤는 계속해서 Next 해주시면 됩니다.
JRE 설치화면이 나옵니다.

사용자 삽입 이미지


당황하지 마시고 계속해서 Next!!

사용자 삽입 이미지


요것두 그냥 PAss!!  Next~
자... 그럼 설치가 완료입니다.... (너무너무 편하고 간단함 -_-;; 계속 Next 란말씀!!
그럼 이어서 환경변수를 설정합니다.

다음화면과 같이 먼저 JDK가 설치가 잘 되었는지 확인해주시구요..
jdk1.5.0_13 폴더 안에 bin 폴더까지 들어가서 경로를 복사해둡니다.
(요 경로명을 변수로 등록할겁니다.)

사용자 삽입 이미지

내컴퓨터 -> 등록정보 -> 고급탭 -> 환경변수버튼을 눌러주시면 환경변수 설정하는부분이 나오고
아래쪽에 보시면 시스템 변수들이 나옵니다.
이 시스템변수중에서 PATH 를 찾아내어서 편집버튼을 눌러줍니다.

사용자 삽입 이미지

자 편집 창이나오면 맨 앞쪽에 방금전 복사해온 경로를 붙여넣고  세미콜론( ;  ) 을 찍어줍니다.
세미콜론은 여러개의 PATH들을 구분하는 역할을 하므로 꼭 찍어줘야 합니다.

C:\Program Files\Java\jdk1.5.0_13\bin;

과 같은 형태로 맨앞부터 들어갔다면 성공! 확인을 누르고

사용자 삽입 이미지


이제 새로만들기 버튼을 눌러서 새로운 시스템변수를 등록한다.

사용자 삽입 이미지


요기서는
C:\Program Files\Java\jdk1.5.0_13\bin; 에서 bin 을 빼고

C:\Program Files\Java\jdk1.5.0_13   까지만 입력해주면 됩니다.
그리고 변수명은 JAVA_HOME 으로 하고 저장을 해주면 설정까지 완료가 되었습니다.

설정이 적용되었는지 확인은
시작 -> 실행 -> cmd 를 입력하고 실행하면 콘솔창이 나옵니다.
PATH 설정을 하였기 때문에 어디에서든 C:\Program Files\Java\jdk1.5.0_13\bin 안의
실행파일들을 실행 할 수 있습니다.

그림 java 리고 입력해보겠습니다.

사용자 삽입 이미지


위와같은 화면이 나오면 정상적으로 설치가 되었습니다.

사용자 삽입 이미지


java -version 을 입력해보면
현재 어떤 버젼의 JDK가 설치되었는지 확인할수 있습니다.
우리는 J2SE(JAVA 5.0) 1.5.0_13 버젼을 설치하였죠.

그럼 이제 JDK를 바탕으로 JAVA 프로그래밍의 세계로 여행을 가시죠~~~ ^^

================================================================================

java -version 인데  wersion 으로 잘못썼네요 ^^;
08년 2월 8일에 수정하였습니다. ^^

Posted by 햇 님