이번 블로깅은 한번쯤 어더한 기술을 소개하는 포스팅이 아니라 한번쯤 개발자라면 한번쯤 생각 해볼만한 주제를 가

지고 블로깅을 하려고 합니다. 

자 이야기를 시작해보자. 소프트웨어 개발 방법론이란 용어는 전산과를 나온학생들이라면 한번쯤 들어봤을만한 말

이다. 그럼 소프트웨어 개발 방법론이란 무엇일까? 그냥 한마디로 표현하자면 소프트웨어를 개발 하기 위해서 필요

한 방법이라고도 말할 수 있다.  공대생이나 작은 단위로 프로젝트를 한 개발자들은 왜 소프트웨어 개발 방법론이 필

요한가라는 의문을 가질수 있을 것이다. 그러한 여러가지 방법론을 거치지 않아도 충분히 그러한 개발을 할 수 있을

텐데 라고 말이다.  그러한 생각은 작은 규모의 회사이거나 혹은 마음 맞는 몇명에서 개발을 했던 경험이 있기 때문

이다. 물론 그러한 회사들이 개발 기간과 시간등을 여러 소프트웨어 개발 방법법론보다 더 효율적일 수 도 있다.
 
보통은 체계적인 개발된 문서가 없더하더라도 개발자 본인의 머리에 들어있는 경험과 코딩을 바탕으로 문제점을 해

결 할 수 있기 때문이다. 그러나 만약에 회사의 규모가 성장함에 따라서 그러한 주먹구구 개발 방법을 유지하고 있다

면 개발 과정은 점점 혼란스러워 질것이다. 게다가 대부분의 정보를 가지고 있는 개발자가 퇴사까지 한다면 말 그대

로 절망적일 것이다. 즉 개발 방법론은 특정 개발자에 의해 편중되어잇는 점을 개발방법론 시스템에 따라 손실을 최

대한 줄여야 하는 것이다. 처음에는 문서도 제작해야하며 방법론의 프로세스에 따라가야하기 때문에 주먹구구식의

방식보다는 시간과 돈이 좀더들어가겠지만 그 대가로 손실을 좀더 줄일수 있다는 점이 되겠다.

그렇다면 소프트웨어 개발 방법론은 어떻게 배워야 할까?

 보통은 소프트웨어 개발 방법론은 책이나 인터넷을 통해 배우고 그것을 통해 그럴싸하게 개발과정을 따라 한다. 그

러한 개발과정으로 회사나 개발자는 흉내 낼수 있을 것이라고 생각을 한다.  

  그렇나  실제로 따라해보면 생각만큼 잘 되지 않지 않는다. 그래서 여러 회사들은 컨설팅회사에 문의를 하고 하지

만 그것또한 컨설팅 회사가 이론적인 것은 잘알지면 경험이 부족하다면 그 의뢰를 요청한 회사의 기업과 프로젝트의
성격을 무시한채 올바른 방법론을 제시해줄수 없을것이다. 또 회사는 컨설팅회사가 정해준 방법론대로 모든 개발을

그 프로세스에 따라 개발하는것도 쉽게 빠질수 있는 것도 문제이다. 간단한 프로젝트에 모든 이런 과정을 도입한다

면  과도한 비용을 지불할 수 도 있기 때문이다. 이것은 애초에  개발 방법론을 도입한 이유를 망각하고 무조건적인

강요로 인한  효율성을 떨어 뜨리기 때문에  유연하게 적용시킬수 있는 여지를 남겨두어야하기 때문이다.

위와 같이 설명했다 싶이 방법론의 궁극적인 목적은 효과적인 개발에 있다. 즉 빠른 시간안에  적은 비용을 들여 요

구하는 품질의 소프트웨어를 만들어 내는 것이다. 즉 돈을 잘 버는것에 있다.

 즉 소프트웨어 개발 방법론은 어떻게 이렇게 해야한다는 적당한 방법은 없다. 각 회사의 특성과 프로젝트의 구조에

따라서 유연적이게 변화될수 있어야 좋은 방법론이라고 할 수 있다.
,


최근 인터넷 서핑을 하다가. 어떤 한가지 동영상을 보게 되었다. 그 동영상은 아래와 같은 동영상이다.


동영상을 보니 각각의 ms의 제품군들 오피스 아웃룩등이 집안에 있는데 사용자가 나가지만 제품군?들은 집안을 빠

져나가지 못한다. 그렇지만  유저가 핸드폰을 꺼내자마자 제품군들이 집밖을 빠져나와 사용자와 함께 같이 움직일수
있게 된다.  이런 동영상을 보면 집안 에서만 하던 작업을 이제 집밖에서도 휴대폰을 사용해서 지원을 한다는 의미의
동영상이었다. 이 동영상만 본다면 ms에서 폰을 만드는거였나 하는 착각에도 빠질수 있지만. 찾아본결과 이번 ms

에서 발배될 모바일즈 윈도우 6.5라는 것임을 알게되었다.  그래서 이번에는 모바일 윈도우 6.5에는 관심이 있어서

블로깅 주제로 선택하였다.

 기존 모바일 윈도우즈은  한국 시장에서는 좋은 평가를 받지 못했던거 같다 그 이유는 애플이나 다른 경쟁사의 UI 비

해 딱딱한 윈도우 기반 UI를 벗어나지 못한 이유이다. 그래서 이번 윈도우 모바일 6.5에서는 새롭게 UI를 뜯어 고치고
있다. 또한 모바일 윈도우는 비즈니스 이용자에게 장점을 제공해주는 특징이있다.

특징

1. 기존과 다르게 인터페이스 개선.
2. 비즈니스 사용자에게 편의성 제공.
3. 인터넷브라우저를 개선
4. 넓은 하드웨어 선택폭
5. 모바일 마켓 플레이스 제공



자 특징을 살펴 보자 첫번째는 기존의 윈도우 모바일의 UI를 버리고 새롭게 인터페이스를 개선한 점이다. 아래의 사진을 보면 알수있다.

기존 티옴니아 윈도우 모바일 인터페이스

윈도우모바일 6.5


딱 봐도 뭐가 좀더 쉽고 복잡하지 않게 일반사용자들이 접근할수 있어 보인다.  왼쪽사진은 좁은 휴대폰 액정화면에 여러가지를 구겨 넣은것처럼 보이고 오른쪽은 각각 필요한것이 잘 정리되어있는 인터페이스처럼 보인다. 척봐도 왼족사진에 있는건 건드리기가 싫어진다..

 두번째는 비지니스 사용자에게 편의성을 제공해줄수 있다. 즉 위의 동영상과 같이 비즈니스 사용자에게 편의 성을 제공하여 언제 어디서나 휴일이든 평일이든 일을 할수 있는 퍼펙트한 근무환경을 제공한다는것이다.. ( 장점인지 단점인지는 잘 모르겠다..)

세번째는 인터넷 브라우저를 개선했다는 점이다.



또 기존의 인터넷 환경은 어도비의 플래쉬를 많이 사용한 페이지가 많은데 이 모바일 브라우저에서는 어도비 플래쉬
라이트도 지원한다. 그리고 위의 스크린샷과 같이 줌인스크롤이 있어  이전보다 깔금한 브라우저를 제공해준다.
 
 네번째는 넓은 하드웨어 선택폭을 들수가있다. 기존의 애플와 달리 모바일 윈도우는 하드웨어 선택폭이 넓다고 말
할수 있다 즉 카메라나 물리적키패드를 선택할수 있다는 말이된다. 즉  이말은 각각의 휴대폰 제조자 삼성이나 엘지
같은 기업들이 모바일 윈도우 6.5기반 휴대폰에 올린다면 고정적으로 터치면 터치만 써야되고 카메라면 카메라만 쓰
는것이 아니라. 윈도우 모바일 6.5 만의 막강한 라이브러리를 가지고 각각의 휴대폰의 특징에 따라 변경해줄수 있다는 말이다. (os를 올리는 것과 올리지 않은 것의 간단한 차이점은 예전에 기술블로깅을 참조하시면 된다)

다섯번째는 모바일 마켓플레이스를 제공해준다. 모바일 마켓플라이스는 개발자가 개발을 하거나 이용자가 제품을 구입하기 까지의 과정은 본래 복잡하지만 그러한 장벽을 낮춰 누구나 개발을 참여할수 있고 누구나 이용자가 그 제품을 구입할 수 있는 환경을 제공해줄 수있는 점이라고 볼수있다. 아마 아이팟이 성공하게 된이유는 편한 UI도 되겟지만 엄청난 수의 어플리케이션이라고 생각 한다.

이렇게 윈도우 모바일 6.5의 특징들을 몇가지 뽑아보았다. 윈도우 모바일이 적용된 스마트폰의 경우 분명 기본의 일반적인 폰에 비해 기능면에서는 우수하다. 그러나 스마트폰에 대한 많은 사람들의 인지도가 부족하다. 기존의 폰과 많은 기능때문에 조금은 더 복잡하기 때문이다. 그리고 무선인터넷이 지원되 많은 사람들이 무료로 인터넷을 사용할수 있겠지만 wifi에 대한 홍보나 사람들의 인식이 많이 부족하다. (보통 사람들은 휴대폰이나 모바일 기기로 인터넷을 한다면 비싼 이용료를 지불해야된다고 알고 있다.). 그렇기 때문에 사람들의 인식을 변화시켜준다면 윈도우폰또한 아이폰 못지 않은 열풍이 될수 있을것 같다.


부족한 점이나 틀린점이 있다면 과감히 댓글로 알려주세요 ^^;

그리고 내용이 마음에 드신다면..아래 클릭 해주세요 ^^;


,

얼마전에 인터넷을 보다가 영국의 100대 아이디어로 선정된 기술중 하나를 볼수 있었다. 그 기술을 위의 사진과 같은 만보계 같은 이미지인데 굉장히 흥미로운 디바이스로 보인다. 이름에서도 알 수 있다 싶이 Jog라는 이름이다. 천천히 달린다라는 뜻인데 이 디바이스는 닌텐도 wii의 게임기의 보조게임 기구이다. 그렇기 때문에 닌텐도와 함께 연결하여 사용해야한다.  뭐 만보계같은 이미지이지만 기능도 비슷하다. 사람이 뛰는 걸음거리를 체크한다고 보면된다.
기존에 닌텐도 게임 보조기기에 비해 정말 재미있어보인다..

 
이 기술의 원리는 위에서 조작하는 컨트롤러에 데이터를 중간에 가지고와 하나의 핸들러에는 자신의 방향을 잡아주고 저 만보계는 사람이 뛰는 걸음 수를 체크해서 달리는 속도를 체크하는 것이라고 한다.  아래의 동영상을 본다면 어떤 느낌의 장치인지 알 수 있을것이다.





이 시스템을 보면  앞으로 제자리걸음을 하는것은 어느정도? 몰입감을 줄수 있지만 회전을 할때와 기존의 컨트롤러에서 하나의 컨트롤러를 더 사용한다는점을 보면 많은 몰입감을 제공할지는 직점 체음을 해보지 않아서 모르겠지만 약간은 어색함이 느껴질듯싶다.  만약 jog라는 디바이스와 Cave시스템과 합치면 어떠한 이미지일까 생각을 해보았다. 아래의 동영상은 Cave시스템의 영상이다. 


Cave시스템은 8개의 프로젝트로 화면을 쏴 하나의 화면으로 만들어 사용자에게 몰입감을 줄수있는것이다.  동영상에서 보면 컨트롤러를 사용해 앞과 뒤를 이동할수 있다. 지금은 베타 버전이여서 테스트로 이런방법으로 이동을 하고 있다. 본래 저 컨트롤러의 사용목적은 회전과 물체를 이동하는 기능을 수행하고 있다. 일단 Cave시스템이란 이런것이고 이 시스템에 Jog라는 디바이스를 붙여서 앞으로 걸어갈때 화면이 이동하고 회전을 할때 회전을 하는 모습을 사용자에게 준다면 보다 몰입감을 제공해줄 수 있을것이다. 그러나 보통은 VR시스템이나 Cave시스템에서는 몰입이 어려운 점 중 하나는 실제 몸의 움직임이나 가상공간에서 일치 하지 않고 그렇다고 커다란 공간을 만든다면 그에 따른 비용은 물론 동적으로 시야를 변하는 문제점이 생기는 문제점이 있다고 한다.


 그 한 예를 설명하자면 시야가 저렇고 jog의 디바이스를 사용하여 보는 시점을 약간 회전시켰을때 화면의 출력은 한계가 있기 사용자에게 몰입감을 줄수 있는것이 한계가 있기 때문이다.  360도 케이브룸이 아니라면 ㅎ;   아 그360도 라고 말하니 한가지 몰입감을 줄수 있는 방법이 생각이 났다. 다른 한가지는 HDMD라는 장치를 이용하는것이다.그것은 아래와 갔다.
HMD는 사람의 좌안과 우완에 각각의 영상을 따로 뿌려줘 약감의 몰입감을 실감나게 줄수 있는 장치이다. 비록 고가의 장비인 문제점이 있긴하지만 jog와 wii리모콘 hmd조합을 사용한다면 내 생각에 최고의 몰입감을 사용자에게 전달해 줄수 있을것이다.

jog라는 디바이스 장치는 간단한 아이디어로 사람의 모션을 체크할수 있다는 것이 좋은 아이디어라고 생각을 하며 현재 wii리모컨의 데이터 패킷이 사람들의 해킹에 의해 모두 분석되어있는 상태라 충분히 위의 아이디어는 가능하기때문에 그것을 응용하여 재미있는 게임이나 시스템이 나올것이라고 생각한다.
,
요즘 보면  임베디드라는 용어를 많이 쓰인다. 임베디드란 무엇이고 어떤곳에 쓰이는지 잘 모르시는 분들을 위해서 간략하게 설명을 하여 기초적인것을 설명을 하려고 합니다.

임베디드 시스템은 이렇게 이루어진다.


특정 목적으로 사용되는 시스템에 따라 소프트웨어부분은 펌웨어라고 하면 하드웨어 부분은 마이크로 프로세서라고 한다. 이를 합쳐서 임베디드시스템이라고 한다.

  임베디드 시스템의 위의 사진의 제품과 같이 지금 여러분들은 하나라도 사용하지 않은 것은 없을것이다. 이렇게 임베디드 시스템은 우리 일상속에서 많은 역활을 하고 있다.
 만약 자신이 임베디드 공부하거나 공부할것이라고 마음을 먹은 사람이라면 ARM이라는 회사를 알아야 할것이다. ARM회사에서 제작하는 ARM코어는 세계시장의 90%이상을 점유하고 있다. 아마 최근 나오는 휴대폰 모두가 ARM코어가 내장되어있다.세계시장의 90%이상이면..거의 독점수준이다. 그렇게 많이 쓴다면  ARM이라는 것이 무엇인지 알아야될 것이다.
ARM(Advance Risc Machine)                              
장점 : 유사한 설계 원칙                         
         공통의 명령어 세트 공유        
         코드의 고집적도와  저전력 소비
         대량 생산을 통한 저전력화
특징 : - 영국의 ARM본사에서는 실제 프로세서를 제조하지 않고 라이센서 판매
         - 코어만 제작하며 코어 주변에 여러가지 부가기능을 넣어 최종제품은 각 반도체 회사에서 라이센스를 부하
            하여 제작
         - 코어이름은 ARM7, ARM9과 같이 사용한다 실제 제품명은 제조회사마다 다르게 부른다 
              ex) StrongARM(ARM7), Xscale(ARM9), s3C241x(ARM7) 등과 같이 부른다.
시장 성공 요인
      - 가격대비 성능이 뛰어남
      - 성능 대비 소비 전력이 매우 낮음
      - 쉽고 짧은 디자인 시간( C언어로 설계, 내부 버스 공개로 인한 개발시간 단축)

참고 : ARM은 홀수 번호만 제품으로 출시된다 짝수 번호 ARM은 개발자용 그리고 ARM11다음은 ARM 13이 아니라
          Cortex라고도 한다. Cortex 대뇌 피질이라고도 한다. 피질에 신경세포가 몰려있다는데 그마만큼 빠르다는
          뜻으로 Cortex라고 이름을 붙였다고 한다.


그럼 ARM이 왜 뛰어난지 한번 살펴보기 앞서 CISC와 RISC에 대해서 살펴보자.


8051 칩과 AVR칩은 각각의 이러한 장점과 단점이있다. 

그런데 ARM 코어는 RISC의 특징을 가짐과 동시에 CISC의 장점을 일부 수용하였다.

ARM 프로세서


그렇기 때문에 휴대폰 회사나 임베디드 회사의 대부분은 ARM코어를 장착한 프로세서를 사용한다.

이렇게 임베디드 시스템을 사용할때 여러가지 퍼포먼스를 만들수 있다. 휴대폰의 영상, 로봇제어등의 퍼포먼스 같은것이다. 그런 개발을 하기위해서는 운영체제가 필요한지 안할지는 개발하기전에  개발 목적에 따라 분명하게 정해야한다.

운영체제를 설치할 경우 
    장점
       - 운영체제에서 제공하는 막강한 라이브러리를 사용할수 있다.  
       - LCD패널에 그래픽을 출력할때 제어하기가 쉽다.
     단점
        -디바이스드라이버를 개발하여야한다.

  운영체제를 사용하지 않을 경우 (FreeRTOS)
         - 운영체제를 설치할경우의 반대로 생각하면된다.

운영체제를 사용할 경우 동영상이나 여러가지 라이브러리가 필요한 휴대폰이나 PDA등을 개발할때 필요
운영체제를 사용하지 않은 경우는 로봇제어나 그런 제어가 필요할때 사용

위와 같이 임베디드 시스템이 무엇이고 어떤것을 하는지 간략하게 기초적인 지식은 습득이 됬을꺼라고 생각됩니다.
만약 무엇인가 설명이 틀리거나 잘못된것이 있다면 말해주세요~~휴 끝


 
,

 MSP 활동 첫 미션!! 두둥

첫 미션은~ 기술 트렌드에 대한 블로깅이다.  열정 MSP에 비해 조금 딱딱 한 블로깅이 될 수도 있겠지만 전혀 그렇게 쓸생각은 없다. 그냥 생각 나는데로 관심이 가는 분야에 대해서 내 마음대로~설명을 줄줄 해볼까한다.. 물론 정확한 내용이 아닐닐지도 모르고 MSP에서 말한 기술 트렌드가 아닐지도 모르지만 그냥 소신것 작성해보겠습니다~ 왜  물론 아닌건 그때 그때 지적해주시면 수정하겠지만....

  첫번째 주제는 햅틱이무엇인가 하는 주제를 가지고 시작해 보자!!! 햅틱이란 과연 무엇일까??  햅틱폰을 생각하는 당신들!! 그안의 잘못된 상식을 깨버리겠습니다. ~~

 일단 햅틱기술(haptics) 이란 "촉각 감각을 통해 힘이나 진동, 움직임을 가함으로써 사용자와 인터페이스하는 기술" 이라고 정의 된다.  즉 사람이 느낄수 있는 모든 감각이라고 보면된다.  자자 이제  어떤 기술인지 대충 감이 오지 않을까 모르겠다 .햅틱기술은 촉각 감각을 다루는 분야인데 그런 촉각을 다루는 분야는 크게 tactile 감각과 kinesthetic감각 으로 분류된다. 두가지는 무슨 차이점이 있을까 쉽게 생각하자면

tactile감각은 피부에서 느껴지는 감각을 말한다. 온도감 거칠기, 진동감각등이다. 

다른 하나는 kinesthetic 감각이다. 예를들자면 근육이나 관절을 통해 느껴지는 감각을 말한다. 누군가 내 팔을 움직일때 팔을 통해 느껴지는 감각이다.  이감각은 이해하기 힘들겠지만 쉽게 설명하자면 누군가 내팔을 강제로 움직이게 하는거라고 생각하면 이해하기 쉬울것이다.  (이건 좀 행동으로 보여야지.. 이해가 쉬운데....)




자 정의를 파악을 하였으니 haptic 폰의 광고를 한번 보겠다..

광고를 보고 나면 뭔가 이상하다는 것을 알 수 있다. 터치폰 다음은 햅틱폰?  자 풀어서 설명을 하자.
건딜다폰 다음은 만지다폰?  (ex: 햅틱의 어원은 : "만지다" 라는 뜻이다)  건드리다 만지다. 차이가 도대체 뭐지? ㅋ
알면 누군가 나에게 좀 설명을 해달란 말이다~~~~그렇다고 햅틱폰이 햅틱의 기능이 없는것은 아니다. 다만 지금까지 나온 진동기능이 들어간 폰과 다를것이 없다는것이지. 진동도 햅틱기술의 한부분이다. 다만 위의 광고와 표현이 잘못되었다는 것이다. 그러므로 haptic = 터치폰 이란 생각을 버리자! 이제 간략하게 햅틱이란 무엇이며 지금 사용되고 있는 용어가 잘못되었다는것을 알려 주었다 

 이제 용어에 대한 설명이 끝났으니 햅틱기술이  여러분야에서 발전될 수 있는 가능성을 설명을 해보겠다.


위의  그림을 보자 그림은  가상공간(컴퓨터게임 or 작업)과 사용자가 상호작용(interaction)할 때 보통 마우스나 키보드 를 이용해서 전달해주고 가상공간의 물체의 상황을 그래픽과 소리를 통하여 사용자에게 다시 feedback 해주는 형식을 취하고 있다. 이때 그래픽 정보와 사운드 정보가 시각과 청각을 자극 하게 되고 사용자는 이 두가지 정보를 통하여 가상공간의 상황인식및 몰입감을 전달 받는다.
 
 위와같은 사람과 컴퓨터간의 상호작용 HCI (Human Computer Interaction) 라고도 한다. 기존은 시각과 청각만 가지고 상확인식과 몰입감을 느낄수 있는 것과 더불어 햅틱기술이 추가되어 정말 기존 것과 다른 UI나 게임을 통해 사용자에게 tactile 감각과 kinesthetic감각을 제공하여 몰입감있는 어플리케이션이나 디바이스가 개발될수 있을 것이다. 뭐 궁극적인 목표는 가상현실 온라인게임이 될수도있지만 말이다.


간략하게 햅틱이란 무엇이며 어떤것인지를 소개를 했다. 복잡한 내용보다는 처음 사람들이 이 글을 읽었을때 이런 흥미있는 기술도 있구나!~ 하는 생각이 들기를 바란다. 최대한 쉽고 재미있게 적어봤다~~^^
,