몰랐는데, 그냥 자신의 도메인에서 가져올 땐 잘 가져와지는데, 다른 도메인에서 하려니까 잘 안되서 찾아보니 하는 방법이 있네요.
예로 다음 오픈api같은 경우 callback파라메터에 메소드명을 넣어주면 "메소드명({jsondata})" 형태로 넘어옵니다.
그래서 크로스도메인을 사용하려면 이와 같이 구현해야합니다.

다음OpenAPI를 보면 위와 같이 json이 출력이 됩니다.
url : http://apis.daum.net/contents/movie?apikey=키값&q=awake&output=json&callback=aa
결과 : aa({json~~})

그래서 실제 크로스도메인형태로 구현할 때 callback함수를 받은 값을 앞에다가 그냥 넣어주면 됩니다-_-

php코드는 대충 이런식으로-_-
[code]$json = $_GET["c"] . "(" . json데이터 . ")";
echo $json;[/code]

아.......아마 저런 형태로 안하면 callback함수가 호출 되지 않고 firebug에서 이런 에러를 뿜을 꺼에요.
"invalid label"
이것 때문에 미치는 줄 알았는데, crossdomain인 경우에는 이런식으로 해줘야하더군요.

참고사이트
http://www.ajaxlines.com/ajax/stuff/article/jquery_ajax_cross_domains_using_jsonp_getjson.php
 
Posted by 머드초보
,
 
그냥 막 하면 잘 안되더군요. 구글링을 해보니 여러 블로그에서 이런 시도를 한 흔적들이 있었습니다-_- App Engine이 자바를 지원한다고 할 때부터 외국에서는 다양한 시도를 하나봅니다-_- 이번 Spring BlazeDS Integration도 누가 먼저 시도를 한 흔적이 있었네요.

이번 Spring BlazeDS Integration 1.0.1릴리즈 기념과 Spring교육 끝난 기념으로 간만에 삽질해봤습니다.
하지만, messaging 등의 심화적인 것은 못해보구요. 우선 서비스를 가져오는지만 해봤습니다.

삽질환경

- IDE
Eclipse3.5와 구글앱앤진 플러그인 - http://code.google.com/intl/ko-KR/eclipse/docs/download.html
Flex Builder 3.0.2
JDK 1.6.0 U14
- 라이브러리
Spring Framework 2.5.6
BlazeDS 3.2.0.3978
Spring BlazeDS Integration 1.0.1
Jackson 1.2.0
Cglib 2.1.3

1. App Engine 프로젝트 생성
프로젝트 생성하고 나서 라이브러리들을 다 복사합니다. 저는 아래와 같이 라이브러리를 복사했습니다.
기존App Engine lib, spring.jar, spring-webmvc.jar, blazeds.war에 있는 lib, jackson-core-lgpl-1.2.0.jar, jackson-mapper-lgpl-1.2.0.jar, cglib-nodep-2.1_3.jar, org.springframework.flex-1.0.1.RELEASE.jar
그리고, appengine-web.xml파일에 한줄 추가합니다.
[code]<sessions-enabled>true</sessions-enabled>[/code]
이거 필요한건지는 잘 모르겠군요-_-
WEB-INF폴더아래 blazeds.war파일에 들어있는 flex폴더를 복사합니다(*-config.xml의 파일이 있는 것)

2. 서비스 클래스 생성
이제 서비스를 만들어봅시다. 초간단 헬로우서비스를-_-
src폴더에 만들어봅시다. 전 com.mudchobo.springblazedsserver.service패키지에 HelloService클래스를 생성했음!
HelloService.java
[code]package com.mudchobo.springblazedsserver.service;

public class HelloService {

    public String sayHello(String name) {
        return "Hello, " + name;
    }
}[/code]

3. 설정파일 생성 및 설정
스프링관련 설정을 해야해요. web.xml에서 디폴트로 설정된 servlet설정을 지우고 아래를 추가
web.xml
[code]<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/config/*-context.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
   
    <!--  SpringDispatcherServlet -->
    <servlet>
        <servlet-name>flex</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>flex</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>[/code]
flex라는 이름의 서블릿을 만들었으니 스프링 설정파일이름인 flex-servlet.xml을 생성합니다.
flex-servlet.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:flex="http://www.springframework.org/schema/flex"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/flex
        http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
   
    <flex:message-broker />
   
    <flex:remoting-destination ref="helloService"/>
</beans>[/code]
flex라는 네임스페이스를 제공하는데요. <flex:message-broker />이 한줄로 모든 설정이 되어버립니다. M1 삽질했을 때에는 네임스페이스 없어서 bean써주고, 다 설정했던 기억이 나네요. 네임스페이스로 한줄로-_-

remoting-destination태그는 destination을 설정하는 건데, 해당 bean을 ref하면 해당 bean이름으로 destination으로 flex에서 가져올 수 있어요.
그럼 서비스를 설정할 설정파일을 생성해봅시다. configlocation을 /config/*-context.xml을 잡았는데, /config/services-context.xml파일을 만들어봅시다^^
services-context.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <bean id="helloService" class="com.mudchobo.springblazedsserver.service.HelloService" />
   
</beans>[/code]
방금 만든 HelloService를 bean으로 설정.

마지막으로 flex/services-config.xml에서 default-channels를 추가합시다.
[code]<services>
        <service-include file-path="remoting-config.xml" />
        <service-include file-path="proxy-config.xml" />
        <service-include file-path="messaging-config.xml" />
        <default-channels>
            <channel ref="my-amf"/>
        </default-channels>       
    </services>[/code]
그리고 이것도 추가해야해요.
[code]<system>
        <manageable>false</manageable>
            ....
       </system>[/code]
이거 추가안하면 앱엔진에서 이런 에러로그를 뿜음-_-
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBrokerDefaultHandlerMapping': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBroker': Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanInitializationException: MessageBroker initialization failed; nested exception is java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google App Engine developer's guide for more details.

관리자 기능이라고 하는 것 같은데, 정확히 뭔지는 잘 모르겠지만, 끄면 잘 됩니다-_-

4. 클라이언트 프로젝트 생성
flex project를 생성할 때 이렇게 생성해주면 편합니다.
Flex Project선택 -> Project name쓰고, Application server type은 J2EE, Create combined Java~~는 체크해제, Use remote object access service는 체크하고, Next.
그 다음 Serverlocation 셋팅을 Root folder는 AppEngine의 war폴더를 지정해주면 되구요.
Root URL은 앱엔진 기본 실행 경로인 http://localhost:8080하면 되구요. Context root는 /로 지정하면 됩니다.
그러면 디버그나 Run시에 localhost:8080/프로젝트명/프로젝트명.html로 실행이 돼요.
코드는
SpringBlazeDSClient.mxml
[code]<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">

    <mx:RemoteObject id="srv" destination="helloService" />
    <mx:TextInput id="inputName" />
    <mx:Button label="전송" id="btnConfirm" click="srv.sayHello(inputName.text)" />
    <mx:Label id="labelResult" text="{srv.sayHello.lastResult}" />
   
</mx:Application>[/code]
이 코드 너무 활용하는 것 같아-_- 암튼 destination은 helloService로 설정했기 때문에 이걸로 지정하면 됩니다.

5. 이제 배포 및 실행
이제 swf파일도 appengine프로젝트에 생성하고, AppEngine을 배포하고 실행하면 또다른 에러를 보실 수 있습니다-_-
[RPC Fault faultString="Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly." faultCode="Server.Processing.DuplicateSessionDetected" faultDetail="null"]
와....미쳐버립니다. 이건 뭔가....검색해보니 앱엔진이 여러 서블릿배포할 때 1개의 클라이언트 정보를 동일하게 배포를 해서 어쩌구 라고 번역기를 돌리니 써있네요-_- 이걸 픽스한 jar파일이 돌아다닙니다-_-
기존 flex-messaging-core.jar파일을 위 파일로 교체해주면 되더군요.

이제 실행하면 잘 될겁니다.
실행주소입니다.
http://mudchobo1.appspot.com/SpringBlazeDSClient/SpringBlazeDSClient.html


사용자 삽입 이미지

스크린샷.....

messaging이나 security적용한 것도 한번 해봐야겠네요.

참고사이트
http://www.adobe.com/jp/devnet/flex/articles/google_app_eng_w_beazeds_p2.html
http://martinzoldano.blogspot.com/2009/04/appengine-adobe-blazeds-fix.html
 
Posted by 머드초보
,
 
아.....드디어 6주차의 과정이 끝났네요. 토요일마다 나가서 들으려니 죽을 것 같았어요-_-
3차 강의신청도 10월중순쯤에 받고, 11월에 시작된다고 하니 관심있으신 분들은 KSUG 메일링 리스트에 가입을 하세요~^^
3차 강의에 관심있으신 분들을 위해-_- 후기를 남깁니다-_-(뭐 전 KSUG랑 관계없는 사람이구요-_- 그냥 강의가 좋아서 글을 남깁니다-_- 어차피 선착순이고 하루이틀이면 다차기 때문에 빨리하지 않으면 손해임 ㄷㄷ)
그리고, 강의를 들으시는 분들은 스프링을 한번쯤 사용해보신 분이 가장 적당한 것 같습니다^^ 그냥 멋도 모르고 사용해보신 분이면 더 좋구요(저처럼-_-). 그런 분들은 왜 이렇게 사용하지? 이런걸 알게 되는 좋은 기회일테니까요^^

Korea Spring User Group http://groups.google.com/group/ksug

스프링을 국내에 널리 알린 KSUG에서 하는 강의라 역시 스프링강의 중에는 최고입니다. 그냥 책을 보면서 스프링을 익히는 것 보단 스프링에 대해서 정말 잘 알고 관심있어하시는 분께 강의를 들으니 이해가 가지 않았던 개념도 많이 잡히더군요.

1주차 - IoC / DI
전 1주차 때가 역시...맘에 듭니다. 의존성을 개선하는 좋은 예제와 Junit을 이용한 테스트를 하는 것을 배우게 될 것입니다. 의존성을 개선하는 과정에서도 테스트는 항상 같기 때문에 항상 통과해야합니다. 테스트는 리펙토링을 할 때 매우 유용하더군요.
또한 예제를 준비해오셨는데, IoC/DI개념을 이해하기 좋을만한 예제를 준비해서 쉽게 실습합니다. 셋팅 관련된 것은 거의다 만들어오시고, 실제 중요한 로직만 코딩하는 방식으로 주로합니다. ^^

2주차 - JDBC
스프링에서 제공하는 JdbcTemplate을 처음부터 만들어봅니다. 이걸 만드는 이유는 Spring에 있는 Template류의 구현 패턴을 이해하기 위함이였습니다. JDBC Template를 만들면서 느끼는 점은 스프링이 참 대단하구나 라는 것을 느끼게 됩니다-_- Strategy pattern을 이용해 중복코드는 제거해가는 것을 직접해보는데, 이클립스의 강력한 기능인 리펙토링(사실 개발하면서 써본적 없음 ㅠㅠ)을 이용해서 합니다. 이클립스 리펙토링기능도 많이 알게 되는 좋은 시간이였던 것 같습니다. 덕분에 이클립스의 많은 기능을 배웠던 것 같아요^^

3주차 - Transaction & Advanced JDBC
전 대규모프로젝트나 트랜잭션이 필요한 프로젝트를 해본적이 거의 없어서-_- 트랜젝션에 대한 개념이 조금 전무했었습니다. 그냥 두개의 테이블에 데이터를 넣는데, 두번째가 실패하면 첫번째도 롤백이라는 간단한 개념만 알고 있었죠-_- 업무단위라고 주로하죠^^
이번 강의도 트랜젝션을 적용하기 위해선 업무로직과 섞이기 마련인데요. 이걸 트랜젝션만 따로 빼주는 Transaction Template을 만들어봅니다^^ 그러면 업무로직에만 집중할 수 있는 걸 보여주죠^^
이것보다 더 편한 AOP를 이용한 선언적 트랜젝션도 배우고요^^
그리고, 트랜젝션하면서 이건 대체 뭐하는 거지 라고 생각된 Propagation에 대해서도 잘 설명해줍니다^^ 재미있는 사례와 함께요^^

4주차 - Web MVC
전 웹에 관심이 많다보니 MVC가 역시 ^^ 여기서도 SpringDispatcherSerlvet이 어떤식으로 동작하는지를 알기 위해 FrontController라는 DispatcherServlet과 비슷한 걸 만들어보는 실습을 하게 됩니다^^ 이런 원리를 알고 사용하면 역시나 나머지에 대한 이해가 참 빨라집니다^^
이것 외에는 MVC쪽은 많이 삽질을 해봐서 복습한다는 내용으로 많이 들었던 것 같네요.

5주차 - Annotation-style Programming
1~4주차까지 한 내용을 다 애노테이션으로 바꿉니다-_- 지금까지 한 내용들은 애노테이션을 사용하기전에 개념과 원리를 잡기 위한 내용이였다고 보면 되구요. 애노테이션으로 바꾸면서 이것들을 매우 쉽게 사용할 수 있게 되었습니다. 설정에 들어가는 XML도 줄어들구요.
이거 처음부터 애노테이션을 사용해서 배워버리면 이게 왜 이렇게 되는지 알기 힘들고, 사용법만 배우는 건 완전 겉핥기가 되버리기 때문에 이렇게 강의를 구성한 것 같아요. 좋아요^^

6주차 - Security
Security는 역시 보안, 인증관련된 부분이라 어려운 것이라고 하더군요. 예전부터 로그인할 때 인증하는 것이라고만 알고있어서 더 알고 싶었던 것도 있었는데요. 근데, 역시나 하루만에 많은 걸 가르칠 수 없었기에 웹인증과 권한관련된 내용만 했습니다.
그래도 유용했던 것은 그 전 Acegi때 했던 필터 기반을 먼저 보여주고, 네임스페이스 기반을 보여줘서 원리에 대해서 잘 알았던 것 같네요. 그리고, 사실 어떻게 쓰는 줄 몰라서 못해봤었는데, 사용법도 알게 되어서 좋았네요^^


덕분에 많은 것을 배웠던 것 같네요. 강사님이 중간중간 현장 얘기도 좀 해주시고, 스프링관련 얘기도 해주시고 그래서 더욱 재미있었던 것 같네요.

3차 신청하시는 분들 참고하세요-_-
 
Posted by 머드초보
,
 
작년에도 갔었는데...... 작년에는 토요일에 하더니 올해는 평일인 목요일에 하네요.
토요일은 원래 쉬는 날이여서 목요일로 옮긴걸까요-_- 왜그랬을까요-_- 암튼, 그래도 회사에서 보내줘서 잘 갔다왔습니다^^

그나저나 너무 일찍 갔었습니다. 제가 아마 10등안에 들었을 듯-_-
행사장 못 찾아서 코엑스를 한바퀴를 돌고 왔는데도 불구하고, 10시에 도착 ㄷㄷ 11시 시작인데-_-

암튼, 사전등록 한 사람 기념품을 나눠줬습니다. 기념품이 뭔지 궁금했는데, 연습장과 레고 조각입니다-_- 레고조각은 조립하면 네이버 검색창이 됩니다. 하지만 네이버 검색창을 만들고 싶진 않았어요. "난 남들과 달라"를 강조하며 다른 걸 만들고 싶은 마음에 생각하다보니 미투데이가 생각나 미투데이 얼굴을 만들었는데..........실패했습니다ㅠ
사용자 삽입 이미지
그리고, 올해도 작년과 마찬가지로 미투데이를 운영했네요. 문자로 포스팅할 수 있게도 해주고요^^ 많은 분들이 보내신 미투데이 글들을 보며 피식했네요^^

게다가 신종플루를 대비한 의무실 운영까지^^ 역시 nhn이라는 말이 나오는군요.

nhn deview 2009 자료는 이곳에 있습니다. http://deview.naver.com/programs/courses

1. 키노트 - 대표이사 김상헌 -

음.....이분 아마도 A형일꺼야...-_- 쪼끔 소심한 키노트^^ PPT는 스티브잡스인데, 살짝 지루함이 있었네요. 내용은 그런 내용이였어요. 우리회사는 오픈되어있다-_- 다른 독립사이트와 공존을 꿈꾸겠다 그런 얘기더군요. 작년에도 그런 얘기를 했었는데, 다른 독립사이트와 공존이 과연 가능할지-_-

첫번재로 뉴스캐스트에 관한 예를 들었는데, 이건 나눠먹기를 하는 거라 매우 쉬운 공존이긴 했죠. 하지만, 전 그냥 네이버가 편집할 때가 더 좋았어요. 요즘 뉴스캐스트 볼 때 마다 느끼는 건데, 성(?)에 관련된 내용이 꼭 들어가요-_- 정말 클릭 하게 만드는 낚시성 제목은 물론이구요. 뉴스는 그냥 안나눠먹었으면 좋겠는데...

암튼 올해의 계획은 SNS인 듯 한데요. 요즘 미투데이를 조낸 말고 있는 것 보니, 역시 SNS군요. 외국같은 경우에는 FaceBook이나 MySpace같은 SNS사이트에서 수익창출이 엄청나다고 들었습니다. SNS를 통한 게임을 통해 결제(?)를 유도하는.....-_- 암튼, 그래서 최근 싸이월드도 OpenSocial을 이용해 자신의 일촌정보 등을 가져올 수 있는 API를 공개했죠.

NHN이 어떤식으로 SNS를 이끌어나갈지 궁금하군요. 그 외에 미투데이에 관한 얘기, 내년에는 광고플랫폼도 개방한다고 하는 얘기도 했군요. 광고플랫폼이 어떤식으로 개방되는지 궁금하군요. 애드센스같은건가....-_-

와....점심시간! 밥도 공짜로 주네요. 작년에도 공짜로 줬는데^^
근데, 보통 큰 회사에서 기술 발표하면 등록비가 비싸고(Spring One이나 Sun Tech Day, Adobe의 Max행사 등), NHN은 무료로 열고, 밥도 주다니 완전 좋음 ㄷㄷ

2. 게임오븐 - 성석현 -

아이두게임사이트(게임오븐다운사이트) : http://idgame.hangame.com/
아....이걸 듣다보니, 몇달전에 "아이두게임 오리엔테이션"에서 발표했던 내용에다가 추가적인 내용을 해서 발표했네요. 암튼, 저번이랑 비교해서 좀 새로운 것은 3D지원을 구현중에 있다는 것. 2.5D라는 것의 데모를 보여줬는데, 그 NDSL수준의 그래픽을 보여줬던 것 같네요. 그 정도면 대단한 듯.

아....저번에 없었던 내용을 좀 더 보자면, 가상의 시나리오를 보여주면서 게임오븐의 위대함(?)을 표현하셨는데요. 우선 인정할 수 있는 부분은 프로토타입 개발이 쉽죠. 또한 컨텐츠집중위주의 개발이 가능하고, 같은 툴에서 디자인과 코드작업을 같이 하니 협업도 쉽게 할 수 있다는 얘기를 했죠.

게임오븐이 많이 발전했지만, 아직 버그가 좀 많고-_- 저장 타임에 에러체크를 아직 할 수 없습니다-_- 하지만, 앞으로 계속 게임오븐 버전업 하고, 3D지원, 물리엔진 등 발전하는 모습을 보니 앞으로도 계속 기대가 되네요^^


3. CUBRID 고가용성 아키텍쳐와 XE응용사례

큐브리드사이트http://www.cubrid.com/zbxe/home
전에 큐브리드랑 MySQL이랑 비교해놓은 것을 대충 봤는데, 큐브리드가 확실히 더 빠르다는 내용이였어요(nhn에서 테스트 및 작성했을꺼야...-_-). 이번 세션은 큐브리드도 대용량 처리 및 대규모시스템에서 꿀리지 않는다라는 것을 보여준 내용이였던 것 같네요.

사이트는 db때문에 죽지 않아야한다 라는 것을 강조했는데요. db가 죽어서 서비스가 안되는 경우가 우리회사에서도 몇번 있었던 것 같은....-_- 암튼, db는 정말 중요한 것이죠. 실제로 데이터가 저장되는 곳이니까요.
그래서 오늘 발표한 내용은 안정성과 고가용성에 중점을 맞춘 듯 합니다. 안정성에 관련된 내용은 서버장애 시 뭐 에러나면 자동으로 스위칭해서 다른 노드로 자동연결하는 등의 뭐 그런 내용이였는데, 발표자료와 사이트를 참조하시는 게.....(저도 잘 이해못했음 ㅠㅠ)

HA에 대한 구현도 조금 발표를 했는데요. 여기서 HA란 High Availability 고가용성이로군요. 이것도 완전 복잡함. 그냥 고가용성이 됨을 말하고 싶은 것인듯-_-
이번 업데이트에 포함된 내용이라더군요. HA와 안정성있는 서버장애복구기능.
미래의 큐브리드는 여기서 클라우드컴퓨팅 얘기를 잠깐 했는데요. 무슨 얘기인지 잘 못알아 들었지만, 큐브리드 클러스터를 내년에는 지원을 해서 접속점에서 원하는 쿼리만 날리면 그 다음 구조는 어떤식으로 되어있는지 알 수 없어도 사용할 수 있는 그런 걸 구현하고 있는 듯 합니다.
즉, 여러 지역에 있는 DB서버가 있어서 그 한 곳의 접속점만 있으면 뭐 다 할 수 있다 뭐 그런건가요-_- 암튼, 사용을 더 편리하게 해준다고 생각합시다( 더 생각하면 골치아픔 ㄷㄷ)

암튼, 국내에도 MYSQL과 비슷한 또는 그 이상의 dbms가 있다는 게 자랑스럽네요^^ 앞으로 많은 발전이 있기를^^ 우선 공공기관에서 쓰이는 티베로부터 다 밀어버려요-_-


4. SmartEditor의 확장 및 응용사례

스마트에디터 : http://dev.naver.com/projects/smarteditor
친구가 단국대학교를 다니는데, 그 친구가 이번에 NHN에서 하는 프로젝트에 참여했다고 하네요. 그래서 이번 응용사례 발표하는데, 참여했다고하더군요^^ 그래서 어쩔 수 없이(?) 이 세션을 들으러왔습니다^^
스마트에디터는 저도 잠깐 써봤는데요. 받자마자 난관에 부딪히는 게 이걸 쓰려면 Jindo Framework를 설치해야한다고 하더군요.
얼마전 다음도 다음에디터를 공개했는데, 이런식으로 나오면 좀 곤란합니다-_- 당장 독립적이게 만드시는 게 더 나을 듯 합니다. 뭐 제 생각입니다^^ 사실 보통 다른 곳에서 다른 JS Framework(jQuery, Prototype 등)를 사용하는 곳에 많은데, 스마트에디터를 쓰려고, Jindo도 넣야한다면 저 같으면 다음에디터를 쓰겠습니다-_-

암튼, 발표를 하셨는데, 스마트에디터를 손쉽게 확장할 수 있다는 것을 보여주려고 하셨습니다. 근데, 계속 진행하다보니 발표가 늦어져서 나머지 데모는 못봤군요. 스마트에디터에 그런점이 맘에 드네요. 자신이 만든 플러그인을 손쉽게 에디터에 넣을 수 있는 것과 다른 사람이 만든 것도 손쉽게 적용가능하고^^
근데 발표자님이 조금 긴장하신 듯 ^^ 게다가 PPT에서 브라우저로 전환할 때 PPT아래에 컨닝 문서를 발견-_- 사실 에디터 만드는 것은 참 힘든데, 이렇게 만들어 놓은 것을 공개했다는 것은 다른 사람들의 삽질을 조금이나마 덜어 줄 수 있어 참 좋죠. 이런 것들이 좀 더 많이 오픈되고 공유되었으면 좋겠네요.

아.....그 다음 스마트에디터 응용사례에 대해서 발표했는데요. 친구가 참여했다던 그 프로젝트군요. 해당 오픈소스 스마트에디터에다가 OpenAPI를 이용해서 손쉽게 네이버에 있는 자원은 에디터에서 쉽게 검색해 넣을 수 있는 기능을 확장했군요. 이런 식의 으용사례가 있다는 것을 보여주는 발표였습니다. 아.....이거 보니 떠오른 게 우리 회사의 음악검색기능도 넣으면 좋겠다라는 생각 들었네요. 한번 시간 날 때 해봐야겠네요^^


5. 정보플랫폼 응용사례

네이버개발자센터 : http://dev.naver.com/
아....마지막 꺼는 좀 땡기는 게 없고 해서 그냥 앉아있었습니다. A세션에 가서 권순선님 발표를 들을까 했었는데, 역시 그냥-_- 앉아있었어요-_- 이번에도 nhn에서 공개한 오픈소스 기술을 이용하여 어떤 식으로 활용했는지 발표하는 시간이였습니다.
데브피아에서느 nForge를 이용하고, 서울대학교 학생들은 Coord를 이용했고, 마지막에는 QA자동화도구인 NTAF를 이용했습니다.

앞에꺼보단 마지막에 NTAF에 좀 눈이 갔는데, 이거 JUNIT같은 건가 라는 생각을 좀 했네요.
 뭐하는 건지 가서 받아봤는데, 메뉴얼 한장 없어서 포기했음 ㄷㄷ
암튼, 통합 테스트환경을 만들 수 있다라는 것을 얘기하고 싶었던 것 같음 ㄷㄷ
사실, 마지막에 집중력이 떨어져서 제대로 듣지 못했던 것 같군요 ㅠㅠ


아....마지막 추첨.....역시 안되는군요-_-

이번 행사에서 조쿰 아쉬운 게 있다면 체험존이 약간 부실한 듯-_- 튜토리얼 존은 어땠는지 안가봐서 모르겠는데, 가보고 싶었지만, 노트북도 안가져오고, 자리도 없을 것 같아서...선테크데이에서도 튜토리얼 존을 운영했는데, 거긴 외국인개발자들이 가르쳐서 습득력이 매우 떨어지는....-_- 그냥 나눠준 문서보고 따라하는 수밖에 ㅠㅠ

전 항상 이런 행사를 즐겨가는 이유가 항상 가면 새로운 것이 기다리고 있기 때문이죠^^ 새로운 것을 배울 수 있고, 새로운 기술은 뭐 항상 재미있죠^^
근데, 올해 새로운 것 발표는 게임플랫폼이 주였던 것 같은데, 그쪽 세션에 관심있는 사람들은 별로 없었나보네요.
그래도 이렇게 오픈으로 다가서고, 개발자들과 사용자들을 배려한 NHN의 플랫폼 Open은 정말 맘에 드는 선택이였습니다. 앞으로도 이런식으로 유저들에게 다가갔으면 좋겠네요^^


PS. 이건 DEVIEW행사와 관계없는 얘기지만......naver계정 정지먹음 ㄷㄷ
사용자 삽입 이미지
누가 제 아이디를 해킹해서 글을 썼나봐요-_- 근데 해제해야하는데 어떻게 해야하는거지-_-
 
Posted by 머드초보
,
 
[code]package test;

import java.awt.Image;
import java.net.URL;

import javax.imageio.ImageIO;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            URL url = new URL("http://wstatic.naver.com/w9/lg_naver_v3.gif");
            Image image = ImageIO.read(url);
            int width = image.getWidth(null);
            int height = image.getHeight(null);
            System.out.println("width = " + width + ", height = " + height);
           
        } catch (Exception e) {
            System.out.println("파일이 없습니다.");
        }
    }

}
[/code]

 
Posted by 머드초보
,