Work/Java 11

Ellipsis 사용하기

#include int sumAll(int numCnt, ...) { // 인자의 개수를 첫번째 argument로 넣어줘야 함. int sum = 0; int i = 0; va_list argList; // argument 들의 list를 저장할 변수 va_start(argList, numCnt); // argList를 초기화 for(i = 0; i < numCnt; i++) { int temp = va_arg(argList, int); // argument 받아오기 printf("[%d] = %d\n", i, temp); sum += temp; } va_end(argList); // 종료 return sum; } int main(int argc, char **argv) { printf("sum = %d..

Work/Java 2009.11.03

[Head First Java] 3_2. 원시변수와 레퍼런스

자..레퍼런스 변수 입니다. 레퍼런스 변수란 어떤 객체를 가르키는 포인터 같은 것입니다. MyClass myclass = new MyClass(); 와 같이 객체를 생성했다고 하면, myclass를 새로 생성된 MyClass 객체를 핸들링 할 수 있는 레퍼런스 변수라고 합니다. 따라서 레퍼런스 변수가 객체를 의미하지는 않습니다. 그저 객체를 조정할 수 있는 포인터에 불과하지요.. 그럼 잠깐 C 얘기를 해볼까요? int * a; a = (int *)malloc(sizeof(int) * 10); 이렇게 하면 int 사이즈 곱하기 10개 만큼 사용할 메모리 공간이 확보되고, 그 공간은 "a"라는 변수를 이용해서 접근할 수 있습니다. 그쵸? 그럼 "a"의 사이즈는 얼마인가요? int를 4바이트라고 했을때 말이에..

Work/Java 2007.07.18

[Head First Java] 3_1. 원시변수와 레퍼런스

이번에는 변수 이야기 입니다. 변수는 "변하는 수"라는 이야기인데.. 이놈들은 어떤때에 사용할까요? 네.. 값을 저장하고 저장한 값을 사용할 때 사용합니다. 앞서서 2. 클래스와 객체 에서 Music 클래스를 살펴보면 title과 artist가 있었죠? 이것들이 바로 변수입니다. (요놈들은 String type의 변수이죠..) 어떨때 사용한다는건 대강 감이 오시나요? 그럼.. 원시변수를 이번시간에 살펴보고 다음에 레퍼런스 변수를 살펴보도록 합시다. 다음과 같은 변수를 원시 변수라 합니다. boolean, char, byte, short, int, long, float, double 각 원시 변수의 크기와 범위를 살펴보면 아래와 같습니다. 유형 비트수 범위 boolean it depends on jvm t..

Work/Java 2007.07.16

[Head First Java] 2. 클래스와 객체

책에서는 Chapter 2까지 겨우 왔을 뿐인데.. 너무 많은 이야기를 하고 있어요.. 상속, 메소드 오버라이드, 캡슐화, 인스턴스 변수 까지.. 물론 맛보기 일테지만 처음 보시는 분을 헷갈려 하실것 같아서.. 전 그런 부분을 요번에는 다루지 않습니다. 추후에 관련 파트에서 다루도록 하지요.. 그럼 클래스와 객체가 무엇일까요? 쉽게 말하자면.... 붕어빵 드셔본적 있으시죠? 클래스는 붕어빵 틀이구요.. 객체는 붕어빵입니다. ^^ 더 어렵나요? 그럼 좀 풀어서 써볼께요.. 클래스는 무엇을 만들고자하는 틀을 말합니다. 그 자체로는 어떻게 사용할 수 가 없어요.. (물론 뒤에 정적(static) 메소드/변수를 배우면 사용할 수 있어요~ 이건 지금 생각않으셔도 됩니다. ) 클래스는 딱 두가지를 가지고 있는데, ..

Work/Java 2007.07.12

[Head First Java] 1.5 자바의 버전에 대해

처음에 자바 공부를 하려고 도서관에 갔더니 Java2 어쩌고 하는 책이 있었더랬죠.. Java랑 다른건가.. 하고 생각했었는데.... 머 모든지 처음하는 일은 잘 모르기 마련이니까요 ^^ 그럼 객체와 클래스 이야기를 하기에 앞서서 잠깐 자바 버전이야기를 해볼까 합니다. 요새 핸드폰 모두 가지고 계시죠? 핸드폰을 작동하기 위해서 펌웨어라고 알고계시는 것이 들어가는데.. 이것이 기능을 좀 더 추가하거나 버그를 잡게 되면 펌웨어 업그레이드 라는 것을 합니다. 이때, 펌웨어 업그레이드 공지를 살펴보면 "버전 xx 이하를 새로운 버전으로 업그레이드 해드립니다." 라고 공지합니다. 기능의 수정이나 추가를 한 다음에 버전을 한단계 올리는 것이죠.. 자바도 마찬가지로 버전을 가지고 있습니다. 버전업 순서를 살펴보면 아..

Work/Java 2007.07.11

[Head First Java] 1_1. 언제 어디서나 시작은 "Hello Wordl!!!"

자바 파일 안에는 어떤 것들이 있을까? import 선언문 우리가 보통 자바 프로그램을 만든다고 할 때, 필요한 모든 기능을 직접 구현하지는 않는다. 물론 직접 구현해서 만들수도 있겠으나, 그렇게 한다면 시간도 엄청 많이 걸릴 것이고.. 또 각 코드가 모두 올바르게 동작한다는 것을 보장하기 힘들다. (물론 모두 다 정확히 테스트 한다고 한다면 ..ㅡㅡ) 따라서 이미 구현해 놓은 클래스들을 사용하게 되는데 이것들을 사용하겠다는 표시를 해주는 것이 import이다. 여기서 질문이 나올만 한 것들을 뽑아보자! 저기요.. 그럼 import java.io.*; 하면 그 아래의 클래스가 소스 위에 철커덕 붙나요? 아닙니다!! 이건 C가 아니고 자바랍니다. import의 의미는 java.io 내부의 클래스를 사용하겠..

Work/Java 2007.07.03 (1)

[Head First Java] 1. 껍질을 깨고

껍질을 깨고 나의 서문 우연한 기회에 Head First Java라는 책을 접하게 되었다. 책을 좀 들춰보니 책의 서문에도 써 있듯이 이게 그림책인지.. 프로그래밍 책인지.. 헷갈릴 정도였고.. 거기다가 글의 단락이 보기좋게 나뉘어 있는 편이 아니라서 참 보기 난감했다. 게다가 글자가 너무 작게 쓰여있어서 사실 읽기조차 싫어졌다.. 그치만 남들보다 한글자 한글자 자세히 읽어야 했기 때문에.... 일단 몇 장 본 것으로 전체를 판단할 수 는 없지만, 개인적인 느낌을 이야기 하자면 .. 첫째, 완전 초보자가 이 책으로 공부하기에는 힘들겠다. 둘째, 어느 정도 아는 사람들이 보기에는 그다지 하드코어하지 않겠다. 셋째, 기존의 자바 관련 서적들과는 다른 구성이 이해를 약간 어렵게 할 수 있으나 그럭저럭 재미있다..

Work/Java 2007.06.24 (2)

루비? 레일스? 루비 온 레일스!!!

무언가 변화가 필요하다고 생각했다. 어느 한곳에 항상 머물러 있다고 생각했다. 그래서 시작한 것이 PSP 개발이었는데, 그다지 성공적이지 못했다. 나한테 별 불편이 없다고 해서 남한테도 그런것이 아니었으니... 그런데 또 생각해보면.. 그냥 내가 무언가 해보자고 해서 나온거니까.. 애착도 가고.. 그거면 됐다 싶기도 하고.... 사설은 그만하고.. 1년 뒤 2년 뒤 10년 뒤 무얼 해서 먹고 살아야 할까...? 이 물음에 공부를 시작했다. 우연한 기회에 루비라는 언어를 알게 되었고, 루비 온 레일스를 듣게 되었다. 충동 구매한 "웹 개발 2.0 루비 온 레일스" 아직 몇장 읽지는 못했지만.. 틈틈히 해서 꼭 나만의 OpenAPI를 지원하는 별 잡기능이 다 들어있는 나만의 블로그를 만들어 보리라.. 혹 좋..

Work/Java 2007.05.01 (2)

MSN 봇을 만들어 보자!

지난번에 스프링노트 관련 글을 쓰면서, "MSN 메신저로 스프링노트에 글을 쓰자" 라는 글을 붙였었는데.. 고 놈이 참 재미있더라.. 물론 심심이를 모르는건 아니지만.. 어딘가에 요 MSN봇을 띄워놓고 그냥 대화하듯이 말을 걸어서 내가 필요한 무언가를 한다면? 먼가 좋을것 같은데~ ^^ 가령... "[나] 야~ 파일 올릴께 받어~" "[봇] 네.. 주시와요~~" ....... "[나] 야~ 파일 리스트 뿌려봐~" "[봇] 파일 리스트 대령이요~~" "[나] 3번 파일 줘봐" "[봇] 넵 지금 드립니다요~" 훔.. 그럴싸하다.. 흐흐.. 물론 먼가 다른 일도 많이 할 수 있을것 같은데 그닥 아이디어가 없네.. 혹시라도 관련 개발을 하고 싶으신 분들을 위해 링크를 남깁니다. rath님의 msn library..

Work/Java 2007.04.04 (3)

MSN 메진저로 스프링노트에 글을 쓰자.

내가 스프링 노트로 하고 싶은 것은 다음과 같다. 1. 보관하고 싶은 문서를 보관하는 용도 2. 급하게 쓸 메모를 저장해 두는 용도 지금은 1번은 하드디스크에 하나의 폴더를 정해두고 그안에 문서를 저장해서 해결하고 있고.. 2번은 구글 데스크탑에 메모 기능을 이요하여 정리하고 있는데.. 구글 데스크탑은 많은 메모를 쓰기에는 조금 모자란 점이 없지 않다. 그런데... 스프링 노트로 저것들을 하기에 약간 모자란 점이 있다. 1번은 그런대로 아주 잘 되는데.. 2번이 문제다. 메모를 급하게 쓰고 싶긴 한데.. 로그인을 해야된다는 점.. 그렇다고.. 항상 창을 하나 띄워둘수는 없고.. 그래서 찾아보니 가제트나 봇이 있어서.. 꼭 창을 안띄워도 되겠더라.. 그 중 MSN 봇을 이용한 글이 있길래 하나 소개하려한다..

Work/Java 2007.04.01