<--애드센스--> <--네이버웹마스터-->

[정보처리기사 필기 핵심] - 모듈 연계를 위한 인터페이스 기능 식별 ( EAI / ESB / point-to-point / Hub & Spoke / message Bus/ Hubrid)

정보처리기사 필기 대비/ key point 정리 / 요약 정리 / 핵심

 

◎ EAI ( Enterprise Application Integration)

 

- 유형 -> 그림과 함께 암기!!

 

Point - to - Point

 

- 가장 기본적인 애플리케이션 통합 기능

- 애플리케이션을 1:1로 연결

- 변경 및 재사용이 어려움

 

Hub & Spoke

 

- 단일 접점인 허브 시스템을 통해 데이터를 전송한는 중앙집중형 방식

- 확장 및 유지보수 용이

- 허브 장애 발생 시 시스템 전체에 영향

 

MEssgae Bus (ESB방식)

 

- 애플리케이션 사이에 미들웨어를 두어 처리하는 방식

- 확장성이 뚸어나며 대용량 처리 가능

 

Hybrid

 

- Hub & spoke 와 Message Bus의 혼합 방식

- 그룹 내에서 Hub & Spoke 방식, 그룹 간에는 Message bus 방식을 사용

- 필요한 경우 한 가지 방식으로 EAI구현 가능

- 데이터 병목 현상 최소화

 

 

 

 

 

◎ ESB ( Enterprise Service Bus)

 

- 애플리케이션 간 연계, 데이터 변환, 웹 서비스 지원 등 표준 기반의 인터페이스 제공

- 서버 중심으로 통합

- 범용적을 사용 가능 -> 결합도를 약하게 유지 ( 결합도 : 모듈 간에 상호 의존하는 정도, 연관 관계)

- 관리 및 보안 유지가 쉽고, 높은 수준의 품질 지원 가능

 

◎ 모듈 간 인터페이스 기능 식별

 

- 식별된 모듈 간 관련 기능을 검토하여 인터페이스 동작에 필요한 기능을 식별

- 인터페이스 동작은 대부분 외부 모듈의 결과 또는 요펑에 의해 수행 -> 외부 및 인터페이스 모듈 간 동작하는 기능을 통해 인터페이스 기능을 식별

- 내부 모듈의 동작은 외부 모듈에서 호출된 인터페이스에 의해 수행되고 결과를 나타내는 것이므로 해당 업무에 대한 시나리오를 통해 내부 모듈과 관련된 인터페이스 기능을 식별

- 식별된 인터페이스 기능 중에서 실제적으로 필요한 인터페이스 기능을 최종적으로 선별

- 식별된 인터페이스 기능은 인터페이스 기능 구현을 정의하는데 사용

 

 

 

[2과목 : 소프트위어 개발]- 테스트 기법에 따른 애플리케이션 테스트 ( 화이트 박스 테스트/ 블랙 박스 테스트)

정보처리기사 필기 대비/ key point 정리 / 요약 정리 / 핵심

 

 

※ 퀘스트 : 화이트 박스 테스트의 종류와 블랙 화이트 박스 테스트의 종류 잘 구별하기!!

 

 

화이트박스 테스트

 

화이트 박스 테스트는 모듈의 원서 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법

 

- 설계된 절차에 초점을 둔 구조적 테스트 ( 테스트 과정 초기에 적용)

- 모듈 안의 작동을 직접 관찰

- 원시 코드(모듈)의 모든 문장르 한 번 이상 실행함으로써 수행

- 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로 제어

- 화이트 박스 테스트 종류

 

기초 경로 검사

- 대표적인 화이트 박스 테스트 기법

- 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법

제어 구조 검사

조건 검사 : 프로그램 모듈 내에 있는 노리적 조건을 테스트하는 테스트 케이스 설계 기법

루프 검사 : 프로그램의 반복구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법

테이터 흐름 검사 : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법

 

- 화이트 박스 테스트 검증 기준

문장 검증 기준 소스 코드의 모든 구문이 한 번 이상 수행
분기 검증 기준 소스 코드의 모든 조건문이 한 번 이상 수행
조건 검증 기준 소스 코드의 모든 조건문에 대해 조건이 True인 경우와 False인 경우가 한 번이상 수행
분기/조건 기준 소스 코드의 모든 조건문과 각 조건문에 포함된 개별 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행

블랙박스 테스트

 

블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트 (기능 테스트)

 

- 사용자의 요구사항 명세를 보면서 테스트를 하는것 -> 기능 테스트

- 테스트 과정의 후반부에 적용

- 블랙박스 테스트의 종류

 

동치 분할 검사 -입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법
경계값 분석

- 입력 자요에만 치중한 동치 분할 기법을 보완하기 위한 기법

- 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정

원인- 효과 그래프 검사 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정
오류 예측 검사 과거의 경험이나 확인자의 감각으로 테스트
비교 검사 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

 

 

코로나19 대응을 위한 3법

 

감염병 예방 및 관리법

 

감염병 의심자에 대한 격리조치 등 강제 처분 근거 신설

▶ 방역관련 제품의 수출제한조치

▶ 입원 및 격리 조치 위반자 벌칙 상향

▶ 검사거부 감염병 의심자에 대한 강제 조사 및 처벌 규정 신설

▶ 중앙 역학조사관 확대 ( 30명 -> 100명)

▶ 감염병 관리기관 지정 및 병상확보 대책 마련

▶ 감염병 관련 여행이력정보 확인 의무화

▶ 취약계층 무상 마스크 배포 조치

▶ 감염병 대응 의약품과 장비도 국가비축물자 관리 대상에 포함

 

요즘 약국을 가도 제대로 된 마스크 하나 사기 어려운 실정이다.

인터넷에서도 마스크 가격이 대폭 상승하여 적게는 2배에서 많게는 10배 가량 마스크 가격을 올려서 판매한다.

국가의 안전과 국민의 안전이 걸린 이런 중요한 때에 이런 일로 돈을 벌려는 나쁜 사람들이

한국에 많은 것 같아 안타까운 마음뿐이다.

내 친구도 약국에 가서 약사에게 마스크를 달라고 했는데 없다고 말하니깐 친구가 숨겨놓은 마스크 있는거 하나만 주세요 했더니 정말 마스크를 줬다고 했다...하하 웃픈 현실이다.

 

또한 이기적인 마음에 격리당하는 것이 싫어 자신이 코로나가 의심됨에도 불구하고 격리를 거부하고

평소처럼 마스크도 없이 이곳 저곳 활보하고 다녀 많은 사람에게 피해를 주는 사람들도 있다.

이 때문에 정부에서는 감염병 의심자가 지방자치단체장 등이 권유한 검사를 거부할 경우 300만원 이하의 벌금

입원 또는 격리조치 위반자에 대해 1년 이하의 징역 또는 1000만원 이하의 벌금형을 내리기로 했다.

 

검역법 개정안

 

감염병 관련 출입국 금지 & 정지 요청 권한 확대

▶ 검역 조사를 체계화하고 검역정보시스템을 구축

 

의료법

 

의료기관 종사자 등을 위한 감염 감시체계 마련

 

친구들 중에 간호사가 많은데 지금 병원에서 근무를 할 때 우주복처럼 생긴 위생 복?을 착용하고 근무를 한다고 한다.

아직 코로나19를 실감하지는 못하고 있지만 ( 항상 방콕을 하기 때문) 벌써 많은 사람들이 걸려 고통을 받고 있다고

생각하니 무섭다는 생각이 든다.

 

영화 '감기'가 절로 생각난다.

 

우리 모두 마스크를 꼭 착용하고 당분간 외출은 자제하는 것이 좋을 것 같다. 외출을 한다면 돌아와서 꼭 손과 입등을 깨끗하게 씻도록 하자.

[2과목 : 소프트위어 개발] - 소프트웨어 버전 관리 도구 

( 공유 폴더 / 클라이언트&서버 방식/ 분산 저장소 방식/ 서브 버전/ Git ) 

정보처리기사 필기 대비/ key point 정리 / 요약 정리 / 핵심

 

공유 폴더 방식

 

공유 폴더 방식은 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식

 

- 개발자들은 개발이 완료된 파일을 약속된 공유 폴더에 매일 복사

- 담당자는 공유 폴더의 파일을 자기 PC로 복사한 후 컴파일 하여 이상 유무를 확인

- 이상 유무 확인 과정에서 파일이 오류가 확인되면, 해당 파일을 등록한 개발자에게 수정을 의뢰

- 파일에 이상이 없다면 개발자들이 동작 여부를 다시 확인

- 파일을 잘못 복사하거나 다른 위치로 복사하는 것에 대해비하기 위해 파일의 변경 사랑을 데이터베이스에 기록

 

클라이언트 / 서버 방식

 

클라이언트/ 서버 방식은 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식

 

- 서버의 자료를 개발자별로 자신의 PC(클라이언드)로 복사하여 작업한 후 변경된 내용을 서버에 반영

- 모든 버전 관리는 서버에서 수행

- 하나의 파일을 서로 다른 개발자가 작업할 경우 경고 메시지 출력

- 서버에 문제가 생기면, 서버가 복구되기 전까지 다른 개발자와의 협업 및 버전 관리 작업이 중단

 

분산 저장소 방식

 

분산 저장소 방식은 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식

 

- 개발자별로 원격 저장소의 자료를 자신의 로컬 저장소로 복사하여 작업한 후 변경된 내용을 로컬 저장소에서 우선 반영한 다음 이를 원격 저장소에 반영 (로컬 -> 원격)

- 로컬 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제 생겨도 로컬 저장소의 자료를 이용하여 작업가능

 

Subversion (서브 버전, SVN)

 

- 클라이언트/ 서버 구조로, 서버에는 최신 버전의 파일들과 변경 내역이 관리 됨

- 서버의 자료를 클라이어트로 복사해와 작업한 후 변경 내용르 서버에 반영(Commit)

- 모든 개발 작업은 trunk 디렉터리에서 수행되며, 추가 작업은 branches 디렉터리 안에 별도의 디렉터리를 만들어 작업을 완료한 후 trunk 디렉터리와 병합(merge)한다.

- 커밋(Commit)할 때마다 리버전(Revision)이 1씩 증가

- 클라이언트는 대부분의 운영체제에서 사용되지만, 서버는 주로 유닉스를 사용

- 오픈 소스 = 무료

- 파일이나 디렉터리의 이름 변경, 이동 가능

- 주요 명령어_ 기본적인 명령어는 알아두기!

 

add

새로운 파일이나 디렉터리를 버전 관리 대상으로 등록

add로 등록되지 않은 대상은 commit 적용 불가

commit 버전 관리 대상으로 등록된 클라이언트의 소스 파일을 서버의 소스파일에 적용
update

서버의 최신commit 이력을 클라이언트이 소스 파일에 적용

checkout 버전 관리 정보와 소스 파일을 서버에서 클라이언트로 받아옴
lock/unlock 서버의 소스 파일이나 디렉터리를 잠그거나 해제
import 아무것도 없는 서버의 저장소에 맨 처음 소스 파일을 저장하는 명령
export 버전 관리에 대한 정보를 제외한 순수한 소스 파일만을 서버에서 받아옴
info 지정한 파일에 대한 위치나 마지막 수정 일자 등에 대한 정보를 표시
diff 지정된 파일이나 경로에 대한 이전 리비전과의 차이를 표시
merge 다른 디렉터리에서 작업된 버전 관리 내역을 기본 개발 작업과 병합

 

Git (깃)

 

- Git은 분산 버전 관리 시스템으로 2rodml 저장소 ( 지역 저장소, 원격 저장소)가 존재

- 지역 저장소는 개발자들이 실제 개발을 진행하는 장소( 버전 관리 수행)

- 원격 저장손는 여러 사람들이 협업을 위해 버전을 공동 관리하는 곳

- 버전관리가 지역 저장소에서 진행되므로 버전 관리가 신속. 원격 저장소나 네트워크에 문제가 있어도 작업 가능

- 브랜치를 이용하면 기본 버전 관리 틀에 영향을 주지 않으면서 다양한 형태의 기능 테스팅 가능

- 파일의 변화를 스냅샷으로 저장, 스냅샷은 이전 스냅샷의 포인터를 가짐 -> 버전의 흐름 파악 가능

- 주요 명령어_기본적인 명령어는 알아두기! ( 표시한 것만이라도 알아두자)

 

add 작업 내역을 지역 저장소에 저장하기 위해 스테이징 영역에 추가
commit 작업 내역을 지역 저장소에 저장
branch

새로운 브랜치 생성

최초로 commit을 하면 마스터branch가 생성

checkout 지정한 브랜치로 이동
merge 지정한 브랜치의 변경 역을 현재 HEAD포인터가 가리키는 브랜치에 방영함으로써 두 브랜치 병합
init 지역저장소를 생성
remote add 원격 저장소에 연결
push 로컬 저장소의 변경 내역을 원격 저장소에 반영
fetch 원격 저장소의 변경 이력만을 지역 저장소로 가져와 반영
clone

원격 저장소의 전체 내용르 지역 저장소로 복제

fork

지정한 원격 저장소의 내용을 자신의 원격 저장소로 복제

 

[2과목 : 소프트위어 개발] - 통합구현- 단위 모듈 구현/ 단위 모듈 테스트/ 개발 지원 도구

 

 

단위 모듈의 개요

단위 모듈 : 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것

 

- 단위 모듈로 구현되는 하나의 기능 = 단위 기능

- 두 개의 단위 모듈이 합쳐질 경우 두 개의 기능 구현

- 단위 모듈의 구성 요소에는 처리문, 명령문, 데이터 구조 등이 있음

-단위 모듈은 독립적인 컴파일이 가능, 다른 모듈에 호출되거나 삽입 가능

- 단위 명세서 작성 후 입&출력 기능과 알고리즘을 구현해야 함

 

단위 기능 명세서 입&출력 기능 구현 알고리즘 구현

 

1) 단위 기능 명세서

설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서

 

- 추상화 작업 필요 ( 복잡한 시스템을 단순하게 구현)

- 구조화 과정 필요 (대형 시스템을 분해하여 단위 기능별로 구분, 각 기능들을 계층적으로 구성)

- 은닉의 원리 고려 (모듈의 독립적이 운용과 한 모듈 내의 정보가 다른 모듈에 영향을 주지 않기 위해)

 

2) 입& 출력 기능 구현

단위 기능 명세서에서 정의한 데이터 형식에 따라 입&출력 기능을 위한 알고리즘 및 데이터를 구현

 

- 사용자 인터페이스인 CLI, GUI와의 연동 고려

-네트워크나 외부 장치와의 입&출력은 무료로 제공 > Open Sourse API를 이용하면 간편하게 구현

 

IPC

모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합

복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현 가능

 

Shared Memory 다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스 간 통신 수행
Socket 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스들 간 통신을 수행
Pipese & named pipes

pipe 라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신 수행

하나의 프로세스가 pipe를 이용 중이라면 다른 프로세스는 접근 불가

semaphores 공유 자원에 대한 접근 제어를 통해 프로세스 간 통신을 수행
Message Queueing 메시지가 발생하면 이를 전달하는 형태로 프로세스 간 통신을 수행

 

3) 알고리즘 구현

입&출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용하여 모듈로 구현

 

- 알고리즘 구현 단계에서는 구현된 단위 기능들이 사용자의 요구와 일치하는지 확인하는 과정 필요

 

디바이스 드라이버 모듈 하드웨어 주변 장치의 동작을 구현한 모듈
네트워크 모듈 네트워크 장비 및 데이터 통신을 위한 기능을 구현한 모듈
파일 모듈 컴퓨터 내부의 데이터 구조 영역에 접근하는 방법을 구현한 모듈
메모리 모듈 파일을 프로세스의 가상 메모리에 매핑/ 해제하는 방법, 프로세스 사이의 통신 기능을 구현한 모듈
프로세스 모듈 하나의 프로세스 안에서 다른 프로세스를 생성하는 방법을 구현한 모듈

 

★파일 모듈과 메모리 모듈의 특징 분류 중요

 

◎ 단위 모듈 테스트

단위 모듈 테스트

프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것

 

- 단위 모듈 테스트는 단위 테스트라고 하기도 하며, 화이트박스 테스트와 블랙박스 테스트 기법을 사용

- 단위 모듈 테스트의 기준은 단위 모듈에 대한 코드이므로 시스템 수준의 오류는 잡아낼 수 없음

 

◎테스트 케이스 (Test Case)

구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서

명세 기반 테스트의 설계 산출물

 

식별자(Identifier) 항목 식별자, 일련번호
테스트 항목(Test Item) 테스트 대상
입력 명세(Input Specification) 입력 데이터 또는테스트 조건
출력 명세(Output Specification) 테스트 케이스 수행 시 예상되는 출력 결과
환경 설정(Environmental Needs) 필요한 하드웨어나 소프트웨어의 환경
특수 절차 요구 테스트 케이스 수행 시 특별히 요구되는 절차

의존성 기술

테스트 케이스 간의 의존성

 

◎ 테스트 프로세스

 

1) 계획 및 제어 단계

2) 분석 및 설계 단계 : 테스트 시나리오와 테스트 케이스 작성

3) 구현 및 실현 단계 : 단위 테스트 도구 이용

4) 평가 단계

5) 완료 단계 : 수행과정과 산출물을 기록 및 저장

 

◎ 통합 개발 환경 (IDE)

통합 개발 환경은 개발에 필요한 환경, 즉 편집기, 컴파일러, 디버거 등의 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 것

 

- 통합 개발 환경 도구 = 소프트웨어

- 오류 발생 부분을 시각화하므로 수정이 용이

- 다양한 서비스와 연동 : 정보 공유

-플랫폼, 운영체제, 언어별로 다양한 도구 지원

 

◎ 빌드도구

빌드는 소스코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정

+ Recent posts