달력

6

« 2009/6 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 28
  • 29
  • 30

'2009/06'에 해당되는 글 7

  1. 2009.06.13 twitter 초보와 요즘의 핫 이슈?
  2. 2009.06.05 Google App Engine에서 JSTL 사용하기 7
  3. 2009.06.01 iPhone Application Life Cycle
2009. 6. 13. 01:28

twitter 초보와 요즘의 핫 이슈? 행복/나의 생각2009. 6. 13. 01:28

최근에 너무 늦었다고 생각할지도 모르겠지만, twitter 계정을 만들고, 날마다 날마다, 친구들을 늘려가는 중이다. 그동안 몇차례 나에게 권유를 했던, 사람들이 있었지만 나이가 들어가면, 새로운 것을 받아들이는 것이 무척이나 늦는지도 모르지만, 선듯 받아들이기 어려웠다.

아직도, 네트워크 상에서 나를 드러내는데, 두려움을 느끼고 있기 때문인지도 모르지만, 구지 다른 사람의 삶을 들여다 볼 여유가 없기 때문일지도 모른다.

그러나, 이제 첫 발을 들여놓았다. 
트위터 계정을 만들고 구글 Talk에 있는 친구 목록들을 가져와서 fallow로 등록을 하였었다.
새로운 장남감을 만지듯 조심 조심 다루었는데, 사용법은 정말도 단순하였다. Micro-blog라는 측면에서 볼때, 단순히 히스토리 로그이며, 140자 이내로 글을 써야하기 때문에 특정 주제를 가지고 설명한다는 부담감은 적었다. 그리고 이러한 글과 정보 조각들이 RSS를 이용하듯이, 네트워크 상에서 퍼져 나간다는 점에서는 굉장히 독특한 매체(?)라고 생각하였다. 그리고 글자수의 제약이 있기 때문인지, 긴 URL의 주소의 경우 축약한 형태로 변환해서 전송한다는 것도 참 독특하였다.

그리고, twitter의 OpenAPI를 이용해서 만들어 놓은 twitter 클라이언트 프로그램을 권정혁 책임의 소개로 설치하였는데, 이는 Adobe의 AIR를 이용하여 만들어진 프로그램으로 twhirl 이라고 부른다.
이 프로그램은 현재 내가 설치한 시점으로 최신 버전은 0.9.2 버전이다.


이 프로그래에 대한 자세한 정보는 여기에서 찾아볼 수 있다.
설치할때 특별한 것을 뭍거나 요청하지 않는다. 단지 twitter의 계정과 비밀번호만 필요할 뿐이다.

이번 주에 이 프로그램을 설치하고, 사용중인데 다른 사람들은 별 문제가 없는데, 내 PC에서는 종종 죽는, 아니, UI가 사라지는 일이 발생한다. 다시 아이콘을 클릭하여 실행해도, UI가 화면에 나타나질 않는데, 이 경우는 프로그램 관리자에서 프로세스를 죽이고, 다시 아이콘을 클릭하면 실행된다.

twitter를 이용하면서, 느끼는것은 블로그보다 빠르고, 은근히 중독성이 강하다는 것이다. 특히 뭔가 이슈거리가 있으면, 바로 바로 글이 올라온다는 것이다. 그래서 일하면서 twitter를 띄우는 것은 주의해야 한다. ^^;;

오늘의 이슈거리는 WWCD에서 iPhone이 한국에서 출시될거라는 말이 없어서, 한국의 iPhone 대기 수요자들이 실망하고 있었는데, 갑자기 iPhone이 한국에서 출시 될지 모른다는 이야기가 다시 수면위로 떠 오르고 있다. 이를 iPhone 전도사(?)로 활동하시는 이찬진님이 수시로 확인 메시지를 올리셔서 많은 사람들이 흥분(?) 상태에 빠져들고 있는 중이다. (저도 출시되기를 간절히 바라는 사람중에 한명입니다.)

나이가 들어갈 수록 뭔가를 받아 들이는 속도가 점점 느려지고 있다.
겁이 나서라기 보다는, 새로운 것을 통해서 뭔가를 얻을 수 있을 거라는 기대감이 적어서이다.
그러나, 이 또한 선택의 문제이다.
요즈음, 내가 많이 하는 생각은 "감사하면서 열심히 살자"라는 생각인데, 그렇게 살지 못해서 밤마다 많은 후회들을 한다. 언제부터 남의 탓을 그렇게 자주하게 되었는지 모르겠지만, 자신을 성찰하는 기회도 점점 적어지는 듯하다. 스스로에게 충실하게 살았으면 한다.

트위터가 이렇게 살 수 있도록 도와줄 수 있을지는 모르겠다.
아니, 즐거운과 고민거리를 안겨 줄지도 모르겠지만, 네트워크 안에 존재하는 나도 현실의 나와 같았으면 한다. 블로그와 트위터를 통해서 만나는 사람들 중에는 인간적인 매력이 물씬 풍기는 사람들이 여럿있다. 인생의 선배로서 동종업의 종사자로서 배울수 있는 점들이 있다면, 이 역시 적극적으로 IT툴을 사용할 가치가 있다는 반증으로 삼아야 겠다.

이야기가 두서 없다. 그냥 오늘은 인생의 선배로 존경하는 분과 식사를 하고 와서, 그냥 기분 닿는 대로 글을 쓴다.

:
Posted by 행복상자
어제와 오늘은 스프링 프레임워크를에서 제공하는 코드를 이용하여, 몇가지를 테스트를 하였다.
Spring MVC를 이용하여, Sample코드를 작성해보았는데, 정상적으로 동작하지 않았다.
Springframework에서 제공하고 있는, MOC테스트도 정상적으로 동작하고, Controller에서 log를 찍어 보아도, 정상적으로 표시가 되는데, 꼭 View에서 값을 표시할 수 없다는 것이었다.

아래의 코드는 Controller의 코드로, 현재 시간을 String형으로 View에 전달되는 코드이다.
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String now = (new Date()).toString();
        logger.info("Returning hello view with " + now);
        System.out.println("Returning hello view with..2 " + now);
        return new ModelAndView("/WEB-INF/jsp/hello.jsp", "now", now);
    }

View(hello.jsp)의 코드는 아래와 같다. JSTL과 EL을 이용해서, Controller에서 전달한 값을 찍어주는 코드이다. 그러나 내가 원하는 값(현재 시간) 대신 "${now}" 라고 화면에 찍어준다.
<%@ include file="/WEB-INF/jsp/include.jsp" %>
<html>
  <head><title>Hello :: Spring Application</title></head>
  <body>
    <h1>Hello - Spring Application</h1>
    <p>Greetings, it is now <c:out value="${now}"/></p>
  </body>
</html>

위의 코드를 테스트 하기가 그렇게 쉽지는 않았다. 왜냐하면, JSTL의 문제일 것이라는 생각은 있었지만 어떤식으로 전달되는 값을 테스트 할지는 생각하기 쉽지 않고, 에러 메시지도 전혀 없었기 때문이다.
그래서, 값의 전달에 문제가 있을 거라 생각하고, 다음과 같은 코드를 넣어 보았다.

<%@ include file="/WEB-INF/jsp/include.jsp" %>
<html>
  <head><title>Hello :: Spring Application</title></head>
  <body>
  <%
       out.println(request.getAttribute("now"));
  %>

    <h1>Hello - Spring Application</h1>
    <p>Greetings, it is now <c:out value="${now}"/></p>
  </body>
</html>

위와 같이 했을 때, 임시로 넣어준 테스트 코드인 "request.getAttribute("new"))" 는 정상적으로 Controller에서 전달한 값들이 표시해 주었다. 이제 문제는 JSTL과 EL의 문제인데, 엄밀하게 이야기하면, JSTL의 문제는 아니고, EL의 문제인데, 건드릴 수 있는 부분은 자바 코드는 전혀없기 때문데, 결국 시스템의 설정을 건드려 주어야 한다.

그래서, googling과 이전에 사서 보곤했던 "Head first"시리즈로 나왔던 "Server & JSP"책을 찾아보았다.
결국 답을 찾았는데, 답은 web.xml의 설정이 잘못되었기 때문이다.

아래는 처음에 web.xml에 설정했던 것이다.
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">

위의 것을 아래과 같이 설정을 변경하였더니, EL이 정상적으로 잘 동작하였다.
<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

현재 Servlet versing 2.5가 최신의 것인데, 위에서는 2.4버전으로 설정한 것을 예로 보여주고 있다. 만약 2.5 버전을  사용하고 싶다면, 아래의 것을 사용하면 된다.

<web-app
  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  id="WebApp_ID" version="2.5">


Goolge App Engine은 JSTL을 기본적으로 제공하고 있기 때문에, JSTL을 지원하기 위해서, "jstl.jar"과 "standard.jar" 파일을 Class path에 포함 시킬 필요는 없다.

위와 같이 web.xml의 설정을 변경하면, 아래와 같은 결과를 볼수가 있다.

이를 해결하기까지, 생각보다 시간이 많이 걸렸다.



:
Posted by 행복상자
Application은 모두 시작과 끝을 가지고 있다, Object-C를 이용하여 만들어지는 iPhone용 Application 역시 main()함수를 실행하여, 이를 관리하게 된다.

iPhone Application의 main()함수는 최소한의 작업의 실행을 위해서 사용되어 지는데, 거기에는 3가지의 작업이 순서적으로 실행된다. (아래 그림 참조)


소스 코들 보면서, 설명을 하면,
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

위의 소소 코드를 보면, main()함수에서는 먼저, "Auto Release pool"을 만들고, 그리고 "UIApplicationMain"을 호출한다. 마지막으로 "Auto Release pool"에서 할당해서 관리하던 메모리들을 해제하는 작업이 진행되고, 프로그램이 종료된다.



'공부하는 것 > iPhone Application' 카테고리의 다른 글

어떤 iPhone을 살것인가?  (2) 2009.06.24
iPhone SDK Study  (0) 2009.05.31
:
Posted by 행복상자