반응형
자바와 게임의 만남 '로보코드 코리아컵 2007'
- 자바 프로그래밍 언어를 기반으로 제작한 로봇 간의 대결
- 자바개발자 커뮤니티인 JCO와 취업전문포탈인 인크루트 후원

(2007.8.8) 한국IBM(대표 이휘성)은 8월 8일 자바 기반의 프로그래밍 게임 대회인 로보코드 코리아컵 2007 결승전을 개최했으며, 우승은 김동환씨(고려대 신소재공학부)가 차지했다고 발표했다.

지난 2003년에 첫 대회가 개최된 이래 4회째를 맞는 ‘로보코드 코리아컵 2007’은 자바 기반의 프로그래밍 대회로 국내 자바 개발자 커뮤니티 모임인 JCO(JAVA Community Organization)와 인크루트가 후원하고 있다.

로보코드 코리아컵은 올 5월 로봇신청 접수를 시작하여 7월 말에 접수를 마감했으며, 64강전과 32강전을 치르고 오늘 16강전부터 결승전까지 치름으로써 최종 승자가 가려졌다. 준우승은 이종혁씨(경기대 컴퓨터과학과), 3위는 조규현씨(호남대 인터넷소프트웨어학과) 가 각각 수상했다.

로보코드는 지난 2001년 IBM의 개발자인 맷 넬슨이 개발한 게임으로서, 사용자들이 직접 자바를 기반으로 인공지능이 담긴 로봇을 만들어 전투를 벌이게 된다. 예선전에서는 그룹별 전투를 거쳐 최종 점수가 가장 높은 로봇이 승리하게 되며, 64강전부터는 1대1의 토너먼트 방식으로 진행된다. 각 참가자들은 최대 3개까지 로봇을 제출할 수 있다.

로보코드 참가자는 자바 언어의 요소를 사용하여 자신의 로봇을 만들면서 프로그래밍 언어를 익힐 수 있어 재미와 기술을 동시에 얻을 수 있다. 특히 초보자들도 쉽게 배울 수 있도록 로보코드 코리아컵 홈페이지(www.ibm.com/developerworks/kr/robocode)를 통해 개발 방법을 소개하고 있다.

또 로보코드는 오픈소스를 기본 전제로 하고 있어 샘플 로봇뿐 아니라, 등록되어 있는 다른 개발자들이 소스를 다운받아 분석하고 자신의 소스를 업로드하는 과정을 반복하면서 로봇은 점차 진화하게 된다.

한국IBM은 올초 developerWorks 대학생 모니터 요원을 선발하여 대학 내 로보코드 홍보를 강화했으며, 고려대, 서울여대, 목포대, 세종대, 숭실대, 동국대, 전남대 등의 요청으로 출장 강의를 진행하는 등 대학생 개발자들의 큰 호응을 얻었다.

한국IBM 솔루션 파트너 사업부의 계혜실 실장은 "IBM은 오픈 소스를 적극적으로 지원하고 있으며, 로보코드를 통해 자바 언어에 대한 대학생 및 개발자들의 관심과 흥미가 크게 증대되었다고 본다. 향후에도 다양한 오픈 소스 지원 정책과 프로그램을 통해 개발자들에게 많은 기술정보와 커뮤니티 환경을 제공할 예정”이라고 밝혔다.

--------------------------------------------------------------------------------------------------------------------
참고자료

- 로보코드의 특징: 각 로보코드 참가자는 자바 언어의 요소를 사용하여 자신의 로봇을 만들면서 자바가 갖고 있는 상속성, 다형성, 이벤트 처리 및 내부 클래스 다루는 방법을 배우게 된다. 표준 API(Application Program Interface)를 지향하지만, 커스터마이징할 수 있는 이벤트를 갖고 있다. 따라서 개발자들이 창의적일수록 로봇이 전투에서 살아남을 가능성이 높아진다. 특히, 로보코드는 초보자부터 고급 프로그래머에 이르기까지 모든 수준의 개발자들이 참가할 수 있다.

- 로보코드의 기반 솔루션: 로보코드는 이클립스, 웹스피어, DB2, 웹스피어 애플리케이션 디벨로퍼를 사용하여 개발되었으며, 참가자들은 IBM이 제공하는 API를 이용해 쉽게 로봇을 만들 수 있다.
반응형

 IBM 1기 우수 모니터요원 수상 장면이다.. 3명이 선발 되었다.

앗 맨처음 보이는 여자분은 우리 담당이신 이선진 과장님..^^ 이날 고생이 많으셨다는..

나 , 용호, 성무 뭐.. 상을 받으니까 기분은 좋긴 했지만 상장밖에 없다는 ㅡㅡ;;

그리고 같이 활동한 규현이는 로보코드 3위에 올라 트로피와 상장 그리고 상품까지 받았다는...

로보코드 및 모니터 요원 수상등 행사가 끝나고 새롭게 선발된 2기와 함께 비어파티 사진이다..

사용자 삽입 이미지

열심히 활동하려는 의지가 대단한 친구들이다...

우리는 첫기수라 힘든게 많았지만 그 만큼 터를 딱아놨다고 나름 생각한다..

이친구들이 dw를 더욱 멋지게 꾸며나갈꺼라 믿어 의심치 않는다.. 나도 나름 선배니까.^^

IBM dw 2기 모니터 요원 다들 화이팅~~~!!!
반응형

프로젝트를 만들었으면 로봇도 만들어야 하겠져?

이제 로봇을 만들어 봅시다.

원문은 먼저 올라온 글과 멀리 떨어진 곳이 아니니 함 찾아보세요

클래스를 만듭니다. 프로젝트안에 들어갈 클래스를 만들기 위해 NEW->CLASS  를 클릭합니다.

 


패키지는 자신의 이름에 대한 이니셜을 넣고(IBM 권장사항),
클래스명엔 자신의 로봇이 갖길 원하는 이름을 넣습니다.
슈퍼클래스는 robocode.Robot 으로 넣어줍니다



성공하면 다음과 같은 화면이 나옵니다.


이제 원하는 코드를 넣을 수가 있습니다.

(영어 실력이 짧은지라 원문 그대로 갖고옵니다. 알아서 해석 하시길)

You can save your robot as often as you like by hitting CTRL-S, or selecting "File->Save". There's no need to select Compile anymore, since Eclipse takes care of it for you. Have fun playing around with Eclipse. Personally, I like to change all the colors, turn off bold print, move the windows around, and do all sort of things to customize it to my liking. Since there's no better way to learn than by playing around, I'll leave you to it! (Hint: Workbench -> Preferences -> Java -> Editor -> Colors)

The only thing left is to make sure Robocode sees your robot.

반응형

로보코드를 실행한 후
Options->Prefereces->Development Options 클릭 후 해당 '프로젝트' 의 위치를 기입합니다.


Finish 버튼을 누르고 Battle -> New 로 가면 패키지를 찾은것을 볼 수 있습니다.

아래는 이클립스에 대해 설명이 올라와있는데
원문에는 이클립스에 대한 찬사나 간단한 사용법을 쓰고 있습니다.
궁금하면 원문을 참고해주세요

이클립스 단축키

Ctrl - S 저장
Ctrl-Space 멤버 메소드 출력

반응형
이클립스 환경에서 로보코드 로봇을 빌드하려면, 먼저 프로젝트를 만들어야 합니다.

1. File->New->Project 에서 프로젝트를 만듭니다.

자바 프로그램이기 때문에 그냥 "Java Project" 를 선택해줍니다.


Finish 버튼은 절대 누르지 마시고, Next 를 누릅니다.


이제 프로젝트 세팅을 할 차례입니다. robocode 패키지 안에는 라이브러리, JAVADoc 이 있기 떄문에
이것들도 링크를 해줘야 합니다.(뭐 JAVADOC 이 머리속에 있다면 라이브러리만 링크해줘도 상관 없습니다.)

위 화면처럼 만든 후 Add External JARs.... 를 클릭합니다.

로보코드가 설치되있는 폴더로 찾아가 robocode.jar 을 엽니다.


이제 Javadoc 을 세팅해줄 시간입니다.

Javadoc Location 에서  Edit 를 누르고

Browse를 이용해서 해당 경로를 지정해주거나, 경로를 외고 있다면 위 형식에 맞게 지정해주면 끝!!

이제 탱크를 만들 수 있습니다.

반응형

난이도 : 초급

McCoy David, Writer, Independent

2007 년 4 월 17 일

코너에 갇히거나 원하는 이동 방향에서 너무 많이 벗어나지 않으면서, 로봇과 벽 사이의 간격을 유지하는 알고리즘은 간단히 만들 수 없는 것 같습니다. 한 가지 간단한 솔루션으로, Factored wall avoidance가 있습니다. 이 글에서, David McCoy가 이를 구현하는 방법을 설명합니다.

With a few additions to the bot we built in "상대편의 움직임 추적하기"에서 구현했던 로봇에 몇 가지를 더 추가하여, 기존의 움직임 알고리즘 또는 문제가 많은 움직임 알고리즘에 Factored Wall Avoidance를 추가할 수 있다. Factored Wall Avoidance는 자신의 로봇과 벽의 근접성에 따라서 안전한 방향 설정(heading)으로 원하는 방향을 팩토링 함으로써 최상의 방향을 찾는 것이다.

일반 수학적 계산에 헬퍼 메소드 추가하기

우선 자주 사용되는 수학적 알고리즘에 헬퍼 메소드를 로봇에 추가한다.

calculateBearingToXYRadians() 메소드는 java.lang.Math 메소드 atan2()를 사용하여 sourceX,sourceY에서 targetX,targetY까지 절대 위치(absolute bearing)를 계산한 다음, 이 값을 sourceHeading에 관련된 위치로 변환한다.

그리고 normalizeAbsoluteAngleRadians() 메소드와 normalizeRelativeAngleRadians() 메소드도 필요하다.


Listing 1. 수학 헬퍼 메소드
                

private static final double DOUBLE_PI = (Math.PI * 2);
private static final double HALF_PI = (Math.PI / 2);

public double calculateBearingToXYRadians(double sourceX, double sourceY,
    double sourceHeading, double targetX, double targetY) {
        return normalizeRelativeAngleRadians(
           Math.atan2((targetX - sourceX), (targetY - sourceY)) -
               sourceHeading);
    }

public double normalizeAbsoluteAngleRadians(double angle) {
   if (angle < 0) {
        return (DOUBLE_PI + (angle % DOUBLE_PI));
    } else {
        return (angle % DOUBLE_PI);
    }
}

public static double normalizeRelativeAngleRadians(double angle) {
    double trimmedAngle = (angle % DOUBLE_PI);
    if (trimmedAngle > Math.PI) {
        return -(Math.PI - (trimmedAngle % Math.PI));
    } else if (trimmedAngle < -Math.PI) {
        return (Math.PI + (trimmedAngle % Math.PI));
    } else {
        return trimmedAngle;
    }
}




위로


AdvancedRobot을 back-as-front 기능으로 확장하기

다음으로, 로봇을 반대로 이동시키기 위한 back-as-front 기능을 제공하기 위해 AdvancedRobot 클래스 기능을 몇 가지 헬퍼 메소드로 확장할 필요가 있다.

  • getRelativeHeading() 메소드는 로봇의 현재 위치와 관련하여 정확한 방향을 계산한다.

  • reverseDirection() 메소드는 매우 단순하다. direction 인스턴스 변수를 토글링(toggle) 하고 로봇의 방향을 바꾼다. 감속할 때에는 시간이 걸리기 때문에 로봇은 속도에 따라서, 방향을 바꾸기 전에 최대 네 개의 프레임까지 같은 방향으로 움직일 수도 있다.

  • setAhead()setBack() 메소드는 AdvancedRobot 클래스에서 같은 이름의 메소드를 오버라이드 한다. 현재 방향에 대한 로봇의 속도를 설정하고, direction 인스턴스 변수를 필요에 따라 조정한다. 비례 연산은 로봇이 현재 움직이고 있는 방향과 관련이 있다.

  • setTurnLeftRadiansOptimal()setTurnRightRadiansOptimal() 메소드는 (Math.PI / 2) 보다 크게 회전하여 로봇의 방향을 바꾼다. adjustHeadingForWalls 메소드를 사용할 때 이러한 메소드들을 사용해야 하는데, 나중에 설명하겠다.

주: getter와 setter 메소드를 사용하는 대신 direction 인스턴스 변수에 직접 액세스 한다. 이것은 좋은 방법은 아니지만, 나는 내 로봇 코드에 이를 수행하여 데이터 액세스 속도를 높이곤 한다.


Listing 2. 로봇 헬퍼 메소드
                


public double getRelativeHeadingRadians() {
    double relativeHeading = getHeadingRadians();
    if (direction < 1) {
        relativeHeading =
                normalizeAbsoluteAngleRadians(relativeHeading + Math.PI);
    }
    return relativeHeading;
}

public void reverseDirection() {
    double distance = (getDistanceRemaining() * direction);
    direction *= -1;
    setAhead(distance);
}

public void setAhead(double distance) {
    double relativeDistance = (distance * direction);
    super.setAhead(relativeDistance);
    if (distance < 0) {
        direction *= -1;
    }
}

public void setBack(double distance) {
    double relativeDistance = (distance * direction);
    super.setBack(relativeDistance);
    if (distance > 0) {
        direction *= -1;
    }
}

public void setTurnLeftRadiansOptimal(double angle) {
    double turn = normalizeRelativeAngleRadians(angle);
    if (Math.abs(turn) > HALF_PI) {
        reverseDirection();
        if (turn < 0) {
            turn = (HALF_PI + (turn % HALF_PI));
        } else if (turn > 0) {
            turn = -(HALF_PI - (turn % HALF_PI));
        }
    }
    setTurnLeftRadians(turn);
}

public void setTurnRightRadiansOptimal(double angle) {
    double turn = normalizeRelativeAngleRadians(angle);
    if (Math.abs(turn) > HALF_PI) {
        reverseDirection();
        if (turn < 0) {
            turn = (HALF_PI + (turn % HALF_PI));
        } else if (turn > 0) {
            turn = -(HALF_PI - (turn % HALF_PI));
        }
    }
        setTurnRightRadians(turn);
}




위로


Factored Wall Avoidance 추가하기

소셜 북마크

mar.gar.in mar.gar.in
digg Digg
del.icio.us del.icio.us
Slashdot Slashdot

우리가 추가할 마지막 메소드는 adjustHeadingForWalls()이다.

이 메소드의 초반부는 벽과의 근접성에 기반하여 안전한 x,y 위치를 선택한다. (이것은 로봇의 현재 x 또는 y 좌표 또는 로봇이 벽에 가까이 있을 경우 중심점이 될 것이다.) 이 메소드의 후반부는 "안전한" 방향을 계산하고 로봇이 벽에 얼마나 근접해 있는가에 비례하여 원하는 방향으로 이를 팩토링 한다.

로봇이 벽으로 나아가는 정도는 WALL_AVOID_INTERVALWALL_AVOID_FACTORS 상수를 사용하여 조정될 수 있다.


Listing 3. 벽 피하기 메소드
                

private static final double WALL_AVOID_INTERVAL = 10;
private static final double WALL_AVOID_FACTORS = 20;
private static final double WALL_AVOID_DISTANCE =
        (WALL_AVOID_INTERVAL * WALL_AVOID_FACTORS);

private double adjustHeadingForWalls(double heading) {
    double fieldHeight = getBattleFieldHeight();
    double fieldWidth = getBattleFieldWidth();
    double centerX = (fieldWidth / 2);
    double centerY = (fieldHeight / 2);
    double currentHeading = getRelativeHeadingRadians();
    double x = getX();
    double y = getY();
    boolean nearWall = false;
    double desiredX;
    double desiredY;

    // If we are too close to a wall, calculate a course toward 
    // the center of the battlefield.
    if ((y < WALL_AVOID_DISTANCE) ||
            ((fieldHeight - y) < WALL_AVOID_DISTANCE)) {
        desiredY = centerY;
        nearWall = true;
    } else {
        desiredY = y;
    }
    if ((x < WALL_AVOID_DISTANCE) ||
            ((fieldWidth - x) < WALL_AVOID_DISTANCE)) {
        desiredX = centerX;
        nearWall = true;
    } else {
        desiredX = x;
    }

    // Determine the safe heading and factor it in with the desired 
    // heading if the bot is near a wall
    if (nearWall) {
        double desiredBearing = 
           calculateBearingToXYRadians(x, 
                                       y, 
                                       currentHeading, 
                                       desiredX, 
                                       desiredY);
        double distanceToWall = Math.min(
                Math.min(x, (fieldWidth - x)),
                Math.min(y, (fieldHeight - y)));
        int wallFactor =
                (int)Math.min((distanceToWall / WALL_AVOID_INTERVAL),
                              WALL_AVOID_FACTORS);
        return ((((WALL_AVOID_FACTORS - wallFactor) * desiredBearing) +
                 (wallFactor * heading)) / WALL_AVOID_FACTORS);
    } else {
        return heading;
    }
}




위로


결론

나머지는 쉽다. 현재의 네비게이션 알고리즘을 사용하고 adjustHeadingForWalls() 메소드를 통해 그 결과를 제공함으로써 벽을 피할 수 있다.

단순하게 하기 위해 로봇 예제(다운로드)는 방향 변경에 0을 요청하여 직선 라인으로 움직일 것이다.


Listing 4. 벽 피하기 메소드
                


public void run() {
    while(true) {
        setTurnRightRadiansOptimal(adjustHeadingForWalls(0));
        setAhead(100);
        execute();
    }
}

이제 다 되었다. 간단하지만, 효과적이다.
<출처: http://www.ibm.com/developerworks/kr/library/j-fwa/>

반응형
사용자 삽입 이미지

IBM dw 1기 모니터 요원으로 활동한지 반년이 지나갔다.

그렇게 1기의 활동 기간이 끝나고 2기가 선발 되고 1기 해체식과 2기 킥오프가

로보코드 행사와 같이 진행 되었다.

반년동안의 짧은 시간동안 나는 모니터 요원으로서 활동을 곰곰히 되짚어 보았다.

이곳 dw에서 만난 사람들과 같이 했던 일들 그리고 회의 등....

그리고 모니터 요원으로서 교내에서의 홍보 활동등...

그 마지막 장식은 로보코드 16강과 함께 하게 되었다.  로보코드 행사에 참석 후..

학과 후배이며 내가 동아리장으로 있었던 "CASTERLAB"의 후배인 석재의 모습이 보였다.

로보코드 16강 진출! 그렇게 하여 학교가 아닌 IBM에서 보게 되었다. 정말 반가웠다.

그리고 내가 활동함에 있어 작은 보람이라고 생각했다. 로보코드를 홍보하면서 교내에서

관심을 갖길 바랬었는데 후배가 16강에 진출하여 IBM에서 만나게 되었으니 말이다.

8강 까지 진출하였지만 안타깝게 떨어지고 말았지만 내가 홍보한후 처음 알게되서

8강까지 진출한 쾌거를 이룬것이 대견했다.^^ 그리고 나도 1기 모니터 요원의 활동기간이 끝나고

우수요원으로 선발되어 더욱 뜻깊었다. 그렇게 나의 1기 모니터 요원으로서 활동은 끝이 났고

로보코드 결승까지 치루고 16강 진출자들과 2기 모니터 요원들 그리고 1기 모니터요원들과

같이 비어파티를 갖게 되었다. 1기 활동의 마지막이라 생각하니 조금 아쉬운 감이 있었다.

이곳에서 많나 활동하면서 무엇보다 하나 중요한 것이 남는게 있었다면 이곳에서 만난

사람들과 소중한 친구들이 아닐까 싶다. 
반응형
:: 2007년 08월 08일 ::

  Weekly Highlight
IBM developerWorks가 dW Review Blogger를 모집합니다.
오늘 오후 3시부터 벌어지는 로보코드 코리아컵 2007이 미투데이로 실시간 현장중계될 예정입니다. 미투데이와 함께 긴장감 넘치는 결선대회를 함께하세요.
IBM developerworks에서 2007년 하반기 활동할 'developerWorks 대학생 모니터 요원 2기'를 발표합니다.
   Local Contents
“검색으로 인간을 이롭게 한다” - 그루터 대표, 권영길 (dW Interview)
해커 문화의 뿌리를 찾아서 Part 5: Fixed Point 계산과 고차 함수 - 안윤호 (Special Issue)
이클립스 발전의 원동력은 커뮤니티, 에릭 롱 (dW Interview)
시맨틱 소셜 네트워크를 향해, Part 1: 시맨틱 소셜 네트워크와 FOAF -김학래 (Special Issue)
   최신 기술자료 (한글)
SOA 복합 비즈니스 서비스 구현하기, Part 8: WebSphere Portlet Factory 동적 프로파일을 사용하여 다중 소유 포틀릿 구현하기 [SOA와 웹서비스]
WebSphere Portlet Factory를 사용하여 동적 프로파일을 사용함으로써 표현 레이어 내에서 설정 가능성을 이룩하는 방법을 배워봅시다.
업데이트: IBM Lotus Sametime V7.5.1의 새로운 기능 [Lotus]
point-to-point 비디오, 데스크탑 생산성 애플리케이션들과의 통합 등, IBM Lotus Sametime V7.5.1의 아키텍처 및 디자인 변화에 대해 살펴봅니다.
XML과 자바: 저급 또는 고급 XML API? [XML]
어느 정도의 XML 컨트롤을 원하십니까? Brett McLaughlin이 핵심적인 XML API를 설명하고, 개발자들이 자바와 XML 프로그래밍을 최대한 활용하고 있는지를 조명합니다.
리눅스 커널 해부 [리눅스]
커널은 서브시스템과 레이어로 나뉠 수 있습니다. 리눅스 소스를 더욱 잘 이해할 수 있도록 아키텍처를 설명합니다.
Eclipse RAVEN 방식으로 GUI 접근성 테스트 하기 [오픈 소스]
GUI의 접근성을 점검하기란 어려운 일입니다. IBM Rule-based Accessibility Validation Environment Eclipse 플러그인으로 런타임 접근성 체크가 빨라집니다.
SOA에 레거시 시스템 적용하기 [SOA와 웹서비스]
서비스 지향 아키텍처를 사용하여 기존 IT 자산들을 변형할 때의 주요 이점에 대해 알아봅시다. 여러분은 변화하는 비즈니스 조건에도 빠르고 유연하게 대처할 수 있습니다.
   기획 기사
최고의 매시업 -- 웹 서비스와 시맨틱 웹
이번 기획기사를 통해 시맨틱 기술을 이용하여 서비스를 교환하거나 데이터를 선택하는 방식으로 자신만의 매시업을 만들어내는 기법을 배움으로써 웹 창시자와 선구자들이 꿈꾸었던 비전에 다가갈 수 있는 힌트를 얻을 수 있을 것입니다.
   최신 튜토리얼 (한글)
PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 4: 작업 관리 [오픈 소스]
PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 튜토리얼 연재에서는 제작 과정 추적에 유용한 각종 기능이 있는 위키를 PHP를 사용해 처음부터 만듭니다. Part 3에서는 누가 무엇을 할 수 있는지에 대한 컨트롤을 추가했습니다. 이제 작업 관리를 추가할 차례입니다.
구글 가젯 만들기, Part1: 구글 가젯 기본요소 [웹 개발]
이번 새 웹 개발 연재에서는 구글 가젯을 만드는 법을 배웁니다. 가젯은 작은 애플리케이션인데 동적이고 품질 좋은 콘텐츠를 제공하는 수단으로서 대부분의 웹 페이지에 추가할 수 있습니다.
   최신 튜토리얼 (영문)
Lotus Component Designer를 사용하여 WebSphere Portal 컴포넌트 생성 및 전개하기
   최신 SW 다운로드
온라인 시험판: Rational Build Forge V7.0
WebSphere Application Server Community Edition V1.1.0.2 (무료 제품: 업데이트)

  마이크로소프트웨어(www.imaso.co.kr) 8월호 주요 목차

[COVER STORY] 프로젝트 생산성을 높여주는 협업 노하우
커뮤니케이션과 협업 / 위키를 활용한 협업 노하우 / BTS 활용 노하우 / Jira와 Mylyn 활용 전략 / CVS/SVN을 이용한 버전 관리 / Visual Studio Team System과 협업

[SPECIAL REPORT] 리눅스 대중화의 꿈, 아시아눅스 데스크톱 3
데스크톱용 리눅스, 어디까지 왔나? / 64비트 지원과 3D 강화, 그리고 라이브 CD / 리눅스 애플리케이션의 세계 / 아시아눅스 대중화 전략

[STEP BY STEP] PHP를 사용한 상호교환 방식의 위키 만들기 Part 4: 작업 관리 from IBM 디벨로퍼웍스

top

더이상 구독을 원치 않으시는 분은 developerWorks에서 뉴스레터 [구독 취소]를 선택하여 주시기 바랍니다.
developerWorks 운영자에게 메일 보내기
Copyright ⓒ IBM Korea, Inc. All rights Reserved.

반응형
IBM developerworks에서 2007년 하반기 활동할 'developerWorks 대학생 모니터 요원 2기'를 아래와 같이 발표합니다.

오는 8월 8일 수요일, 로보코드 코리아컵 2007 결승대회와 제2기 developerWorks 대학생 모니터요원 임명식이 함께 진행되오니 선정되신 분들은 꼭 참석해주셨으면 합니다.
행사에 대한 보다 자세한 안내사항은 추후 개별 통지해 드리겠습니다.

developerWorks에 많은 관심을 보여주신 대학생 여러분들께 진심으로 깊은 감사 드립니다.

• 선정자 명단 (15명)
성명         학교명
김동철       호남대학교
김주호       서울대학교
김현경       성신여자대학교
남상균       인하대학교 대학원
민창현       경북대학교
박성일       서울산업대학교
박영식       숭실대학교
박지용       고려대학교 대학원
설혜미       한신대학교
신형기       전북대학교
유용빈       명지대학교
이국진       인천대학교
장영석       세종대학교
전민지       서울여자대학교
한성현       숭실대학교 대학원

IBM developerWorks 2기 모니터 요원 선정 되었네요. ^^

뽑히신 분들 축하드리고요.. 다음 모임에서 뵈었으면 좋겠네요.^^
반응형
:: 2007년 07월 25일 ::

  Weekly Highlight
7월 23일 진행된 '이클립스 - 개발도구를 넘어서 범용 플랫폼으로' 세미나의 발표 자료와 행사 스케치가 업데이트 되었습니다.
지난 5월 29일 진행된 소프트웨어 품질 최적화를 위한 Rational 솔루션 세미나의 발표 동영상이 등록 되었습니다.
   Local Contents
기계 세상, Part 1 - 김성우 (dW Column)
웹 스크래핑으로 웹 컨텐츠 입맛대로 꾸미기 - 박지인 (Open dW)
해커 문화의 뿌리를 찾아서 Part 4: 액터와 람다 - 안윤호 (Special Issue)
블랙박스 탐험과 다양한 공부 엮어내기 - 서광열 | 노매드커넥션 CTO (dW Interview)
   최신 기술자료 (한글)
Rails 애플리케이션 개발에 IBM_DB 어댑터와 드라이버 설정하기 [Informationl Mgmt]
강력한 Rails 프레임웍과 결합한 Ruby 언어의 등장으로 웹 솔루션 개발에 많은 기회들이 생겨났습니다. Part 1에서는 Rails 기반 DB2용 Starter Toolkit을 소개하고, 설치와 마이그레이션을 설명합니다.
Real-time Java, Part 4: 실시간 가비지 컬렉션 [자바]
Metronome 가비지 컬렉션을 사용하여 자바 언어로 RT 애플리케이션을 작성해 봅시다.
Eclipse 방식으로 단위 테스트하기 [오픈 소스]
애플리케이션에서 단위 테스트를 지원하기 위해 커스텀 mock 객체들을 만들어 내는 어려움을 피하려면, jMock과 잘 작동하도록 RMock을 조정하여 좋은 결과를 얻을 수 있습니다.
Eclipse 마법사를 사용한 빠른 개발[오픈 소스]
프로젝트에 추가 될 엔터프라이즈 스팩의 코드를 만드는 마법사를 구현해 봅시다. 기존의 Eclipse 클래스의 기본 기능들을 확장합니다.
엔드투엔드 Ajax 애플리케이션 개발, Part 1: Ajax 환경 설정하기 [오픈 소스]
깨끗하고 고급스러운 Ajax 애플리케이션을 개발 및 전개하는 방법을 배워봅시다.
SOA용 엔지니어링 패러다임 [Rational]
IBM Rational Unified Process (RUP) 프레임웍과 Model Driven Systems Development (MDSD)를 함께 사용하여 서비스 지향 아키텍처(SOA) 컴포넌트의 개발 시 위험 요소를 줄일 수 있는 방법을 소개합니다.
   최신 튜토리얼 (한글)
XForms를 사용하여 회계 도구 만들기, Part 4: 자산 관리와 리포팅 더 알아보기 [오픈 소스]
본 Part 4에서는 이전 연재의 주문 리뷰 폼과 자산 관리 폼 예제에서 사용한 기술과 함께 조달 책임자(procurement user)를 위한 특권(privilege)을 함께 다루는 법에 대해 보여줍니다. 또한 실제 이슈를 다룰 수 있는 새 기술에 대해 소개합니다.
최고의 매시업 -- 웹 서비스와 시맨틱 웹, Part 6: 사용자에게 제어 능력 주기 [XML]
본 튜토리얼은 매시업 애플리케이션을 만드는 방법을 다루는 연재의 마지막 튜토리얼입니다. 사용자가 서비스 유형과 웹 서비스에서 뽑아낸 데이터, 그 데이터의 프레젠테이션을 선택할 수 있도록 사용자에게 제어 능력을 주는 방법을 다룰 것입니다.
   최신 SW 다운로드
WebSphere Extended Deployment Data Grid V6.1 (UPDATE)
top

+ Recent posts