알아두면 좋은 IT 지식 7 - 데이터링크, 문맥교환, 코드
OSI7 계층 데이터링크 계층의 프로토콜
HDLC, LAPB, LLC, MAC, LAPD, PPP 등
데크에서 입력 제한 데크가 scroll이고, 출력 제한 데크가 shelf입니다.
깊이 우선 탐색(DFS)은 깊이를 우선하여 탐색하는 것으로, 한쪽으로 방향을 정하고 깊이 파고든 다음 다른 쪽을 찾는 방식입니다.
문맥 교환(Context Switching)
현재 CPU를 사용하여 실행되고 있는 프로세스의 상황 정보를 저장하고, 제어의 권한을 ISR에게 넘기는 작업을 말합니다.
결합도
Control Coupling(제어 결합도)
한 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어신호를 이용하여 통신하는 경우의 결합도입니다.
아래 모듈에서 상위 모듈로 제어신호가 움직여서 상위 모듈에게 처리하라고 명령을 하는 권리 전도 현상이 발생합니다.
Data Coupling(자료 결합도, 데이터 결합도)
모듈이 파라미터나 인수로 다른 모듈에게 데이터를 넘겨주고, 호출받은 모듈은 받은 데이터에 대한 결과를 처리 후에 다시 돌려주는 결합도입니다.
Stamp Coupling(스탬프 결합도)
두 모듈이 자료를 전달할 때 자료구조 형태로 전달해서 사용될 때의 결합도입니다. 두 모듈이 같은 자료구조를 조회하고, 구조, 포맷의 변화는 이를 조회하는 모든 모듈 또는 변화된 필드는 가만히 아무것도 안 하고 앉아있던 모듈에까지도 영향을 미치게 됩니다.
Common Coupling(공통 결합도)
두 모듈이 동일한 전역 데이터를 접근할 때의 결합도입니다.
절차 중심
절차 중심의 프로그래밍은 C언어와 같이 순차적인 수행이 중요한 방식입니다.
JAVA나 C#과 같은 객체지향은 메서드나 클래스를 이용하기 때문에, 비교적으로 순서에 자유롭습니다. 그렇기 때문에 객체지향 프로그램 개발을 설명하는데, '절차 중심’이 나오면 틀린 설명입니다.
X 시리즈
공중 데이터 교환망(PSDN)을 통한 DTE/DCE 접속 규격을 말합니다.
X.20 : 비동기식 전송을 위한 DTE/DCE 접속 규격
X.21 : 동기식 전송을 위한 DTE/DCE 접속 규격
X.25 : 패킷 전송을 위한 DTE/DCE 접속 규격
RTP(Real-Time Transport Protocol)
실시간 특성을 가지는 데이터의 종단 간 전송을 가능하게 해주는 UDP 기반의 프로토콜입니다.
Extension은 헤더 이후에 확장 헤더가 있음을 의미합니다. 멀티캐스트, 유니캐스트를 통하여 오디오와 비디오 스트림, 시뮬레이션 등을 생각하면 됩니다.
동료검토
2~3명이 진행하는 리뷰 형태로, 작성자가 설명하고, 이해관계자들이 설명을 들으면서 결함을 발견하는 형태입니다.
워크 스루
검토자료를 회의하기 이전에 배포하여 미리 검토한 후, 단시간 동안 회의를 진행하는 형태로, 리뷰를 통해 오류를 일찍이 검출하기 위한 검증기법입니다.
인스펙션
명세서를 만든 작성자를 빼놓고 다른 검토 전문가들이 최대한 객관적으로 확인하면서 결함을 발견하는 형태입니다.
코드의 종류
연상 코드 : 항목의 명칭이나 약호와 관계있는 문자, 숫자, 기호 등을 사용하여 코드를 만드는 방법.
블록 코드 : 대상 항목에서 공통적인 것을 블록으로 묶고 블록 안에 또 일련번호를 붙이는 방법.
순차 코드 : 일정 기준에 따라 첫 자료부터 순차적으로 번호를 붙이는 방법.
표의 숫자 코드 : 길이, 넓이, 부피 등 성질들의 물리적인 수치를 적용해 코드에 녹여내는 방법.
데이터 흐름도(Data Flow Diagram) 구성요소
프로세스(Process), 자료 흐름(Flow), 자료 저장소(Data Store), 단말(Terminator)
UML 확장 모델
스테레오 타입 객체 표현 기호 << >>
주요 형태 : include, exclude, interface, exception, constructor
UI 설계 원칙
직관성 : 누구나 쉽게 이용하고, 쉽게 사용할 수 있어야 한다는 뜻으로 직관적이어야 한다는 말 그대로의 의미입니다.
유효성 : 사용자의 목표가 달성될 수 있도록 정확하고 명확하게 만들라는 뜻입니다.
학습성 : 사용자가 누군지에 관계없이 조금 만져보면 쉽게 배우고 사용할 수 있게 제작해야 합니다.
유연성 : 사용자의 요구사항, 불만 등을 최대한 포용하고, 유연하게 받아들이며, 어처구니없는 실수를 예방할 수 있도록 제작해야 합니다.
XP(eXtreme Programming)의 5가지 가치
용기(Courage) : 고객의 요구사항 변화에 능동적으로 대처
단순성(Simplicity) : 괜한 부가적 기능, 사용하지도 않는 구조와 알고리즘 배제
커뮤니케이션(Communication) : 개발자, 관리자, 고객과 항상 원활하게 의사소통
피드백(Feedback) : 지속적인 테스트와 반복적으로 결함 수정하고 빠르게 피드백 주고받기
존중(Respect) : 모든 프로젝트 관리자는 팀원의 기여를 존중
요구사항 분석 (requirements annalysis)
요구사항을 분석하는 것은 비용과 일정에 대해 제약을 설정하고, 타당성을 조사하고, 요구사항 정의를 문서화하는 것입니다.
설계 명세서 작성은 요구사항 분석 다음 단계인 요구사항 명세에서 수행합니다.
인터페이스 구현 검증 도구
xUnit : Java, C++ 등 다양한 언어를 지원하는 단위 테스트 프레임워크입니다.
STAF : 서비스 호출과 컴포넌트의 재사용 등을 제공하는 테스트 프레임워크입니다.
FitNesse : 웹 기반의 테스트 케이스 설계하고, 실행 및 결과를 확인하는 것을 도와주는 테스트 프레임워크입니다.
NTAF : FitNesse의 장점인 협업 기능과 STAF의 장점인 확장성과 재사용을 통합한 네이버의 테스트 자동화 프레임워크입니다.
Selenium : 다양한 브라우저 및 개발 언어 지원하는 웹 애플리케이션 테스트 프레임워크입니다.
Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크입니다. Ruby는 인터프리터 방식의 객체지향 스크립트 언어입니다.