Study - Programming/JAVA2007. 9. 7. 21:45
다음 코드가 있다.

int a;
a = 3;

  이렇게 하면 a의 값은 무엇일까? 당연히 1이다. 하지만 Test라는 클래스가 있고 이런 코드가 있다면 어떨까?

Test ex;

  ex는 아무것도 가리키고 있지 않다. Test형으로 변수를 만들었을 뿐이지만 이것은 아무 의미없는 객체라는 것이다. 단지 Test라는 형태의 틀만 가지고 있을뿐. 이럴 때 Test클래스 안에 Show라는 메소드가 있다고 치고, 다음과 같이 실행하면 에러가 발생한다.

ex.Show(); //에러

왜냐하면 ex는 아무것도 가리키고 있지 않기 때문이다. 이럴 떄는 새로운 인스턴스를 생성해 주어서 이 인스턴스를 가리키게 해 주어야 한다.

Test ex = new Test();

  잠깐 메모리 구조를 확인해보자.
  앞에서 int형 변수 a의 값은 바로 3이다. 그러나, ex의 값은 다르다. 메모리상으로 Test라는 클래스의 인스턴스가 하나 새로 생성되었고, ex는 이 인스턴스의 메모리 주소를 가리키고 있다. 즉 ex의 값은 인스턴스 자체는 아니라는 이야기다.

  ex와 같은 변수를 레퍼런스 변수라고 한다. C++의 레퍼런스와 상당히 비슷한 개념이다. 그렇다고 포인터는 아니다. 포인터는 주소에 직접 접근해서 그 값을 바꿀 수 있지만, 레퍼런스는 오로지 레퍼런스 변수를 통해서 그 안의 메소드와 멤버 변수만 사용할 수 있다.

  알아두자.일반 데이터형은 바로 그 값을 가리키지만 레퍼런스 변수는 그렇지 않다.
Posted by 머리
Study - Programming/JAVA2007. 9. 5. 01:22

  JAVA SDK 설치하고 나서 메모장으로 대충 코딩하면서 살아 보자고 하려 했더만 도저히 답답해서 안되겠더라. 특히 들여쓰기! 진짜 이건 너무하다 싶었다.
  그래서 울트라 에디트나 에디트 플러스 같은거 깔아 볼까 생각도 해봤지만 결론은 IDE를 깔자,그래서 뭐 별거 있나? 이클립스를 깔았다.
  맨 처음에는 이클립스를 설치하면 JAVA SDK를 자동으로 깔아 줄 줄 알았는데 아니더군.. 포맷한 직후라 깔려 있지도 않았는데.. 귀찮아하며 JAVA SDk 깔고,이클립스를 깔았다.
  확실히 내가 MS 관련 개발 툴에 많이 잡혀 있나 보긴 보다. MS 툴이 아니면 다른 툴은 사용하기가 낯설다. 아까 델파이도 그랬고, 지금 이클립스도 그랬다.
  뭐 대충 코딩 간단히 하고 컴파일을 해 보았다.

사용자 삽입 이미지


  이게 코딩하고 컴파일한 화면. 개발 환경은 놀랄만큼 잘 되어 있다. 프로젝트를 생성하면 자동으로 메인 클래스 하나를 만들어 준다. 여기서 메인 함수를 적어 주면 된다.
  코딩 환경도 매우 맘에 들더라. 우선 당연히 들여쓰기는 지원해주고, 함수의 괄호들도 알아서 닫아 준다.
  또 마음에 드는건 오른쪽에 아웃라인. VC++의 클래스 뷰어와 비슷한 기능을 하더라. 마음에 너무 든다. 그리고 콘솔 화면도 따로 명령 프롬프트 창을 보여주는게 아니라 아래쪽에 콘솔 탭이 하나 있다. 이것도 좋은 기능이라고 생각한다.
  이렇게 강력한데 어찌 오픈소스를 무시하겠는가. 이클립스, 반했다 너한테, 덕분에 자바공부 안하고 있었는데 하고 싶어 졌잖아!!
Posted by 머리
오늘 드디어 델파이를 깔았다.

다른 언어 같았으면 그냥 바로 문법 조금 보고 실전 해보고 했겠지만..

도서관에 볼만한 델파이 문법서가 잘 없더라. 그나마 골랐던것도 좀 난해한 느낌이 있다고 할까? 그래서 그냥 깔자마자 아무거나 만들어봤다.

그 아무거나가 바로 Hello, World!프로그램. 뭐 프로그래밍 맨 처음할때의 필수 프로그램이라고 할까? 비주얼 베이직 맨 처음 배운다는 마음으로 이것 저것 만져 보면서 한번 간단히 만들어 보았다.

솔직히 말해서 이거 만드는데 5분 걸리더라.. 여기 저기서 VB의 어떤건 Delphi에서 어디고 이런거 비교해 본다고..

자 일단 스샷.
사용자 삽입 이미지

간단하다. 코드 자체는 매우 쉽다. 당연한 말인가.. 그냥 옛날로 돌아가보자 하는 마음에서 심심풀이삼아 해봤음.

폼을 잘 보면 단순히 에디트 박스랑 버튼 달랑 붙여놓은게 아니라 이것 저것 다듬은 것들이 좀 보일 것이다. 우선 폼의 크기도 작게 수정했고, 버튼의 캡션도 바꾸어 보았다. 그리고 텍스트 박스의 글꼴도 설정해 보았고, 폼 제목 표시줄도 바꾸어 보았다. 하는건 쉽지만 그냥 델파이의 속성창이 어떻게 생겨먹은 것인가 한번 알아보려고 만져 보았다. 

  VB의 속성창과 비교해보면 우선 VB는 기본적으로 속성창이 오른쪽에 있지만 델파이는 오른쪽에 있었고, 정렬 방식이 VB는 기능순이지만 델파이는 이름순이다. 뭐 이건 모두 바꾸는게 가능하다. 지원 기능면에서는 델파이가 훨씬 많은 것들을 지원했다. VB .NET과는 비교를 안해 보았지만, VB에서 API를 써야 하는 기능들이 델파이에서 속성 창만으로 꾸밀 수 있는 것들이 많았다.

  기본 컨트롤의 수도 델파이가 많았다. VB에서 공용컨트롤을 등록 해야 했던 것들이 기본적으로 지원 되더라.

  이렇게 이야기하면 델파이가 훨씬 강력한 것처럼 보이겠지만 그런 이야기는 아니다. 아직까지는 나는 VB가 훨씬 편하고, 그 많은 기능들도 꼭 필요한 기능같은건 아니니까. 원한다면 VB에서도 충분히 구현 가능하고.

  VB랑 델파이랑 비교해 보면서 가장 델파이에서 아쉬웠던 점은 변수 선언 방식과 한글 지원의 부족이였다. 타 언어와 비교해서 델파이는 변수 선언이 좀 까다로워 보이더라. 아직 익숙하지 않아서 그렇겠지만. 예를 들어 폼 로드 프로시저에 지역 변수를 선언하기 위해 폼을 더블클릭 하면 코드 창의 커서는 begin과 end 사이에 있다. 변수를 넣으려면 커서를 옮겨서 var을 적어 줘야 하는 불편함이 있었다. 이런 것들은 약간 불편함이 있었다.
  그리고 한글지원이 좀 많이 아쉬웠다. 한글화를 원하는건 아니지만, VB의 향수가 있어서 그런가, VB를 사용하는 느낌이면서 영문이라 좀 어색하다는 느낌이 많이 있었다. 거기다 한글 변수를 테스트 해 보았는데 역시 안되더라. 좀 아쉬웠다. 두개의 아예 다른 툴을 비교한다는 것 자체가 옳지 않은 일이지만, 아무래도 VB를 10년 넘게 사용하다 보니 이렇다.
  아무튼, 장난스럽게 델파이를 체험해 보았다. 기능 자체는 매우 강력하다는 느낌을 많이 들었다. 한번 공부해볼만한 가치는 충분히 있었다.
Posted by 머리