'허니몬의 IT 이야기'에 해당되는 글 397건

허니몬의 IT 이야기
MS, 고성능 검색기술개발에 관한 연구성과를 발표
Candace Lombardi [2006/08/09]
원문보기

검색 순위나 검색 정밀도 등 신기술개발에 착수한 MS의 연구자가 성과를 발표했다.

MS의 연구자 그룹이 발표한 2건의 연구 논문에 의하면, 특정 콘텐츠의 열람 및 클릭-스루(Click-Though)의 검색 결과에 대한 타당성을 분석하는 MS의 신기술이 검색 순위에 이용하는 알고리즘을 향상시키는 것이라고 했다.

MS 리서치의 Mining, Search and Navigation Group의 유진 아지치타인(Agichtein)은 "현재 이용되고 있는 검색 엔진의 대부분은 콘텐츠에 관한 사용자의 문의와 웹 페이지의 링크 구조를 대조, 그 결과를 리스트로 표시하는, 2개의 접근방법을 이용하고 있다. 우리가 착수하고 있는 개발은 여기에 사용자 자신을 포함시키는 세가지의 접근 방법이다. 이러한 새로운 기법에 의해서 검색 익스피리언스(experience)가 향상한다" 라고 말했다.

8월 6일부터 11일에 걸쳐, 시애틀에서 국제 연차 이벤트 「Association for Computing Machinery's Special Interest Group on Information Retrieval(ACM SIGIR 2006)」가 개최되고 있다. 올해로 29번째가 되는 이번 이벤트에서는, MS의 연구자와 각 대학의 연구자로 구성된 13개의 그룹이 연구 성과를 발표하고 있다.

이 이벤트에서 발표된 논문 가운데, 「웹 검색 결과의 우선도를 예측하기 위한 사용자 상호작용 모델 연구(Learning User Interaction Models for Predicting Web Search Results Preferences)는, 처음 검색 결과의 페이지에서 클릭-스루이후의 사용자 행동을 추적하는 신기술에 관해 설명하고 있다.

연구자들은, 소정의 페이지에 다수의 사용자가 머물렀던 합계 시간이나, 사용자가 각 페이지의 열람에서 소비하는 평균 시간으로 계산한, 가장 긴 '체재시간' 을 보낸 웹페이지, 도메인내에서 검색된 단어를 보유하는 비율이 높은 페이지에 대한 열람 시간 등의 요소를 응용, 새로운 기술을 개발했다. 검색 이용자에 의해 클릭된 검색어, 도메인명, 페이지 타이틀, 요점 등에 공통되는 단어의 비율에 연구자들은 주목했다고 한다.

"웹 검색 환경은 원래 잡음이 많지만, '군중의 지혜'를 활용하면, 사용자의 커뮤니케이션 동향을 정확히 파악할 수 있다. 우리의 이 방법은 지금까지 사용한 어떤 방법보다도 정밀도가 높고,웹 검색 결과에 있어서도 선택의 타당성을 자동적으로 예측할 수 있는 것이다"라고, MS의 연구 그룹은 논문에 기록하고 있다.

같은 연구자 그룹이 발표한 또 하나의 논문에서는, 검색 알고리즘의 개량에서 이러한 사용자의 정보를 이용하는 방법에 관해 논했다. 이 연구자 그룹은 3,000건에 달하는 검색 데이터와 1,200만건의 사용자 상호작용 정보를 분석한 결과를 이용, 이 그룹이 개발한 방법이 웹 검색순위 알고리즘을 31%향상시키는 것을 나타냈다.@
Copyright ⓒ 2004 CNET Networks, Inc. All rights reserved. ZDNet is a registered service mark of CNET Networks, Inc. ZDNet Logo is service mark of CNET Networks,
허니몬의 IT 이야기
2006년 7월 23일(일) 오후 2:52 [아이뉴스24]
세상 모든 디지털기기 무선으로 잇는다...블루투스 '맹위'
<아이뉴스24>
휴대폰에서 무선 헤드셋을 구현할 목적으로 시작된 블루투스 기술이 광대역무선통신(UWB) 기술과 만나 그 영역을 디지털 기기 전방 위로 확대시키고 있다.

해외에서는 이미 일반적으로 사용되고 있는 블루투스가 최근 휴대폰, PC, 프린터 등에 내장되면서 급성장하고 있는 것. 음성 송수신 위주의 기존 1.0 버전에서 2.0으로 업그레이드되면서 기존 단점을 보완했다.

여기에 더 나아가 블루투스 SIG(Special Interest Group)는 3.0 버전에서 UWB와 블루투스를 결합하는 작업을 본격화하고 있어 이미 5억대 이상 보급된 블루투스 기기와 대용량 데이터 전송이 가능한 UWB의 이상적인 결합을 꿈꾸고 있다.

◆블루투스, 헤드셋에서 본격 오디오 기기로 정착블루투스1.0이 처음 등장했을 당시 제공됐던 500Kbps의 데이터 전송량은 일반 전화기 이상의 음질을 구현하기 어려웠다. 때문에 휴대폰의 무선 헤드셋 외에는 사용되지 않았다.

최근 국내 출시되고 있는 블루투스 기기들은 대부분 2.0을 지원하고 있다. 1Mbps 정도의 속도를 갖고 있으며 A2DP(Advanced Audio Distribution Profile)이라는 오디오 전용 프로파일을 제공해 CD 음질 수준의 스테레오 음악을 음질저하 없이 전송이 가능해졌다.

한쪽 귀에 연결하는 이어폰 타입의 디자인 역시 다양하게 변했다. 일반 헤드폰처럼 생긴 블루투스 헤드셋을 비롯해 스피커폰이 지원되는 클립형, 귀 안에 살짝 집어 넣는 새로운 방식의 디자인이 고안됐다.

국내 휴대폰 제조사들은 작년부터 블루투스를 지원하는 휴대폰을 집중적으로 내 놓기 시작했다. 휴대폰의 MP3 기능이 일반화되면서 스테레오 헤드셋을 지원하는 제품들을 내 놓고 휴대폰과 다양한 디지털 기기를 연결해 데이터를 주고 받을 수 있도록 지원하고 있다. 현재 휴대폰과 연결할 수 있는 기기는 헤드셋을 비롯해 PC, 프린터, 디지털 카메라 등이 있다.

블루투스 헤드셋 업체인 플랜트로닉스의 관계자는 "블루투스가 2.0으로 버전업한 뒤 세계적으로 사용자가 크게 늘고 있다"며 "스테레오 음악이 가능해 MP3 기능을 이용하기 위해 구입하는 사용자가 많다"고 설명했다.

◆블루투스2.1 '심플페어링'과 '멀티포인트'로 저변확대블루투스 기기를 사용하는 사람들이 가장 어려워하는 것이 페어링이다. 페어링은 블루투스 기기끼리의 연결을 위한 절차로 양쪽 기기에서 서로 인증을 거쳐야 한다. 초보자가 하기에는 다소 복잡한 작업이고 휴대폰과 주변기기의 페어링 방법이 다르기 때문에 혼란스럽다.

이런 불편함을 없애기 위해 2.1버전에서는 '심플페어링'을 지원한다. 블루투스를 지원하는 기기에서 버튼 한번 누르는 것만으로 다양한 주변기기와 페어링을 시도하며 한번 페어링된 기기는 해당 기기가 리셋되지 않는 이상 계속 페어링을 유지해준다.

한번에 여러개의 기기와 연결이 가능한 '멀티포인트' 기술 역시 추가됐다. '멀티포인트'는 하나의 스테레오 헤드셋을 이용해 휴대폰과 MP3 플레이어를 동시에 연결하는 기술이다. 여러개의 장치를 연결할 경우 해당 장치에 따라 적절한 데이터 전송 대역폭을 자동으로 설정해 주기 때문에 동시에 여러개의 기기를 효율적으로 사용할 수 있다.

'심플페어링'과 '멀티포인트'는 블루투스 기기를 일반 가전제품처럼 사용할 수 있게 해준다. 휴대폰을 통화를 하면서 PC와 연결해 데이터를 주고 받거나 프린터와 연결해 카메라폰으로 촬영한 사진을 출력할 수 있다.

◆UWB와 만난 블루투스, 세상 모든 디지털 기기의 무선화1Mbps 정도의 느린 속도는 블루투스가 헤드셋 이외의 데이터 송수신에 사용되기에 부적합하다. HD급 이상의 영상정보나 돌비디지털5.1채널 이상의 멀티채널 오디오에 이용되려면 현재 블루투스가 갖고 있는 프로파일로는 구현이 불가능하기 때문이다.

구분 블루투스 UWB 지그비(Zigbee)
전송거리 10m 이내 10m 이내 70m 이내
전송속도 1Mbps 200Mbps 260Kbps
블루투스SIG는 블루투스3.0 버전에 UWB 기술을 도입하기로 결정했다. UWB는 블루투스와 달리 대용량 데이터 교환을 위해 만들어진 기술이다. 200Mbps 정도의 속도를 갖고 있는 UWB는 빠른 전송속도로 인해 홈네트워킹의 핵심 기술로 여겨지고 있다.

홈게이트웨이는 물론이고 DVD, 셋톱박스 등의 고화질 영상을 HD급 TV로 무선으로 전송하거나 홈시어터의 다채널 오디오 역시 UWB를 통해 무선으로 전송해준다. 거실에 지저분하게 얽혀 있는 TV나 오디오의 케이블들이 모두 사라질 수 있는 것이다.

PC와 휴대폰, MP3, PMP 역시 UWB 기술을 이용하면 대용량의 멀티미디어데이터를 순식간에 주고 받을 수 있다. 휴대폰에 촬영된 사진이나 동영상을 PC나 PMP로 전송하고 PC에 다운로드 받아 놓은 수백메가에 달하는 영화 한편을 휴대폰으로 간단하게 옮길 수 있다.

블루투스3.0에 포함될 UWB는 UWB만의 기본 기능을 모두 가진 채, 블루투스 하위버전을 지원하는 모든 주변기기와 호환이 가능하다. 지금까지 전 세계에 보급된 블루투스 주변기기는 무려 5억대에 달한다. 이들 기기와 모두 호환되는 것은 물론이고 UWB 규격을 가진 모든 디지털 기기와 연결이 가능해 차세대 근거리 네트워킹 시장을 주도할 것으로 예상되고 있다.

국내의 한 UWB 관련 업체 관계자는 "블루투스3.0에 UWB가 추가되면서 근거리 네트워킹 시장은 블루투스3.0과 UWB가 주도하게 될 것"이라며 "TV, 오디오부터 시작해 거의 모든 디지털 기기에 활용 가능한 것이 특징이며 삼성전자가 곧 UWB폰을 선보일 예정"이라고 밝혔다.

/명진규기자 almach@inews24.comIT는 아이뉴스24, 연예스포츠는 조이뉴스24(Copyright ⓒ 아이뉴스24. 무단전재 및 재배포 금지)
허니몬의 IT 이야기

한국형 유비쿼터스 공격경영 깃발 내손으로

[IT서비스 빅3 신사업 청사진 들여다보니…]

삼성 SDS -新성장 EO사업 추진…2010년 세계톱10 도전

LG CNSU- 시티ㆍRFID등 주력…U-시대 넘버원 목표

SK c&c- PMP 허브 삼아'디지털 컨버전스'주도 야심

국내 주요 IT서비스 업체들은 기존 사업강화와 함께 U-시티, 무선인식 (RFID), 지능형교통시스템(ITS) 등 유비쿼터스형 사업 육성을 골자로 한 공격 경영에 박차를 가하고 있다. 이를 통해 한국형 유비쿼터스 시대 실현에 앞장서고 있는 것이다.

선택과 집중, 신ㆍ구사업 균형 발전, 디지털 컨버전스 등이 IT서비스업체들의 주요 경영 키워드인 셈이다. 특히 삼성SDS, LGCNS, SK C&C 등 국내 대표업체들은 IT산업 및 글로벌 경쟁력 강화를 위해 IT 신성장동력 기술개발에 본격 나서 주목된다.

▶삼성SDS, 2010년 세계 10대 IT서비스회사로 도약= 삼성SDS는 u시티ㆍRFIDㆍEO(엔지니어링 아웃소싱) 분야를 신성장동력 사업으로 삼고 있다. 삼성SDS는 이를 통해 2010년까지 세계 10대 IT 서비스 회사로 도약한다는 목표을 세워, 신사업 분야가 회사 매출의 절반 이상을 차지하고, 기존 SI사업 등은 '글로벌 명품'으로 일류화한다는 야심찬 계획을 세워놓고 있다.

특히 u시티 분야는 삼성SDS가 기대를 거는 또 다른 '블루오션'. '21C 도시 IT서비스 태스크포스'를 만들어 u시티에서 각종 기술을 통합 조정하는 통합운영센터 연구에 주력하고 있다. 이곳에서는 통합운영센터 핵심 기능인 센터 시설물과 시스템, 네트워크를 효율적으로 제어하는 솔루션을 만든다. 도시설계 단계 때부터 첨단 정보통신 인프라를 구축, 종합 IT서비스를 제공한다는 것이다.

최근 삼성SDS는 11개 관계사로 구성된 '삼성 U-city위원회'의 주관사로 나서는 등 적극적으로 사업을 진행하고 있다. 특히 내부 조직의 질적인 향상을 위해△선도역량 △기술역량 △개발역량 △관리역량 △혁신역량 등 5대 역량을 강화, 회사의 성장동력을 확보하고 양적으로는 IT 아웃소싱ㆍ시스템통합 등 기존 사업을 더욱 심화 발전시킬 방침이다.

한편 삼성SDS는 지난해부터 미래 신성장 사업으로 추진해온 엔지니어링아웃소싱(EO) 사업을 가시화하기 위한 조직개편을 단행하는 등 적극 행보하고 있다.삼성전자를 대상으로 EO사업을 전담하는 전자EO개발지원단을 신설, 인큐베이팅 단계였던 EO 전략이 본격적인 사업화 단계로 발전할 것임을 시사했다.

▶LG CNS, 유비쿼터스 시대의 일등=LG CNS는 단기적인 사업 성과와 함께 지속 가능한 성장성을 갖출 수 있도록 새로운 비즈니스 모델을 발굴하고 있다. 이는 '유비쿼터스 시대의 일등 LG CNS'라는 중장기 목표를 실현하기 위한 행보의 일환이다.

지난 4월에 LG CNS는 신성장 동력 사업을 체계적으로 추진할 수 있도록 U-City 사업팀, RFID/USN 사업팀, u-컨버전스 사업팀, 해외사업팀 등으로 이루어진 '미래전략사업부문'을 신설했다. 이 조직은 U-시티, RFID/USN, 스마트카드 등의 신기술을 고객의 비즈니스 모델에 적용해 새로운 가치가 창출될 수 있도록 돕는 대규모 '복합 선제안형 신사업'을 적극 발굴할 계획이다.

특히 유비쿼터스 시장 중 가까운 미래에 급성장할 것으로 예상되는 U-시티와 RFID/USN 분야를 위한 사업 준비는 그 중 가장 활발하다. 유비쿼터스 시장 공략을 위해 LG CNS를 중심으로 LG/GS/LS 10개 회사가 구성한 'LG 유비쿼터스 포럼'은 이 두 가지 사업 분야의 협력을 공식적으로 선언했다. U-시티 사업 추진을 위해 △LG 7개 계열사는 유비쿼터스 서비스 솔루션 개발, IT 인프라 구축, 이동통신 및 기간통신 서비스 개발 △GS는 도시 건설 및 개발 △LS 2개 계열사는 광통신 및 전력 인프라 구축 등을 각각 담당하기로 했다.

또 RFID/USN 분야의 사업을 위해 △LG 7개 계열사는 센서 네트워크 연동기술 개발, 모바일 RFID 리더 모듈 개발 및 센서간 무선 통신 기술 개발 등을 △GS는 RFID/USN 기술 적용 대상 분야 개발 △LS 2개 계열사는 관련 RF모듈 및 RFID 태그/리더 개발 등을 담당키로 합의했다.

LG/GS/LS 계열사들의 유비쿼터스 기술과 역량을 결집해 실용적인 기술과 솔루션을 개발하고 이를 통해 미래 유비쿼터스 사업 영역에서 시장을 선도할 계획이다. 이 밖에도 또 다른 블루오션인 U-헬스케어 , 임베디드 소프트웨어(S/W)사업, 엔지니어링 IT 서비스, 유틸리티 컴퓨팅, IT 아웃소싱, 해외 시장 개척을 위한 노력도 함께 기울이고 있다.

▶SK C&C, 디지털 컨버전스 주도=SK C&C는 신사업의 무게중심을 '디지털 컨버전스'에 놓고 있다. 미래 핵심기술로 평가받고 있는 유비쿼터스의 변화를 주도하기 위해 디지털멀티미디어방송(DMB) 기능을 탑재한 휴대형멀티미디어플레이어(PMP) 등 디바이스(Device)분야와 함께 애니메이션, 게임퍼블리싱 등 콘텐츠 분야까지 디지털 컨버전스 관련 사업을 확대해 나가고 있다.

PMP는 SK C&C가 일반고객에게 자체 브랜드를 직접 선보이는 최초의 B2C 사업으로, SK C&C는 제품명으로 회사이름과 동일한 '씨앤씨(⊂&⊃)'를 채택해 PMP 제품에 대한 자신감을 드러냈다. 그동안 축적한 통신 및 어플리케이션 기술개발 역량을 발휘, PMP를 향후 HSDPA 등 새로운 통신 및 솔루션과 콘텐츠의 결합을 통해 유비쿼터스 서비스 허브(Ubiquitous Service Hub)로 키워 나간다는 목표다. 이와 함께 애니메이션 및 게임퍼블리싱 등 디지털 콘텐츠 분야, RFID와 LBS, 텔레매틱스, 홈네트웍, 임베디드 소프트웨어 등 디지털 솔루션 분야를 중심으로 한 디지털 컨버전스 및 유비쿼터스 영역의 사업도 적극 추진한다. SK C&C는 애니메이션 전문 자회사인 인디펜던스를 통해 다양한 애니메이션 작품을 선보이고 있다.

특히 인디펜던스의 4차원(4D) 입체 애니메이션인 '트리로보'가 국내 업체로는 최초로 BAF(Bradford Animation Festival) 2005에서 대상인 그랑프리를 수상했다. 12번째를 맞는 BAF2005는유럽 최고의 애니메이션 페스티발 중 하나이다. '트리로보'는 자연을 지배와 착취의 대상이 아닌 인류가 함께하는 공존과 공생의 대상으로 바라봐야 한다는 메시지를 담은 4D 입체 애니메이션이다. SK C&C는 인디펜던스와 함께 앞으로도 한국적인 정서를 담은 콘텐츠 및 첨단 기술의 결합을 통해 세계 최고 수준의 애니메이션을 지속적으로 만들어 나갈 계획이다.

허니몬의 IT 이야기

‘한여름’ 고용시장 체감은 ‘한겨울’


(::‘직업이 취업준비생’ 51만…일자리 줄고 경쟁은 치열::)

직업이 ‘취업준비’인 사람, 놀고 먹는 ‘니트족(NEET)족’, 취업 포기한 ‘구직단념자’…. 일은 하지 않는데 실업자로 잡히지 않는 ‘비경제활동인구’가 눈덩이처럼 불어나고 있다. 올 상반기(1~6월) 기준으로 역대 최고수준이다. 실업률이나 고용률 등 겉으로 드러난 지표만 보면 고용사정은 큰 문제 없는 듯이 보이지만 이같은 비노동인구가 크게 늘어나면서 체감 고용사정은 여 전히 ‘한겨울’이다.

◆직업이 ‘노는 사람들’ ‘고시준비생들’ = 집 근처 보습학원에서 학원강사를 하던 오모(여·29·서울 양천구 목동)씨는 2개 월 만에 학원을 그만두고 지금은 그냥 놀고 있다. 학원에선 그럭저럭 잘나가는(?) 선생이었지만 별 보람도 없고 벌이도 생각보다 시원찮았기 때문이다. 그녀는 지난해까지만 해도 중·고교 교사를 하기 위해 임용고시를 준비해 왔다. 하지만 지난 겨울 또다시 낙방한 후 이젠 더 이상 공부할 마음이 없다. 그렇다고 큰 걱정은 없다. 그녀는 은행 지점장까지 지낸 아버지 덕에 요즘 헬스클럽과 집을 오가며 시간을 보내고 있다.

서울 모대학 정치외교학과를 졸업한 이모(34·서울 관악구 신림 동)씨는 직업이 고시준비생이다. 대학교 4학년때부터 행정고시를 준비하던 그는 졸업하던 해에 운좋게(?) 1차시험에 합격했다. 그러나 2차에서 연거푸 고배를 마셨다. 몇년 전부터는 전략적으 로 사법시험으로 전환했지만 그마저도 실패했다. 마땅히 갈만한 직장이 없어진 지금 그는 선배의 권유에 따라 공인중개사 시험준비를 할까 고심중이다.

◆비경제활동인구 역대 최고수준 = 15일 통계청에 따르면 올 상 반기 현재 실업률은 3.65%. 지표상으로는 고용사정이 괜찮은 편 이다. 그러나 피부로 느끼는 체감 고용사정은 지표와는 영 딴판 이다. 오씨나 이씨처럼 비경제활동인구로 분류되는 사람들이 지 속적으로 늘고 있기 때문이다. 비경제활동인구란 15세 이상 노동을할 수 있는 인구중 취업자나 실업자를 제외한 나머지 사람들이다. 올 상반기 기준으로 모두 1480만3050명으로 역대 최고수준이다. 물론 다 그럴 만한 이유가 있다. 육아(154만명)나 가사(527만 명) 때문에, 학교에 다니는 학생 혹은 재수생(370만명)이거나, 나이가 너무 들어 연로(153만명)하거나 심신장애(47만명)일 경우모두 비경제활동인구로 분류된다.

하지막 막연히 ‘노는 사람’들이 의외로 많다. 모두 129만8900 명으로 비경제활동인구의 8.8%, 15세이상 노동가능인구의 3.4%에 이른다. 직업이 ‘취업준비’인 사람들도 51만9400명이다. 독서실이나 집에서 혼자 공부하는 사람이 28만7650명, 고시학원이나 직업훈련기관 등에 다니면서 공부하는 사람이 23만1750명이다.

괜찮은 일자리는 점차 줄어들고 취업경쟁은 갈수록 치열해지면서 올 상반기 들어 이들 취업준비생도 역대 최고수준에 달했다. 이들은 모두 지금 당장 일할 의사가 없다는 점에서 통계상 실업자 가 아니다.

◆니트족 100만명 육박(?) = 특이한 점은 비경제활동인구의 상당수가 니트(NEET:Not in Education, Employment or Training)족 ’이라는 점이다. 니트족은 일하거나 취업준비를 하지 않는 15~34세의 배우자 없는 청년들이다.(노동연구원 규정) 노동연구원은 통계분류상 막연히 노는 사람들이나 취업준비생의 60%를 니트족 으로 보고 있다. 이 때문에 90년대 중반만 해도 20만~30만명, 2004년엔 80만명이었던 니트족은 2006년엔 100만명에 육박할 것으로 분석되고 있다.

전문가들은 니트족들의 경우 개인적으로는 우울증 심화, 사회적 소외, 경제 전체적으로는 노동력을 약화시키며 성장잠재력을 떨 어뜨릴 수 있다고 우려한다. 남재량 노동연구원 연구위원은 “아무일도 하지 않고 니트상태로 1년이상 머물면 은둔형 외톨이로 전락하는 등 사회적·경제적으로 심각한 상태에 빠질 가능성이 크다”고 말했다.
허니몬의 IT 이야기

출처 : [한빛미디어] 2006-07-10 10:37

저자: Ed Burnette, 한동훈 역

가리발디: 이것들을 시도해 본 적 있어?
미스 크레이머: 그게 뭔데?
가리발디: 나도 몰라. 번역기에 따르면, 이건 성욕을 일으키는 것이거나 바닥 왁스야. 해볼만한 가치가 있는지는 모르겠어.
- 바빌론 5, "감염"

역주: 여성들에게 성욕을 유발시키는지 테스트 하기 위해 윗입술에 향을 발라주면서 하는 거짓말로 가장 흔한 것이 "새로운 바닥 왁스의 향을 시험하는 것"이라고 하는 데서 기인한 표현인 듯.

이클립스(Eclipse)는 자바 프로그래밍을 위한 인기있는 통합 개발 도구(IDE)이며, 데스크톱이나 서버 응용프로그램을 개발하기 위한 풍부한 기능을 제공하는 클라이언트 플랫폼으로, 다양한 툴들을 통합하는 프레임워크로서 C++이나 루비(Ruby) 같은 다양한 언어들을 위한 개발 환경으로도 사용된다. 이클립스 오픈소스 커뮤니티는 비즈니스 인텔리전스(BI)에서 소셜 네트워킹에 이르기까지 수십개의 프로젝트를 책임지고 있다. 또한, 이클립스는 이들 프로젝트를 관리하는 비영리 단체의 이름이기도 하다.(이게 바닥 왁스가 아니라고 확신하고 있지만, 이클립스 자동차, 축구 팀, 껌의 브랜드이다)

역주: 2006년에 미츠비시에서 새로운 승용차 브랜드, 이클립스를 내놓았다. 이클립스 축구 클럽이 있으며, 물론, 이클립스 껌도 있다.

이클립스 버전 3.2는2006년 6월 30일에 연이어 발표되는 10개의 이클립스 프로젝트의 첫번째에 해당한다. 이 기사는 이클립스 IDE에 중점을 두며, 특히 JDT(Java Development Tools)에 대해 설명한다.

JDT 만들기

JDT의 계보는 1996년 경에 스몰톡(Smalltalk)으로 작성된 비주얼 에이지 포 자바(VAJ)로 거슬러 올라간다. VAJ에서는 입력하는 대로 모든 것이 컴파일되고, 메모리에서 모든 것이 해석된다. 이러한 설계는 긴 코드에 적합하지 못하며, 확장하기 어려우며, 파일 정보를 재생성하는 것이 어려웠다.

1999년에 IDE 팀은 비주얼 에이지 마이크로 에디션(VAME)을 개발하기 시작했다. 모든 게 자바로 작성되었으며, 사용자 인터페이스에는 표준 위짓 툴킷(SWT)를 사용했다. VAME는 임베디드 영역을 위해 설계되었다. VAME는 표준 자바 VM을 사용했고, 파일 시스템에 작업공간(workspace)를 유지했다. 그러나, 파일과 폴더 이름은 읽기 나쁜 UUID로 되어 있었다.

VAME의 점진 컴파일러(incremental compiler)는 VAJ 보다 약 10배 정도 더 빨랐다. 여기서 사용된 모델은 상태 기반으로 구축되었다.(소스 기반으로 되어 있는 이클립스와는 반대다) VAME는 플러그인을 사용해서 확장할 수 있는 Rapier라는 저장소 시스템(repository system)을 갖고 있었다.

VAME는 커뮤니티에서 그리 많은 이목을 끌지 못했지만, 개발자들이 다음 프로젝트 즉, 이클립스에 심어놓을 좋은 아이디어를 많이 갖고 있었다. 2001년에 이클립스 1.0이 발표되었다. 이클립스 1.0은 "안되는 게 없는 IDE"로 소개되었다. 초기부터 이클립스와 JDT는 다른 개발 툴을 위한 플랫폼으로 구축되었다.

작업공간(workspace)는 디스크에 저장되었고, 다른 툴에서 열 수 있다. 이클립스 1.0은 독점적인 작업 공간을 사용하는 대신 CVS와 통합되어 있다.

이클립스는 이전 세대와 중요한 차이점 즉, 오픈소스다. 사용자 커뮤니티는 폭발적으로 증가했으며, 스스로 성장할 수 있게 되었다. 이클립스 3.2에서 새로운 기능이나 향상된 기능들의 대부분은 이클립스 사용자들이 채워넣은 개선들의 직접적인 결과물이다. 3.1이후로 3만개 이상의 수정 사항과 개선 사항들이 있었다. 이를 나열하는 것은 지나치게 길기도 하고, 지루하기도 하므로, 대부분의 자바 개발자들에게 중요한 몇 가지만 중점적으로 살펴보기로 하자.

이클립스 컴파일러

JDT의 가장 강력한 기능은 javac와 완벽하게 호환되는 내장형 점진 자바 컴파일러다. 이클립스에서 Ant와 javac를 사용하게 설정한 경우에도 IDE에서 문제에 대한 표식(problem marker)를 표시할 수 있다.(3.2의 새로운 기능). 이클립스 컴파일러는 보다 나은 소스 분석과 보다 빠른 처리 시간을 제공한다.

JDT 컴파일러는 본래 VAME를 위해 쓰여졌으며, 이클립스를 위해 수정되었다. 이는 개발자들이 로봇공학에 대한 아시모프의 3원칙 이후로 패턴처럼 된 "컴파일의 3원칙"으로 부르는 것을 토대로 구축되었다.

  1. 정확성(Correctness): 컴파일러는 소스 프로그램에 위해를 가하지 않아야 한다
  2. 효율성(Efficiency): 첫번째 법칙을 위배하지 않는 한 컴파일러는 빨라야 한다.
  3. 편의성(Friendliness): 컴파일러는 첫번째와 두번째 법칙을 위배하지 않는 한 사용자가 프로그래밍 오류를 수정하는 것을 도와야 한다.
역주: "로봇", "파운데이션" 같은 장편외에 영화 "바이센테니얼맨"의 원작인 "200살을 맞은 사나이" 등으로 잘 알려진 과학자이자 다작의 문필가였던 아이작 아시모프가 1940년에 만든 로봇 3원칙(The Laws of Robotics)은 이후 로봇 공학자들에게 있어 로봇의 기본 원칙으로 자리 잡았다. 1985년에는 0원칙이 추가된 "수정된 로봇 3원칙"이 발표되었습니다.

로봇 3원칙 (The Laws of Robotics)

제1원칙 (First Law): 로봇은 인간에게 해를 끼쳐서는 안되며, 위험에 처해있는 인간을 방관해서도 안된다.

제2원칙 (Second Law): 제1원칙에 위배되지 않는 경우 로봇은 인간의 명령에 반드시 복종해야만 한다.

제3원칙 (Third Law) : 제1원칙, 제2원칙에 위배되지 않는 경우 로봇은 자기 자신을 보호해야만 한다.

정확성: 자바 컴파일러를 설계할 때는 스펙을 따라야 하며, 스펙의 "정신"도 따라야 한다. 홀로 올바른 것(right alone)이 되어서는 안된다. 따라서, JDT 개발자들은 Sun의 컴파일러를 비롯해서 다른 컴파일러들의 동작 방식과 합의를 이루기 위해 수년간 작업해왔다. 정확성은 이클립스 3.2에서 15,000개 이상의 단위 테스트를 통해 검사되었다.

효율성: 수천개의 프로젝트와 수백만 줄의 코드를 표준으로 하였다. 이와 같은 표준은 수 많은 가정을 내제하고 있는 것이다. 예를 들어, 메모리 사용량은 예측 가능해야하며, 균형을 이뤄야 한다. 이클립스 3.2는 적극적인 최적화를 통해 이를 최대한 다듬어왔다. 예를 들어, 개발자들은 비트 연산을 사용해서 플로우 그래프(flow graph)를 재작성했으며, 전체 시간을 20%에서 4%로 낮췄다.

편의성: 오류 보고는 예술이다. 줄 번호로는 충분하지 않다. 2차 오류는 최소화되었다. 예를 들어, 어떤 파일에서 세미콜론(;)을 잊었다면, 이 파일에 의존하는 다른 파일에 영향을 주지 않는다. 향상된 정적 분석은 오류들의 패턴을 발견한다. 이클립스는 또한 정확성을 위해 Javadoc을 검사한다.

3.2 발표로 이클립스 컴파일러는 Java SE 6.0과 호환이 가능하다. 이클립스는 자바 6 카테고리를 지원하며, 자바6가 발표되지도 않았는데도 StackMapTable 특성을 지원한다. 뿐만 아니라, 컴파일러는 실행해보기도 전에 코드에 있는 문제들을 발견하는 것을 도와주는 새로운 분석 도구들을 갖고 있다. VAJ는 세가지 분석도구를 갖고 있었으며, 3.2 컴파일러는 45가지 분석도구를 갖고 있다. 이들 중에 새로운 것은 탐지와 관련된 것이다.
  1. 명백히 null인 변수의 사용
  2. null에 대한 불필요한 검사
  3. 메서드 매개변수에 우발적인 할당
  4. switch case가 이전 case로 부터 실행되는 경우
  5. 비제네릭 형식 사용
  6. 사용하지 않는 레이블
  7. 불필요한 $NON-NLS$ 태그
이들 대부분은 사용하지 않음이 기본 설정이다. 또, @SuppressWarnings 어노테이션을 사용해서 이런 기능을 사용하지 않을 수 있다.

이클립스 없이 이클립스 컴파일러를 사용하고 싶다면, 3.2에서는 개별 다운로드를 이용하면 된다. 명령줄 매개변수는 javac와 호환되며, 1M 정도만 다운로드하면 된다. 이클립스 컴파일러는 오픈 소스이며, 아파치 톰캣이나 그외 함께 번들된 소프트웨어를 포함한 많은 프로젝트들도 오픈 소스이다.

편집

개발 도구의 가장 기본적인 기능은 편집이다. 대부분의 시간을 편집기에서 보내며, 편집기는 편해야 하며, 불편해서는 안되며, 또한 강력해야 한다. 이맥스에서 소스 언어에 대한 기본적인 지식을 갖고 있으며, 구문 강조 기능을 제공한 이래로 모든 편집기가 갖고 있는 기능을 갖고 있다. JDT는 자바 모델을 사용해서 이 문제를 해결한다. 예를 들어, JDT는 클래스와 인스턴스 변수의 차이점을 알고 있으며, 이들을 다른 색상으로 구별할 수 있다. 호출하는 함수가 폐기된 함수(obsolete 또는 deprecated)이면 소스 코드 코멘트에서 이를 알려줄 수 있으며, 살펴볼 코드 부분을 밑줄과 함께 강조해준다.

자바 편집기의 가장 강력한 기능은 Ctrl + Space(콘텐트 보조)다. 객체의 메서드가 기억나지 않거나, 클래스의 정확한 철자를 모를 때가 있지 않은가? Ctrl + Space를 누르면 이클립스는 현재 위치에서 사용할 수 있는 모든 목록을 제공한다. 예를 들어, "LongJavaName"과 같은 긴 이름을 가진 식별자를 입력한 경우는 없는가? 이제, "LJN"으로 입력하고 Ctrl + Space를 누르면 이클립스는 무것을 의미하는지 알 수 있다. 이를 "낙타표기법 완성(CamelCase completion)"이라 부른다. 이는 Ctrl + Shift + T, 형식 검색에도 동작한다.

"StringBuffer buffer = new StringBuffer();"와 같은 표현들을 입력한 적이 있는가? 이제, 스스로 이를 반복하지 마라. 3.2에서는 대신에 "SB"를 입력하고 Ctrl + Space, Space, Ctrl + Space, " = new", Ctrl + Space, "();"를 입력하면 된다. 16번의 키 입력으로 47번의 키 입력을 대신할 수 있다. 변수 이름에 다른 접두어를 사용하고 싶은가? 문제 없다. 두번째 Ctrl - Space를 누르기 전에 원하는 접두어를 입력하면 된다. 예를 들어, 3.2에서는 "Element root" + Ctrl + Space는 그림1과 같이 "Element rootElement"로 완성된다.

그림1
그림1. 콘텐트 보조(Ctrl + Space)는 3.2에서 더욱 똑똑해졌다. 낙타표기법 완성을 지원하며, 이미 입력한 문자들을 기억한다.

여기, 또 다른 시간 절약이 있다. 3.2에서 Ctrl + Space는 사용 패턴에 기초해서 제안 항목을 동적으로 재배열한다. 예를 들어, 항상 List 변수에 ArrayList 인스턴스를 할당한다면, 재빨리 이 항목을 선택할 수 있도록 ArrayList가 목록의 첫번째에 위치한다. 코드 완성은 JavaDocs에서도 동작하며, 긴 이름들을 기억하지 않아도 @links를 생성하거나 참조할 수 있다.

"이 줄에 문제가 있다는 것을 IDE가 스스로 알만큼 영리하다면 왜 그걸 수정하지 않는 걸까?"라고 질문해본 적은 없는가? 이클립스는 Quick Fix라는 기능이 있다. 문제가 있는 줄에 커서를 옮겨놓고 Ctrl + 1을 누르면 이클립스는 이를 수정하기 위한 제안을 제공한다.

이클립스의 새로운 릴리스는 새로운 Quick Fix를 제공한다. 예를 들어, 3.2에서는 raw 형식을 사용할 때 경고를 받았다면, 해당 줄에 커서를 위치하고 Ctrl + 1을 누르면 "Add type parameters"와 같은 fix가 선택된다. 또한 3.2에서 Quick Fix는 같은 파일에서 많이 발생한 공통된 문제들을 개별적으로 다루지 않고, 한 번에 처리할 수 있다.

추천하고 싶은 한 가지 기능은 "타입 이름 변경(Rename Type)"이다. 여러분이 나와 같은 개발자라면, 변수나 메서드를 타입 이름에 맞게 지어줄 것이다. 예를 들어, Bar 타입을 갖고 있다면, 변수 이름은 fBar, 메서드는 CreateBar처럼 지을 것이다.(그림2) 문제는 Bar를 다른 이름으로 변경할 때, 바꿔야할 것들이 너무나 많다는 점이다. 3.2에서는 변경하려는 타입과 유사한 이름을 가진 변수, 메서드 변경 기능을 제공한다. 이 기능은 3.2에서 내가 좋아하는 기능이다.

그림2
그림2. 이클립스 3.2는 타입 이름을 변경할 때, 비슷한 이름을 가진 변수 및 메서드 이름 변경을 제공한다.

실행

일부 IDE에서는 "주 프로젝트(main project)"를 하나 설정해야 하며, 프로그램을 실행하기 위해 실행 명령(Run command)를 사용한다. 이클립스는 이런식으로 동작하지 않는다. 이클립스에서는 명령줄 매개변수, 클래스 경로, JRE 버전과 같이 코드를 디버깅하거나 테스트하거나, 실행하는 데 필요한 모든 세부 사항들을 저장한 "시작 설정파일(Launch configurations)"들의 목록을 갖고 있다. 이클립스 3.2에서는 필터링 사용과 실행 환경을 통해 시작 설정 파일을 보다 쉽게 관리할 수 있다.

필터링은 관심있는 항목들만 목록에 나타내기 때문에 설정에 드는 수고를 줄일 수 있다. 실행 환경은 "J2SE-1.4" 같은 일반적인 이름을 사용하는 자바 런타임의 사용 가능성을 기술한다. 이클립스는 지정한 환경의 요구사항에 맞거나 그 보다 더 나은 환경을 제공하는 JRE를 선택할 수 있다.

개발동안 하나 이상의 테스트 슈트를 실행하고 있는가? 3.2에서는 동시에 실행할 수 있는 슈트를 여러 개 지정할 수 있으며, 이전 실행의 히스토리를 이용해서 이전 실행 결과를 살펴볼 수 있다. 이클립스 3.2는 JUnit 4.0도 지원한다.

팀으로 작업하기

코드 작성을 하면서 누가, 왜 여기에 이런 코드를 넣었는가 궁금해본 적이 있는가? 이클립스 3.2는 CVS 히스토리를 읽어들여서 현재 파일에 누가 무엇을 했는지, 적절한 색상을 이용한 주석을 보여준다(그림3) 변경된 블록 위에 마우스를 가져가면, 변경사항에 대한 개발자 이름, 날짜, 코멘트를 보여준다. 또한, 다른 파일들에서도 같은 개정번호로 되어있는 변경된 부분들을 강조해준다.

그림3
그림3. CVS Quick Diff 주석은 파일에 대해 누가 무엇을 했는지 주석으로 보여준다. 영역 위로 마우스를 가져가면 개정 사항에 대한 세부 내용을 보여준다.

여러분이 다른 사람의 코드를 호출해서 사용하고 있으며, 새로운 버전이 나오기 전까지 모든 것이 잘 동작한다. 그리고 나면, 호출하는 코드에 맞춰 내가 작성한 프로그램을 수정할 때 까지 해당 코드가 폐기되었다는 경고, 심지어는 컴파일러 오류까지 나타난다. 나는 여러분이 이런 경험이 있을 거라 믿는다. 이클립스 3.2는 이런 문제를 줄여주기 위해 "리팩토링 스크립트"라는 기능을 제공한다.

물론, 리팩토링은 동작을 변경하지 않으면서 소스 코드에 변화를 가하는 것을 의미한다. 예를 들어, 철자가 틀린 필드, 새로운 매개변수가 추가된 메서드등이 있을 수 있다. 이클립스는 여러분이 변경된 코드의 개발자인 경우 이런 변경사항을 자동화하는 기능을 지원한다. 이는 변경된 코드를 사용하는 고객들에게도 유용하다.
모든 리팩토링 동작은 히스토리에 기록된다. 이클립스 3.2에서는 이런 히스토리를 스크립트로 작성할 수 있고, 이를 나중에 재생할 수 있다. CVS에 스크립트를 저장할 수 있고, JAR 파일을 사용하는 사용자는 새로운 버전을 사용할 때 동일한 변경을 재생할 수 있도록 JAR 파일 안에 포함시킬 수도 있다. 이는 patch나 diff를 적용하는 것과는 다르다. 패치는 그들이 생성한 특정 소스 파일에 대해서만 동작한다. 리팩토링 스크립트는 리팩토링한 API를 사용하는 모든 소스 파일에 대해서 동작한다.

다른 사람들이 사용하는 API를 유지보수하는 것은 어려운 작업이며, 이제 이클립스가 이런 작업을 쉽게 해줄 수 있다. 메서드 이름을 변경할 때 이클립스 3.2는 이전 메서드를 그대로 남겨둘 것인지, 폐기된(deprecated)으로 표시할지, 새로운 메서드 호출로 돌려놓을 것인지를 물을 수 있으며, 이 메서드를 호출하는 모든 호출자에 이런 변경사항을 자동으로 적용하는 리팩토링 스크립트를 만들지를 묻는다.

코드 위생

이클립스는 전체 팀에서 코딩 표준(code formatting standards)를 적용하게 해주는 매우 강력한 코드 포매터가 오랜기간 사용되었다. 버전 3.2는 새로운 Clean Up 마법사를 두어 이를 더욱 발전시켰다.(그림4)마법사가 할 수 있는 작업들에는 다음과 같은 것이 있다.
  1. 사용되지 않는 import 제거
  2. 사용하지 않는 private 메서드, 생성자 제거
  3. 누락된 @Override, @Deprecated 주석 추가
  4. 누락된 $NON-NLS$ 추가 또는 불필요한 경우 제거
  5. 모든 for 루프를 향상된for 루프로 변환
  6. 제어 문의 본문을 블록으로 변환
  7. 불필요한 캐스트 제거
  8. Serializable과 Externalizable 클래스에 시리얼 버전 ID 추가
Clean Up 마법사는 자바 파일 하나, 패키지, 전체 프로젝트에 대해서 실행할 수 있다

그림4
그림4. Clean Up 마법사는 전체 프로젝트에서 일관된 코딩 표준을 지키도록 해준다.

결론

자바 프로그래머는 다른 언어나 플랫폼 보다 더 폭넓은 개발환경 선택권을 갖고 있다. 내가 단언할 수는 없지만, 이클립스는 마이크로소프트와 같은 단일 회사가 할 수 없는 부분을 사용자의 열정과 정력이 만들어낸 결과다. 이유가 무엇이든, 이클립스는 NetBeans, IDEA, JDeveloper, JBuilder를 포함한 다른 개발환경과 경쟁하고 있다. 3.2 발표와 함께 이클립스는 Java IDE의 경계를 한 단계 더 나아갔으며, 이는 여러분이 어떤 도구를 선택하든 간에, 모든 자바 개발자에게 유익한 일이 될 것이다.

참고자료
  1. Eclipse home page
  2. Callisto home page
  3. JDT home page
  4. Author's blog
Ed Burnette는 노스 캐롤라이나 주, 캐리(Cary)에 살고 있는 전문 개발자이자 저자이다.
1 ··· 75 76 77 78 79 80
블로그 이미지

Email : ihoneymon@gmail.com 안녕하세요, 꿀괴물 입니다. ^^ 멋진 비행을 준비 하는 블로그 입니다. 만능형 인간이 되어 많은 이들에게 인정받고, 즐겁고 행복하게 살기를 간절히 원합니다!! 달콤살벌한 꿀괴물의 좌충우돌 파란만장한 여정을 지켜봐주세요!! ^^

허니몬