UCS와 UTF 계열의 특징 및 차이 요약
- UCS는 character set임. 즉 UCS2, UCS4에 맞는 글자 set들이 있다(2byte, 4byte). 대부분의 현대어(Basic M Plane)들은 UCS2 로 cover됨. 아주 특수한 애들(즉, BMP를 벗어나는)만 UCS4로 처리
- UTF는 encoding 방식. 즉 UCS방식과 무관함. 그러므로 UCS2, UCS4를 UTF8로도, UTF16으로도 UTF32로도 encoding 할 수 있음. 단, UCS2은 UTF16과 둘다 2 byte이므로 거의 유사할 수 밖에 없음. 즉 특별한 encoding이 필요없음. 그래서 많은 프로그램에서 UCS2와 UTF16을 혼용, 혼동함.
- UTF8의 result는 가변길이임(1Byte ~ 4Byte). 첫 바이트의 상위 비트들이 그 문자를 표시하는 데 필요한 바이트 수를 결정한다. 예를 들어서 2바이트는 110으로 시작하고, 3바이트는 1110으로 시작한다. 4byte는 BMP를 벗어난다. UTF8 인코딩은 http://kldp.org/~bangjy/hangul/ 에서 살펴보실 수 있으며 영어 데이타는 1byte, latin어는 두바이트, 그외 UCS2에 포함되는 문자는 세바이트를 사용합니다. UTF16 인코딩은 2바이트 또는 4바이트로 구성.
특징
* data만을 보고 type을 알아내는 것은 거의 불가능. notepad등의 편집기등에서는 읽어서 추측하는 것임. 원칙적으로는 type을 같이 줘야함.
* UTF8은 string terminator가 '\0'이라서 ASCII 비슷하며 호환성을 가짐. UTF16, UTF32는 string terminator가 그렇지 않음. UCS2, UCS4도 null terminating이 되지 않아 단지 이 이유때문에 encoding을 함. (실제로 업계에서 많이 이러고 있음).
- 완성형 저장하기 : 완성->UCS2->UTF8
* 왜 그냥 UTF8을 사용하지 UTF16이나 UTF32를 쓰나?
- UTF16이나 UTF32가 UTF8보다 더 길이가 짧은 경우도 있음 (한글)
* 왜 ascii를 안쓰고 UTF를 사용하나?
- Application이 언어set에 independent해질 수 있도록.
|
Friday, October 4, 2013
UCS2, UCS4, UTF8, UTF16, UTF32
Friday, August 9, 2013
Eclipse 단축키 모음
Eclipse 단축키 모음
ctrl + s: 저장 및 컴파일
ctrl + i: 소스 깔끔 정리(인덴트 중심의 자동구문정리)
ctrl + space : 어휘의 자동완성(Content Assistance)
ctrl + E : 열린파일 옮겨다니기
ctrl + shift + E : 열린파일 띄우기
ctrl + M : 에디터화면 넓게
ctrl + 1 : Quick Fix(Rename에 주로 사용)
ctrl + shift + M : 캐럿이 위치한 대상에 필요한 특정클래스 import
ctrl + shift + O : 소스에 필요한 패키지의 자동 임포트
ctrl + /: 한줄 또는 선택영역 주석처리/제거
ctrl + Q : 마지막 편집위치로 가기
ctrl + L : 특정줄번호로 가기
ctrl + D : 한줄삭제
ctrl + H : Find 및 Replace
ctrl + K : 다음찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.)
ctrl + shift + K : 이전찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 역으로 찾고자 하는 문자열을 찾아감.)
alt + shift + j : 설정해 둔 기본주석 달기
Ctrl + 객체클릭(혹은 F3) : 클래스나 메소드 혹은 멤버를 정의한 곳으로 이동(Open Declaration)
ctrl + 1 : Quick Fix(Rename에 주로 사용)
ctrl + shift + M : 캐럿이 위치한 대상에 필요한 특정클래스 import
ctrl + shift + O : 소스에 필요한 패키지의 자동 임포트
ctrl + /: 한줄 또는 선택영역 주석처리/제거
ctrl + Q : 마지막 편집위치로 가기
ctrl + L : 특정줄번호로 가기
ctrl + D : 한줄삭제
ctrl + H : Find 및 Replace
ctrl + K : 다음찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.)
ctrl + shift + K : 이전찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 역으로 찾고자 하는 문자열을 찾아감.)
alt + shift + j : 설정해 둔 기본주석 달기
Ctrl + 객체클릭(혹은 F3) : 클래스나 메소드 혹은 멤버를 정의한 곳으로 이동(Open Declaration)
ctrl + shift + f : 소스 깔끔 정리
ctrl + 2 + R : Rename(리팩토링)
ctrl + shift + / : 선택영역 block comment 설정
ctrl + shift + \ : 선택영역 block comment 제거
alt + shift + up: Enclosing Element 선택(괄호의 열고 닫기 쌍 확인에 유용함)
ctrl + O : Outline창열기
ctrl + 2 + R : Rename(리팩토링)
ctrl + shift + / : 선택영역 block comment 설정
ctrl + shift + \ : 선택영역 block comment 제거
alt + shift + up: Enclosing Element 선택(괄호의 열고 닫기 쌍 확인에 유용함)
ctrl + O : Outline창열기
ctrl + T : 상속구조 보기, 한번더 누르면 수퍼타입/서브타입 구조가 토글된다
Alt + ->, Alt + <- strong="">->: 이후, 이전
해당프로젝트에서 alt + enter : Project 속성
sysout > Ctrl + Space: System.out.println();
try > Ctrl + Space : 기본 try-catch문 완성
for > Ctrl + Space : 기본 for문 완성
템플릿을 수정,추가: Preferences > java > editor > Templates
해당프로젝트에서 alt + enter : Project 속성
sysout > Ctrl + Space: System.out.println();
try > Ctrl + Space : 기본 try-catch문 완성
for > Ctrl + Space : 기본 for문 완성
템플릿을 수정,추가: Preferences > java > editor > Templates
블럭 씌운상태에서 alt + shift + z : try/catch, do/while, if, for, runnable.... 등 블럭씌우기
ctrl + N : 새로운 파일 및 프로젝트 생성
ctrl + shift + s : 열려진 모든파일 저장 및 컴파일
alt + / : Word Completion
alt + shift + R : Rename
ctrl + shift + G : 특정 메써드나 필드를 참조하고 있는 곳을 찾는다.
ctrl + shift + B : 현재커서위치에 Break point설정/해제
ctrl + alt + R
ctrl + f11 : 실행
f11 : 디버깅 시작
ctrl + shift + s : 열려진 모든파일 저장 및 컴파일
alt + / : Word Completion
alt + shift + R : Rename
ctrl + shift + G : 특정 메써드나 필드를 참조하고 있는 곳을 찾는다.
ctrl + shift + B : 현재커서위치에 Break point설정/해제
ctrl + alt + R
ctrl + f11 : 실행
f11 : 디버깅 시작
f4 : 상속구조 클래스 보기(메소드, 멤버)
f5 : step into
f6 : step over
f8 : 디버깅 계속
ctrl + . : 다음오류부분으로 가기
ctrl + , : 이전오류부분으로 가기
f12 : 에디터로 커서이동
ALT + UP,DOWN : 현재 줄 위치 이동
Ctrl + j : 검색할 단어를 입력하면서 실시간으로 검색
Ctrl + Shift + j : 검색할 단어를 입력하면서 실시간으로 거꾸로 검색
F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.
ctrl + alt + up/down : 한줄 duplicate
alt + shift + 방향 : 선택
ctrl + shift + g : 객체(변수)가 참조 되는 곳을 찾아 준다
f5 : step into
f6 : step over
f8 : 디버깅 계속
ctrl + . : 다음오류부분으로 가기
ctrl + , : 이전오류부분으로 가기
f12 : 에디터로 커서이동
ALT + UP,DOWN : 현재 줄 위치 이동
Ctrl + j : 검색할 단어를 입력하면서 실시간으로 검색
Ctrl + Shift + j : 검색할 단어를 입력하면서 실시간으로 거꾸로 검색
F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.
ctrl + alt + up/down : 한줄 duplicate
alt + shift + 방향 : 선택
ctrl + shift + g : 객체(변수)가 참조 되는 곳을 찾아 준다
alt + shift + m : 코드 중복 해결(중복부분을 블록선택한 다음 단축키를 누르면 이부분을 별도의 메서드로 뽑아내줌)
ctrl + alt + h : 메서드 호출구조 보기
Monday, August 5, 2013
CSFB vs SVLTE 비교
LTE 서비스 상용화 이후 Data 사용중에 음성통화 서비스에 대한 문제가 발생하게 되었는데
크게 CSFB(Circuit Switched Fall-Back) 과 SVLTE(Simultaneous Voice and LTE) 로 나눠지고 있습니다.
각각의 기본 내용 및 장단점에 대해 간략하게 정리해 보았습니다.
Circuit Switched Fall-Back (CSFB)
|
Simultaneous Voice and LTE (SVLTE)
| |
3GPP
|
3GPP2
| |
통신사
|
SKT, KT
|
LGU+, Verizon
|
Voice
|
WCDMA,GSM
|
1xCDMA
|
Data
|
LTE
|
LTE
|
Data 사용 중에
음성통화 |
LTE Data 끊기고 WCDMA로 음성통화(음성통화시 Data는 WCDMA로 연결)
|
LTE Data 유지되면서
음성통화 동시에 지원 가능 |
장점
|
모뎀칩/RF회로 하나로 가능
부피,무게,발열,전자파 줄일 수 있음 |
음성(voice)과 LTE(data)동시에 전송 가능
|
단점
|
음성통화시 LTE Data 끊김
음성통화(3G)로 연결될때 지연 발생 |
2개의 모뎀칩 필요
부피,무게,발열,전자파 증가 재료비 상승 |
배터리 소모
|
SVLTE 대비 적음
|
CSFB 대비 많음
|
향후 전망
|
음성서비스를 All IP 기반의 VoLTE 로만 지원한다면 SVLTE/CSFB 장단점은 무의미
|
CSFB SVLTE VoLTE
데이타 통신중에 음성 전화 서비스 구분이다.
CSFB / SVLTE는 데이타는 PS(Packet Service), 음성은 CS(Circuit Service) 이다. CS는 데이타와 음성이 동시에 되지 않고, SV는 동시에 가능하다.
그러나 VoLTE는 데이타/음성 모두 PS이다.
1. CSFB(Circuit Switched Fallback)
CSFB 솔루션은 단말이 LTE망에 위치하다가 호가 발생하면 서킷망으로
전환(fallback)해 음성 서비스를 제공하는 방식으로, 통화 중에 LTE 고속
데이터 서비스를 사용할 수 없다는 단점이 있으며 LTE망에서 서킷망으로
전환하는데 지연이 발생해 음성 접속시간이 늦어지거나 접속 성공률이
떨어진다는 단점이 있다. SKT
모뎀칩과 RF가 하나면 된다.
통화 셋업 시간이 전화를 걸고 통화가 연결되기까지 걸리는 지연 시간이
늦어질 수밖에 없다. 최소 30% 이상
2. SVLTE(Simultaneous Voice & LTE)
단말이 동시에 LTE망과 서킷망에 위치해 데이터와 음성을 동시에 처리하는
방식으로 음성 및 데이터의 멀티태스킹과 음성 접속시간 및 접속 성공률
측면에서 CSFB의 단점을 해결할 수 있는 솔루션이다. LG유플러스.
![]()
U+는 3G시절, EV-DO 방식을 사용해 왔습니다. 그래서 3G 사업에서 만년 꼴지를 기록하며 최악의 통신품질을 기록했었죠, 그 이유는 WCDMA(SKT_음성,데이터 동신 전송가능)와는 달리 음성과 데이터가 동시에 되지 않고 음성 통화 역시 2G도메인 기반의 기술이었기 때문입니다. 하지만, U+는 4G 시대를 선언하며 Simultaneous Voice and LTE (SVLTE)를 도입했습니다. 말 그대로 음성과 LTE 데이터가 동시에 전송되는 방식입니다. 이 통신방식은 CDMA2000 EV-DO를 3G 망으로 사용하던 통신사들이 도입하는데, 우리나라에서는 U+만 독자적으로 사용하는 방식입니다. (버라이즌도 같은 통신망) 이 방식은 듀얼 라디오 솔루션이라고도 부르는데, 음성과 4G LTE를 동시에 하기 위해서는 각각의 안테나가 필요하게 됩니다. 그래서 부품 수도 늘어나게 되고 단말기의 전력소모는 물론 중량과 발열, 전자파까지 두 배가 늘어나게 됩니다. 그리고 음성 통화 시, 전파 환경을 안테나로 알아 볼 수 있는 방법이 없어 전화가 끊기거나 통화 품질이 떨어져도 확인이 불가능한 단점이 있습니다. 그래서 U+의 경우, LTE 안테나를 항상 가동해 다른 안테나로 음성통화 시에도 LTE를 사용할 수 있어 전화를 할 때도 LTE가 3G로 변하지 않습니다. 하지만 음성 통화에서는 CSFB 방식처럼 Fall-Back은 되지 않지만 U+의 기존 음성통화 방식인 EV-DO(2G 도메인)를 사용해 통화 음질의 큰 변화를 느낄 수 없습니다.
3. VoLTE (Voice Of LTE)
‘Voice over LTE’의 약어로 LTE 환경에서 제공되는 음성 서비스를 의미
한다. 이는 음성과 데이터 통신이 모두 인터넷 프로토콜(IP) 기반에서 제공
될 수 있다는 의미이며 동시에 진정한 All-IP 시대의 시작을 의미한다.
장점 : - All-IP 기반의 새로운 융합서비스들을 제공할 수 있다. VoLTE를
통해 음성과 데이터가 동일한 패킷망을 사용하는 환경을 제공하기
때문에, 데이터 중에 전화를 받더라도 기존 데이터 서비스를 끊김
없이 이용할 수 있으며, 음성 통화 중에 LTE 고속 데이터를 제약
없이 이용 가능하다.
- 속도의 차이이다. VoLTE는 LTE에서 인터넷 접속 속도가 빠른 것
처럼 기존 서킷 음성 서비스보다 약 2배로 향상된 호 연결 속도
(Call setup time)를 제공한다.
기존 서킷방식의 음성 호 연결속도가 평균 5초대라면 VoLTE의 경우
는 평균 2.5초대의 연결속도를 제공한다. 특히, 인터넷접속 등
데이터 사용 중에 전화를 받는 경우 거의 실시간으로 전화를 받을 수
있어 빠른 통화연결 체감이 가능하다. 또한 VoLTE 가입자간 통화
시 서킷 통화보다 화자와 청자간의 음성 지연(delay)이 약 30%까지
개선될 것으로 예상돼(기존 음성호 delay : 약 300ms, VoLTE delay
: 약 200ms) 마치 옆에서 말하는 것과 같은 체감을 할 수 있다.
- 안정적인 통화 품질 제공이다. VoLTE는 안정적인 음성 통화를 위해
LTE 망 자원을 우선 할당 받아 사용하기 때문에 어떤 데이터 서비스
보다 우선적으로 처리된다. 기존의 패킷 방식을 이용한 음성통화
서비스인 OTT(Over The Top) 업체의 mVoIP는 QoS(Quality of
Service)를 보장할 수 없는 반면, VoLTE는 트래픽 폭주 시에도
최우선적으로 보호받아 처리되기 때문에 mVoIP에서 경험했던 음성
품질 저하 문제에서 자유로울 수 있다.
- VoLTE는 기존의 이동통신에서 제공한 적이 없는 Wide band codec
을 채용해 HD급 음질을 제공한다. 아래 그림과 같이 기존의 이동
전화가 200~3400Hz 대역의 Narrow band codec을 이용해 주변의
소리가 제거되고 약간 탁한 느낌의 음성만을 전달했던 것에 비해,
VoLTE는 AMR-WB(Adaptive Multi Rate Wideband) 코덱을 사용,
50~7000Hz의 폭 넓은 대역을 이용하기 때문에 소리의 선명도 및
개인 고유의 음성 구분이 명확해져 자연스러운 소리를 들을 수 있다.
![]() |
Circuit Switched Fallback (CSFB)
Circuit Switched Fallback (CSFB): A Quick Primer
I have explained CSFB with basic signalling here and there is a very interesting Ericsson whitepaper explaining all Voice issues in LTE here.
The following CSFB details have been taken from NTT Docomo Technical Journal:
![]()
The CS Fallback consists of a function to notify a mobile terminal of a call request from the CS domain and combined mobility management functions between CS domain and EPC for that
purpose. The network architecture of CS Fallback is shown in Figure 2.
![]()
One of the remarkable characteristics of the EPC supporting CS Fallback is that it connects the Mobile Switching Center (MSC) and Visited Location Register (VLR) in the 3G CS domain
with the Mobility Management Entity (MME), which provides EPC mobility management functionality. The interface connecting MSC/VLR and MME is called an SGs reference point. This
interface is based on the concept of the Gs reference point that exchanges signalling with MSC, which connects to the Serving General Packet Radio Service Support Node (SGSN), a 3G
packet switch. The SGs provides nearly all the functions provided by the existing Gs.
The CS Fallback function uses this SGs reference point to transfer the mobile terminating call requests from the CS domain to LTE. It also provides combined mobility management
between the 3G CS domain and the EPC to enable this transfer to take place.
![]()
Combined Mobility Management between CS Domain and EPC Network:
A mobile communications network must always know where a mobile terminal is located to deliver mobile terminating service requests to the mobile user on the mobile terminating side. The procedure for determining terminal location is called “mobility management". As a basic function of mobile communications, 3G and LTE each provide a mobility management function.
To complete a call using the CS Fallback function, the CS domain needs to know which LTE location registration area the mobile terminal is currently camping on. To this end, the MME must correlate mobility management control of the CS domain with that of EPC and inform MSC/VLR that the mobile terminal is present in an LTE location registration area.
The 3G core network already incorporates a function for linking mobility management of the CS domain with that of the Packet Switched (PS) domain providing packet-switching functions. As described above, the CS domain and PS domain functions are provided via separate switches. Thus, if combined mobility management can be used, the mobility management procedure for the terminal only needs to be performed once, which has the effect of reducing signal traffic in the network. This concept of combined mobility management is appropriated by the CS Fallback function. Specifically, MSC/VLR uses the same logic for receiving a location registration request from SGSN as that for receiving a location registration request from MME. This achieves a more efficient combined mobility management between the CS domain and EPC while reducing the development impact on MSC.
As described above, a mobile terminal using LTE cannot use 3G at the same time. This implies that the MME, which contains the LTE location registration area (Tracking Area (TA)), is unable to identify which MSC/VLR it should send the mobility management messages to from the TA alone. To solve this problem, the mapping of TAs and 3G Location Areas (LA) within MME has been adopted. The concept behind TA/LA mapping is shown in Figure 3. Here, MME stores a database that manages the correspondence between physically overlapping TAs and LAs. This information is used to determine which MSC/VLR to target for location registration.
![]()
CS Fallback Call Control Procedures - Mobile Originating Call:
To originate a voice call using the CS Fallback function, a mobile terminal in the LTE location registration area must first switch (fall back) to 3G. The mobile-originating voice call procedure is shown in Figure 5. To originate a call, the mobile terminal begins by sending a CS fallback service request message to the MME (Fig. 5 (1)). Since a packet-communications transmission path (bearer) must always exist in EPC for the purpose of providing an always-on connection, the bearer also has to be handed over to 3G. To accomplish this, the MME issues a handover command to the mobile terminal in LTE and initiates a handover procedure (Fig. 5 (2)). The mobile terminal changes its radio from LTE to 3G during this procedure (Fig. 5 (3)). On completion of handover, the mobile terminal issues an originating request for voice service to the MSC/VLR. A voice-call connection is then established using an existing calloriginating procedure on 3G and the CS Fallback procedure is completed (Fig. 5(4)).
CS Fallback Call Control Procedures - Mobile Terminating Call:
![]() |
Thursday, April 18, 2013
인터넷 고수들이 공개한 꼼수 10가지
http://www.zdnet.co.kr/news/news_view.asp?artice_id=20130417161803
전 세계 인터넷 고수들이 이용자들을 위한 자신만의 팁을 풀어놨다. 구글 트랜슬레이트를 이용해 학교나 직장에서 제한한 사이트에 접속하는 방법, 로그인 하지 않고 제한된 유튜브 동영상 보기, 온라인 쇼핑 싸게 하기 등 다양하다.
16일(현지시간) 비즈니스인사이더에 따르면 해외 소셜뉴스 및 커뮤니티 사이트 레딧(Reddit)은 최근 이용자들에게 "인터넷을 이용하면서 얻은 유용한 꼼수는 무엇이냐"는 질문을 던졌다. 이 질문에 1만여명이 답변을 달면서 호응을 얻고 있다.
비즈니스인사이더는 이 중 가장 많은 이용자들이 꼽은 10가지 팁을 소개했다.
"구글 지도를 통해 특정한 장소를 찾는다면 장소 뒤에 별표(*)를 함께 입력해보세요. 예를 들어 레스토랑*이라고 입력하면 구글은 지도에 나온 범위 내에 모든 레스토랑들을 찾아줍니다." (soulbrothernumbertwo)
"당신의 학교나 직장이 특정 사이트를 막아놓는다면 구글 트랜스레이트를 이용해보세요. 입력창에 해당 URL을 입력하고 아무 언어나 선택한 후 통역창에 나타난 링크를 클릭하면 됩니다." (liamsdomain)
"온라인으로 상품을 구매할 때 구글에서 '프로모션 코드(promo code)'나 '쿠폰코드(coupon code)'라고 검색하면 곧바로 쓸 수 있는 쿠폰을 구할 수 있을때가 많습니다." (the_Hallelucinator)
"그냥 백스페이스만 누르면 글자 한 개만 지울 수 있지만 Ctrl 버튼을 누르고 백스페이스를 함께 누르면 한 단어를 한꺼번에 지울 수 있어요." (TeamC***Destroyer)
"구글 검색창에서 게임도 즐길 수 있습니다. 구글 입력창에 'zerg rush'라는 검색어를 입력해보세요."(hisIsZach)
"논문쓸 때 유용한 팁도 알려드릴께요. 대학생이라면 www.easybib.com 사이트를 이용해보세요. 검색에 쓰이는 시간을 절약할 수 있습니다." (herbinator1620)
"시청이 제한된 유튜브 동영상도 감상할 수 있습니다. 유튜브 동영상 URL에서 'watch'를 'v'로 바꿔주면 로그인 없이도 제한된 동영상을 시청할 수 있어요." (FireDiesel)
"파파존스 피자 온라인 사이트(papajohns.com)에서 피자를 주문할 때 'PJ105'라는 프로모션 코드를 입력하면 전체 주문액의 50%를 할인받을 수 있어요." (mwtipper56)
"새로운 언어도 배울 수 있습니다. www.duolingo.com은 매우 훌륭한 외국어 교육 사이트입니다. 모두 공짜구요. (사실 이 사람들이 대체 어떻게 돈을 버는지 모르겠네요.)"(roman_urban)
"심심하시다구요? www.theuselessweb.com/에 들어가보세요. 나를 '쓸모없는' 사이트로 안내합니다." (Alexrock88)
전 세계 인터넷 고수들이 이용자들을 위한 자신만의 팁을 풀어놨다. 구글 트랜슬레이트를 이용해 학교나 직장에서 제한한 사이트에 접속하는 방법, 로그인 하지 않고 제한된 유튜브 동영상 보기, 온라인 쇼핑 싸게 하기 등 다양하다.
"시청이 제한된 유튜브 동영상도 감상할 수 있습니다. 유튜브 동영상 URL에서 'watch'를 'v'로 바꿔주면 로그인 없이도 제한된 동영상을 시청할 수 있어요." (FireDiesel)
Tuesday, April 2, 2013
공개SW 테스트 도구
http://www.oss.kr/69515
▣ 테스트 활동에 따른 도구 분류
테스트 활동 | 테스트 도구 | 내용 |
테스트 계획 | 요구사항 관리 | 고객 요구사항 정의 및 변경사항 관리 |
테스트 분석/설계 | 테스트 케이스 생성 | 테스트 기법에 따른 테스트 데이터 및 케이스 작성 |
커버리지 분석 | 대상시스템에 대한 테스트 완료 범위 척도 | |
테스트 수행 | 테스트 자동화 | 기능 테스트 등 테스트 도구를 활용하여 자동화를 통한 테스트의 효율성을 높일 수 있음 |
정적분석 | 코딩표준, 런타임 오류 등을 검증 | |
동적분석 | 대상시스템 시뮬레이션을 통한 오류 검출 | |
성능 테스트 | 가상사용자를 인위적으로 생성하여 시스템 처리능력 측정 | |
모니터링 | 시스템 자원(CPU, Memory 등) 상태 확인 및 분석 지원 도구 | |
테스트 통제 | 형상관리 | 테스트 수행에 필요한 다양한 도구 및 데이터 관리 |
테스트 관리 | 전반적인 테스트 계획 및 활동에 대한 관리 | |
결함 추적/관리 | 테스트에서 발생한 결함 관리 및 협업 지원 |
▣ 주요 공개SW 테스트 도구 소개
테스트 도구는 프로세스화 되었을 때 큰 효과를 볼 수 있기 때문에, 테스트 도구에 대한 도입시 조직적이고 장기적인 측면에서 고려해야 하며, 활용 가능한 주요 공개SW 테스트 도구는 아래와 같다.
● 정적분석 도구
소스코드에 대한 코딩 표준/스타일, 복잡도 및 잔존 결함을 발견하기 위하여 사용하는 도구
분류 | 제품명 | 세부정보 | |
결함 예방 /발견 | pmd(cpd) | 개요 | 자바 소스코드에 대한 잠재적인 문제에 대한 분석 |
지원 환경 | Linux, Windows | ||
개발도구 지원 | Eclipse, NetBeans 등 | ||
홈페이지 | http://pmd.sourceforge.net/ | ||
findbugs | 개요 | 자바 소스코드에 대한 잠재적인 문제에 대한 분석 | |
지원 환경 | Cross-Platform | ||
개발도구 지원 | Eclipse, NetBeans 등 | ||
홈페이지 | http://findbugs.sourceforge.net/ | ||
cppcheck | 개요 | C/C++ 소스코드에 대한 잠재적인 문제에 대한 분석 | |
지원 환경 | Windows | ||
개발도구 지원 | Eclipse, gedit 등 | ||
홈페이지 | http://cppcheck.sourceforge.net/ | ||
sonar | 개요 | 지속적인 소스 품질 검사를 수행하기 위한 통합 플랫폼으로 C/C++, Java 등 다양한 언어 지원 및 PMD, CheckStyle 등 플러그인을 통하여 확장 가능 | |
지원 환경 | Cross-Platform | ||
개발도구 지원 | eclipse | ||
홈페이지 | http://www.sonarsource.org/ | ||
코딩 표준 | checkstyle | 개요 | 자바 프로그램에 대한 코딩 표준 준수 검사 도구로, 다양한 개발 도구에 통합하여 활용 가능 |
지원 환경 | Cross-Platform | ||
개발도구 지원 | Ant, Eclipse, NetBeans 등 | ||
홈페이지 | http://checkstyle.sourceforge.net/ | ||
N'SIQ CppStyle | 개요 | C/C++ 프로그램 언어에 대한 코딩 표준 준수 검사 도구 | |
지원 환경 | Cross-Platform | ||
개발도구 지원 | Visual Studio, eclipse | ||
홈페이지 | http://dev.naver.com/projects/nsiqcppstyle/ | ||
StyleCop | 개요 | C# 프로그램 언어에 대한 코딩 표준 준수 검사 도구 | |
지원 환경 | Windows | ||
개발도구 지원 | Visual Studio | ||
홈페이지 | http://stylecop.codeplex.com/ | ||
cpplint | 개요 | 구글에서 사용하고 있는 C++ 스타일 가이드 준수 검사 도구로 CLI(파이썬) 형태로 지원됨 | |
지원 환경 | Cross-Platform | ||
개발도구 지원 | - | ||
홈페이지 | http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#cpplint | ||
코드 복잡도 | ccm | 개요 | 소스코드 복잡도 분석 도구이며, Linux, Mac환경에서는 CLI 형태로 지원됨 |
지원 환경 | Cross-Platform | ||
개발도구 지원 | Visual Studio | ||
홈페이지 | http://www.blunck.info/ccm.html | ||
eclipsemetrics | 개요 | 소스코드 복잡도 분석 소스 코드 통계 정보 제공 도구 | |
지원 환경 | Cross-Platform | ||
개발도구 지원 | Eclipse | ||
홈페이지 | http://www.stateofflow.com/projects/16/eclipsemetrics | ||
sourcemonitor | 개요 | 윈도우 기반 소스코드 복잡도 분석 도구 | |
지원 환경 | Windows | ||
개발도구 지원 | - | ||
홈페이지 | http://www.campwoodsw.com/sourcemonitor.html | ||
cobertura | 개요 | 자바언어에 대한 소스코드 복잡도 분석 및 커버리지 측정 | |
지원 환경 | Cross-Platform | ||
개발도구 지원 | Ant, Maven | ||
홈페이지 | http://cobertura.sourceforge.net/ | ||
javancss | 개요 | 자바언어에 대한 소스코드 복잡도 분석 도구, CLI 형태로 지원됨 | |
지원 환경 | Cross-Platform | ||
개발도구 지원 | Ant, Jacob | ||
홈페이지 | http://www.kclee.de/clemens/java/javancss/ |
● 동적분석 도구
프로그램을 실행하여, 코드 내에 존재하는 메모리 누수, 쓰레드 결함 등을 분석하기 위하여 사용하는 도구
제품명 | 세부정보 | |
Avalanche | 개요 | Valgrind 프레임워크 기반으로 구현되었으며, 프로그램에 대한 결함 및 취약점 동적 분석 도구 |
지원 환경 | Linux, Android | |
개발도구 지원 | - | |
홈페이지 | http://code.google.com/p/avalanche/ | |
Valgrind | 개요 | 프로그램 내에 존재하는 메모리 및 쓰레드의 결함을 발견하는 동적 분석 도구 |
지원 환경 | Cross-Platform | |
개발도구 지원 | Eclipse, NetBeans 등 | |
홈페이지 | http://valgrind.org |
● 테스트 자동화 프레임워크
단위테스트, 통합테스트 등 테스트 단계별 자동화 도구를 활용한 기능 테스트 도구
제품명 | 세부정보 | |
xUnit | 개요 | java(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위테스트 프레임워크 |
지원 환경 | 각각의 도구별 지원 환경 상이 | |
개발도구 지원 | eclipse 등 | |
홈페이지 | http://www.junit.org/ http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page http://www.nunit.org/ | |
STAF | 개요 | 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크 |
지원 환경 | Cross-Platform | |
개발도구 지원 | eclipse | |
홈페이지 | http://staf.sourceforge.net/ | |
FitNesse | 개요 | 웹기반 테스트케이스 설계/실행/결과확인 등을 지원하는 테스트 프레임워크 |
지원 환경 | Cross-Platform | |
개발도구 지원 | eclipse | |
홈페이지 | http://fitnesse.org/ | |
NTAF | 개요 | NHN 테스트 자동화 프레임워크이며, STAF와 FitNesse를 통합 |
지원 환경 | Cross-Platform | |
개발도구 지원 | eclipse, Maven 등 | |
홈페이지 | http://dev.naver.com/projects/ntaf/ | |
Selenium | 개요 | 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://seleniumhq.org/ | |
watir | 개요 | Ruby 기반 웹 애플리케이션 테스트 프레임워크 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://watir.com/ |
● 성능 테스트 도구
가상사용자를 인위적으로 생성하여 시스템의 처리량, 응답시간 등을 테스트하기 위한 도구
제품명 | 세부정보 | |
JMeter | 개요 | HTTP, FTP, LDAP 등 다양한 프로토콜을 지원하는 부하 테스트 도구 |
지원 환경 | Cross-Platform | |
개발도구 지원 | eclipse, Ant | |
홈페이지 | http://jmeter.apache.org/ | |
AB | 개요 | 아파치 웹서버 부하 테스트 도구이며, CLI기반으로 동작 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://httpd.apache.org/docs/2.2/programs/ab.html | |
OpenSTA | 개요 | HTTP, HTTPS 프로토콜에 대한 부한 테스트 도구 |
지원 환경 | Windows | |
개발도구 지원 | - | |
홈페이지 | http://opensta.org/ | |
LoadUI | 개요 | HTTP, JDBC 등 다양한 프로토콜을 지원하며, 서버 모니터링, Drag&Drop 등 사용자 편리성이 강화된 부하 테스트 도구 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://www.loadui.org/ |
● 시스템 모니터링 도구
서버 자원(CPU, Memory 등)에 대한 사용 현황을 파악할 수 있는 도구
제품명 | 세부정보 | |
Nagios | 개요 | 웹기반 서버, 서비스, 애플리케이션 등에 대한 모니터링 도구 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://www.nagios.org/ | |
Zenoss | 개요 | 웹기반 서버, 서비스, 애플리케이션 등에 대한 모니터링 도구 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://community.zenoss.org/index.jspa | |
Zabbix | 개요 | 웹기반 서버, 서비스, 애플리케이션 등에 대한 모니터링 도구 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://www.zabbix.com | |
Hyperic HQ | 개요 | 웹기반 서버, 서비스, 애플리케이션 등에 대한 모니터링 도구 |
지원 환경 | Cross-Platform | |
개발도구 지원 | - | |
홈페이지 | http://sourceforge.net/projects/hyperic-hq/ |
[연재 차례]
① SW 테스트 이해
② SW 테스트 필요성 ③ SW 프로세스 ④ SW 프로세스와 테스트 ⑤ SW 테스트 프로세스 ⑥ SW 테스트 기법 ⑦ 공개SW 프로세스 ⑧ 공개SW 테스트 ⑨ 공개SW 테스트 프로세스 ⑩ 공개SW 테스트 도구 |
Subscribe to:
Posts (Atom)