'old/용어정리'에 해당되는 글 72건

  1. 2010.11.04 broadband ; 광대역
  2. 2010.11.04 BPR (Business Process Re-engineering) ; 업무 재설계
  3. 2010.11.04 bottleneck ; 병목현상
  4. 2010.07.13 sms
  5. 2010.07.07 1
  6. 2010.04.26 Refactoring - Martin P.
  7. 2010.03.24 Network
  8. 2010.02.10 MMC/MNC 란?
  9. 2010.02.10 IMSI 란?
  10. 2010.02.10 URI 란?
  11. 2010.02.10 MIME란?
  12. 2010.02.09 Schema 란?

broadband ; 광대역

브로드밴드는 주파수 분할 다중화 기법(FDM)을 이용하여, 하나의 전송매체에 여러 개의 데이터 채널을 제공하는 통신관련 용어이다. TV나 라디오 등을 포함하여 많은 전송 매체에서 광대역을 사용하고 있는데 일반적으로 100 kHz 이상의 반송 주파수를 사용한다.

'old > 용어정리' 카테고리의 다른 글

buffer ; 버퍼  (0) 2010.11.04
BSRAM (Burst Static Random Access Memory)  (0) 2010.11.04
BPR (Business Process Re-engineering) ; 업무 재설계  (0) 2010.11.04
bottleneck ; 병목현상  (0) 2010.11.04
sms  (0) 2010.07.13
Posted by jazzlife
,

BPR (Business Process Re-engineering) ; 업무 재설계

BPR[비피알]은 1990년대 초 미국에서 제창한 개념으로서, 사업활동을 영위하는 조직의 측면에 있어, 작업을 개선하고 자원의 사용을 보다 효율적으로 만들기 위하여, 하나의 목적으로 처음부터 다시 근본적인 변화를 만드는 것을 의미한다. BPR은 업무 프로세스의 근본적인 재고(再考)가 수반되며, 원가, 서비스품질, 직원들의 활력 등과 같은 중대한 지표들이나 또는 그 모두를 강화하기 위한 업무활동의 재설계로 이어진다. 일반적으로 BPR의 개념에는 데이터를 조직화하고, 방향을 설정하기 위하여 컴퓨터정보기술을 사용하는 것이 포함된다.

'old > 용어정리' 카테고리의 다른 글

BSRAM (Burst Static Random Access Memory)  (0) 2010.11.04
broadband ; 광대역  (0) 2010.11.04
bottleneck ; 병목현상  (0) 2010.11.04
sms  (0) 2010.07.13
1  (0) 2010.07.07
Posted by jazzlife
,

bottleneck ; 병목 현상

병목은 처리 중인 전체 프로세스가 갑자기 느려지거나 정지하는 원인이 되는 장소를 말한다. 예를 들어, 비록 ISP가 보장한 인터넷 접속속도가 56 Kbps이라도, 사용자의 모뎀이 14.4 Kbps의 속도 밖에는 낼 수 없다면, 바로 그 모뎀이 전체 성능을 떨어뜨리는 주 요인으로서, "병목" 부분이라고 생각할 수 있다. 병목이라는 단어는 병 속에 담긴 액체가 너무 빨리 나오지 않도록 하기 위해 좁게 만들어 놓은 주둥이 부분을 가리킨다. 그러나 정보기술에서의 병목 현상이란 전체 처리 과정을 느리게 만드는 경향이 있는 프로세스 내의 한 부분을 가리키는 말로 사용된다.

'old > 용어정리' 카테고리의 다른 글

broadband ; 광대역  (0) 2010.11.04
BPR (Business Process Re-engineering) ; 업무 재설계  (0) 2010.11.04
sms  (0) 2010.07.13
1  (0) 2010.07.07
Refactoring - Martin P.  (0) 2010.04.26
Posted by jazzlife
,

sms

old/용어정리 2010. 7. 13. 13:44
TPDU is an acronym for Transport Protocol Data Unit.

UCS : Universal Character Set characters
AT Command : AT 명령어의 원래 명칭은 헤이즈 명령어(Hayes command) 입니다.
미국의 헤이즈 마이크로컴퓨터(Hayes Microcomputer products)사의 스마트 모뎀 및 그 호환 모뎀을 제어하기 위하여 사용되는 명령어 랍니다.
현재 사실상의 표준으로 되어있는 거의 모든 모뎀이 사용하고 있습니다.
통상 명령어가 AT로 시작하기 때문에 AT 명령어라 불리우게 되었습니다.
여기서 AT는 "주목"의 의미를 가지는 attention의 약자 라고 합니다.

'old > 용어정리' 카테고리의 다른 글

BPR (Business Process Re-engineering) ; 업무 재설계  (0) 2010.11.04
bottleneck ; 병목현상  (0) 2010.11.04
1  (0) 2010.07.07
Refactoring - Martin P.  (0) 2010.04.26
Network  (0) 2010.03.24
Posted by jazzlife
,

1

old/용어정리 2010. 7. 7. 12:09

glibc : GNU C 라이브러리(줄여서 glibc)는 GNU 프로젝트의 일환으로 만든 C 표준 라이브러리의 한
             종류이다.

EABI : EABI(임베디드 응용 프로그램 이진 인터페이스, embedded-application binary
            interface)는 임베디드 소프트웨어 프로그램을 수행하는 파일 형식, 자료형, 레지스터 사
            용, 스택 프레임 조직, 명령 변수를 위한 표준 변환을 정의하고 있다.

             EABI를 지원하는 컴파일러는 이와 같은 또다른 컴파일러가 만든 코드와 호환되는 목적코드를
             만드므로 개발자들이 다른 컴파일러가 만들어 낸 목적 코드와 한 컴파일로로 만
             든 라이브러리를 연결할 수 있게 한다. 자체적인 어셈블리어 코드를 작성하는 개발자
             들은 EABI를 사용하여 호환 컴파일러가 만들어낸 어셈블리 코드와 상호 작용하게 할 수
             있다.

             일반 목적의 운영 체제에서 ABI와 EABI의 추된 차이점은 권한 명령이 응용 프로그램 코
             드 내에서 실행되는 점, 동적 링크가 요구되지 않는다는 점(심지어는 아예 동적 링크를
             허용하지 않는 경우도 있음), 메모리 저장을 위해 더 작아진 스택 프레임 조직을 갖춘다
             는 점이 있다.[1]

             널리 쓰이는 EABI로는 파워피씨[2]ARM 아키텍처[3][4]가 있다.
            
primitive : 컴퓨터 프로그램 작성에서 어떤 복잡한 프로그램을 만드는 데 사용될 수 있는 언어의 가장 기본적인 
                단위, 즉 문자, 숫자, 요소 등.

marshalling : 마샬링은 하나 이상의 프로그램 또는 연속되어 있지 않은 저장 공간으로부터 데이터를 모은 
                      다음, 데이터들을 메시지
버퍼에 집어넣고, 특정 수신기나 프로그래밍 인터페이스에 맞도록 그 
                      데이터를 조직화하거나, 미리 정해진 다른 형식으로 변환하는 과정을 말한다.


Daemon (computer software): a background process

'old > 용어정리' 카테고리의 다른 글

bottleneck ; 병목현상  (0) 2010.11.04
sms  (0) 2010.07.13
Refactoring - Martin P.  (0) 2010.04.26
Network  (0) 2010.03.24
MMC/MNC 란?  (0) 2010.02.10
Posted by jazzlife
,
리팩토링은 소프트웨어의 품질을 높이기 위해 프로그램 소스를 수정하는 것을 말한다.
리팩토링 후 기능의 변경이 발생해서는 안되며 테스트 역시 제품 릴리스 때와 동일하게 수행하여야 한다.
이 부분에서 비용이 많이 발생 할 수도 있다. 따라서 리랙토링 작업의 선택은 주의깊게 판단해야 한다.
역으로 아래의 내용을 생각하면서 코딩하면 나중에 해야 할 리팩토링 양이 줄어들 것이며 코드 품질이 상당히 높아질 것이다.

1. 코드 속의 나쁜 냄새
1.1 중복된 코드
한 곳 이상에서 중복된 코드 구조가 나타난다면, 그것을 합쳐서 프로그램을 개선한다.

1.2 긴 코드
메소드의 길이가 아니라 메소드가 하는 일과 일을 처리하는 방법 사이의 의미적 거리이다.
메소드를 분해하는데 더 공격적이어야 한다.

1.3 거대한 클래스
클래스 하나가 너무 많은 일을 하려 할 때는 보통 지나치게 많은 인스턴스 변수가 나타난다.
이럴 경우, 중복된 코드가 존재할 확률이 높다.

1.4 긴 파라미터 리스트
긴 파라미터 리스트는 이해하기 어렵고, 일관성이 없거나 사용하기 어려울 뿐만 아니라, 다른 데이터가 필요할 때마다 계속 고쳐야 하기 때문에 파라미터 리스트는 짧은 게 좋다.

1.4 확산적 변경
한 클래스가 다른 이유로 인해 다른 방법으로 자주 변경되는 경우 발생한다.

1.5 산탄총 수술
클래스 하나를 변경했을 때 다른 많은 클래스를 고쳐야 하는 경우이다.

1.6 기능에 대한 욕심
메소드가 자신이 속한 클래스보다 다른 클래스에 관심을 가지고 있는 경우이다.
주석을 써야 할 것 같은 생각이 들면, 먼저 코드를 리팩토링 하여 주석이 불필요하도록 한다.

2. 리팩토링 메소드

2.2.메소드 정리(Composing Method)
2.2.1.Extract Method
그룹으로 함께 묶을 수 있는 코드 조각이 있으면, 코드의 목적이 잘 드러나도록 메소드의 이름을 지어 별도의 메소드로 뽑아낸다. 지나치게 긴 메소드나, 또는 목적을 이해하기 위해서 주석이 필요한 코드를 보면 그 부분을 하나의 메소드로 뽑아낸다.

2.2.2.Inline Method
메소드 몸체가 메소드의 이름만큼이나 명확할 때는, 호출하는 곳에 메소드의 몸체를 넣고, 메소드를 삭제하라.

2.2.3.Inline Temp
간단한 수식의 결과 값을 가지는 임시변수가 있고, 그 임시변수가 다른 리팩토링을 하는데 방해가 된다면, 이 임시변수를 참조하는 부분을 모두 원래의 수식으로 바꿔라.

2.2.4.Replace Temp with Query
어떤 수식의 결과 값을 저장하기 위해서 임시변수를 사용하고 있다면, 수식을 뽑아내서 메소드로 만들고, 임시변수를 참조하는 곳을 찾아 모두 메소드 호출로 바꾼다. 새로 만든 메소드는 다른 메소드에서도 사용될 수 있다.

2.2.5.Introduce Explaining Variable
복잡한 수식이 있는 경우에는, 수식의 결과나 또는 일부에 자신의 목적을 잘 설명하는 이름으로 된 임시변수를 사용하라.

2.2.6.Split Temporary Variable
루프 안에 있는 변수나 collecting temporary variable도 아닌 임시 변수에 값을 여러 번 대입하는 경우에는, 각각의 대입에 대해서 따로따로 임시변수를 만들어라.

2.2.7.Remove Assignments to Parameters

파라미터에 값을 대입하는 코드가 있으면, 대신 임시변수를 사용하도록 하라.

2.2.8.Replace Method with Method Object

긴 메소드가 있는데, 지역변수 때문에 Extract Method를 적용 할 수 없는 경우에는, 메소드를 그 자신을 위한 객체로 바꿔서 모든 지역변수가 그 객체의 필드가 되도록 한다. 이렇게 하면 메소드를 같은 객체 안의 여러 메소드로 분해할 수 있다.

2.2.9.Substitute Algorithm

알고리즘을 보다 명확한 것으로 바꾸고 싶을 때는, 메소드의 몸체를 새로운 알고리즘으로 바꾼다.

2.3.객체간의 기능 이동
2.3.1.Move Method
메소드가 자신이 정의된 클래스보다 다른 클래스의 기능을 더 많이 사용하고 있다면, 이 메소드를 가장 많이 사용하고 있는 클래스에 비슷한 몸체를 가진 새로운 메소드를 만들어라. 그리고 이 전 메소드는 간단한 위임으로 바꾸거나 완전히 제거하라.

2.3.2.Move Field
필드가 자신이 정의된 클래스보다 다른 클래스에 의해서 더 많이 사용되고 있다면, 타깃 클래스에 새로운 필드를 만들고 기존 필드를 사용하고 있는 모든 부분을 변경하라.

2.3.3.Extract Class
두 개의 클래스가 해야 할 일을 하나의 클래스가 하고 있는 경우, 새로운 클래스를 만들어서 관련 있는 필드와 메소드를 예전 클래스에서 새로운 클래스로 옮겨라.

2.3.4.Inline Class
클래스가 하는 일이 많지 않은 경우에는, 그 클래스에 있는 모든 변수와 메소드를 다른 클래스로 옮기고 그 클래스를 제거하라. Extract Class의 반대이다.

2.3.5.Hide Delegate
클라이언트가 객체의 위임 클래스를 직접 호출하고 있는 경우, 서버에 메소드를 만들어서 Delegate를 숨겨라.

2.3.6.Remove Middle Man
클래스가 너무 간단한 위임을 너무 많이 하고 있는 경우에는, 클라이언트가 Delegate를 직접 호출하도록 하라.

2.3.7.Introduce Foreign Method
사용하고 있는 서버 클래스에 부가적인 메소드가 필요하지만 클래스를 수정할 수 없는 경우에는, 첫 번째 인자로 서버 클래스의 인스턴스를 받는 메소드를 클라이언트에 만들어라.

2.3.8.Introduce Local Extension
사용하고 있는 서버 클래스에 여러 개의 메소드를 추가할 필요가 있지만 서버 클래스를 수정할 수 없는 경우, 필요한 추가 메소드를 포함하는 새로운 클래스를 만들어라. 이 확장 클래스를 원래 클래스의 서브 클래스 또는 wrapper 클래스로 만들어라.

2.4.데이터 구성(Organizing Data)
2.4.1.Self Encapsulate Field
필드에 직접 접근하고 있는데 필드에 대한 결합이 이상해지면, 그 필드에 대한 get/set 메소드를 만들고 항상 이 메소드를 사용하여 필드에 접근하라.

2.4.2.Replace Data Value with Object
추가적인 데이터나 동작을 필요로 하는 데이터 아이템이 있을 때는, 데이터 아이템을 객체로 바꾸어라.

2.4.3.Change Value to Reference
동일한 인스턴스를 여러 개 가지고 있는 클래스가 있고 여러 개의 동일한 인스턴스를 하나의 객체로 바꾸고 싶으면, 그 객체를 참조 객체로 바꾸어라.

2.4.4.Change Reference to Value
작고, 불변성이고 관리하기가 어려운 참조 객체가 있는 경우, 그것을 객체로 바꾸어라.

2.4.5.Replace Array with Object
배열의 특정 요소가 다른 뜻을 가지고 있다면, 배열을 각각의 요소에 대한 필드를 가지는 객체로 바꿔라.

2.4.6.Duplicate Observed Data
GUI 컨트롤에서만 사용 가능한 도메인 데이터가 있고, 도메인 메소드에서 접근이 필요한 경우, 그 데이터를 도메인 객체로 복사하고, observer를 두어 두 데이터를 동기화하라.

2.4.7.Change Unidirectional Association to Bidirectional
각각 서로의 기능을 필요로 하는 클래스가 있는데, 링크가 한쪽 방향으로만 되어 있는 경우,
반대 방향으로 포인터를 추가하고, 수정자가 양쪽 세트를 모드 업데이트하게 변경하라.

2.4.8.Replace Magic Number with Symbolic Constant
특별한 의미를 가지는 숫자 literal이 있으면, 상수를 만들고, 의미를 잘 나타내도록 이름을 지은 다음, 숫자를 상수로 바꾸어라.

2.4.9.Encapsulate Field
Public 필드가 있는 경우, 그 필드를 private로 만들고, 접근자를 제공하라.

2.4.10.Encapsulate Collection
Collection을 리턴 하는 메소드가 있으면, 그 메소드가 읽기전용 뷰를 리턴 하도록 만들고, add/remove 메소드를 제공하라.

2.4.11.Replace Record with Data Class
전통적인 프로그래밍 환경에서의 레코드 구조에 대한 인터페이스가 필요한 경우, 그 레코드를 위한 데이터 객체를 만들어라.

2.4.12.Replace Type Code with Class
클래스의 동작에 영향을 미치지 않는 숫자로 된 타입 코드가 있으면 숫자를 클래스로 바꾸어라.

2.4.13.Replace Type Code with Subclasses
클래스의 동작에 영향을 미치는 변경 불가능한 타입 코드가 있다면, 타입 코드를 서브 클래스로 바꾸어라.

2.4.14.Replace Type Code with State/Strategy
클래스의 동작에 영향을 미치는 타입 코드가 있지만 서브클래싱을 할 수 없을 때는, 타입 코드를 State 객체로 바꾸어라.

2.4.15.Replace Subclass with Fields
상수 데이터를 리턴하는 메소드만 다른 서브클래스가 있다면, 그 메소드를 수퍼클래스의 필드로 바꾸고 서브클래스를 제거하라.

2.5.조건문의 단순화
2.5.1.Decompose Conditional
복잡한 조건문이 있는 경우, 조건 then 부분, 그리고 else 부분에서 메소드를 추출하라.

2.5.2.Consolidate Conditional Expression
같은 결과를 초래하는 일련의 조건 테스트가 있는 경우, 그것을 하나의 조건 식으로 결합하여 뽑아내라.

2.5.3.Consolidate Duplicate Conditional Fragments
동일한 코드 조작이 조건문의 모든 분기 안에 있는 경우, 동일한 코드를 조건문 밖으로 옮겨라.

2.5.4.Remove Control Flag
일련의 boolean 식에서 컨트롤 플래그 역할을 하는 변수가 있는 경우, break 또는 return을 대신 사용하라.

2.5.5.Replace Nested Conditional with Guard Clauses
메소드가 정상적인 실행 경로를 불명확하게 하는 조건 동작을 가지고 있는 경우, 모든 특별한 경우에 대해서 보호절을 사용하라.

2.5.6.Replace Conditional with Polymorphism
객체의 타입에 따라 다른 동작을 선택하는 조건문을 가지고 있는 경우, 조건문의 각 부분을 서브 클래스에 있는 overriding 메소드로 옮겨라. 그리고 원래 메소드를 abstract로 만들어라.

2.5.7.Introduce Null Object
Null 체크를 반복적으로 하고 있다면, null 값을 null 객체로 대체하라.

2.5.8.Introduce Assertion
코드의 한 부분이 프로그램의 상태에 대하여 어떤 것을 가정하고 있으면, assertion을 써서 가정을 명시되게 만들어라.

2.6.메소드 호출의 단순화
2.6.1.Rename Method
메소드의 이름이 그 목적을 드러내지 못하고 있다면 메소드의 이름을 바꾸어라.

2.6.2.Add Parameter
어떤 메소드가 그 메소드를 호출하는 부분에서 더 많은 정보를 필요로 한다면, 이 정보를 넘길 수 있는 객체에 대한 파라미터를 추가하라.

2.6.3.Remove Parameter
파라미터가 메소드 몸체에서 더 이상 사용되지 않는다면, 그 파라미터를 제거하라.

2.6.4.Separate Query from Modifier
값을 리턴하는 경우뿐만 아니라 객체의 상태도 변경하는 메소드를 가지고 있는 경우, 두 개의 메소드를 만들어서 하나는 값을 리턴하는 역할을 하고, 하나는 객체의 상태를 리턴하는 역할을 하게 하라.

2.6.5.Parameterize Method
몇몇 메소드가 메소드 몸체에 다른 값을 포함하고 있는 것을 제외하고는 비슷한 일을 하고 있다면, 다른 값을 파라미터로 넘겨 받는 하나의 메소드를 만들어라.

2.6.6.Replace Parameter with Explicit Methods
파라미터의 값에 따라서 다른 코드를 실행하는 메소드가 있다면, 각각의 파라미터 값에 대한 별도의 메소드를 만들어라.

2.6.7.Preserve Whole Object
어떤 객체에서 여러 개의 값을 얻은 다음 메소드를 호출하면서 파라미터로 넘기고 있다면, 대신 그 객체를 파라미터로 넘겨라.

2.6.8.Replace Parameter with Method
객체가 메소드를 호출한 다음, 결과를 다른 메소드에 대한 파라미터로 넘기고 있다. 수신자 또한 이 메소드를 호출할 수 있다면, 그 파라미터를 제거하고 수신자가 그 메소드를 호출하도록 하라.

2.6.9.Introduce Parameter Object
자연스럽게 몰려다니는 파라미터 그룹을 가지고 있다면, 그것들을 객체로 바꾸어라.

2.6.10.Remove Setting Method
어떤 필드가 객체 생성시에 값이 정해지고 그 이후에는 변경되지 않아야 한다면, 그 필드 값을 설정하는 모든 메소드를 제거하라.

2.6.11.Hide Method
메소드가 다른 클래스에서 사용되지 않는다면, 그 메소드를 private로 만들어라.

2.6.12.Replace Constructor with Factory Method
객체를 생성할 때 단순히 생성하는 것 이외에 다른 작업도 하고 있다면, 생성자를 팩토리 메소드로 대체하라.

2.6.13.Encapsulate Downcast
메소드가 그 호출부에서 downcast될 필요가 있는 객체를 리턴하고 있다면, downcast하는 것을 메소드 안으로 옮겨라.

2.6.14.Replace Error Code with Exceptions
메소드가 에러를 나타내는 특별한 코드를 가지고 있다면, 대신 예외를 던져라.

2.6.15.Replace Exception with Test
호출부에서 먼저 검사할 수 있는 조건에 대해 예외를 던지고 있다면, 호출부가 먼저 검사하도록 바꿔라.

2.7.일반화 다루기
2.7.1.Pull Up Field
두 서브 클래스가 동일한 필드를 가지고 있다면, 그 필드를 수퍼클래스로 옮겨라.

2.7.2.Pull Up Method
동일한 일을 하는 메소드를 여러 서브클래스에서 가지고 있다면, 이 메소드를 수퍼클래스로 옮겨라.

2.7.3.Pull Up Constructor Body
서브클래스들이 대부분 동일한 몸체를 가진 생성자를 가지고 있다면, 수퍼클래스에 생성자를 만들고 서브클래스 메소드에서 이것을 호출하라.

2.7.4.Push Down Method
수퍼클래스에 있는 동작이 서브클래스 중 일부에만 관련되어 있다면, 그 동작을 관련된 서브클래스로 옮겨라.

2.7.5.Push Down Field
어떤 필드가 일부 서브클래스에 의해서만 사용되고 있다면, 그 필드를 관련된 서브클래스로 옮겨라.

2.7.6.Extract Subclass
어떤 클래스가 일부 인스턴스에 의해서만 사용되는 기능을 가지고 있다면, 기능의 부분집합을 담당하는 서브클래스를 만들어라.

2.7.7.Extract Superclass
비슷한 메소드와 필드를 가진 두 개의 클래스가 있다면, 수퍼 클래스를 만들어서 공통된 메소드와 필드를 수퍼 클래스로 옮겨라.

2.7.8.Extract Interface
여러 클라이언트가 한 클래스 인터페이스의 동일한 부분 집합을 사용하고 있거나, 두 클래스가 공통된 인터페이스를 가지는 부분이 있다면, 그 부분 집합을 인터페이스로 뽑아내라.

2.7.9.Collapse hierarchy
수퍼클래스와 서브클래스가 별로 다르지 않다면, 그것을 하나로 합쳐라.

2.7.10.From Template Method
각각의 서브클래스에, 동일한 순서로 비슷한 단계를 행하지만 단계가 완전히 같지는 않은 두 메소드가 있다면, 그 단계를 동일한 시그니처를 가진 메소드로 만들어라.
이렇게 하면 원래의 두 메소드는 서로 같아지므로, 수퍼클래스로 올릴 수 있다.

2.7.11.Replace Inheritance with Delegation
서브클래스가 수퍼클래스 인터페이스의 일부분만 사용하거나 또는 데이터를 상속 받고 싶지 않은 경우, 수퍼클래스를 위한 필드를 만들고 메소드들이 수퍼클래스에 위임하도록 변경한 후 상속 관계를 제거한다.

2.8.대규모 리팩토링

2.8.1.Tease Apart Inheritance
두 가지 작업을 한 번에 처리하는 상속 구조가 있는 경우, 두 개의 상속 구조를 만들고 하나가 다른 하나를 호출하도록 delegation을 사용하라.

2.8.2.Convert Procedural Design to Objects
절차적 스타일로 작성된 코드가 있다면, 데이터 레코드를 객체로 바꾸고, 동작을 쪼개서 옮겨라.

2.8.3.Separate domain from Presentation
도메인 로직을 포함하고 있는 GUI 클래스를 가지고 있다면, 도메인 로직을 분리하여 도메인 클래스를 만들어라.

2.8.4.Extract Hierarchy
너무 많은 작업을 하거나 또는 부분적으로라도 많은 조건문이 있는 클래스에 대해서는, 각각의 서브클래스가 특정 작업을 담당하도록 클래스의 상속 구조를 만들어라.

'old > 용어정리' 카테고리의 다른 글

sms  (0) 2010.07.13
1  (0) 2010.07.07
Network  (0) 2010.03.24
MMC/MNC 란?  (0) 2010.02.10
IMSI 란?  (0) 2010.02.10
Posted by jazzlife
,

Network

old/용어정리 2010. 3. 24. 17:12
Gateway (telecommunications) :
  • In a communications network, a network node equipped for interfacing with another network that uses different protocols.
    • A gateway may contain devices such as protocol translators, impedance matching devices, rate converters, fault isolators, or signal translators as necessary to provide system interoperability. It also requires the establishment of mutually acceptable administrative procedures between both networks.
    • A protocol translation/mapping gateway interconnects networks with different network protocol technologies by performing the required protocol conversions.
  • Loosely, a computer configured to perform the tasks of a gateway. For a specific case, see default gateway.

Routers exemplify special cases of gateways.

Gateways, also called protocol converters, can operate at any layer of the OSI model. The job of a gateway is much more complex than that of a router or switch. Typically, a gateway must convert one protocol stack into another.


Router :

A router, pronounced /ˈraʊtər/ in the United States and Canada, and /ˈruːtər/ in the UK and Ireland (to differentiate it from the tool used to rout wood), is a purposely customized computer used to forward data among computer networks beyond directly connected devices. (The directly connected devices are said to be in LAN, where data are forwarded using Network switches.)

More technically, a router is a networking device whose software and hardware [in combination] are customized to the tasks of routing and forwarding information. A router differs from an ordinary computer in that it needs special hardware, called interface cards, to connect to remote devices through either copper cables or Optical fiber cable. These interface cards are in fact small computers that are specialized to convert electric signals from one form to another, with embedded CPU or ASIC, or both. In the case of optical fiber, the interface cards (also called ports) convert between optical signals and electrical signals.

Routers connect two or more logical subnets, which do not share a common network address. The subnets in the router do not necessarily map one-to-one to the physical interfaces of the router.[1] The term "layer 3 switching" is used often interchangeably with the term "routing". The term switching is generally used to refer to data forwarding between two network devices that share a common network address. This is also called layer 2 switching or LAN switching.

Conceptually, a router operates in two operational planes (or sub-systems):[2]

  • Control plane: where a router builds a table (called routing table) as how a packet should be forwarded through which interface, by using either statically configured statements (called statical routes) or by exchanging information with other routers in the network through a dynamical routing protocol;
  • Forwarding plane: where the router actually forwards the traffic (or called packets in IP protocol) from ingress (incoming) interfaces to an egress (outgoing) interface that is appropriate for the the destination address that the packet carries with it, by following rules derived from the routing table that has been built in the control plane.

'old > 용어정리' 카테고리의 다른 글

1  (0) 2010.07.07
Refactoring - Martin P.  (0) 2010.04.26
MMC/MNC 란?  (0) 2010.02.10
IMSI 란?  (0) 2010.02.10
URI 란?  (0) 2010.02.10
Posted by jazzlife
,

MMC/MNC 란?

old/용어정리 2010. 2. 10. 10:54

<MCC/MNC>

 

 

MCC: mobile country code. 국가별로 unique한 값을 가짐.

) 한국: 450, 중국: 460, 일본: 440....

MNC: mobile network code. 사업자 별로 unique한 값을 가짐.

) KTF: 08, SKT: 05

MCC + MNC를 합해서 plmn id라고 부름. 따라서 전 세계 사업자들은 unique plmn id를 가지게 된다.
단말은 초기 셀 search시 이 plmn을 확인해 보고 해당 셀로 camping on을 할지 말지를 결정한다. Home plmn이면 고민할 필요 없이 위치등록 시도하며, equivalent plmn인 경우도 고민 할 필요가 없다. 아닐 경우는 suitable cell이 없는 것으로 인식하고 그에 따른 동작을 하게 된다.
또 단말의 plmn 선택 모드에 따라서도 plmn search 동작이 틀려진다(automatic/manual)

'old > 용어정리' 카테고리의 다른 글

Refactoring - Martin P.  (0) 2010.04.26
Network  (0) 2010.03.24
IMSI 란?  (0) 2010.02.10
URI 란?  (0) 2010.02.10
MIME란?  (0) 2010.02.10
Posted by jazzlife
,

IMSI 란?

old/용어정리 2010. 2. 10. 10:51

An International Mobile Subscriber Identity or IMSI (pronounced /ˈɪmzi/) is a unique number associated with all GSM and UMTS network mobile phone users. It is stored in the SIM inside the phone and is sent by the phone to the network. It is also used for acquiring other details of the mobile in the Home Location Register (HLR) or as locally copied in the Visitor Location Register. To prevent eavesdroppers identifying and tracking the subscriber on the radio interface, the IMSI is sent as rarely as possible and a randomly-generated TMSI is sent instead.

The IMSI is used in any mobile network that interconnects with other networks, in particular CDMA and EVDO networks as well as GSM networks. This number is provisioned in the phone directly or in the R-UIM card (a CDMA analogue equivalent to a SIM card in GSM).

An IMSI is usually 15 digits long, but can be shorter (for example MTN South Africa's old IMSIs that are still being used in the market are 14 digits). The first 3 digits are the Mobile Country Code (MCC), and is followed by the Mobile Network Code (MNC), either 2 digits (European standard) or 3 digits (North American standard). The remaining digits are the mobile station identification number (MSIN) within the network's customer base.

'old > 용어정리' 카테고리의 다른 글

Network  (0) 2010.03.24
MMC/MNC 란?  (0) 2010.02.10
URI 란?  (0) 2010.02.10
MIME란?  (0) 2010.02.10
Schema 란?  (0) 2010.02.09
Posted by jazzlife
,

URI 란?

old/용어정리 2010. 2. 10. 10:39

URI (Uniform Resource Identifier)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어다닌다. URI는 다음과 같은 요소로 구성된다.

  • 프로토콜 (HTTP 혹은 FTP) + : + // + 호스트이름 + 주소
  • 예: http://ko.wikipedia.org

URI의 하위개념으로 URL, URN 이 있다.

'old > 용어정리' 카테고리의 다른 글

Network  (0) 2010.03.24
MMC/MNC 란?  (0) 2010.02.10
IMSI 란?  (0) 2010.02.10
MIME란?  (0) 2010.02.10
Schema 란?  (0) 2010.02.09
Posted by jazzlife
,

MIME란?

old/용어정리 2010. 2. 10. 10:38

기본적으로 인터넷 전자우편 전송 프로토콜인 SMTP는 7비트 ASCII 문자만을 지원한다. 이것은 7비트 ASCII 문자로 표현할 수 없는 영어 이외의 언어로 쓰인 전자우편은 제대로 전송될 수 없다는 것을 의미한다. MIME은 ASCII가 아닌 문자 인코딩을 이용해 영어가 아닌 다른 언어로 된 전자우편을 보낼 수 있는 방식을 정의한다. 또한 그림, 음악, 영화, 컴퓨터 프로그램과 같은 8비트 바이너리 파일을 전자우편으로 보낼 수 있도록 한다. MIME은 또한 전자우편과 비슷한 형식의 메시지를 사용하는 HTTP와 같은 통신 프로토콜의 기본 구성 요소이다. 메시지를 MIME 형식으로 변환하는 것은 전자우편 프로그램이나 서버 상에서 자동으로 이루어진다.

전자우편의 기본적인 형식은 RFC 2821에서 정의하고 있다. 이 문서는 RFC 822를 대체한다. 이 문서는 텍스트 전자우편의 헤더와 본문의 형식을 명시하고 있으며, 그 중에는 우리에게 익숙한 "To:", "Subject:", "From:", "Date:" 등의 헤더가 포함되어 있다. MIME은 메시지의 종류를 나타내는 content-type, 메시지 인코딩 방식을 나타내는 content-transfer-encoding과 같은 추가적인 전자우편 헤더를 정의하고 있다. MIME은 또한 ASCII가 아닌 문자를 전자우편 헤더로 사용할 수 있도록 규정하고 있다.

MIME은 확장 가능하다. MIME 표준은 새로은 content-type과 또 다른 MIME 속성 값을 등록할 수 있는 방법을 정의하고 있다.

MIME의 명시적인 목표 중 하나는 기존 전자우편 시스템과의 호환성이다. MIME을 지원하는 클라이언트에서 비 MIME가 제대로 표시될 수 있고, 반대로 MIME을 지원하지 않는 클라이언트에서 간단한 MIME 메시지가 표시될 수 있다.

'old > 용어정리' 카테고리의 다른 글

Network  (0) 2010.03.24
MMC/MNC 란?  (0) 2010.02.10
IMSI 란?  (0) 2010.02.10
URI 란?  (0) 2010.02.10
Schema 란?  (0) 2010.02.09
Posted by jazzlife
,

Schema 란?

old/용어정리 2010. 2. 9. 15:50
Schema 란?

DB에서 어떤 목적을 위하여 필요한 여러 개로 구성된 테이블들의 집합을 Schema라 한다.

예를 들어,
쇼핑몰을 구축한다 하자.

쇼핑몰 구성에는 회원정보, 상품정보, 결제 정보, 배송 정보, 마일리지.... 등등에 관한 기능들로 구성된다.

이럴 때, 회원관련 테이블, 상품관련 테이블, 결제관련 테이블 등등...

DB에 관련된 테이블이 각각 만들어 지며,
이렇게 형성된 테이블들의 관계를 묶어서 Schema라 한다.

DATABASE SCHEMA
• USER A가 생성되면 자동적으로 동일한 이름의 SCHEMA A가 생성된다.
• USER A는 SCHEMA A와 관련되어 DATABASE를 ACCESS한다.
그러므로 USER의 이름과 SCHEMA는 서로 바뀌어 쓰일 수 있다.
SCHEMA는 특정 USER와 관련된 OBJECT의 모음이다.

'old > 용어정리' 카테고리의 다른 글

Network  (0) 2010.03.24
MMC/MNC 란?  (0) 2010.02.10
IMSI 란?  (0) 2010.02.10
URI 란?  (0) 2010.02.10
MIME란?  (0) 2010.02.10
Posted by jazzlife
,