싸미~*

[UML 제대로 알기] ② 초보자를 위해 다각도로 살펴본 UML

기타
7년 전 필자는 UML이라는 단어조차 들어본 적 없었다. 국내에서는 그래도 꽤 잘하는 비주얼 베이직 프로그래머라고 자부했는데 당시 봇물같이 쏟아지던 약어들에 질려 UML이라는 알파벳 세 글자로 이루어진 '신규어'에 별 신경을 쓰지 않았다.

몇 년이 지난 후, 필자도 객체지향이라는 무림 강호에 몸을 던지지 않을 수 없는 시점에 이르러서, 그 몇 년 전에 들었던 UML이라는 것이 무림에 출사표를 던지기 위한 필수 무공이었다는 사실을 깨달았다. 그리고 그 이름도 원망스러운 디자인 패턴!

비주얼 베이직이라는 한물간 초식에서는 ‘꽤’ 강자라고 생각했던 필자는 객체지향이라는 드넓은 무림에 발을 들여서는 초고수가 되어야 되겠다는 결심을 했고, 높은 내공을 쌓기 위한 필수 비급이라는 UML과 디자인 패턴을 익히기 시작했다. 그러면서 필자가 느낀 것은? ‘초고수는 아무나 하는 것이 아니구나’하는 것이었다.

필자는 디자인 패턴에 한이 맺힌 사람이다. 디자인 패턴을 며칠 밤씩 새워 가면서 공부할 때 느낀 고통은 이루 말할 수 없다. 가끔씩 감동을 느낄 때도 있었지만 대부분의 경우가 이해하기 힘들고 패턴에 따라 프로그램을 작성하기는 더 힘든 경우가 많았다.

결국은 객체지향에 대한 기초 지식이 부족하기 때문이라는 사부님의 조언을 듣고는 HTDP와 SICP 등의 패러다임 입문서, 리스코프나 메이어 등의 객체지향 이론서 등을 짧은 영어 실력에 열심히 번역하며 읽었다. 객체지향 디자인을 제대로 이해하기 위해서는 UML은 필수사항이었고, UML에 관련된 책도 열심히 사서 읽었다. 그때부터 필자의 머릿속에는 이상한 고정 관념이 생기기 시작했다.

"디자인 패턴도 모르는 개발자가 무슨 개발을..."
"UML은 자유롭게 쓸 수 있어야 개발을 한다고 할 수 있지..."


결국은 내공이 좀 쌓이고, 디자인 패턴과 UML을 어렵지 않게 응용해서 프로그램을 짤 수 있는 수준이 되었을 무렵에, 필자는 병적으로 디자인 패턴과 UML에 집착하기 시작했다. 래쇼날 로즈 등의 케이스 툴을 사용해 설계를 하고 있으면, 화면에 보여 지는 여러 예쁜 아이콘들을 보면서 ‘아, 나는 살아 있구나’하는 존재의 가치를 느끼곤 했다.

그렇게 열심히 익힌 기술들을 이용해서 프로그램을 열심히 개발하던 어느 날 밤, 필자는 어떤 의문을 가지게 되었다. 왜 내가 동작하는 코드를 개발하지 않고 그림을 그리고 있을까? 프로그램을 작성하는 목적이 잘 동작하는 프로그램을 작성하는 것이지 출력해서 벽에 걸어놓을 미술 작품을 만들고자 하는 것이 아니지 않은가?

필자는 플라톤의 동굴의 비유에 비견될 만한 엄청난 진리를 깨달았다. UML이든, 디자인 패턴이든 꼭 필요한 부분에만 사용하면 되는 것이고, 프로그램을 작성하기 전 개념을 잡거나 최종적으로 정리하는데 유용한 도구, 특히 UML은 개발자들 간의 상호 커뮤니케이션에 아주 유용한 도구가 될 수 있다는 것을 알게 되었다.

필자는 UML 케이스 툴을 만드는 업체에 근무하는 개발자 몇 명을 잘 알고 있다. 대학원에서 꽤 실력을 쌓아 어렵게 취업한 후배들인데, 업체에 근무한지 3개월쯤 되면 이런 말을 한다.

"UML에 이렇게 많은 것들이 있는 줄 몰랐어요. 무척 힘드네요"

1년쯤 근무하면 이런 말들을 한다.

"개발자라면 UML은 반드시 알아야죠. UML의 구석구석을 모르고 어떻게 제대로 된 프로그램을 작성할 수 있습니까?"

3년쯤 근무한 후배는 이런 말을 한다.

"UML요? 꼭 쓸데만 쓰면 되지 오버해서 쓰면 나중에 감당 못하죠"

악순환의 반복이랄지, 디자인 패턴과 UML이 남긴 폐해랄지, 이런 현상은 매년 계속된다.

아키텍트 입장에서 UML
필자가 조선 업계에서 근무할 때, 새로운 시리즈를 시작할 경우(배는 하나의 설계로 여러 척을 찍어낸다) 먼저 모형을 만들어서 테스트를 하는 것을 본 적이 있다. 모형을 만들어 수영장 같은 곳에서 테스트를 해 보고 실제로 배가 목표한 만큼의 성능을 낼 수 있는지 테스트 한다. 또한, 배를 설계할 때 거대한 캐드 시스템으로 설계한 후 파도와 바람 등에 견딜 수 있는지를 테스트한다.

배를 만들 때는 엄청난 비용과 시간이 소모되기 때문에 모형을 만들거나 컴퓨터상에서 수치로 테스트한다. 컴퓨터로 만들건, 정말 모형을 만들건, 그렇게 만들어진 것을 모델이라고 하고, 대부분의 경우 모형을 만드는 비용이 실제 배를 만드는 것보다 비용이 훨씬 적게 소모되므로 모델 테스트를 한다. 이런 모델을 만들어 테스트 해보는 과정을 ‘모델링’이라고 부른다.

배를 지을 때도 선실의 세부 구조나 엔진의 동작들은 모델링하지 않는다. 모델링이라는 것은 어떤 것이 실제로 잘 동작하는지를 알아보려고 만드는 것이다. 실제 크기대로 배를 지어 바다에서 항해해 가며 파도와 바람의 영향을 최소화하거나 풍랑에 버틸 수 있을지를 테스트 해 본다는 것은 비용이 너무 많이 드는 일이다. 모델을 만드는 이유는 모델을 만드는 비용이 실제 물건을 만드는 것보다 훨씬 적은 비용으로 설계가 제대로 되었는지 알고 싶어서이다.

소프트웨어를 만들 때도 이와 같은 이치가 적용된다. 하지만 소프트웨어를 설계할 때 사용하는 이 UML이라는 것은 조선 엔지니어나 토목 엔지니어들이 모델링을 하기 위해 사용하는 미니어처나 캐드 모델과 비교해 볼 때 훨씬 비효율적이고 테스트하기 곤란하다. UML 다이어그램에는 다른 공학 모델과 비교해 보았을 때 확고한 시험 기준을 세우기도 곤란하고 평가를 내릴 때도 주관적인 관점이 상당부분 차지할 수 밖에 없다.

조선이나 건축에서 모델을 만드는 것은 실제 배나 건물을 짓는 것과 비교할 때 비교도 할 수 없을 만큼의 적은 비용이 들지만, 소프트웨어를 설계하는 입장에서 실제 프로그램을 작성하는 것과 UML을 사용한 설계를 비교했을 때 비용적인 측면에서나 생산성적인 측면에서나 그렇게 차이 나지 않는다.

사실, UML을 사용해서 테스트하는 것보다 소스코드를 직접 수정하는 것이 비용이 훨씬 적게 들고 손쉬운 경우도 있다. 개발자의 입장에서는 더욱 그러하다. 하지만 UML을 사용해야 하는 이유는 무엇일까? 잘 사용하면 비용 절감의 효과를 가져 올 수 있고, 포괄적인 설계가 가능하다는 것이다.

UML 다이어그램이라는 것은 앞서 이야기 했듯이 다른 공학에 비해 모델을 사용했을 때 실제 건축물(소프트웨어에서는 실제 동작하는 코드)을 작성하는 것보다 비용이 명확하게 절약되는지가 명확하지 않다. 필자는 실제 프로그램을 작성하는 것보다 UML 다이어그램을 작성하는 것이 훨씬 시간이 많이 드는 경우를 허다하게 봤다(사실 그렇게 하지 않으면 제대로 된 프로그램이 나오지 않는 경우가 대부분이다).

UML 다이어그램은 세부적인 설계를 하기 보다는 포괄적인 설계를 구성하였을 때 그 전체적인 비용의 절감 효과를 가져 올 수 있다. 세부적인 그림을 UML 다이어그램으로 표시하기 보다는 전체적인 그림을 UML 다이어그램으로 표시하고 세부적인 표현은 코드로 작성하는 등의 탄력성 있는 설계 운영이 전체를 UML로 설계하는 것보다 훨씬 나은 효율을 가져올 수 있다는 것이다.

실제로 아키텍트들의 설계는 이러해야 한다. 아키텍트들은 UML 다이어그램을 세부적으로 표현하기 보다는 전체적인 그림을 그리고, 그린 그림이 실제 소프트웨어로 동작했을 때 바르게 동작할 수 있을 것인지를 개발자들과 토론하고 설계를 수정한다.

필자는 프로젝트를 시작할 때 전체 소프트웨어의 요구사항을 격자 형태로 나누고 각 부분을 개개의 개발자들에게 할당하는 경우를 본 적이 있다. 큰 부분으로 나뉜(이 큰 부분으로 나누는 것조차 PM급의 아키텍트가 하지 않는다. 그러한 큰 부분은 대 부분의 기업형 응용 프로그램이라면 부서별 또는 업무별로 자연스럽게 할당되어 있기 마련이다) 업무 분할대로 각 개발자가 ER-Diagram부터 클래스 다이어그램, 컴포넌트 다이어그램까지 작성하는 경우를 실제로 본 적이 있다.

큰 수정 없이 프로젝트가 진행되어 다행이었지만, 한 부분이라도 어긋난 부분이 있었다면 엄청난 비용이 소모되었을 것이다(사실 그렇게 작성된 프로그램은 전체적인 소프트웨어의 부품이 유기적으로 동작하는 소프트웨어가 아니고 각 부품이 각기 따로 동작하는 작은 프로그램들의 집합일 수밖에 없고, 실제로도 그러했다).

개발자 입장에서 UML
자, 이제 개발자 입장에서 UML을 생각해 보자. 실제로 개발자가 UML 다이어그램의 모든 부분을 다 알아야 하는가? 개발자가 프로그램을 작성하기 위해서 UML의 메타 모델을 모조리 이해하고 각 프로젝트와 다른 케이스 도구들에서 쓰이는 스테레오 타입들을 다 알아야 한다는 것이다.

필자는 여기에 반대한다. 필자는 주로 닷넷 기술들을 가지고 소프트웨어를 작성하고 강의하고 컨설팅을 수행하는데, 사실 닷넷 기술은 너무 빠른 속도로 변화하고 있다. 곧 출시될 비주얼 스튜디오 2005와 MS-SQL 서버 2005는 닷넷 프레임워크 2.0을 기반으로 하는데, 닷넷 프레임워크 2.0은 1.1 버전과는 상당히 다른 모습을 보여준다.

C#이나 비주얼 베이직 닷넷 같은 언어적인 측면에서만 봐도, 겉으로 보기에도 제네릭(Generic)이 포함되는 등 상당히 많은 부분이 변하였다(필자는 이 부분에서 상당히 불만이 많다. MS는 이런 부분을 발표만 하고는 다른 이야기가 없다.

여러 잡지에 소개되는 글들을 봐도 이런 기능들이 추가되었다. 이런 내용만 있지 실제적으로 테스트 해 볼 수 있는 코드를 제시하거나 근본적인 변화를 이야기하는 경우는 드물다). ASP.NET 2.0만 해도 ASP.NET 프레임워크가 전체적으로 변화한 부분도 몇 군데 있을 뿐더러 사용자 정의 컨트롤이 상당히 많이 추가되고 변화함으로 인해서 새로 익혀야 할 부분이 늘어났다.

ADO.NET도 마찬가지다. 개발자의 부담은 가중되고 실제적으로 필드에서 사용되어야 할 코드와 컨트롤들의 사용법을 익히는 것과 UML의 전체적인 내용을 학습하는 것 사이에서 갈등하게 된다.

디자인 패턴도 이럴 때 부담이 된다. 개발자 누구나가 디자인 패턴과 UML을 사용할 수 있어야 하고 열심히 학습해야 한다는 것은 알고 있지만, 현실적으로 당장 사용하여야 할 요소 기술과 끝이 보이지 않는 기반 기술을 사이에 두고 갈등하다 보면 당연히 당장 사용하게 되는 요소 기술 쪽으로 치우칠 수밖에 없다.

이럴 때 누군가에게 "UML을 조금 알아야 되겠는데 어떤 책을 봐야 되겠습니까?"라고 물어보면 그 누군가는 책을 산더미처럼 던져주고(보통 이런 경우에 이유 없이 원서를 권하는 경우가 많다. 안 그래도 바빠 죽겠는데 원서가 포함된 책 뭉텅이를 받은 개발자의 입에서는 욕 빼고는 나올 것이 없다) 이 책의 내용들을 거의 다 숙지해야 제대로 쓸 수 있다는 교과서의 화신 같은 이야기를 하게 된다. 사실, 이 말은 격무에 시달리는 개발자들에게 UML을 공부하지 말라는 이야기와 동일하게 밖에는 안 들린다.

개발자들은 프로젝트에 투입될 때 UML의 어떤 부분을 알아야 하는가? 사실 UP의 모든 부분을 다 안다는 것은 업무 형태와 업무량으로 볼 때 거의 불가능 하다고 볼 수 있다. 그렇다고 UML을 전혀 모르는 상태에서 개발에 투입되었다면 그 개발자의 앞길은 십자가를 지고 골고다 언덕을 오르는 예수님의 모습처럼 보일 것이 뻔하다. UML을 효과적으로 사용하기 위한 효과적인 길을 알아보자.

의사소통 수단으로서 UML
초보 개발자라면, 우선 UML의 표기법에 익숙해져야 한다. 이렇게 생긴 아이콘은 클래스고, 이렇게 생긴 화살표는 실제화고(물론 실제화를 이해하기 위해서는 객체지향을 이해하여야 한다는 원론적인 이야기를 피하기는 힘들다. 산 너머 산이다) 이렇게 생긴 화살표는 집단화이고 등의 표기법(Notation)을 익히는 것이 중요하다. 개발은 혼자 하는 것이 아니기 때문이다. UML은 개발자들끼리 설계 개념에 대한 의견을 주고받을 때 굉장히 편리한 도구로 사용될 수 있다. UML의 표기는 매우 명확한 의미를 전달해 줄 수 있다.

개발 경로로서의 UML
UML은 기업 형 소프트웨어를 작성할 때 구조의 개발 경로를 작성할 때 유용하다. PM이 이렇게 개발해라 하는 지시를 내리면 사실 그 지시라는 것은 추상화 된 개념이라서 바로 프로그램으로 옮기기가 곤란한 경우가 대부분이다. 이런 경우, 어떤 객체를 먼저 작성하여야 하고 어떤 객체는 어떤 객체에 의존하고 하는 식의 로드맵이 필요한데, UML은 이런 도구로서도 훌륭하다.

개발 경로로서 UML 다이어그램을 활용하려 한다면, 클래스 다이어그램, 객체 다이어그램, 시퀀스 다이어그램, 협력 다이어그램을 읽을 수 있고 작도할 수 있어야 한다. UML 표기법을 완벽하게 익힐 필요까지는 없을 테고, 적당히 다른 사람과 상호 통신할 수 있을 정도의 수준이면 충분하다.

스테레오 타입 등은 잘 알아야 하지 않느냐고? 처음엔 잘 몰라도 된다. "<<", ">>"가 붙은 기호는 스테레오 타입이라고만 아는 것으로 충분하다. UML이라는 것은 쓰다보면 이해가게 되어있는 아주 신기한 물건이다.

언제 다이어그램을 그려야 하는가?
UML은 도구일 뿐 그 자체가 목적이 되어서는 안된다. UML이 목적이 되는 경우도 물론 있긴 하다(대부분의 경우 UML이 목적이 되는 경우는 작성된 소프트웨어가 클라이언트 또는 감리에 의해 검수 받을 때뿐이다). UML을 남용하는 것은 소프트웨어 개발에 큰 걸림돌이 될 수 있다. 하지만 남용하지 말고 아껴서 사용한다면 큰 도움을 줄 수 있다. 예전의 ‘약 좋다고 남용 말고..."라는 표어는 UML에서 그대로 통한다.

다이어그램을 그려야 하는 경우 어떤 지침을 따르는 것이 좋을까? 모든 개발자들이 설계에서 특정한 부분의 구조를 이해해야 할 경우 다이어그램을 그리는 것이 좋다. 그림이 완벽할 필요는 없다. 모든 개발자들이 이해했다고 생각되면 그만 그리면 된다.

개발자들 간에 구조에 대한 분쟁이 일어날 경우 그림을 그리고 그림을 판독할 수 있는 중재자를 구할 때. UML 다이어그램은 아주 명확한 의미를 전달 할 수 있기 때문에 같은 생각이지만 다른 말을 통일시켜주는 역할을 할 수 있다. 새로운 아이디어를 떠올리고 그 아이디어를 주위 개발자 또는 상급자에게 칭찬받고 싶을 때 UML 다이어그램을 작성한다. 말로 떠드는 것보다 한번 보여주는 것이 200%의 효과를 발휘한다.

“백문이 불여일견”일 필요가 있을 때 UML 다이어그램을 작성한다. 그리고 마지막으로 클라이언트에게 ‘있어 보이는’ 문서를 보여줘야 할 필요가 있을 때 작성한다. 부차적인 설명이 없이도 다들 이해하리라 믿는다.@

============================================================
출처 : http://www.zdnet.co.kr/builder/dev/modeling/0,39031637,39134386,00.htm
신고

[UML 제대로 알기] ① 가능성·확장성 품고 등장한 UML 2.0

기타
UML 을 중심으로 소프트웨어 업계에서 벌어지는 경제적, 사회적 현상들을 알아보고 UML 2.0 발표 이후 소프트웨어 업계에 불어 닥칠파장에 대해 알아본다. 또한 UML 2.0에서 개발자들이 주목해야 하는 세부 내용도 간단히 검토해 보자.

UML 2.0의 실로 엄청난 중요성을 미리 알고 대비할 것인지, 뒷짐 지고 좀 더 지켜볼지는 이번 글을 보고 판단해 주기를 바란다.

필 자는 지난 2004년 마이크로소프트웨어 8월호에 MDA 관련 글을 기고하던 당시부터 지금까지 필자의 소속 회사가 지난 10여 년간 전문적으로 개발해 오던 인적 자원 관리(HRM) 시스템에 대한 획기적인(?) 개선 방안으로 MDA 기반의 시스템 개발을 추진하고 있다. 필자가 본격적으로 UML 2.0을 검토하기 시작한 것도 8월을 전후해서였다.

그러나 회사에서 표준으로 사용하는 모델링 도구 제작 업체에서는 4개월 전만 해도 UML 2.0을 지원하지 않았고, MDA 패러다임을 표방하면서도 아쉽게도 그 요체인 UML 2.0은 그저 각종 문서나 자료들을 통해서만 접할 수 있었다. 인사 비즈니스 프로세스 개선 작업(BPI)과 같은 초기 설계 작업은 UML 1.4 기반으로 추진해야 했고, 올 연말로 예정됐던 도구 공급사의 차기 버전을 기대해야 하는 상황이었다.

그러던 얼마 전, 필자는 해당 업체로부터 UML 2.0을 충실히 지원하게 된 새 버전의 케이스 도구를 입수했다. 비록 필자가 이미 여러 책이나 자료들을 통해 UML 2.0을 검토했었음에도, 막상 본격적으로 UML 2.0 지원 모델링 도구를 설치하고 작업을 착수하려던 그 순간의 첫 느낌을 말로 하자면 막막함 그 자체였다.

그 모델링 도구의 새로운 버전이 완전히 개편된 새로운 사용자 인터페이스로 구성됐으며 내부적으로도 상당한 기술적인 패러다임 전환이 있었던 것도 한 원인이었겠지만, 무엇보다도 근본적으로 UML 2.0이 내포한 그 가능성과 확장성에 대한 놀라움과 설렘이 교차하면서 만들어낸 미묘한 흥분과 두려움이었다는 것이 적절한 것 같다. 1620년 메이플라워호를 타고 미지의 땅 아메리카에 첫 발을 내디뎠던 이주민들의 마음이 이렇지 않았을까?

UML의 사회적 파장
UML 2.0 발표와 더불어 개발자들이 주목해야 하는 세부 내용을 살펴보기 전에 우선, UML을 중심으로 소프트웨어 업계에서 벌어지는 경제적, 사회적 현상들을 통해 향후 UML 2.0 발표 이후 소프트웨어 업계에 불어 닥칠 파장에 대해 미리 가늠해 보는 시간을 가져 보기로 하겠다.

IT 시장 변화에 주목하자
이 시대 소프트웨어 산업에 종사하는 사람이, 딴 세상에 사는 사람(beings in heaven)이 아닌 이상, 자본주의 시대를 살아가는 현대인으로서 공급과 수요를 결정하는 시장 논리로부터 자유로울 수는 없다.

우 리는 종종 뛰어난 기술력을 갖추고 있음에도 망하는 반면, 특별한 기술력을 가지고 있지 않음에도 번창하는 사람이나 기업을 종종 목격하곤 한다. 즉, 기술력이 곧 성공을 의미하지는 않는다. 마찬가지 논리로, UML 2.0이 아니라 그 어떤 뛰어난 기술이 존재한다 하더라도 IT 시장에서 그 기술력을 필요로 하지 않거나 수용할 수 없다면, 그 기술력의 시장 가치는 무의미할 수밖에 없다.

2000년을 전후해서 전세계적으로 Y2K 문제가 사회적 문제로 부각되고 시스템의 대공황 사태가 예고되던 시절, 아이러니컬하게도 당시 소프트웨어 산업에서는 사양길로 접어들었던 프로그래밍 언어의 전문가들이 국내의 IMF 사태와 맞물려 고액 연봉으로 대접 받으면서 해외로 진출했던 일이 기억난다. 역시 기술의 가치(technology value)는 시장 원리(market behavior)에 의해 결정될 수밖에 없음을 인정하지 않을 수 없다.

그런 관점에서 UML 2.0이 공식적으로 공표되는 전후의 소프트웨어 산업계 판도를 살펴보는 것은 의의가 있다. 세계적으로 이미 프로그램 개발 도구 시장은 그 성장세가 둔화됐고, 모델링 도구는 빠른 속도로 보편화되어 가고 있다. 지난 몇 년간 일어났던 IT 업계의 큰 사건들을 살펴보면 그러한 사실을 쉽게 확인할 수 있다.

이를테면 예전에는 비싸게 판매하던 개발 도구를 점차 저렴하게 행사 가격으로 판매한다거나, 개발자 저변 확산이라는 명목 하에 학교나 학원을 중심으로 무료로 배포하고 있다. 심지어는 이클립스 등과 같은 막강한 개발 도구를 오픈소스로서 인터넷을 통해 무료로 배포하고 있다.

몇 년 전 세계적인 소프트웨어 업체인 MS에서는 비지오(Visio)라는 2D 전용 도구 개발 업체를 인수했고, IBM은 세계적인 모델링 도구 전문 개발 업체인 래쇼날을 인수합병했으며, 연이어 볼랜드에서는 투게더를 사들였다. 한편, 국내외 UML 관련 포럼이나 협회들에서는 앞다퉈 UML 관련 인증 제도를 만들어 발표하면서 그 인지도를 넓혀 가기 위한 대대적인 작업을 벌이고 있다.

UML 인증 제도의 필요성이라든지, 인증 제도 자체의 신빙성이나 효용성에 대해 논하기 이전에, 어떠한 사상이나 개념이 제도화 되는 과정을 거치고 있다는 사실은 그 사상이나 개념이 해당 분야에서 도입기(intro)와 성장기(growth)를 거쳐 성숙기(mature)에 진입하고 있음을 암시하는 것이다.

표준화의 숨은 뜻
UML을 논하면서 표준화(standardization)라는 키워드를 빼놓을 수 없다. UML이 발표되기 전에 국방이나 MIS 분야 엔지니어들에게 친숙한 IDEF라든지 DFD, ER 혹은 Petri nets 등과 같은 정형 기법(formal method)으로 통칭되는 수많은 표기법(notation)과 지원 케이스 도구들이 존재했음에도 불구하고(참고자료: [1]번혹은 [2]번등), UML은 가장 단기간 동안 소프트웨어 공학 분야에서만큼은 빠른 속도로 사실상의 표준(de-facto)의 위치를 확보했다. 언뜻 생각해 보면 UML이 여타 표기법들을 교통정리해 준 안도감(?)이 들 수도 있겠지만, 겉으로 잘 드러나지 않는 그 내막에는 무서운 음모(?)가 도사리고 있다.

표준화 작업에 주도적인 역할을 수행하는 업체들이 왜 그토록 천문학적인 자본을 투자하면서 공개적인 표준화 작업에 동참하는 것일까? 여러 가지 복합적인 이유들이 있을 수 있겠지만, 결론적으로 표준화 경쟁이다.

유 명한 예로, 1970년대부터 시작됐던 빅터(Victor)의 VHS 방식과 소니의 베타 방식으로 대표되는 비디오 표준 전쟁을 들 수 있고, 최근에는 유럽과 미국을 중심으로 벌어지고 있는 위성방송 표준화 전쟁을 들 수 있다. 표준화 전쟁에서의 승패는 곧 기업의 운명을 좌우하는 것이다.

표준화의 이면에는 높은 진입 장벽을 통해 허가 받지 않은 침입자(intruder)를 봉쇄하려는 무서운 저의가 자리 잡고 있다. 시야를 좀 더 넓혀 보면, 의사나 판사, 회계사 등. 통속적인 표현으로 소위 ‘사’자로 끝나는 직업들에 대한 사회적 가치관을 살펴보면 쉽게 이해할 수 있다.

사람 몸을 열어서 칼질하고, 같은 인간으로서 다른 인간을 판단하고, 숫자 가지고 씨름하는 직업이 산업혁명 이전에는 별볼일 없는 직업이었다. 인류의 보편적인 가치관으로 판단하더라도 결코 즐거운 일이 될 수 없음에도 불구하고 전세계적으로 공히 가장 선호하는 직업이자 사회적으로도 가장 대접받는 직업이 된 현실에 미루어 짐작해 보면, 왜 그토록 세계적인 소프트웨어 업체들이 표준화를 통해 높은 진입 장벽을 구축하고 제도화에 전념하는지 그 이유를 충분히 이해할 수 있다.

어려운 시험을 통과하지 않고 누구라도 일정한 요건만 갖추면 수행할 수 있는 일반적인 직종 중의 하나라면 그렇게들 동경하는 직종이 됐겠는가? UML 2.0이 경제적으로나 사회적으로 주목 받는 이유 중의 하나는 바로 그러한 맥락에서 비전문인과 전문가를 구별하는 높은 장벽(?)을 쌓을 수 있는 재료(material)를 확보하고 토대를 마련했다는 점에서 의의가 있는 것이다.

주목해야 할 UML 2.0의 핵심 메커니즘
1997년 11월 UML 1.1로 시작된 OMG의 표준화 노력은 2001년 5월 UML 1.4 발표와 더불어 부분적인 개정 작업(minor version upgrade)의 막을 내리고, 대대적인 수술 작업을 거쳐 2004년 연말을 전후로 드디어 그 실체를 드러내었다.

그 동안 쟁쟁한 세계적인 소프트웨어 벤더들간의 보이지 않는 이해 관계(?)에 얽혀 2002년 말로 예정됐던 최종 발표 시한을 2년여를 연장하면서 이제서야 그 대단원의 막이 마무리되고 있다. 향후 UML 2.0의 일정은 명실상부한 국제 표준(de jure)으로 자리매김하기 위해 ISO 설계 표준으로 추진 중인 것으로 알려져 있다.

UML 2.0이 주목 받는 가장 중요한 이유는 무엇일까? 처음 세상에 나오고 나서는 여기저기서 수많은 비판을 받았지만, 그것은 UML이 어떠한 플랫폼이나 도메인에도 의존하지 않고 소프트웨어 개발의 전 공정(SDLC)을 지원하는 방향으로 지향해왔다는 데에 그 원인을 찾을 수 있다. 즉, 요구사항 획득으로부터 마지막 테스트까지 모두 지원하는 표기법으로서 진화해 왔다는 것이다.

그리고 점진적으로 UML 2.0부터는 실행 모델(executable UML)이라는 기법을 수용함으로써, 소프트웨어 공학에서 궁극적으로 염원하던 분석 설계(analysis & design)와 실제 구현(implementation) 간의 차이(chasm)를 극복하는 성과를 보였기 때문이다.

OMG의 UML 2.0에 대한 제안요청서(RFP)의 주제이자 현재 채택된 명세서 초안은 크게 4가지의 영역으로 분류된다. CASE 도구 벤더들간의 모델 호환성 문제를 다루고 있는 다이어그램 호환(Diagram Interchange) 영역과 모델 수준에서의 요소(elements) 제어 및 제약 문제를 다루고 있는 OCL(Object Constraint Language) 영역, UML뿐만 아니라 OMG가 주관하는 각종 표준의 통합과 정의에 활용되는 메타 모델 수준의 기본 구조체(constructs)를 명시하고 있는 하부구조(Infrastructure), 그리고 메타 모델을 기반으로 사용자 수준에서 모델을 활용하여 시스템의 구조(structure)와 행위(behavior)를 정의하고 있는 14개의 다이어그램을 정의하고 있는 상부구조(Superstructure)로 분류할 수 있다.

UML 2.0의 본질을 제대로 이해하려면 핵심인 하부구조로부터 차근차근 살펴보는 것이 순서이겠지만, 지면과 주제를 고려할 때, 일반인들이나 설계자들이 UML 2.0을 처음 대면하는 경우 가장 먼저 관심을 가지게 되는 UML 구조체(user-level constructs)인 상부구조로부터 이야기를 풀어가는 방식을 택하기로 하겠다.
<그림 1> UML 2.0 표준 다이어그램
*빨간 밑줄: 새롭게 추가된 다이어그램, 녹색 밑줄: 명칭이 변경된 다이어그램

상 부 구조는 크게 6개의 다이어그램으로 구성된 구조형 다이어그램(Structural Diagram)군과 7~8개의 다이어그램으로 구성된 행위형 다이어그램(Behavioral Diagram) 군으로 분류할 수 있는데, 각 군의 대표적인 복합 구조 다이어그램(Composite Structure Diagram)과 순차도(Sequence Diagram)를 중심으로 그 특징과 의의를 살펴보도록 하겠다.

이어서 UML 2.0의 기반을 설명하고 있는 하부구조의 의미는 무엇인지, 그리고 실제 설계 작업에서 하부구조의 접근법은 어떠한 방식으로 활용하게 될 것인지 논의하기로 하겠다.

상부구조 - 구조형 다이어그램
일 명 아키텍처 다이어그램(architectural diagram)이라고도 불리는 복합 구조 다이어그램(composite structure diagram)은 UML의 핵심 다이어그램인 클래스 다이어그램의 변형된 형태이다. 이는 시스템 구조 설계에 있어 또 다른 핵심 축으로 평가 받고 있으며 가장 주목 받는 다이어그램 중의 하나이다.

복합 구조 다이어그램은 기본적으로 시스템 혹은 컴포넌트의 내부 구조(internal structure)를 명시적으로 중첩시켜 표현하고 있으며, 시스템 아키텍처의 보다 섬세한 분석과 설계 사상을 담을 수 있게 된 점이 가장 큰 매력으로 꼽을 수 있다.

그렇다면 왜 복합 구조 다이어그램이 주목받는지, 그리고 복합 구조 다이어그램은 왜 탄생하게 되었으며, 향후 어떠한 용도로 활용하게 될까? 보는 시각에 따라 의견을 달리 할 수 있겠지만, UML 1.x은 근본적으로 OOAD 수준의 설계 사상을 표현하기에 최적화된 표기법으로 평가되어 왔다.

UML 1.x에도 비록 컴포넌트 다이어그램이라는 것이 있기는 했지만, 실제 너무 빈약한 문맥(semantics)으로 인해 별로 활용되지 못했으며, 강경한 컴포넌트 신봉자들이나 대용량 시스템 혹은 전체 시스템을 통합적으로 표현하기 원했던 아키텍처 전문가 진영 개발자들에게는, 그저 객체 옹호론자들이 제시하는 옹색한 명분(?)에 지나지 않았다. 사실 UML 1.x 자체에도 명시하고 있듯이, 컴포넌트 다이어그램은 몇몇 다이어그램들과 더불어 클래스 다이어그램에 일종의 간단한 확장 메커니즘을 통한 단순한 관점(view) 변경 수준에 지나지 않았다.

비즈니스 컴포넌트에 관심이 많았던 컴포넌트 신봉자들의 경우, UML 1.x의 스테레오타입(stereotype)등의 확장 메커니즘을 통해 그럭저럭 UML 1.x과의 관계를 유지하면서도 BPM이라는 포괄적이고 확장된 별도의 비즈니스 컴포넌트 표기법을 병행하며 UML 1.x의 미비한 부분을 채워 나갔다.

아키텍처 전문가 진영에서는 상황이 조금 달랐는데, 대다수의 아키텍처 전문가 진영에서 관심을 가지고 있던 임베디드 혹은 리얼타임 도메인에서는 단순히 UML 1.x 정도의 확장 메커니즘으로는 그들이 필요로 하는 아키텍처를 통한 시뮬레이션 등과 같은 시스템의 섬세한 분석 및 설계라는 목적 달성이 거의 불가능했고, 그러한 목적 달성을 위해 UML의 확장 메커니즘을 활용한다는 것은 차라리 자신들만의 특정 영역에 필요한 표기법을 자체 정의하여 사용하는 것이 훨씬 경제적이었다는 것이다.

왜냐하면 이미 아키텍처 전문가 진영에서는 UML 1.x가 발표되기 이전에 광범위하게 수많은 ADL(Architectural Description Language)과 관련 시뮬레이션 도구들이 개발되어 활용되고 있었으며, 굳이 UML에 순응하는(compliant) 방안을 모색하기 위해 UML을 연구하고 고민할 시간적 여유나 명분이 없었던 것이다.

그 러나 그러한 두 진영에서 근본적으로 해결하지 못한 결정적인 문제는 자신들이 독자적으로 발전시켰던 표기법 중에 어떠한 것도 명실상부한 사실 표준(de-facto)으로 합의하지 못했다는 것이다. 가령, 아키텍처 전문가 진영에서 필요로 하는 시스템 시뮬레이션 기능을 구현하는 데 사용하는 정형 기법의 경우 동일한 도메인에서조차 연구소나 익숙한 기법에 따라 서로 달리 정의하고 필요한 시뮬레이션 도구를 개발해야 했다.

국제적인 공동 작업은 말할 것도 없이 국내에서 서로 다른 연구기관이 공동 작업을 수행하기 위해서도 사전에 일정한 표준 정형 기법을 합의하고 정립한 후 과제를 수행해야 했으며, 최종적으로 통합하는 과정에서는 결국에 모델 수준에서의 통합을 포기하고 구현 수준에서 테스트를 통해 통합하는 방식을 따라야 하는 문제점을 내포하고 있었다.

덧붙여 두 진영에서 해결하지 못한 결정적인 문제 중의 하나는 실제 구현(code)에 필요한 낮은 추상화 수준의 설계에 대해서만큼은 어설픈 UML 1.x의 메커니즘만한 수준의 방안을 제시하지 못했다는 것이다.

UML 2.0에서 새롭게 등장한 복합 구조 다이어그램은 바로 지금까지 앞서 살펴 본 아키텍처 전문가 진영으로 대표되는 임베디드 혹은 리얼타임 도메인의 핵심 개념이자 도구였던 SDL(Specification Description Language)을 수용하여 탄생한 다이어그램이다.
<그림 2> UML 2.0 복합 구조 다이어그램 예

UML 을 잠시라도 살펴 본 경험이 있는 개발자들이라면, 복합 구조 다이어그램의 개략적인 형태만을 보고서도 쉽게 그 특징을 이해할 수 있을 것이다. 즉, 복합 구조 다이어그램은 매우 직관적인 형태를 취하고 있으며, 기존의 UML 1.x에서 단순한 패키지 개념의 서브시스템 내부를 구성하고 있는 클래스 다이어그램으로만 표현이 가능하던 시스템 내부 구조를 보다 섬세하게 설계할 수 있게 됐다.

그 렇다고 <그림 2>와 같이 대부분의 UML 2.0을 기반으로 한 샘플들처럼 임베디드나 리얼타임 도메인과 같이 상대적으로 소프트웨어의 비중이 작은 단위 시스템이나, 특정 MIS 분야의 단위 서브시스템의 내부 설계에만 국한되어 복합 구조 다이어그램을 활용하겠다고 생각한다면, UML 2.0의 본질을 제대로 이해하지 못하고 있는 것이다.

복합 구조 다이어그램의 형태는 앞서 언급한 아키텍처 전문가 진영에서 아키텍처를 표기하는데 가장 많이 활용하는 아키텍처 스타일인 C&C(Component & Connector) 뷰 타입(view type)과도 일맥상통하는데, 복합 구조 다이어그램을 활용하고자 하는 모델의 추상 수준을 높이면 대규모 시스템의 아키텍처도 매우 유용하게 설계할 수 있게 된다.

< 그림 2>에서 벤딩머신(VendingMachine)으로 되어 있는 부분을 인사시스템이라 정의하고 내부 부분(parts)들을 그것을 구성하고 있는 단위 시스템으로 정의하게 되면, 외부 인터페이스를 통해 회계시스템(AS)이나 고객관리시스템(CRM) 등과 주고받아야 할 데이터나 정보를 명시적으로 설계에 반영할 수 있을 것이다.

바로 설계자가 의도하는 어떠한 추상화 수준의 모델이라도 UML 2.0의 복합 구조 다이어그램은 보다 섬세하게 설계할 수 있도록 일관된 문맥(context)과 의미(semantics)를 제공하고 있는 것이다.

상부구조 - 행위형 다이어그램
UML 2.0 상부구조 중 구조형 다이어그램은 말 그대로 구조적인 혁명을 꾀했다면, 행위형 다이어그램 군에서는 시스템의 동적 설계를 제대로 반영하기 위해 기존의 행위형 다이어그램 군 소속 다이어그램의 의미(semantics)를 보강하고 정제함으로써, 진화 방식을 선택했다는 표현이 적절할 것 같다.

그 근거로서 앞서 복합 구조 다이어그램으로 대표되는 구조형 다이어그램에서 수용한 SDL의 경우와는 다르게 UML 1.x에서 이미 수용하던 MSC(Message Sequence Chart) 개념을 UML 2.0에 와서는 전폭적으로 수용하여 순차도(Sequence Diagram)를 중심으로 행위형 다이어그램들의 유기적 결합 통로를 확보함으로써 시스템의 모델 수준에서의 논리적인 실행을 그대로 설계에 반영할 수 있는 발판을 마련했다.

<그림 3> UML 2.0 순차도의 예

< 그림 3>에서 보는 바와 같이 UML 2.0 순차도의 가장 두드러진 특징은, 기존의 UML 1.x에서 지원하지 못했던 시스템의 분기, 참조, 병렬 실행 등과 같은 세세한 부분들까지도 지원이 가능하도록 중첩된(nested) 표기법 체계를 설계 기법으로 도입했다는 사실이다.

MSC와 같은 기법에 익숙한 개발자들에게는 언뜻 보기에 별로 특이할 것이 없어 보일지 모르지만, 중요한 사실은 UML 2.0을 표준 표기법으로 수용함으로써 어떠한 비즈니스 도메인이나 기술 영역에서도 <그림 3>의 순차도 뿐만 아니라 UML 2.0의 다른 다이어그램들과 유기적인 연결고리를 가지고 활용함으로써 거의 무한대에 가까운 표현 수단을 확보할 수 있다는 사실이다.

UML 2.0 상부구조 중 행위형 다이어그램의 갱신에 대해 많은 관심을 가지는 사람은 임베디드 혹은 리얼타임 진영에 종사하고 있는 개발자들이겠지만, 기존의 비즈니스 프로세스 모델링 분야에서 종사하던 개발자 진영도 깊은 관심과 기대를 가지고 있다.

필자 또한 비즈니스 프로세스 모델링과 관련하여 행위 형 다이어그램의 특성과 최적 방안을 모색하고 있는데, 동일 비즈니스 도메인에서조차 개별 기업마다 그 특성과 비즈니스 프로세스 처리 방식이 천차만별인 문제를 해결하고자 등장했던 워크플로우 엔진 혹은 설계 시스템(workflow engine or system)과 같은 전문적인 도구의 기능을 충분히 대치할 방안이 마련된 것으로 평가되고 있다.

하부구조 - 메타 모델
소 프트웨어 공학 분야에서는 이런 속설이 있다. 자신의 분야에서 메타 모델 기반의 접근을 하게 되면 하나의 논문이 된다. 매일 고객들과 씨름하면서 현장에서 일하는 개발자들에게는 먼 나라 이야기처럼 들리고, 현실적으로는 일정 규모의 연구소 혹은 학교에서나 다루어질 만한 주제로 치부됐던 것이 사실이다.

UML 2.0 하부구조(Infrastructure)는 일반적으로 UML 2.0을 지칭할 때 생각하는 UML 2.0 상부구조뿐만 아니라 OMG의 또 다른 메타 모델 집합인 MOF, CWM 뿐만 아니라 미래의 새로운 표준을 정의하기 위해 심혈을 기울여 정의한 메타 모델이다.

OMG에서 처음 메타 모델 4계층 개념을 발표했을 때에는 그저 개념적인 내용으로만 인식하지 못했지만, UML 2.0의 실체가 드러나고 그것을 지원하는 케이스 도구들의 기능들이 메타 모델 기반 설계 방식을 지원함으로써, 이제는 메타 모델이라는 주제가 현장에서조차 피해갈 수 없는 현실 문제로 다가올 것이다. 그러므로 이제는 메타 모델 4계층 개념을 충분히 이해하고 응용하는 노력을 기울일 필요가 있다.

<그림 4> OMG 4계층 메타 모델 예

글 의 주제와 지면 관계상 메타 모델에 대한 깊이 있는 논의를 하지는 못하지만, <그림 4>의 예로 간단히 살펴보자. 시스템 분석가나 설계자들이 일반적인 모델링 케이스 도구를 통해 특정 도메인 시스템을 설계한다고 했을 때의 메타 모델 수준(level)이 바로 사용자 모델을 도식하게 되는 M1 수준이다.

M2 수준은 그러한 UML 기반의 설계를 가능케 하는 어트리뷰트, 클래스, 인스턴스 등과 같은 모델 요소를 정의하는 메타 모델이며, UML 2.0의 하부구조는 바로 위 4계층 메타 모델 관점에서 M2 수준의 UML 메타 모델이 된다. M3 수준에 위치한 MOF(Meta Object Facility)는 M2 수준에 속한 메타 모델을 정의하는 메타메타 모델이 된다.

참고로 CWM(Common Warehouse Metamodel)은 M2 레벨이며, MOF의 내부 구조는 추상화된 UML 하부구조와 동일한 방식으로 정의하고 있다. 자세한 사항은 OMG UML 2.0 Infrastructure, 7. Language Architecture를 참조한다.

앞 에서 살펴 본 바와 같이 OMG에서 UML 2.0 관련 제안요청서(RFP)를 제기한 목적은 단순히 UML 2.0을 체계적으로 정리하고자 한 것이 아니라, OMG의 또 다른 표준인 MOF와 CWM 및 미래의 새로운 표준을 체계적으로 정의하기 위한 용도로 제기됐던 것이다. 여기서 우리가 주목해야 할 사항은 UML 2.0 하부구조에 대한 제안요청서를 통해 제기한 또 다른 목적이다.

그 것은 바로 지금까지 M1 수준에서 UML을 활용하던 사용자들이 보다 수월하게 M2 수준에서 UML을 커스터마이징하여 활용할 수 있는 메커니즘을 제공하는, 즉 이원화된 메커니즘을 제공하여 사용자들이 유연하게 특정 기술 도메인이나 비즈니스 도메인에 최적화된 방식으로 설계를 수행할 수 있도록 하자는 데 그 취지가 있었다.

그 핵심이 바로 UML 프로파일(UML Profiles)이다. 지금 UML 2.0 작업과 동시에 진행되고 있는 대표적인 기술 도메인 프로파일로는 우리들에게 친숙한 EJB 프로파일(Profile for EJB), 닷넷 프로파일(Profile for .Net)을 들 수 있다. 프로파일을 간단히 설명하면, 일종의 특정 기술이나 비즈니스에 적절한 커스터마이징된 확장 메커니즘을 사전 정의해 놓고, 추상화 수준이 서로 다른 모델들간의 전환(transformation)을 자동화시키는 핵심 메커니즘이다.

플랫폼 독립 모델(PIM: Platform Independent Model)로부터 특정 플랫폼 종속 모델(PSM: Platform Specific Model)로의 자동화된 전환이라는 MDA의 사상이 바로 대표적인 일례라고 볼 수 있다. UML 프로파일은 향후 MDA를 통해서 달성하려고 하는, 아니 궁극적으로 UML 2.0을 통해 달성하게 될 소프트웨어 공학의 핵심 화두인 소프트웨어 개발 생산성 향상의 핵심 메커니즘으로 평가 받고 있다.

만약 이 글을 읽는 개발자가 속한 관련 분야에 MIS 분산 시스템 개발의 사실 표준으로 통용되는 J2EE나 닷넷 등과 같은 개발 기술 표준 프레임워크가 존재한다면 다행스러운 일이다. 모델링 도구 벤더에서 제공하는 EJB 프로파일이나 닷넷 프로파일과 같은 기술 메타 모델은 그대로 활용하고, 관심 비즈니스 영역에 해당하는 표준 도메인 프로파일을 활용하거나, 독자적으로 정의해 설계 작업을 추진해 나갈 수 있기 때문이다.

하지만 최악의 경우 관련 분야에 기술이나 도메인 프로파일이 존재하지 않고, 더욱이 활용할 만한 케이스 도구조차 존재하지 않는다면 난감하다. 하지만 UML 2.0을 충분히 지원하는 범용 혹은 상용 케이스 도구를 통해 구현된 방식이나 기능을 살펴보면 놀랄 만큼 간결하다. 문제는 UML 2.0의 프로파일 방식과 같은 메커니즘을 이해하는 것이 아니라, 그 동안 개발자들이 간과해 왔던 문제, 가령 “해당 비즈니스 도메인을 제대로 이해하고 있었는가?” 등과 같은 근본적인 문제를 되돌아보는 계기가 될 것으로 생각된다.

어떻게 대처할 것인가
지 금까지 UML 2.0 출시를 전후해서 전개되어 왔던 소프트웨어 산업계의 전반적인 흐름과 사회적 파장, 그리고 UML 2.0의 상부 및 하부구조의 핵심 메커니즘을 중심으로 간단히 살펴보았다. 그렇다면 과연 어디서부터 어떻게 UML 2.0을 시작할 것인가?

기본 원칙에 충실하자
우 선 스스로에게 UML 1.4는 제대로 이해하고 활용해 왔는가라는 질문을 던져 보아야 한다. 필자의 경우 하는 일이 하는 일인만큼 UML 2.0이 발표되기 이전에도 자바나 비주얼 베이직 등과 같은 프로그래밍 용어나 주제에 비해 상대적으로 UML(1.x), OOAD, CBD, 방법론 등이라는 용어가 훨씬 낯설지 않았다.

당연히 주변에는 상대적으로 코딩보다는 현장에서 분석(analysis)이나 설계(design)를 전문으로 하거나, 학교나 학원 등에서 학생들을 가르치는 사람들이 많았지만 그 중에 UML 1.x 관련된 OMG 무료 명세를 제대로 살펴보았거나, 가까이 두면서 참조하는 사람은 찾아보기 어려웠다.

필 자 가까이에 ‘UML 1.4 사용자 지침서’를 한글로 번역했던 분을 통해 확인해 보아도, 국내 출판사에서 출간한 책 부수로 미루어 UML 원문은 차치하고서라도 핵심 내용만을 추려서 발간한 그 UML 사용자 지침서마저 꼼꼼히 살펴 본 사람은 별로 보지 못한 것 같다. 필자도 예외는 아닌데, 돈이 없어서 혹은 원서이기 때문에라는 것은 이유가 되지 않았던 것이다.

그런데 UML 2.0이 공식 발표되는 이 시점에도 상황은 예전이나 별반 다르지 않은 것 같다. UML 2.0으로 공식 공표되기 전에 이미 오래 전부터 OMG에는 UML 관련 명세를 1.5의 형태로 인터넷에 배포하고 있었지만, 살펴본 사람은 찾기 어려웠다. UML 1.1이 처음 발표되던 시점에는 표기법으로서의 표준화 경쟁에서 판정승이 나지 않았던 때여서 그랬다고 하더라도, UML 2.0이 공표되는 이 시점에는 이미 국내외 많은 대학의 컴퓨터 관련학과에서 필수 과목으로 개설되었을 만큼 그 중요도와 필요성이 검증된 마당에 애써 그 사실을 외면하는 것은 더 이상 이유가 될 수 없다.

물론 지금까지의 현실은 그렇지 못했던 것이 사실이다. UML 전문가들마저도 UML 1.x의 설계 도구로서의 완성도가 받쳐주지 못했고, 무엇보다도 고객들도 유기적으로 논리적인 설계 모델을 기대하지 않았기 때문에 UML이라는 포장지를 가지고 피상적이고 개념적으로 대충 구색 맞추기식 설계 산출물을 만들어 주면 그만이었다.

그러나 앞으로의 상황은 그렇지 못할 것이다. 당장은 아니겠지만 UML 2.0 표기법이 소프트웨어 산업 시장에서 보편적으로 활용되고 국내외에서 하나 둘 그 무한한 잠재력과 가능성이 증명되어 그 시장 가치가 확연히 드러나기 시작하는 시점에는 우리 주변의 고객들 또한 단순히 보기 좋은 산출물 정도의 설계를 요구하지는 않을 것이다.

그 렇다면 어디서부터 어떻게 준비해야 할 것인가? 그 실마리는 처음 접하면 이해하기 어렵고 복잡한 UML 2.0 관련 명세나 두꺼운 책에서 찾을 것이 아니고, 누구나 알고 있으면서도 충실하지 못했던 가장 기본적이고 원칙적인 원리를 고민하는 것부터 시작해야 한다.

원칙 하나, 도메인을 철저하게 분석하자
시 스템을 설계한다고 했을 때, UML과 같은 설계 기법을 동원하여 작업하는 시스템 분석 및 설계자 그룹 외에 매우 중요한 역할을 수행하는 집단이나 개인을 가리켜 도메인 전문가 혹은 비즈니스 분석가라고 한다. 가장 이상적인 시스템 설계자는 두 가지 능력 즉, 해당 도메인에 대한 공인된 전문적인 지식을 가지고 있으면서 동시에 설계 능력을 고루 갖춘 인재일 것이다.

그러나 현장에서 그런 핵심 인재를 찾기는 어려운 것이 사실이다. IT 업계로만 보더라도 시스템 설계자와 개발자 간에 차이가 좀처럼 좁혀지지 않는데, 전혀 그 분야와 전공이 다른 비즈니스 전문가와 시스템 전문가 간에 느끼는 갈등은 말할 필요도 없다. 시스템을 설계해 본 사람은 누구라도 공감하겠지만, 시스템을 제대로 설계하려면 해당 도메인을 충분히 이해하고 철저하게 분석해야 한다. 그렇지 않으면 제대로 된 시스템을 설계할 수 없다.

시스템 설계자 입장에서 문제는 해당 도메인을 제대로 이해하기 위한 충분한 시간도 주어지지 않고, 나름대로 시스템 설계자가 충분히 이해한 것을 객관적으로 검증해 줄 만한 기준도 마련되어 있지 않다는 것이다. 설사 객관적 기준이 있더라도 그것은 현실적으로 거의 불가능하다는 것이다.

가령 회계 시스템을 설계하려면 회계사 자격증을 갖춰야 하는가? 물론 아니다. 그런데 우리는 주변에서 타의든 자의든 특정 도메인 시스템을 반복해서 설계하는 설계자의 경우 점점 해당 도메인에 대한 이해력이 높아지고, 회계사와 같은 공인된 자격증은 취득하지 못하더라도 나름대로 그 전문성을 인정받아 시장에서 높이 평가되는 경우를 보곤 한다.

비단 시스템 설계자에게만 해당되는 문제는 아니다. 조각조각 할당된 부분만 열심히 해야 하는 개발자에게도 비슷한 현상은 쉽게 찾아 볼 수 있다.

설 계하고자 하는 해당 도메인에 대한 철저한 분석 없이는 일정한 추상화 수준을 유지한 유기적인 모델을 만들어 낼 수가 없다. 몇몇 책이나 발표 자료에서 설계 팁으로 이야기 하듯이 해당 도메인에서 반복적으로 등장하는 명사(nouns)를 클래스명으로 명명한다는 식으로 설계를 진행하다 보면 점점 헤어나지 못하는 미궁으로 빠져들게 된다. 결국에는 UML 2.0이라는 강력한 설계 도구를 가지고도 설계 따로, 코딩 따로라는 늪에서 벗어날 수 없다.

UML 표준화를 주도하는 OMG에 대해서 많은 사람들은 단순히 CORBA, ORB 등과 관련한 국제적인 기술 표준화 단체 정도로만 인식하고 있다. 하지만 앞서 주장한 도메인 지식 혹은 도메인 표준에 대한 중요성에 대해서는, 그러한 기술 표준화 단체로 출범한 OMG에서 2002부터 발족하여 추진하고 있는 DTF(Domain Task Forces) 위원회의 활동을 살펴보면 쉽게 이해할 수 있다.

이미 전략전술 통제(C4I), 재무(finance), 의료(healthcare), 제조(manufacturing), 우주항공(space), 통신(telecommunications), 운송(transportation) 등의 도메인을 필두로 그 표준화 작업을 진행 중에 있으며, 여러 표준화 단체들과 연합하여 다른 도메인으로까지 표준화 작업을 확장 중에 있다.

물론 아직까지 그 시도는 기술적인 관점에서의 접근이라는 한계를 크게 뛰어 넘고 있지는 못하지만 인터넷, 즉 IT 기술을 배제한 고전적 의미의 비즈니스는 점차 그 경쟁력을 잃어 가고 있는 현실을 생각할 때 OMG의 영향력은 쉽게 무시할 수 없는 것이 될 것이다.

원칙 둘, 모델의 추상 수준
사 전적 의미로도 알 수 있듯이 모델은 본질적으로 어떤 특정 사물이나 현상에 비해 상대적으로 추상화되어 있는 무엇이기 때문에 똑같은 실체에 대한 서로 다른 모델은 서로 다른 추상화 수준(level of abstraction)을 가질 수밖에 없다.

<그림 5> 모델의 서로 다른 추상화 수준

< 그림 5>를 보면 똑같은 자동차를 모델로 만든 것이지만, 상단의 자동차 그림(혹은 모델)은 추상화 수준이 높고 하단의 자동차는 추상화 수준이 낮다. 여기서 중요한 것은 추상화 수준의 높고 낮음은 상대적이라는 것이다. 우리가 UML에서 제시하는 여러 다이어그램을 가지고 모델을 제작한다는 것은 결국 목표하는 자동차나 건물 등과 마찬가지의 실체 즉, 특정 시스템 하나를 완성하기 위한 노력인 것이다.

즉, 설계 작업을 수행한다는 UML 1.4의 표기법을 동원하든 UML 2.0의 표기법을 동원하든 아니면 제3의 표기법을 활용하든 목표하는 시스템을 완성하기 위한 과정이지 다이어그램 혹은 표기법 자체가 목적이 되지는 않는다는 것이다. 이러한 똑같은 모델의 원리를 UML의 다이어그램을 가지고 설명할 수 있다. <그림 5>는 UML 1.4에서 제시하는 9개의 표준 다이어그램의 추상화 수준을 계량화하는 방안으로 방사형의 표로 도식해 본 것이다.

<그림 6> UML 1.4 다이어그램 추상화 분포

< 그림 6>의 중앙에 위치한 지점을 설계자가 목적하는 목표 시스템의 코드 혹은 운영(run-time) 시스템이라고 한다면, 유스케이스 축에서 0.8으로 표시된 지점 정도의 추상화 수준으로 유스케이스를 작성한 것을 비즈니스 유스케이스라 할 수 있겠고, 0.4 정도의 지점 추상화 수준으로 작성한 것을 시스템 유스케이스라고 할 수 있을 것이다. 그렇게 가정해 본다면, 중앙에 가까운 지점의 추상화 수준으로 낮게 모델을 작성한다면 설계자가 목적하는 시스템은 보다 세세하게(detailed) 보이게 될 것이다.

유럽의 모든 길이 로마로 향하듯이, 어떠한 길(다이어그램)을 선택하더라도 종국에는 목적지(목표 시스템)에 도달할 수 있다. 하지만 각 다이어그램은 각자 목표하는 시스템으로 접근할 수 있는 추상화 수준의 한계를 가지고 있다.

가 령, 유스케이스 다이어그램만을 가지고 시스템 설계를 완성할 수는 없는 것이다. 반면에, 클래스 다이어그램만 가지고 시스템 설계에 접근하다 보면 나무는 보고 숲을 보지 못하는 우를 범할 수 있다. 그러한 이유로 소프트웨어 설계에서 UML을 활용하여 목표 시스템을 설계할 때는 하나 이상의 다이어그램을 활용하게 된다.

대표적으로 많이 활용되는 다이어그램으로는 유스케이스, 클래스, 시퀀스 등을 들 수 있을 것이다. 문제는 여기서부터 시작 된다. 시스템 설계에 대표적인 3개의 다이어그램을 활용하든 아니면 9개의 다이어그램을 모두 활용하든 활용하는 다이어그램들이 각자 따로 존재하게 되는 것이다.

유스케이스 다이어그램 따로 클래스 다이어그램 따로 심지어는 동일한 시스템에 대한 유스케이스 다이어그램을 그리더라도 그리는 사람에 따라 서로 다른 추상화 수준(level of abstraction) 혹은 입도(granularity)의 유스케이스가 작성된다는 것이다. 이건 비즈니스 유스케이스니 이건 시스템 유스케이스니 하면서 무의미한 논쟁으로 치닫게 된다.

이러한 문제를 본질적으로 해결책하기 위해서는 그것이 UML 1.4이든 UML 2.0이든 각 다이어그램의 주된 용도(usage)와 목적(objectives), 그리고 그 한계를 충분히 이해하고, 각 다이어그램이 그러한 용도와 목적을 충족시키기 위해 제시하는 특성 표기법의 명확한 의미와 용도를 숙지해야 한다. 그 후에 활용하려는 다이어그램의 핵심 표기들 간의 추상화 수준에 대해 일관된 원칙(principle)을 우선 정립하고 설계 작업을 수행해야 한다.

가령 이러한 원칙 수립이 가능하다. 유스케이스 다이어그램을 통해 작성한 하나의 유스케이스를 하나의 활동도(Activity Diagram)로 도식하기로 했다면, 활동도의 활동(Activity)은 유스케이스 시나리오로 작성하는 사건 흐름(flow of event) 상의 단일 스텝(step)이라는 원칙을 설정하게 되면 일관된 설계 작업을 수행할 수 있다. 그러한 설계 전략을 위 <그림 6> 위에 상징적으로 표현해 보면, <그림 7>과 같이 도식할 수 있을 것이다.

<그림 7> 다이어그램 간의 추상화 수준 조정

지 금까지 UML 1.4를 중심으로 모델의 추상 수준이라는 원리에 대해 살펴보았다. 그러한 모델의 추상 수준이라는 핵심 메커니즘은 본질적으로 UML 2.0이라고 해서 다르지 않다. 앞선 <그림 1>과 <그림 7>을 언뜻 비교해 보아도 UML 2.0에서는 표준 다이어그램의 개수로도 UML 1.4에 비해 수적으로 많이 늘어났으며(<그림 4>에서 빨간색으로 표시된 다이어그램), 이전부터 있었던 몇몇 다이어그램들은 명칭이 변경됐고(<그림 4>에서 초록색으로 표시된 다이어그램), 무엇보다도 전반적으로 모든 다이어그램들이 보다 섬세한 설계자의 의도를 반영할 수 있도록 세부적인 표기들이 많이 추가되고 세분화됐다. 즉, 사용할 수 있는 다이어그램 선택의 폭(width)이 넓어졌고, 설계자의 의도를 보다 정밀하게 반영할 수 있는 깊이(depth)도 깊어졌다.

원칙 셋, 모델 자체의 완성도를 높이자
앞 서 소프트웨어 업계에서 최근 발생하고 있는 현상들을 통해 잠시 언급했지만, UML 관련 국내외 포럼이나 협회들을 중심으로 UML 자체 혹은 설계 능력 인증 제도가 점차 많아지고 있다. 필자가 인증 제도의 본질적인 목적이나 그 가치 자체를 부정하는 것은 아니지만, 올해 사회적으로 충격을 던져 주었던 대입 수능 시험에서의 대량 부정 사태라든지, 얼마 전부터 공공연하게 제기됐던 영어 관련 인증 제도 등에서 발생하고 있는 문제점 등에 비추어 UML 인증 제도에서도 충분히 발생할 수 있는 그 변별력 문제에 대해 우려를 감출 수 없다.

그러나 다행히도 UML 2.0이 가지고 있는 그 강력한 표현력(semantic expressiveness)과 섬세함(elements precision) 그리고 다이어그램들간의 유기적 연결성 지원(support for diagram interchange) 능력으로 인해 인증서를 가지고 있다고 들먹이지 않아도 모델 결과물 자체로 그 완성도를 검증(self verification)할 수 있다. 즉, 모델 결과물만으로도 충분히 설계자의모델링 역량을 충분히 증명할 수 있는기반을 제공하고 있는 것이다.

UML 2.0이 공식으로 발표되기 이전 특정 케이스 도구들을 중심으로 시도됐지만 UML 1.4의 제약으로 그 실효성(efficiency)을 의심받았던 코드 자동 생성(automatic code generation) 기능은 케이스 도구들이UML 2.0 엔진으로 교체함으로써 그 완성도를 높일 수 있게 됐다. 더 나아가 UML 2.0이 내포한 그 풍부한 표현력과 정교함은, 특정 플랫폼에 종속적인 코드를 생성해 내기 이전에 케이스 도구의 도움을 통해 모델들만을 가지고 사전에 시뮬레이션마저도 어려운 문제가 되지 않는다.

앞으로의 전망
지 금까지 개발자들은 새로운 기술이나 제품이 출시되면, 여기저기서 화려한 수식어와 찬사로 밝은 미래를 전망하는 이야기에 너무나도 익숙해져 있다. 1997년 UML 1.1이 처음 세상에 나왔을 때도 마찬가지였다. 그런 맥락에서 단순히 UML 2.0이라는 새로운 패러다임에 무조건 주목하자고 주장하고 싶지는 않다. 실리에 밝은 국내외 소프트웨어 업체들과 협회들의 행보와 여러 가지 상황을 종합해 보아도 UML 2.0이 소프트웨어 산업계에 미칠 파장의 크기는 실로 엄청날 것으로 예상된다.

그것이 더 이상 거스를 수 없는 현실이라면 그러한 도전에 수동적으로 대처할 것인가, 아니면 능동적으로 대처할 것인가의 문제는 독자 스스로 선택할 문제이다. 혹시 이솝 우화에 나오는 거짓말하는 늑대 이야기에서처럼 중요하다는 말을 너무 자주 들어 개발자들이 UML의 중요성을 공허한 메아리 정도로만 치부하고 지나칠까 걱정될 뿐이다.@
=============================
출처 : http://www.zdnet.co.kr/builder/dev/modeling/0,39031637,39134178,00.htm
신고

RF 용어 정의

기타
*AC (Alternating Current ; 교류)
흐름방향이나 크기가 시간에 따라 변화하는 전원.
즉 주파수를 가지고 전압/전류가 변화(진동)하는 전원을 의미한다.
결국 sine 파형의 형상으로 전압이나 전류가 변화하면서 흐르게 된다.
이러한 sine 파형의 밀집도를 frequency라고 하며, 1초당 몇번의 sine파 진동이 일어나는가를 나타낸다. 단위는 전자파의 존재를 증명한 헤르쯔의 이름을 따서 Hz를 사용한다.


*ACLR (Adjacent Channel Leakage Ratio; 인접채널누설비)
ACPR과 같이 전력증폭기의 선형성을 나타내는 지표로서, WCDMA은 ACLR을 PA 선형성의 표준규격으로 정의하였다.
ACPR이 측정이나 계산이 불편한 면이 있는 반면, ACLR은 그냥 중심채널 전력과 특정 offset 주파수만큼 떨어진 지점의 전력간의 차이를 dBc로 나타낸 것이라 계산이나 측정이 편리하다.결과적으로는 ACPR과 같은 의미인데, 측정기준만 약간 다르다고 보면 된다.


*ACP (Adjacent Channel Power; 인접채널전력)
주로 AMPS와 같은 FM방식의 아날로그 이동통신에서 전력증폭기의 선형성을 나타내기 위한 지표로 사용되는 값. 자기 채널대역의 신호가 다른 대역에 미치는 영향을 의미하며, 당연히 인접채널에 영향을 적게주어야만 신호간의 간섭이 적은, 즉 선형성이 좋은 전력증폭기가 된다. AMPS의 경우 채널대역폭이 30kHz 이므로, 해당주파수대역 30kHz의 전력과 인접채널대역 30kHz의 전력의 비를 dBc 단위로 나타낸다.


*ACPR (Adjacent Channel Power Ratio; 인접채널전력비)
CDMA와 같은 디지털 통신 시스템의 전력증폭기에서 선형성을 나타내는 지표중 하나.
한 채널의 주파수대역에서 인접채널까지의 특정 offset 주파수에서의 전력차를 나타내며, 단위로는 dBc를 사용한다. CDMA의 채널간격은 1.23, 1.25MHz 이므로, 일반적으로 수식으로 따지자면 아래처럼 된다. ACPR = 1.23(1.25)MHz 채널주파수전력 / 특정 offset 주파수 지점의 30kHz 대역폭 전력 여기서 offset은 +*1.25MHz 뿐만 아니라 +*885kHz, +*2.25MHz 등, 시스템에 따라 여러가지 규격이 있다.ACPR은 과거 AMPS의 ACP의 개념에서 대역폭의 개념만 다른 것이다. ACP는 각 채널폭이 30kHz이지만, CDMA는 1.23(1.25)MHz이기 때문에 30kHz * 30kHz의 전력비를 보는 ACP와 달리 ACPR은 1.23(1.25)MHz * 30kHz의 전력비를 보게 된다. 여기서 1230 kHz / 30 kHz = 41 정도의 비율이고, 이것을 dB로 환산하면 10 log 41 = 16.xx dB가 된다. 그래서 AMPS의 ACP보다는 채널대역폭이 41배이기 때문에 채널대역폭을 30kHz로 계산한 ACP값에16dB를 더하게 되는 것이다. 보통 측정할때는 Spectrum Analyzer의 Resolution을 30kHz로 맞춘후, 해당 offset과의 차이(ACP)에 16dB를 더하는 경우가 많게 된다. ACPR은 Two tone을 입력하여 서로 다른 주파수간의 3rd Harmonic을 측정하는 IP3 선형지표와 혼동되는 경우가 있는데,ACPR은 자신의 single tone 신호입력에 의해 내부의 비선형성때문에 발생한 인접채널 잡음성분과의 비를 말하는 것이다. (물론 측정방법에 따라 Two tone을 입력하여 ACPR을 측정하기도 한다)
결론적으로 ACPR은 자기신호가 남의 채널에 얼마나 간섭을 주느냐를 따지는 선형성을 의미힌다. 전력증폭기의 경우 자기 채널신호만 잘 증폭하고 남의 채널대역은 최대한의 증폭이 억제되어야 하기 때문에 ACPR이 PA의 주요 지표로 사용되는 것이다.
ACPR은 경우에 따라 ACLR과 매우 혼동되어 사용되는 경우가 있어서 ACLR과 완전히 동일하게 표기될 경우도 있는데, 엄밀히 따지자면 ACLR과는 계산식이 다소 다르다. 다만 그 의미하는 바는 ACPR이나 ACLR이나 같다고 볼 수 있다.


*Active Circuit (능동회로)
FET, Didoe등의 비선형 소자를 이용하여 만들어진 회로. 기본적으로 외부 DC 전력이 있어야 동작하며, gain을 가지는 회로를 능동회로라고 분류한다. 능동회로에는 amplifier, Oscillator, VCO, PLL, Freq. doubler, phase shifter, mixer 등이 있다.
외부 DC Bias가 필요한 Tr(Transistor)와 Diode와 같이 비선형적으로 동작하는 소자들을 일컫는다. 즉 입력에 따라 출력이 선형적이지 않고 특정한 증폭특성을 가지기 때문에 소자의 모델링이 매우 중요하다. Tr로는 BJT, FET, HEMT, HBT 등이 주로 사용되며, Diode에는 schottky diode와 Pin diode 등이 많이 사용된다.


*Active Mixer (능동혼합기)
Active Mixer란 Tr과 DC 전원을 이용하여 내부적으로 증폭작용을 겸한 Mixer를 의미한다.
Active Mixer는 전통적인 Passive Mixer의 출력전력이 낮아서 Buffer Amp를 사용해야 할 경우가 많기 때문에, 그러한 불편을 없애기 위해 이득도 가지기 위한 용도로 설계되는 경우가 많다. 당연히 Passive Mixer에 비해 설계가 복잡하고 변수가 많아서 다소 까다롭다.  


*Admittance Chart (어드미턴스 차트)
스미스차트중 기본적인 형태의 반대 모양의 도표를 의미한다. 즉 왼쪽을 중심으로 실수축의 원이 점점 커지는 형태의 차트로서, 임피던스 매칭을 할 때 병렬(pararrel)로 회로소자가 연결되는 것을 의미한다.
임피던스 매칭을 하다보면 소자를 직렬로 연결할 때도 있고 병렬로 연결할 때도 있는데, 임피던스 차트와 어드미턴스 차트가 동시에 보이게 하면 즉시즉시 직렬과 병렬로 소자값을 계산할 수 있어서 매우 편리하다. 아래의 링크에 그림으로 표시되어 있다.  


*AF (Audio Frequency)
소위 말하는 음성용 주파수대역. 0~150khz 대역을 주로 일컫는다


*AGC(Automatic Gain Control)  
무선수신기나 증폭기의 입력에 변동이 있는 경우라도 출력은 언제나 일정하게 되도록 이득을 자동적으로 조절하는 장치. 그 방법은 출력중의 직류 분을 제어전압으로서 이용하여 이득이 일정하게 되도록 동작시키는 것이 많다. 라디오에서는 AVC라하여 자동음량조절이라 한다.


*AM (Amplitude Modulation, 진폭변조)
AM, 진폭 변조란 가장 기본적인 신호변조방법으로서, 신호의 변화를 반송파의 전압크기변화에 실어 보내는 통신방식을 의미한다.구현이 쉽지만 잡음에 약한 특성을 가지고 있다.


*AM to PM Conversion
증폭기의 선형적동작을 특성화하는데 도움을 주는 일반적 계측입니다. 이는 시스템에 내재하는 진폭변동에 의해 유입된 불요위상편차의 양을 측정하는것입니다. 통신시스템에서 이러한 불요위상편차는 주로 전력공급리플, 열드리프트, 다중경로페이딩과 같은 진폭변동이나 QAM이나 펄스변조같은 변조유형에 따른진폭변화에 의해 생깁니다. 주로 dB로 표시되고 위상변조가 채용된 시스템에서 중요한 파라미터인데 그이유는 불요위상왜곡이 아날로그 신호 열화나 디지털 시스템에서 BER을 증가시키기 때문입니다. 위상변조를 사용하는 일반변조유형들의 예로서는 FM,QPSK,16QAM이 있습니다. 디지털 통신시스템에 대한 BER계측이 손쉬운반면 이계측 하나만으로는 BER을 발생시키는 원인을 이해할수는 없습니다. AM*PM변환은 BER발생의 주요인이며 따라서 통신시스템에서의 비트왜율을 정량화시키는데 매우 중요합니다.
이변환은 이득압축에 사용된것과 동일한 전달셋업을 사용해 벡터네트웤 분석기를 통해 power sweep을 실행함으로써 볼수 있습니다. 표시된데이터는 S21(전달)대 전력의 형태로 표시가 되구요. AM*PM변환은 특정RF전력레벨에 중심이 된 작은진폭증분(변화)*보통1dB를 선택하고 결과되는 델타위상을 주기로서 계산할수있습니다. 진폭및 위상성분을 판독하기 위한 가장 손쉬운방법은 트레이스마커를 사용하는것이고 위상변화를 진폭변화로 나누면 됩니다.  


*Amplifier (증폭기)
신호를 증폭해주는 회로로서, 각각의 FET/BJT를 원하는 특성이 나오도록 bias 조건을 정해준 다음, 그 bias에 의해 들어오는 전력을 입력신호 변화에 비례하는 형태로 출력을 내보낸다. 즉, 입력신호 자체를 뻥튀기하는 것이 아니라, 입력신호의 전압/전류 변화에 민감하게 bias 전력이 움직이게 함으로써 결과적으로 확대복사한 결과가 출력되는 셈이다.
RF에서는 사용목적과 특성에 따라 LNA (Low Noise Amp), LPA (Linear Power Amp), HPA (High Power Amp) 등으로 나눌 수 있다.
RF의 증폭기는 저주파의 전자회로 증폭기와 달리 안정성과 매칭의 개념이 훨씬 복잡하게 적용된다. 결과적으로 저주파 증폭기와 설계방법 자체가 많이 다르다. amp의 설계에 관해서는 곤잘레스의 Microwave Transistor Amplifer라는 책이 자타가 공인하는 바이블로 통하고 있다. Amp를 설계하려면 우선 목적에 따라 LNA, PA 등 어떤 방향으로 설계할지 먼저 결정해야 하며, 기술자료실에는 amp와 관련해서 수많은 자료들이 있다. 또한 Amp Q&A를 검색하면 많은 기술적 내용들에 대한 질문과 답, 토의 및 정보들이 있으므로 많이 활용하도록 한다.  


*Amplitude (진폭)
주기적으로 변화하는 정현파에서 중심점을 기준으로 특정시간, 조건에서의 사인파형 크기를 말한다. 주로 전압파형에서 많이 사용되게 된다. 단순히 어떤 위치나 시점의 지정없이 amplitude라 말한다면 중심점을 기준으로 + 크기의 최대값을 지칭하는 경우가 많다. 쉽게 말해서 사인파형의 최고 높이를 칭하는 경우이다. 이것은 상황에 따라서는 실제값이 아닌 실효값(루트를 씌우는 형태의)의 amplitude를 진폭특성으로 잡는 경우도 있다.


*AMPS (Advance Mobile Phone Service)
1970년말 AT&T의 벨 연구소에서 개발한 북미방식의 이동통신 시스템이다.
FDMA를 사용하는 가장 기초적이고 간단한 형태의 셀룰러 이동통신방식으로서, 국내에서는 SK텔레콤(당시 한국이동통신)에서 최초로 제공햇던 아날로그 이동전화의 근간이 된 시스템이다. 30kHz를 한 채널로 하여 FM변조방식을 사용하며, 현재 미국과 남미, 호주에서 널리 사용되고 있다. 미국의 AMPS는 416채널을 이용하지만 다른 나라에서는 가능한 모든 채널을 사용중이다. 이러한 AMPS는 각 나라마다 할당된 주파수가 다르지만 무선접속 규격은 동일하다. AMPS는 CDMA에 비해 전력효율이나 가입자용량면에서 떨어지지만, 시스템 구현이 훨씬 간단하기 때문에 널리 사용되고 있다.  


*Antenna (안테나)
안테나란 RF에서 필수적인 요소중 하나로, 최종적으로 변복조된 신호를 교류하기 위한 최종단장비이다. 안테나는 철저히 크기와 구조(파장에 비례한)에 따라 특성을 받는 구조물로서 circuit이 아니라 component 혹은 structure로 구분된다.
안테나의 동작원리는 특정주파수의 에너지만 공진시켜서 대기중에 뿌려주게 된다. 안테나는 용도와 크기, 방식에 따라 굉장히 다양한 종류가 있다.


*Antenna Gain (안테나이득)
Antenna Gain은 안테나의 Directivity에 안테나 방사효율을 곱한 값이다. Directivity는 결국 안테나패턴의 지향성을 의미하므로, Antenna Gain은 그러한 지향성에 방사효율을 고려한 실질적인 안테나의 방향이득을 의미하게 된다. Antenna Gain = Radiatoin Efficiency(방사효율) * Directivity(지향성) 초심자중에 안테나는 수동소자인데 어떻게 이득(gain)을 가지는지 혼동스러워하는 경우가 있는데, 안테나에서의 이득은 증폭기처럼 입력대 출력의 비를 말하는 것이 아니라는 점을 알아두어야 한다. 무지향성 안테나에 비한 지향성을 가지는 것의 비율을 의미하는 것일뿐 어떤 증폭을 의미하는 것은 아니다. 하지만 사방으로 나갈 전력을 한곳에 모아서 방사한다는 것이므로 결국 특정 방향입장에서는 마치 증폭기를 거쳐서 방사된것처럼 방사세기가 강해진다. 그러한 면에서 이득(gain)이라는 용어를 쓰게 되는 것이다.  


*Arrester (피뢰기)
불시에 발생하는 낙뢰(번개)나 과전압으로부터 전자기기를 보호하기 위해 사용되는 소자.
외부에 설치되어 기후에 노출되는 기지국이나 중계기 같은 경우 안테나나 기지국탑을 통해 들어오는 번개나 과전압을 막기위해 외부와의 입출력 연결단에 이러한 arrester가 필요하게 된다. 이러한 arrester는 DC입력단 뿐만 아니라 RF송수신단간에서도 과전압에 의한 손상을 막기 위해 필요하다. arrester를 구현하는 방법은 여러가지가 있는데, 전자기기에서는 클램프회로나 세라믹 반도체를 이용한 방법이 많이 사용되며, gas tube방식등도 이용된다.
기본적으로 특정전압 이상의 신호가 들어오면, 소자의 termination/earth ground로 빠지는 선로쪽이 저임피던스로 변화되어 그쪽으로 과전압 과전압 신호가 빠져나가게 하는 원리를 이용하여 전자기기를 보호한다. 굳이 외부에 노출된 전자기기가 아니더라도, 전원회로에는 급격한 과전압에 의한 시스템 손상을 막기위해 arrester(surge protecter)를 많이 사용한다. (각 기기별로 있는 과전류 방지용 퓨즈보다 더 근원적인, 전원상의 방지개념이다)
[야후 백과사전 참조]
발전소 ․변전소 ․송배전선로 ․전차선로 ․전기기기 등은 번개에 의한 고전압의 침입이나 선로의 어디에선가에서 이루어지는 차단기 ․스위치의 개폐 등에 의해 일어나는 이상 고전압이 침입될 우려가 있다. 피뢰기는 선로나 전기기기를 이런 고전압으로부터 보호하기 위해 설치된다. 따라서 피뢰기는 정상전압으로는 전류가 흐르지 않으나 번개 등이 침입하였을 경우에는 도전성(導電性)의 전로(電路)가 되어 고전압을 저하시키는 기능이 있어야 한다. 더구나 고전압의 침입이 끝났을 때는 다시 전류가 흐르지 않는 성질로 돌아가는 기능도 아울러 갖추어야 한다. 주요부는 특성요소(特性要素)라고 하는 부분인데, 이것은 평상시는 현저한 고저항을 가지고 있으나, 고전압이 가해지면 저항이 매우 작아져서 대전류가 흘러 들어온 고전압을 낮추고, 방전이 끝나면 다시 고저항으로 되돌아간다. 구조는 탄화규소를 주체로 하여 구성한 비직선 저항형과 파이버의 원통(圓筒) 상하에 전극을 놓고 이 전극 사이에 방전을 일으켜 방전아크에 의한 열로 파이버질(質)에서 생기는 고압수소에 의해 소호(消弧)를 하게 하는 방출형이 있다. 어느 형이나 피뢰기의 선로측에는 평상시의 사용전압으로는 방전이 생기지 않을 정도의 방전 간격을 두고 있다.  


*ASK (Amplitude Shift Key)
0,1의 디저털 신호를 전송할 때 사용하는 프로토콜로서, 0이냐 1이냐에 따라 신호의 크기(amplitude)를 다르게 해서 전송하는 방식이다.  


*Attenuation (감쇄)
일정구간을 진행하면서 신호나 파형의 강도가 줄어든 정도를 나타내는 용어.
주 원인은 진행구간의 손실(loss)로 인한 것으로서, 이러한 손실에 의한 감쇄의 원인은
1. 도체의 도전율
2. 유전체의 loss tangent (유전율의 허수부항)
3. 자성체의 투자율에 의한 자화손실
4. 대기중의 전파전달에 의한 각종 경로손실 등이며, 위와 같은 원인에 의해 잔류 혹은 열에너지로 소모되어 잃어버리는 에너지를 나타내기 위해 attenation이라는 용어를 사용한다.
결국 주로 회로나 소자, 시스템 내부를 진행하면서 발생하는 감쇄와 송신*수신단 사이의 대기전파전달의 에너지 감쇄량을 말하게 된다. 이러한 attenuation은 대체로 원하지 않는, 즉 줄여야 하는 대상이지만 경우에 따라서는 신호를 억제하기 위해, 또는 측정장비를 보호하기 위해 고의적으로 일정한 attenuation을 유발하는 attenuator를 사용해야 할 경우도 많다.


*Attenuator (감쇄기)
말 그대로 전력을 감쇄시키기 위한 목적으로 사용되는 소자/회로이다.
저항과 같은 소모성 소자를 여러개 이용하여, 원하는 전력만큼 감쇄를 시키도록 맞출 수 있다. 원리적으로는 저항 네트웍을 이용하여 전력을 분배한 후, 일부 전력을 termination 시키는 방식이 많이 사용된다. 고의적인 감쇄를 위한 attenuator는, 단지 전력 레벨만을 낮추고 싶은 것이 목적인 경우가 많기 때문에 필요 이상의 잡음발생을 최대한 억제하고 위상차등이 발생하지 않도록 만들어져야 한다.
attenuator의 용도는 여러가지가 있는데, 여러 단간의 전력레벨을 맞추어야 하는 경우에 많이 사용되며, 특히 Power amp등의 고출력 소자의 출력값을 측정하고자 할때도 많이 사용된다. 만약 수십dBm 이상의 높은 출력을 계측기에 바로 물리게 되면 계측기가 손상을 입을 수 있으므로, 출력단에 정확히 감쇄량이 얼마인지 아는 attenuator를 달고 측정한 후에 그 값을 수식적으로 보상해주면 계측기를 안전하게 사용할 수 있다. 증폭기류에서 3개의 저항을 이용하여 전력을 조절하는 용도로 사용되는 경우에는 PAD라고 부르기도 한다.


*AWGN(additive white gaussian noise)
아직 배우는 학생이라 정확히는 모르지만... 채널영역에서 화이트 노이즈에서 가우시안 확률의 노이즈가 추가되는 상태를 의미하는걸로 압니다 ^^;  
AWGN이란 모든 주파수 대역에 쫙 깔린 상존잡음을 의미한다.
여기서 white라는 의미는 모든 주파수 대역을 포함하고 있다는 의미이며, 모든 빛을 합치면 백색이 된다는 색의 조성원리에 근거한다. 즉 빛이란 주파수가 높은 전자기파의 일종이므로, 주파수상에서 모든 대역에 존재하는 신호는 색상으로 보면 white가 되기 때문이다. 그 반대로 특정 주파수대역이 보이는 신호는 color noise라고 부른다. 여기서 확률변수로는 가우시안 형태를 가지고, 원래의 신호에 더해진다는 의미로 additive라는 단어가 붙어서 부가백색가우시안잡음 이라는 거시기한 한글말이 완성된다. (그냥 AWGN이라고 부르길) 공중으로 전파되는 전자파는 공기중에 항상 존재하는 어떤 잡음을 고려해야 하는데 그 경우에 일반적으로 사용되는 개념이다.  


*Axial Ratio(축비)
안테나의 편파특성,또는 전파의 측파특성을 나타내는 지수의 하나 (주)일반적으로 안테나에서 방사되는 전파의 편파는 원편파라는 것에서, 타원편파의 장축방향의 전계강도와 단축방향의 전계강도와의 비를 축비, 또는 타원 편파율이라고 한다. 따라서 완전한 원편파의 축비는1, 완전한 직선편파의 축비는 무한대가 된다.  


*Azimuth angle (방위각, 수평각)
지면을 기준으로 수평하게 방사되는 각을 표현하는 안테나용어.
azimuth라는 용어를 처음 들으면, 잘 쓰이지 않는 영어단어라서 전문용어라고 인식되는 경우가 있다. 하지만 azimuth는 그냥 우리말로 수평의, 방위의라는 용어이다.
Azimuth angle은 안테나용어중 하나로서, 말그대로 수평각을 의미한다. 즉 지면을 기준으로 높이 방향이 아니라 지면과 평행한 방향으로의 방위각을 말한다. 보통 Omnidirectional(무지향성) 안테나란 이런 azimuth 각으로 방향성없이 사방으로 둥그렇게 방사되는 안테나를 말한다. 지구상에서는 지면을 기준으로 할수 있지만, 위성등에 탑재되는 안테나는 기준면이 없으므로 안테나의 기준방사방향을 기준으로 양옆으로 방사되는 각도를 azimuth, 위아래로 방사되는 각도를 elevation로 칭하기도 한다.
*B*WLL (BWLL : Broadband Wirless Local Loop)
WLL의 확장된 개념으로써, 단순히 유선전화망을 무선화하는 것이 아니라 현재 우리가 쓰는 두루넷, 메가패스, 하나로 등의 고속 멀티미디어 디지털 회선을 무선으로 전송하는 시스템을 말한다. B*WLL은 나라마다 주파수 규격과 실제 서비스방식 이름이 많은 차이가 있는데, 우리나라는 LMDS, 캐나다는 LMCS, 유럽은 LMS,MVDS라 부르는 등 중구남방이다.
B*WLL은 이러한 무선 디지털 멀티미디어 전송 서비스 자체를 통털어 일컫는 이름이다.
국내에선 B*WLL을 LMDS와 거의 동일시하므로 LMDS 단어설명과 자료를 참조하길 바란다.
*Back Off (Back*Off , 백오프)
이것은 원래 그냥 영어숙어지만, RF에서 자주 사용하는 용어라서 전문용어처럼 인식되는 경향이 있다. Back Off란 우리말로 뒤로 물러서다는 뜻이다. 이것은 RF에서 주로 Power Amp와 관련된 용어로 많이 사용된다. Power Amp에서는 최대포화전력을 정확히 추정하기 애매하기 때문에 P1dB를 최대선형출력점으로 사용한다. 다만, 이 P1dB점은 이미 gain이 compression되기 시작한 후의 점이기 때문에 실제로 선형적인 동작을 하는 전력점은 아니다. 일반적으로 Power Amp가 진짜 성형적으로 동작하는 점은 P1dB에서 3~5dB 정도 낮은 지점이며, 이렇게 실제 최대전력점보다 수 dB정도 낮은 점까지만 동작하게 하는 걸 Back Off 시킨다라고 말한다. 말그대로 최대점까지 사용하지 않고 좀 물러서서 더 낮은데까지 사용한다는 그런 의미이다. 설계의 관점에서는, Amp의 선형성을 확보하기 위해 실제 필요한 P1dB spec보다 수dB 높은 P1dB가 나오게 만드는 것을 Back Off 선형화 설계라고도 한다. 예를 들어 P1dB spec이 22dBm이 요구되었지만 선형성이 안좋아서 25dBm의 P1dB가 나오게 설계하는 것이다. (3dB back off 시킴) 즉 다시 말하면 Power margin을 더 충분하게 가져가는 설계법인데, Power 3dB를 올리려면 같은 효율에서는 전류를 두배로 써야하기 때문에 실제로는 그렇게 간단한 문제는 아니다.설계가 아닌 application 관점에서는, 사용하고자 하는 PA의 최대 출력점까지 사용되지 않도록 입력 전력을 약간 빼주는 식으로 조합하는 것을 back*off 시킨다고 한다. 역시 선형성을 확보하기 위한 수단이다. 이렇듯 Back Off란 실제 이용가능한 최대 전력점까지 사용하지 않고, 3~5dB 낮은 점에서 amp가 동작하게 하여 선형성을 확보하는 경우에 많이 사용되는 영어이다.  


*Balanced Line (평형선로)
Balanced (Differential) Signal을 이용하는 Transmission Line을 지칭한다.  
*Balanced Signal (평형신호)
두개의 선로의 조합을 통해 신호를 전송하는 Transmission line상에서, 두 도체선로의 magnitude가 같게 전송되는 신호를 의미한다. 쉽게 말해서 어느 한쪽 도체선이 GND가 되는 것이 아니라, 두개의 선로가 둘다 sine파형으로 신호를 보내는데 그 파형이 서로 180도 차이가 나는 경우이다. 저주파에서는 GND는 따로 두고 도체선 하나만 달랑 신호선으로 사용하는 unbalanced signal을 많이 사용하지만, 고주파 전송선로에서는 한쪽 금속을 GND로 정하고 하나의 선로만을 신호로 쓰게 되면 공유된 GND를 통해 common mode noise가 많이 유입되는 등의 어려운 문제가 있다. 고속 LAN 선로(소위 TP케이블이라 부르는)의 경우도 내부의 한 가닥을 GND로 사용하지 않고, 두개의 가닥이 한 pair를 이루면서 총 4개의 pair가 진행하는 balanced line방식이다.이렇듯 두개의 선로가 어느 한쪽을 기준삼는것이 아니라 각자 같은 magnitude와 위상차를 가지고 전달되는 신호를 말한다.
*Balun (벌룬,발룬)
Balun이란 Balance * Unbalance의 준말이다. Balun이란 Balanced Signal 을 Unbalanced Signal로 변환해주는 회로/구조물을 통칭한다. 또는 그 반대의 변환기능을 할때도 똑같이 Balun이라고 부른다. 즉 두개의 금속을 통해 신호를 전달하는 전송선로(Transmission Line)에서, 두개의 금속에 함께 같은 magnitude로 진행하는 신호(Balanced Signal)을 한쪽 금속선을 GND로 만들고 나머지 금속선에 신호정보를 몰아서 담는(Unbalanced Signal으로) 역할을 하는 것이다. (그 반대도 마찬가지) RF회로에서 Mixer, SAW Filter와 같이 Balanced(Differential) Line으로 만들어진 부품들이 있는 경우가 많은데, 이런 경우 unbalanced(Single*ended) Line으로 되어있는 Amp류와 연결하려면 매칭단 자체를 Balun처럼 동작시켜야 할 때도 있다. 즉 Balun은 특정한 소자 이름이 아니라 이런 Balanced*Unbalanced 신호들을 변환하려는 모든 것을 지칭한다. Balun은 단순히 선로조합과 lumped 소자를 통해 구현할 수도 있고, 안테나 같은 분야에서는 공진도파관 형태가 되기도 한다.  


*Band (대역, 밴드)
특정 주파수가 존재하고 있는 스펙트럼상의 위치를 의미한다. 즉 10Ghz의 신호는 10Ghz 대역(band)혹은 X*band의 신호라고 부르는 단순한 개념이다. 실제로 신호원은 하나의 단일 주파수를 가지는게 아니라, 약간이나마 어느정도 중심주파수를 기준으로 주파수 폭을 가지게 된다. 이러한 주파수폭(대역폭)을 포함한 주파수 또는 주파수 묶음을 band라고 부른다. 그래서 보통 밴드라 하면 시작 주파수와 끝 주파수가 존재하게 된다. 또는 통신 시스템 상에서 반송파(carrier)주파수로 활용가능하도록 할당된 주파수 모임 자체를 band라고 부르기도 한다.  


*Bandwidth (대역폭, 밴드폭)
신호를 포함한 모든 주파수에너지는 하나의 주파수만 가지는게 아니라 실제로는 중심주파수를 기준으로 양쪽으로 일정한 양의 주파수 범위를 가지게 되는데, 이러한 특정 주파수범위의 폭을 일반적으로 지칭하는 말이다. 이것은 한 신호의 주파수폭을 의미하기도 하고, 전체 채널의 주파수폭을 의미하기도 하고, 증폭기의 증폭범위를 의미하기도 한다. 즉 특정한 용어가 아니라 주파수축의 스펙트럼상에서 어떤 대역의 폭을 지칭하는 단순한 말이다.  


*Bare Chip (베어칩)
Bare란 말은 우리말로 홀랑 벗엇다는 의미이다. 여기서는 그런 에로틱한 의미보다는 순수한 모습 그 자체를 말한다. Bare Chip란 단어는 반도체의 Wafer 상에서 개별 IC별로 잘라낸 하나하나의 IC 원판 그자체를 의미한다. 즉 패키징하기 전의 순수한 칩 다이 그 자체이다. 한마디로 칩을 보호하기 위한 패키지를 입히지 않은, 즉 아직 옷을 입지 않은 칩이란 뜻이다. (아직 옷을 입은건 아니므로 옷 벗었다는 뜻은 틀린 의미일 수도 있다. *_*a?)
Bare Chip 상태에서는 On wafer probe를 이용하여 측정하게 되며, MMIC나 RFIC라면 보통 패키징이나 모듈화를 하여 제품에 응용된다. 패키징을 입히면 보호가 잘되고 실장이 쉽지만, 어쩔 수 없이 면적이 커지고 패키징에 의한 기생효과들이 발생한다. 그래서 경우에 따라서는 bare chip을 그대로 갖다 붙이고 선로에 bonding을 하여 회로를 구성하기도 한다. 그러면 사이즈도 작아지고 플라스틱 패키지에 의한 기생효과도 줄일 수 있다. 이러한 bare chip을 그대로 응용하는 경우는 크게 아래와 같이 두가지로 나뉘어진다.
1. 면적을 반드시 줄여야 하는경우 (수GHz 이하)
2. 패키지의 기생효과에 너무 민감한 경우 (mm*wave 대역)
결론적으로 bare chip이란 말은 전문용어라기 보다는 그냥 영어일 뿐이라서 보통 용어사전류에는 나오지 않는다. 그냥 Wafer에서 잘라내고 패키징하지 않은 상태의 칩 원판 그 자체라고 생각하면 된다. 경우에 따라서는 완전한 Wafer에서 떨구어낸 bare chip을 그대로 갖다 쓸 수 있도록 PAD부분에 약간의 가공을 한경우도 있다. 이런 경우 원래의 Die와는 조금 다르지만 그냥 Bare chip이라고 부르기도 한다.  


*Baseband (기저대역)
Baseband, 베이스밴드는 우리말로 기저대역이란 표현을 쓰는데, 원천신호 영역을 말한다.
전화기를 예를 든다면, 우리가 말을 하는 음성신호를 처리하는 대역이 바로 베이스밴드이다. 무선 데이터 통신이라면 실제로 사람이 사용하는 데이터레이트 주파수대역이 베이스 밴드가 된다. 무선 통신이란 것은 이렇게 우리가 사용하는 실제 주파수대역(baseband)를 반송파(carrier)에 실어서 보냄으로써 동작한다. 물론 수신측에서는 그 반대로 반송파에서 베이스밴드 신호로 낮추고 처리하게 된다. 원래신호대역, 즉 bsseband 신호를 그대로 전송하기엔 무리가 많기 때문에 결국 반송파를 사용하여 전송하는 것이다. (반송파 단어설명 참조)
때문에 실제적으로는 반송파 혹은 IF주파수의 반대되는 개념으로서 사용되는 경우가 많다. 우리가 말하고 듣고 보는 모든 신호가 바로 baseband라고 부르는 것이기 때문에 너무 당연시 되어야 할 단어이다. 결국 우리가 원하는 것은 이런 baseband 신호를 전송하고자 하는 것이다. 그런데 실제 baseband라고 하면 단순히 음성, 데이타 영역뿐아니라 그것에 대해 미리 암호화 혹은 에러복구 코드등을 첨가하여 변조된 주파수 영역까지를 포함한다. 이 말은 CDMA 처럼 복잡한 디지털 통신에서 더 의미가 있다. 우리가 흔히 사용하는 중간주파방식(헤테로다인)을 사용한다면 아래와 같은 변환이 되는 것이다.
RF <*> IF <*> baseband
디지털 통신에서는 IF단 이후로는 AD 컨버터를 통해 디지털 신호로 바로 변환되기도 하기 때문에, baseband라고 하면 흔히 DSP류의 디지털 처리단을 의미하는 경우가 많다.
결론적으로 baseband라 하면 왠지 특수한 말처럼 보이지만, 전혀 특수한 표현도 새로운 영역도 아니다. 고주파 반송파를 down converting한 최종적 신호처리밴드, 즉 실제 정보를 담고 있는 음성,영상,데이터 등의 최종 원천신호주파수 영역을 말하는 것이다.


*Baud(보오)
Baud[보오]는 데이터 전송속도를 측정하는 단위로 널리 사용되었으며, 좀더 정확한 용어인 bps에 의해 대체되기 전까지 사용되었다. 1 보오는 전자적인 상태의 변화가 1초에 1번 일어나는 것을 의미한다. 따라서, 한 비트가 한 신호단위로 쓰이는 경우에는 보오 속도와 bps가 동일하다. 그러나, 하나의 상태변화가 데이터의 1개 이상의 비트와 관계될 수 있기 때문에, 데이터 전송속도를 표현하는 데에는 bps 라는 단위가 더 나은 것으로 판단되어 대체되었다. 만일 세 개의 비트가 한 신호단위를 이룬다면 보오 속도는 bps 속도의 1/3 이 될 것이다.
보오 속도가 증가함에 따라 통신 채널의 필요 대역폭이 넓어지기 때문에 통신 채널의 입장에서 보면 보오 속도가 중요한 의미를 갖지만, 그러나 데이터 통신 이용자의 입장에서 보면 전송된 데이터의 총량이 중요하므로 bps 속도가 더 밀접한 관계를 갖는다. 이 이름은 프랑스의 엔지니어인 Jean*Maurice*Emile Baudot의 이름을 따서 지어졌으며, 전보의 전송속도를 측정하는데 처음 쓰여졌다.  


*Bias (바이어스)
Bias는 사전적으로 기울이다는 뜻이다. 즉 어떤 평형상태를 기울여서 흐름을 만드는 것을 의미한다. RF를 포함한 전자회로에서 바이어스라는 의미는 전위평형상태를 기울여서 전류를 흐르게 함으로써, 결과적으로 DC 전원을 인가한다는 뜻이다. DC 전원을 거는 행위를 그 자체를 지칭하는 말로 주로 사용된다. (또는 DC 전원입력 그 자체로 봐도 무방하다)
*Bluetooth (블루투스)
블루투스란 근거리에서 전자기기끼리 무선데이타 통신을 하기위해 만들어진 규격/시스템이다. 원래 블루투스란 이러한 근거리무선데이타 통신 규격제정을 위한 모임의 이름으로서, 결국 그것이 이러한 시스템의 이름이 되었다. 시작은 PC나 노트북, PDA등의 IrDA(적외선통신)의 한계를 극복하기 위함이었고, IrDA보다 전송거리, 장애물 통과성, 소비전력, 전송속도 등의 거의 모든 면에서 뛰어나다. 주파수는 2.4GHz대역을 사용하며, GFSK변조에 주파수도약(FH)방식의 확산대역 통신방식을 사용한다. 블루투스는 단말기/PDA간의 자체적인 데이타 송수신은 물론 프린터, 스캐너, 디지털 카메라등의 PC 주변기기까지 응용범위가 매우 광범위하다. 한마디로 블루투스는 선(wire)를 없애기 위해 만들어진 것으로, 많은 단거리 케이블들이 사라지게 될 것으로 전망된다. RFDH 자료실에는 블루투스에 대한 소개와 Spec 전문이 있으므로 관심 잇는 사람은 참고하기 바란다.  


*Bonding Wire (본딩와이어)
Wire Bonding은 IC에 Wire를 붙이는 그 과정을 의미하며, Bonding Wire는 거기에 쓰이는 Wire 재료를 의미한다. 보통 20~50um굵기를 가진 얇은 금(Au)선을 두루마리처럼 말아놓은 형태로 판매되며, 그것을 Wire bonding기에 끼우고 기계가 뽑아가면서 Bonding을 하게 된다.  


*BPF (Band pass filter : 대역통과 필터)
통과시작 주파수와 저지대역 주파수를 가지고 특정 대역만 통과시키는 필터. 무선통신에서 채널을 구분하기 위한 용도 및 image제거 등의 용도로 많이 사용된다.  


*BPSK (Binary Phase shift key)
PSK 방식중 가장 기본적인 방식을 의미하며, 0과 1일때 위상을 180도씩 바꾸어 송수신함으로써 쌍방간에 신호의 전달이 가능하게 한다.
*BRF (Band reject filter)
BSP와 같은 뜻.
>>>> BSP(Band Stop Filter)
BPF(대역통과 필터)의 정반대 파형이라고 생각하면 된다. 즉 특정 주파수에서 특정 주파수 사이의 신호만 제거하기 위한 용도의 필터로서, 특정주파수간의 간섭을 차단하고자 하는 경우에 많이 사용된다.


*Broadband (광대역)
광대역이란 말은 말그대로 넓은 주파수 대역 그 자체를 지칭하거나, 동작주파수 범위가 넓다는 의미로 쓰이는 일반영어이다. 단, 그 기준은 매우 상대적이라서 각 통신시스템이 사용하는 중심주파수에 대한 %로 나타내는 경우가 많다. 물론 광대역이냐 협대역이냐를 구분하는 기준은 각양 각색이다. 예를 들어 중심주파수 1Ghz에서 100Mhz 대역의 amp를 만든다면 비교적 광대역이 될수 있다. (10%) 하지만 중심주파수 20Ghz에서 대역폭이 2Ghz의 amp를 만들면 같은 10%지만 그리 광대역으로 보기 어렵다. 그것은 각 주파수 대역의 통신시스템이 요구하는 대역폭 자체가 다르기 때문에 그런 것이며, 한마디로 상대적이다. 경우에 따라선 아래와 같이 정해주기도 하지만, 권고안일 뿐 국제적인 구분기준이 있는 것은 아니므로 참고만 바란다. (Q&A 김정일님의 글중 발췌)
Narrowband : 비대역폭(또는 % 대역폭) < 1%
wideband(or Broadband) : 1% < 비대역폭(또는 % 대역폭) < 25%
Ultra*wideband : 25% < 비대역폭(또는 % 대역폭)
Broadband는 Wideband와 같은 의미이지만, RF 설계에서는 Broadband라는 용어를 더 선호하는 경향이 있다.  
*Broadband Amplifier (BBA, 광대역증폭기)
Broadband Amplifier, BBA란 말그대로 넓은 주파수대역에서 동작하는 증폭기를 의미한다.
그런데 이 광대역이란 기준은 매우 상대적인 것으로서, 수GHz대역에서는 증폭 대역폭이 수백MHz가 넘으면 광대역으로 취급되기도 하고, 수십GHz대역에서는 대역폭이 3GHz가 넘어도 광대역이라 부르지 않기도 한다. 즉 광대역이냐 아니냐는 그것이 사용되는 application에 따라 정해진다고 보는 것이 옳다. 일반 이동통신대역에서는 여러 채널을 다 지원할만한 amp정도는 광대역이라 부르지 않는다. 아예 주파수밴드가 다른 서비스들을 지원하기 위한 듀얼 모드에서 두 모드를 지원하는 amp는 경우에 따라 BBA로 불리우기도 한다.
BBA는 특성상 CATV시스템에서 많이 사용된다. CATV는 유선망이기 때문에 엄밀히 따지면 RF분야는 아닐수도 있지만, 실제로 수백MHz~ GHz까지의 신호를 다루기 때문에 RF&Microwave의 한 분야로 넣기도 한다. CATV시스템에서는 송수신채널이 각각 넓은 대역폭을 갖고 있기 때문에 CATV용 amp를 BBA라고 부르는 경우가 많다.
BWLL의 경우 나라마다 사용주파수가 20 ~ 40GHz까지 여러 주파수 대역을 사용하기 때문에, 이렇게 나라별로 다른 주파수대역을 다 지원하기 위해 BBA개념으로 대역폭이 매우 넓게 amp를 설계하기도 한다. BBA는 feedback을 통해 특정 주파수에 집중된 gain을 분산시키는 형식에 근간한 distributed amp 구조로 많이 설계된다.  


*BSF (Band stop filter: 대역저지 필터)
BPF(대역통과 필터)의 정반대 파형이라고 생각하면 된다. 즉 특정 주파수에서 특정 주파수 사이의 신호만 제거하기 위한 용도의 필터로서, 특정주파수간의 간섭을 차단하고자 하는 경우에 많이 사용된다.


*BSU (Base station, 기지국)
셀룰러 이동통신의 기술적 핵심은, 이동국(단말기)가 그 전파를 한군데서 송수신 하는 것이 아니라 일정단위로 배치된 기지국과 송수신 한다는 데에 있다. 지역과 전파조건을 감안하여 하나의 셀 중앙에는 기지국이 하나씩 자리잡고 중앙 처리국과 연결되어 결국 전국의 기지국망이 연결되게 되며, 기지국을 적절히 배치하는 것이 셀룰러 이동통신 서비스를 위한 키포인트중 하나가 된다. 현재의 이동통신 기지국은 대부분 디지털방식이기 때문에 섹터방식을 따르며, 무지향성 안테나가 아니라 3~4개의 지향성 송수신 안테나를 장착하여 3각 또는 4각의 탑 모양을 하고 있다. 시내의 높은 건물의 옥상을 유심히 찾아보면 각 이동통신사별로 배치한 기지국들을 쉽게 볼수있다.


*Buffer Amplifier (완충증폭기)
Buffer amplifier는 어떤 신호레벨을 맞추기 위한 국지적인 목적의 증폭기를 의미한다.
원래 의미는 회로와 회로단 사이에 어떤 불협화음을 막기 위한 용도로 사용된다고 정의되어 있는데, 각 회로가 연결되어 서로 자신의 성능을 충분히 내게 만드려는 목적이다.
결국 다음단의 회로에서 적절한 입력신호를 받지 못해 오동작하는 것을 막기 위해 해당단의 앞, 또는 뒤에 추가적으로 붙이는 완충(buffer)작용의 증폭기를 말한다.
예를 들어 Passive Mixer를 사용하는 경우 Conversion loss로 인해 출력단의 전력레벨이 낮은 경우가 많다. 이것을 일정 레벨로 만들어주기 위해 Buffer amp를 입력단 혹은 출력단에 달게 된다. VCO나 Oscillator의 경우, 발진주파수 전력이 만족스럽지 못할 때 그 값을 튕겨주기 위한 단순한 목적으로 출력단에 Buffer amp를 쓰기도 한다.
이처럼 Buffer amp란 아무데나 신호레벨이 낮아서 좀 튕겨주기 위한 목적으로 쓰는 증폭기를 지칭하는 말이다. 고로 주요 회로의 성능여부에 따라 Buffer amp를 써도 되고 안써도 된다. 그래서 보통 Spec에 buffer amp에 대한 말은 없고, 상황에 따라 신호를 키워줘야 할 곳이 있으면 설계자가 알아서 추가하는 경우가 많다. Buffer amp의 설계사양은 대체로 무난해서 가능하면 NF가 낮은, 즉 잡음이 가능한한 억제되면서 원하는 이득을 만족할 정도면 OK다.  


*Bypass (바이패스)
bypass란 말은 우리말로 우회(迂廻)한다는 뜻이다.도로체증이 심한곳에는 소통을 원활하게 하기 위해 우회도로같은 것이 있듯이, 회로나 시스템에서도 신호를 우회시켜야 할 경우가 있는데 이런 경우 전반적으로 사용되는 용어이다. (굉장히 다양하게 사용됨) 통신시스템의 경우 본회로가 고장났을때 즉시 스위치에 의해 연결되는 대체회로를 bypass circuit이라고 부르기도 한다. 아마 bypass는 회로내의 전원단에서 많이 보게 될텐데, 주로 AC전원이 DC로 타고드는 것을 방지하기 위해 사용된다. Tr등에 DC전원을 입력할때, RF신호가 DC입력단으로 새지 않도록 inductor나 1/4파장 선로등을 써서 RF choke 역할을 하게 하지만, 100% 완벽하게 막아내지는 못한다. 그렇게 해서 조금씩 새어나온 RF신호는 DC입력전원으로 타고들어 공통 ground를 타고 loop를 만들면서 발진을 발생시킨다. 초크 특성상 원래 주파수보다 저주파의 신호가 주로 이렇게 새서 발진하게 되며, 이것을 막기위해 DC전원 입력옆에 병렬로 capacitor를 달아서 RF신호를 접지시켜버리는데, 이것을 소위 bypass시킨다고 한다. capacitor는 DC는 통과하지 못하고 RF AC신호는 통과되며, capacitor의 값에 따라 얼마나 잘 통과되느냐가 결정된다. 이것은 Z = 1/jwC 의 임피던스 수식에 의해 해당주파수에서 낮은 임피던스를 가지도록 값을 정하지만, 실제로는 회로와 함께 복합적으로 어느 주파수의 발진이 심한지를 찾아내서 실험적인 값을 쓰는 경우가 많다.
즉 DC전원단으로 흘러들어갈 뻔한 RF신호를 옆의 capacitor로 흘러가게 하여 접지시켜 죽인다는 의미에서 bypass capacitor라는 식으로 bypass란 단어가 사용되는 것이다.
RF에서 bypass는 이러한 DC단의 RF신호 제거용 및 대체회로, 대체경로를 의미하는 용어로 많이 사용된다.  


*C/I * [Carrier to Interference Ratio]
신호대 간섭비 : 이동통신 기지국 또는 셀 설계에 있어 근접의 셀에 대한 파라미터등을 고려할때 신호대 간섭비를 산출하여야 한다.  


*Capacitance (캐패시턴스, C)
전압을 가했을 때 축적되는 전하량의 비율을 나타내는 양. 단위는 F(패럿)이다. 이러한 캐패시턴스 값을 간단히 C 라 지칭하며, RF에선 pF 단위가 주로 사용된다.
이것은 결국 전기장을 통해 순간적으로 축적되는 에너지를 의미하며, RF 입장에선 단절된 금속사이에서 전류/전압의 변화가 있을 때만 신호를 통과시키려는 성질, 또는 그 정도를 의미한다고 볼 수 있다.  


*Capacitor (캐패시터)
고의적으로 정해진 캐패시턴스를 유발할 수 있도록 만들어진 소자.
두 금속판사이에 유전체를 삽입하는 식으로 만들어지며, 그 단면적과 금속판간의 거리에 의해 Capacitance 값이 결정된다. 실제로는 단순히 금속판만을 사용하지 않고 여러 가지 형태의 금속형상을 사용한다.  


*Carrier (반송파)
carrier라 함은 말 그대로 뭔가를 실어서(carry)나르는 역할을 하는 것을 말한다. 리어카같은 것도 일종의 캐리어 이다. 무선통신에서 말하는 carrier는 우리말로는 반송파라고 변역되는데, 여기서 반자는 동반하다, 함께 가져간다는 의미의 한자 반자이다. 가끔 반대하다의 반자로 오인하는 경우가 있는데 조심해야 한다. 즉 반송파는 말그대로 뭔가를 함께 가지고 가는, 실어나르는 파를 말하게 된다. 실제로 우리가 이해하고 사용하는 원천신호는 대체로 주파수가 높지 않다. 음성의 경우 수Khz, 영상이나 데이터의 경우 기껏해야 수Mhz 단위인데, 이것을 무선통신 채널로 보내려면 그냥 막바로 보낼 수는 없다. 우선 이러한 기저대역(baseband) 신호들은 잡음에 매우 약하고 전달거리가 짧기 때문에, 높은 주파수에 실어서 보내게 된다. 높은 주파수, 즉 반송파에 신호를 싣는 과정을 변조라고 하는데, 이렇게 함을써 송수신 특성을 높일 수 있다. 그보다도 이렇게 특정 주파수별로 반송파를 사용해서 보내지 않는다면 똑같은 기저대역 주파수를 사용하는 신호들을 구분할 방법이 없다.
우리가 보통 어떤 통신은 XXX hz를 사용한다고 말한다면, 그것은 바로 반송파(carrier)의 주파수를 의미하는 것이다. (어차피 기저대역 신호의 주파수는 다 비슷하다)
마치 FM 라디오에서 반송파 89.1Mhz는 KBS, 91.9Mhz는 MBC 로 구분하듯이 (맞남?*_*a..) 똑같은 주파수대역을 가지는 음성신호를 이렇게 조금씩 다른 반송파를 사용하기로 약속하고 주고 받음으로써 수많은 신호들이 서로 겹치지 않고 통신이 되는 것이다.
음성의 경우 16Hz*20KHz,영상이나 데이터의 경우 1MHz*50MHz 정도이며 무선으로 이들을 그대로는 보낼 수 없다. 우선 ................매우 약하고 음성신호는 무선전송이 불가능하며 영상이나 데이터 신호도 감쇄가 많아 전달거리가 짧아진다. 그러므로 전달특성이 좋은 높은 주파수에 이들 신호를 실어 보내게 된다. 높은 주파수(반송파)에 ...............과정을 변조라고 하며 이에 따라 전송특성이 개선된다. 이렇게 함으로써 반송파 주파수 대역(BW: Band Width)의 개념이 존재하게 된다. 우리가 보통........ 것이다. 기저대역의 주파수 중 가청대역과 영상대역은 우리가 듣고 보는 공통된 주파수이기 때문에 비슷하거나 같을 수밖에 없다.
마치.......... ....... 서로 혼신을 일으키지 않고 정확히 신호를 가려낼 수 있다.


*Cavity (공동)
Cavity(캐비티)는 공진(resonance)을 위한 구조물을 지칭한다. 우리말로는 공동, 즉 비어있는 어떤 물체를 말한다. 결국 cavity란 내부가 비어있는 금속box형태의 공진기를 부르는 말이다. cavity란 용어는 그 특성상 도파관 필터를 구현할 때 많이 사용되게 된다. 도파관 중간에 벽을 세워 cavity를 만들고, cavity간의 iris(뚫린 공간)등을 조절하여 다단 필터를 구성할 수 있다. 금속으로 둘러싸인 빈 공간에서는 그 금속box(즉 cavity)의 크기에 따라 특정 주파수가 공진하면서 집중되기 때문에, Bandpass filter로 쉽게 응용할 수 있다.


*CB (Citizen Band ; 생활무선국)
제 1형 생활무선국이라 불리우는 CB(Citizen Band)는, 허가나 신고 또는 전파사용료 없이 누구나 사용할 수 있는 무전기를 말한다. 용도상 고정국, 차량용, 휴대용의 3가지로 나뉘어 지며, 27MHz 대역에서 40개의 채널을 이용하고 있다.
[Specification]
주파수 : 26.965*27.405MHz
채널 : 40CH, 호출채널 14, 비상채널 9, 특수업무채널 19
송신출력 : 3W (FM) / 1W (AM)
변조방식 : AM/FM/SSB 단신 (국내는 FM 을 사용)
[CB의 용도]
* 근거리 통신수단(반경 5 ~ 20Km내)으로 사용
* 동호인 또는 외부인과 교신(호출채널 14)으로 친목도모 및 아마추어 무선사(HAM)로 가는 지름길
* 교통체증시 차량간 교통정보(교통채널1) 교환
* 화재.도난등 관련기관과의 긴급 연락채널(긴급채널 9)로 사용
* 차량대 차량간 이동시 무선연락으로 각종정보 교환 (길안내.교통.관광정보등)
* 사무실과 차량간의 업무연락(각종용역.써비스업.물품배달 등)
* 산업.건설현장의 업무적용(빌딩.아파트.경비업무)
* 스포츠.등산레저용(휴대용)
* 농촌.어촌등(들판.산간지.농장.어선에서 집과의 연락시)
* 선박간 정보교환 * 선박과 선박간 집과 해상에 있는 선박간 교신.
* 전화나 인터폰이 없는 리조트 * 멀리 떨어져 있는 일행끼리 각종 정보교환.
* 항공스포츠 * 항공기와 지상간 교신.항공기간 정보교환.떨어져있는 팀원끼리 상호 정보교환


*CDCSS (Continuous Digital Controlled Squelch System)
: CTCSS와 동일하게 동일 주파수에서 원치않는 다른 신호가 수신되지 않게 하기 위해서 규정된 Tone or Data 신호를 음성 신호에 실어 보내고 수신측에서는 이 신호에 응답하여 Audio 출력을 내보내는 System. 83개의 CDCSS CODE를 갖습니다.  


*CDMA (Code Division Multiple Access; 코드분할 다중접속)
미국 퀄컴이 제창하고 우리나라가 세계최초로 상용화에 성공한 CDMA는 가장 복잡한 형태의 다중통신 방식이다. CDMA는 군사용통신의 일종이던 spread spectrum 방식을 이용한 일종의 암호화 통신이다. 넓은 주파수 대역을 수십명의 사용자가 동시에 사용하면서 각자의 암호(code)를 가지고 서로의 신호를 구분해 내는 것이다.
각각의 code들은 서로 orthogonal하기 때문에, 여러사람의 신호가 뭉쳐있다 해도 자신의 code를 곱해버리면 남의 신호가 걸러지고 자기 신호만 추출이 가능하다.
CDMA에 대해서는 도서나 각종 웹사이트에 많은 정보들이 넘쳐나므로 , 조금만 마음먹고 아래 링크들을 공부해보면 원리는 어느정도 깨우칠 수 있다. 다만 CDMA를 제대로 이해하려면 통신의 기본적인 개념이 어느정도 필요할 것이다.


*CDMA2000
퀄컴이 기존의 CDMA 방식을 광대역으로 업그레이드하여 재정비한 규격으로서, 동기식 IMT*2000의 표준기술이다. 여전히 기지국끼리 클럭타이밍을 동기시키는 방식을 쓰기 때문에 동기식 IMT*2000 규격이라 많이 언급되는데, 기술적인 문제가 아니라 정치적이고 세력다툼의 문제상 유럽의 비동기 WCDMA에 판정패 당했다. CDMA2000 표준화그룹인 3gpp2 홈페이지를 통해 관련된 여러가지 정보를 얻을 수 있다.


*CDS (photoconductive cell)
빛을 비추면 빛에너지를 흡수해서 전하(電荷)를 운반하는 하전체(荷電體)의 양이 증가하고, 전기전도율이 증가하는 성질(광전도성:내부광전효과의 하나)을 가지는 소자(素子).
광전도소자라고도 한다. 빛의 변화를 전기의 변화로 변환(광전변환)하는 데 사용된다. 즉 이 재료(광전도재료)로 만들어진 저항체에 정전압(定電壓)의 전원으로부터 전류를 흐르게 해 두고, 이 저항체에 빛을 비추면 저항이 감소되어 전류가 증가하며, 광량(光量)을 전기량으로 바꿀 수가 있다. 이와 같은 재료로서는 셀렌 ․탈로파이드(탈륨과 황과 산소의 화합물) ․게르마늄 ․산화납 ․황화카드뮴 ․황화아연 등 여러 가지가 있다. 감도가 높고 소형이며 구조가 간단하여 사용하기 편리하나 전기전도도가 광량의 증가에 대해서 포화하는 경향이 있고, 빛의 급격한 변화에 대하여 전도도의 변화가 늦어지는 결점이 있다. 그러나 점차 결점이 개선되어 측광(測光), 빛의 검출 외에 비디콘으로서 텔레비전, 촬상관에 이용되기도 하고, 증폭작용을 겸하여 갖춘 게르마늄의 포토트랜지스터 등도 출현하였다.  


*Channel (채널)
채널은 통신과 RF에서 매우 광범위하게 사용되는 용어이다. 원래 채널이란 우리말로 협곡이라는 뜻이다. 즉 움푹들어간 계곡 같은 갈래를 말하며, 보통 산에서 물이 이런 움푹파인 골을 따라 흐른다는 것을 잘 알고 있을 것이다. 통신에서도 이와 비슷하게, 어떤 신호가 흐르는 통로를 의미하는 경우가 많다. 채널의 정의는 아래와 같다.
1. 주파수 단위
하나의 신호, 또는 정해진 신호들의 한 묶음이 이용하는 주파수대역을 의미한다. 우리가흔히 접하는 라디오의 89.1MHz, 91.9MHz와 같이 한 신호가 점유하는 주파수 대역을 채널이라고 부른다. (실제 우리가 실생활에서 방송국의 고유주파수를 채널이라 부르는 것과 같다.)
CDMA같은 경우는 특수하게 한 주파수대역을 여러 사용자가 공유하기 때문에, 이러한 공동사용 주파수 대역 (보통 1.23, 1.25MHz이다)의 한 단위를 채널이라고 부르기도 한다. (여기서는 FA라고 부르기도함)이렇듯 통신이 이루어지는 주파수대역의 중심주파수 혹은 그 대역폭까지 포함한 하나의 단위를 채널이라 부르는 것이다.
2. 매질, 통로
전기적 신호를 담은 신호가 실제로 진행하는 매질.
무선통신에서는 공기중 자체가 채널이 되고, 유선통신은 케이블 자체가 채널이 된다. 매질 특성에 따른 잡음의 영향과 모델링을 하는 것을 채널 모델링이라고 하는데, 확률적 접근방식을 가지고 분석하게 된다.
위 두가지가 따지고 보면 전혀 다른 뜻이 아니라 결국 연관되어 일맥상통하는 뜻임을 알 수 있다.


*Characteristic Impedance (특성임피던스)
하나의 회로, 시스템에서 기준으로 사용하는 임피던스값. RF에서는 주로 50옴과 75옴을 많이 사용하는데, 사용자가 임의로 결정할 수도 있다. 하나의 임피던스로 통일해서 사용해야 각 회로단을 연결하기 쉽고, 50옴이라는 저항값이 전력전달성능과 왜곡특성을 둘다 만족하는 중간점이기도 하다. 보통 아무말없이 특성임피던스라고 하면 50옴을 주로 일컫는다.


*Circulator (써큘레이터)
Circulator는 3단자의 신호분기 회로소자이다. 120도 각도로 3개의 포트가 둘러있는 형상에 내부에는 공진판과 페라이트 등의 자성체가 배치되어 있다. Circulator의 특징은 한 포트로 입사한 전력이 나머지 두 포트중 하나로만 출력되고, 나머지 하나로는 출력되지 않는다. 설계하기에 따라서 오른쪽 또는 왼쪽 포트로만 전력이 나가고 나머지로는 나가지 않게 되는 것이다. 그래서 3포트 소자이면서도 방향성을 가지고 회전하듯이 특정 방향의 포트로만 에너지를 전달하기 때문에 Circulator 라는 명칭이 붙어 있다. 동작이 잘 이해가 안간다면 아래의 예를 보자. 포트1으로 입사된 전력은 포트2로 나가고 포트3으로는 안나간다.
포트2으로 입사된 전력은 포트3로 나가고 포트1으로는 안나간다. 포트3으로 입사된 전력은 포트1로 나가고 포트2으로는 안나간다.


*CMOS (Complementary Metal Oxide Semiconductor)
CMOS (Complementary Metal Oxide Semiconductor)란 반도체소자의 일종으로서, N type과 P type의 조합으로 구성되어 swithcing 로직을 가지는 소자를 말한다. 일반적으로 컴퓨터의 H/W 정보를 담은 CMOS setup처럼, 어떤 정보를 저장하고 논리적으로 처리하는데 핵심적일 역할을 하는 단위소자로서 컴퓨터의 대부분의 반도체는 이런 CMOS 기술이 적용되어 있다. 최근 RF에서도 CMOS 기술을 이용한 MMIC 와 RFIC 기술을 점차 실용화함으로써, 현재의 GaAs, SiGe 공정의 한계라고 할 수 있는 집적도를 향상시켜가고 있다. CMOS 기술을 이용하면 아날로그 RF 단 뿐만 아니라 디지털 파트까지 손쉽게 집적할 수 있어서 진정한 RFIC를 개발하는데 보다 근접할 수 있게 된다. 즉 RF에서 CMOS는 RF에처리부에 디지털과 아날로그 양방면에 모두 적용할 수 있는 여지를 주는 소자로서 의미가 있다.


*coherent (코히어런트)
통신의 신호 송수신에서 주로 사용되는 coherent라는 용어는 우리말로 무언가에 밀접하게 따라가다라는 의미이다. 실제로 통신에서 coherent란 의미는 두 신호간의 위상관계가 고정되었다는 의미이다. 다시 말해서 위상을 동기시킨 송수신 신호구조를 coherent라고 부른다.
coherent방식의 송수신이란 의미는 송신기의 LO 신호와 수신기의 LO 신호가 위상이 동기되어야 하는 방식을 말한다. 즉 수신기와 송신기 사이가 위상고정(phase locked)되는 경우이다. 그렇지 않은 경우는 Non*coherent라고 부르게 된다.


*Coil (코일)
인덕턴스는 선로길이가 길 때 나타나는 현상이므로 선로를 스프링모양으로 감으면 적은 면적상에 많은 인덕턴스를 구현할 수 있다. 또한 상호 인덕턴스가 강해져서 선로길이보다 더 많은 인덕턴스를 구현현할 수 있다. 이렇게 스프링처럼 동심원으로 감아놓은 형태의 인덕터를 흔히 Coil이라 부른다. 주로 저주파에서 사용되는 용어로서, 고주파에서는 이런 코일 구조뿐 아니라 다양한 구조가 응용되기 때문에 코일이란 용어는 별로 안쓰고 인덕터라는 용어를 주로 사용한다.  


*Color Noise (유색잡음)
이것은 백색잡음(white noise)와 반대로, 특정 주파수에서만 발생하는 잡음을 통칭하는 일반용어이다. 빛의 조성에 있어서 모든 색(즉 빛도 전자기파이므로 모든 주파수 성분)을 합치면 생상이 white가된다는 것에 반대되는 개념이다. 실제로 Color noise란 용어는 독립적으로 사용되기 보다는 White noise의 반대적인 개념으로 종종 사용된다.


*Condensor (콘덴서)
주로 저주파에서 사용되는 용어로서, nF ~ mF 수준 이상의 큰 캐패시턴스값을 가지는 소자를 콘덴서라 부르는 경향이 있다. 같은 의미지만 작은 C값을 사용하는 RF에서는 캐패시터란 용어를 주로 사용한다. 경우에 따라서 Capacitor는 단순히 Capacitance만을 고려한 소자를 의미하고, condenser는 R,L과 같은 기생효과들을 고려한 등가회로 전
체를 지칭하기도 한다.


*Conductivity (도전율)
도체가 얼마나 전기를 잘 흐르게 하느냐를 나타내는 지표.
대표문자로는 σ(시그마)를 사용한다. 한 변의 길이가 1m인 육면체에서 마주보는 두 면간의 전기적 흐름도를 도전율로 정의하며, 도체의 고유저항의 역수를 의미한다.
고유저항의 역수이기 때문에 단위가 ohm을 뒤집은 mho 가 되며(무슨 애들 말장난같지만..) 단위길이체적당 값이므로 결국 단위는 mhos/m 혹은 siemens (지멘스)라고 부른다.
일반적으로 도체의 도전율이라 하는 경우는 표준 동선의 도전율(길이 1m, 절단면 1mm로 20°C에서 1/58옴=0.01721옴)을 100%로 하여 비교한 100분율로 표시한 것이기도 하다.
하여튼 그 값이 클수록 전기적 성질이 높다는 뜻이다.


*Conversion Gain (변환이득)
Didoe만을 사용한 Passive Mixer와 달리, DC전원과 능동소자를 사용하는 Active Mixer는 Tr의 증폭작용에 의해 이득을 가지면서 Frequency Conversion이 이루어진다. 그래서 입력에 비해 출력이 작아서 Conversion Loss를 가지는 Passive Mixer와 달리, Active Mixer는 오히려 Conversion Gain을 가진다.


*Conversion Loss (변환손실)
주로 Mixer에서 많이 사용되는 용어로서, Mixer가 하는일이 결국 Frequency Conversion(주파수 변환)이기 때문에 사용된다. Mixer의 용도는 결국 저주파*>고주파로 변환하는 UP Convertor와 고주파*>저주파로 변환하는 Down Convertor로 나뉘어 진다. 여기서 Mixer가 하는 일은 LO와 RF 또는 IF 주파수를 서로 섞어서 그 합과 차에 해당하는 harmonic들을 뽑아내기 때문에, 당연히 원래 신호보다 전력이 내려가는게 정상이 된다. 즉 원래 신호에 감쇄가 일어나게 된다. Mixer 자체는 능동소자와 DC전원이 필요한 Active Mixer와 Diode만을 사용하는 Passive Mixer로 나뉘어지는데, Passive Mixer는 결국 내부증폭작용 없이 감쇄만 있어야 정상이므로(Passive에서 출력이 입력보다 클 수가 없으니) Conversion loss는 Passive Mixer에서 사용하는 용어이다. Conversion loss는 결국 Passive Mixer에서 입력*>출력을 거치면서 발생하는 손실값을 의미하기 때문에 포트설정에 따라 S21 혹은 S31을 지칭하게 된다.


*Convolution (콘볼루션, 길쌈)
Concolution이란 각종 시스템에서 시스템 고유의 동작함수와 신호함수의 상호적분관계를 말한다. 일반수식으로는 y(t) = 적분{ x( τ) * h( t * τ) }
과 같은 형태가 되어, 한 신호를 기준으로 다른 신호가 상대적인 시간변화를 가지며 그에 따른 적분(합)의 계산을 통해 산출된 신호를 의미한다. 결국 convolution은 서로 다른 두 신호를 합성하는 과정 을 의미하는 수학적인 시스템 용어이다. 그중 한 신호 h(t) 가 시스템의 동작을 나타내는 고유신호인 경우라면, convolution은 그 시스템을 거친 신호가 변화하는 과정과 결과를 의미하는 용어가 된다.


*Convolution (콘볼루션, 길쌈)
Concolution이란 각종 시스템에서 시스템 고유의 동작함수와 신호함수의 상호적분관계를 말한다. 일반수식으로는 y(t) = 적분{ x( τ) * h( t * τ) }
과 같은 형태가 되어, 한 신호를 기준으로 다른 신호가 상대적인 시간변화를 가지며 그에 따른 적분(합)의 계산을 통해 산출된 신호를 의미한다. 결국 convolution은 서로 다른 두 신호를 합성하는 과정 을 의미하는 수학적인 시스템 용어이다. 그중 한 신호 h(t) 가 시스템의 동작을 나타내는 고유신호인 경우라면, convolution은 그 시스템을 거친 신호가 변화하는 과정과 결과를 의미하는 용어가 된다.


*Coupler (커플러, 결합기)
우선 Coupling이라는 현상을 명확하게 이해해야 하므로 Coupling의 단어설명을 꼭 참조하기 바란다. 고주파로 갈수록 선로자체에서 누설되는 전자파 에너지량이 늘어나는 Coupling현상이 커지므로, 고주파 RF에서는 아예 Coupling을 이용하여 회로를 만들기도 한다.
보통 커플러라 하면 이렇게 Coupling 현상을 적극적으로 활용한 회로구조를 지칭한다.
1. 하나의 신호전력을 두개 이상의 특정 신호전력으로 배분하는 것 (divider 역할)
2. 특정 신호전력원의 일부 전력만 추출하는 것 (sampler 역할)
이 모든 것이 일종의 Coupling현상을 이용하여 이루어지기 때문에, Coupler라고 불리우는 것이다. 그냥 커플러라고 하면 위의 두가지 다른 역할중 어느 것을 지칭하는 지는 알수 없다. 그리고 Coupling이라는 것이 일반적으로는 끊어진 선로간의 에너지 교환이라는 뜻이지만, 꼭 떨어져 있어야 한다는 의미는 아니며, Hybrid Coupler와 같이 연결된 형태도 존재한다. (하이브리드의 단어설명 참조)
하지만 위의 두가지 역할은 근본적으로 원리는 같으며, 단지 Coupling을 이용하여 전력을 어떤 비율로 배분하느냐의 문제가 된다. 예를 들어 전력을 반반으로 배분하면 3dB divider가 되고, (3dB는 2배 , *3dB는 1/2 이므로. 여기서 *부호가 생략된 것이다) 전력을 20:1로 배분하면 신호 sample을 구하기 위한 것이다.
1번과 같이 전력을 배분하는 식의 응용례는 말 그대로 신호를 분배해야 할 경우에 일반적으로 사용되며, 2번과 같은 샘플러 역할은 특정 신호의 일부 전력만 따서 그 특성을 보고자 할때 많이 사용된다. (일종의 표본추출이다)
Coupler의 장점은 입출력단의 VSWR이 이론적으로 1, 즉 반사없이 신호를 받아들인다는 점이기 때문에 능동회로의 입출력 매칭 대용으로 애용되기도 하다. 그런 경우 회로가 두개로 분기되어서 크기가 커지게 되며, 분기된 회로는 나중에 Coupler를 꺼꾸로 달아서 combiner의 역할도 한다. 한 그 자체가 구조크기에 기인하고, 원하는 주파수의 파장길이 (보통 1/4파장을 많이 사용)에 비례하기 때문에 신호의 대역폭이 좁아지는 단점도 있다. Coupler란 것은 이렇게 신호전력을 배분 또는 추출하기 위한 것을 통칭하며, 그 응용범위는 매우 넓다. (뒤집어 말하면 이러한 필요가 있을 때 사용한다) Coupler에 관련한 내용은 대부분의 초고주파 공학 서적에 잘 나와 있으니 책을 참고하는 것이 가장 빠른 길이다.


*Coupling (커플링, 결합)
Coupling이라는 용어는 전자파를 다루는 RF에서 수시로 나오는 기본개념중 하나이다.
coupling의 사전적인 정의는 인접한 대상끼리 에너지를 교류하는 현상을 지칭한다.
알다시피 RF는 기본적으로 고주파, 그것도 외부 전자파로 방사가 잘 되는 주파수 신호를 다루기 때문에 많건 적건 선로에서 에너지가 전자파 E,H field 형태로 조금씩 방출되기 시작한다. 그래서 인접 선로끼리 서로 방출된 신호에너지가 상대방 선로에 간섭 혹은 직접적으로 유입되는 현상이 발생하는데, 이것을 보통 Coupling이라고 부르게 된다.
Coupling은 어쩔 수 없이 발생하는 현상으로, 각자 진행하는 선로끼리는 Coupling이 적을 수록 설계하기가 쉬우며, 선로들을 가깝게 붙여서 설계한 경우에는 주파수가 올라갈 수록 Coupling이 심해져서 서로가 서로에게 잡음이 되고 자신은 에너지가 누설되기 때문에 성능이 저하되게 된다. 그래서 RF 고주파 회로를 만들 때는 인접선로간의 Coupling에 매우 주의해야 하며, 일일히 계산할 수는 없기 때문에 적당한 거리를 떨어뜨리거나 격벽을 세워서 막는 것이 좋다. 일반 RF 회로설계툴을 이용해서는 Coupling의 영향이 정확히 계산되지 않기 때문에, 필드해석툴을 이용하여야만 제대로된 Coupling 영향을 평가할 수 있다. 보통 Coupling을 계산한다고 하는것은 그 Coupling된 전력값 그 자체를 계산한다기 보다는 Coupling의 발생으로 인해 회로의 성능이 얼마나 저하되는 지를 체크하기 위한 목적이다.
그래서 Coupling된 결과 자체를 고려하여 회로를 설계하던지, 아니면 Coupling이 적게 일어나도록 회로상의 소자나 선로 간격을 충분히 벌리게 된다.
Coupling이 꼭 나쁘기만 한것은 아니고, RF에서는 Coupling이 잘 발생하기 때문에 일부러 Coupling을 이용하여 회로를 설계하는 경우도 많다. Coupling현상을 이용하여 전력을 배분하거나 특정전력을 추출하는 coupler가 대표적인 경우이고, 필터의 경우에도 Coupling 현상을 이용한 필터의 종류가 매우 많다. 저주파를 하다가 고주파를 하는 사람들이 가장 당황해 하는 경우 중 하나는, RF에선 이런 Coupling을 이용하여 선로가 붙어있지도 않은데 동작하기 때문이다. 그만큼 고주파가 될수록 누설 전자파가 많고 Coupling이 심해서 선로가 끊어져 있어도 전력을 전달하는 경우가 많다. RF 설계를 하려면 필요없는 Coupling을 막기 위해 선로나 소자배치에 매우 신중해야 하며(아무리 강조해도 지나침이 없음!), Coupling을 이용하여 회로를 만들때도 과도한 Coupling으로 인해 상관없는 회로까지 영향을 미치는지 매우 주의깊게 봐야 할 것이다.


*CPW (Coplanar Waveguide)
CPW(Coplanar Waveguide)는 waveguide란 용어가 붙었지만 실제로는 TEM mode를 이용하는 Transmission line의 일종이다. CPW는 Microstrip선로와 유사하지만 GND가 밑에 있는 것이 아니라 신호선의 양쪽에 존재한다. 경우에 따라 밑에 추가적인 GND를 놓을수도 있고 없앨 수도 있다.(계산할때 수식이 약간 다르다) 그래서 실제로 CPW는 Gronded CPW와 그냥 CPW 두가지가 존재한다. CPW는 신호선과 GND가 한 면에 있기 때문에 Via를 구현하기가 쉽고, 그래서 Short stub류와 같은 회로를 구현하기가 훨씬 간단해진다. 무엇보다도 CPW는 한면에 공존하는 신호선과 GND사이에 수직으로 field가 걸리기 때문에 Microstrip과 달리 완전한 TEM 모드를 구현할 수 있어서 고주파가 될수록 Microstrip보다 CPW의 전송특성이 좋아진다. 즉 CPW는 에칭에 의해 회로구현이 쉬운 Microstrip과 완전한 TEM모드가 구현되는 Stripline의 장점을 모아서 만들어진 형태이다. CPW는 여러 장점들이 있지만 아무래도 Microstrip보다는 설계와 구현이 다소 복잡하기 때문에 일반적으로 쓰이는 것은 아니고 상황에 따라 사용된다.


*CRC(Cyclic Redundancy Code)
The use of the syndrome of a cyclic block code to detect errors
CRC(Cyclic Redundancy Check)는 시리얼 전송에서 데이타의 신뢰성을 검증하기 위한 에러 검출 방법의 일종이다. 간단한 에러 검출방법으로는 parity 비트에 의한 방법과 check*sum에 의한 에러 검출 방법이 있지만 parity 비트에 의한 방법은 데이타 중에 한꺼번에 2비트나 4비트가 변하게 되면 검출을 할 수 없고, check*sum에 의한 방법은 한 바이트에서 +1, 다른 바이트에서는 *1로 에러가 생기는 경우만 해도 에러는 검출 되지 않는다. 즉, 이들 방법으로는 에러를 검출해 낼 수 있는 확률이 대단히 낮다. CRC에 의한 방법은 높은 신뢰도를 확보하며 에러 검출을 위한 오버헤드가 적고, 랜덤 에러나 버스트 에러를 포함한 에러 검출에 매우 좋은 성능을 갖는 것을 특징으로 한다. 이러한 CRC 방법으로 보통 2가지 종류가 사용 되는데, 원칩 마이크로 프로세서와 같이 간단한 용도에서는 CRC*16 이 사용되고, 이보다 더욱 정확한 에러 검출이 필요한 경우에는 CRC*32를 사용한다. ZIP,ARJ,RAR 과 같은 압축 프로그램이나 플로피 디스크 등의 데이터 검증 용도에 널리 사용되고 있다.


*Cross Modulation
Cross Modulation의 정의는, 원하지 않는 신호에 의해 원래신호의 반송파(carrier)에 intermodulation이 발생하는 현상을 의미한다. 단말기 등에서는 송신신호와 수신 신호를 duplexer를 통해 하나의 안테나에서 처리하게 되는데, 이때 duplexer의 송*수신단간의 isolation이 중요해진다. 하지만 완벽할수는 없어서 송신신호의 일부가 안테나로 가지 못하고 수신단으로 흘러들어가버리면서, 실제 수신신호와 혼변조(intermodulation)을 일으키게 된다. 이런 류의 현상을 흔히 cross modulation이라 하며, Single tone Test 등을 통해 그정도를 가늠하기도 한다. Cross Modulation과 Intermodulation은 원리는 기본적으로 동일하다. 비선형시스템에서의 하모닉생성과 그 조합에 의해 불필요한 신호가 잡음원으로서 발생하는 것이다. 하지만 두가지는 엄연히 구분되는데, 혼변조가 일어나는 신호의 소스원에 따라 분류된다. Intermodulation은 원래 원하는 신호의 주파수대역 안에서 여러 tone들의 조합에 의해 발생하는 변조잡음을 지칭하기 위한 것이다. 즉 원하는 수신신호 혹은 송신신호중에서 내부적으로 발생한다. 반면 cross modulation은 이렇게 자체적인 주파수자원 내부가 아닌, 아예 상관없는 주파수원이 치고 들어와서 발생하는 intermodulation현상을 지칭하는 말이다. 수신단에 송신신호가 새어 들어와서 발생하는 위의 현상이 대표적인 cross modulation 현상이지만, 이외에도 외부에서 잠입가능한 주파수잡음원에 의한 변조현상 일체를 지칭한다.


*Cross Polarization Diversity (편파 다이버시티)
편파 다이버시티는 CDMA가 아닌 AMPS, TDMA나 B*WLL처럼 각 인접셀 기지국이 서로 다른 주파수를 사용하는 이동통신 방식에서 사용되는 주파수 효율 향상 기술이다.
한개의 안테나를 사용하여 두개의 주파수신호를 Cross Polarization시켜서 사용하는 방법이다. 즉 한 안테나에 두개의 서로 간섭이 없는 orthogonal phase를 가지는 두 주파수 신호를 섞어서 쓰는 것이다. 이렇게 함으로써 인접셀에서도 같은 주파수를 재활용할 수 있어서 사용자 용량을 증가시킬 수 있다.


*CSSP (Chip*Sized SAW Package)
Chip*Sized SAW Package EPCOS라고 Siemens Matushita(spelling이 맞는지?)의 joint*venture 회사에서 SAW filter size를 chip size로 소형화하는 기술을
말하는 것 같습니다. 뭐 이렇게 자꾸 신규 용어가 쏟아지는지 ~아 괴롭다.


*CTCSS (Continuous Tone Controlled Squelch System)
CTCSS (Continuous Tone Controlled Squelch System)
: 연속 톤 스켈치 제어 기능으로 1개의 메인 체널당 일반적으로 38개의 Tone Code를 지정하여 Channel과 Tone Code가 일치하는 기기로부터 송신되는 신호만을 수신하는 기능으로써 통화시 혼신을 방지하는 기능
신고