2021년 1회 기출문제
1. 물리 네트워크(MAC) 주소에 해당하는 IP 주소를 알려주는 프로토콜로 역순 주소 결정 프로토콜을 무엇이라고 하는지 쓰이오.
답 : RARP(Reverse Address Resolution Protocol)
2. DB 설계 절차
개념적 설계는 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 과정으로 주요 산출물에는 E-R다이어그램이 있다.
논리적 설계는 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스를 설계하는 정규화과정을 수행한다.
물리적 설계는 특정 DBMS의 특성 및 성능을 고려하여 데이터베이스 저장 구조로 변환하는 과정으로 결과로 나오는 명세서는 테이블 정의서 등이 있다.
DB 설계 절차:
요구사항 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현
3. 요구사항의 분류
요규사항이란 시스템 개발 분야에서 어떤 과제를 수행하기 위해, 필요한 조건이나 능력을 말합니다.
- 기능적 요구사항 : 사용자 요구사항, 시스템 요구사항
- 비 기능적 요구사항 : 제품 요구사항, 조직 요구사항, 외부 요구사항
4. 웹 서비스명, 제공 위치, 메세지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML형식으로 구성된 언어
답 : WSDL
WSDL(Web Servies Description Language의 약자)은 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술됩니다. 웹 서비스의 구체적 내용이 기술되어 있으며 서비스 제공, 서비스 포맷, 프로토콜 등이 기술됩니다.
class arr:
a = ["Seoul","Kyeonggi","Inchon","Daejoen","Deagu","Pusan"]
str01=' '
for i in arr.a:
str01 = str01 + i[0]
print(str01)
답 : skiddp
각 단어들의 0번째(첫번째 글자) row 출력
6. SQL 문제
SELECT COUNT(*) FROM 급여 WHERE EMPNO > 100 AND SAL >=3000 OR EMPNO = 200'
답 : 1
7. Java 프로그램
public class Test{
public static void main(String []args){
int a[][] = {{45, 50, 75}, {89}};
System.out.println(a[0].length);
System.out.println(a[1].length);
System.out.println(a[0][0]);
System.out.println(a[0][1]);
System.out.println(a[1][0]);
}
}
답 :
3
1
45
50
89
8. 정규화된 엔티티, 속성 관게에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법
답 : 비정규화, 반정규화, 역정규화
반정규화 방법 : 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가
9. 블랙박스 기법 두가
1. 0<= x <=10이면 -1 0 10 11검사
2. 입력 데이터의 영역을 유사한 도메인별로 유횻값/ 무효값을 그룹핑하여 나누어서 검사
1. 경곗값 분석
2. 동등분할 테스트
동치 분할 검사(동등 분할 기법) : 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 방법
경계값 분석 : 동치분할 기법을 보완한 기법으로 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법
원인 - 효과 그래프 검사 : 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체게적으로 분석한 다음, 효용성이 높은 테스트케이스를 선정하여 검사하는 기법
오류 예측 검사 : 과거의 경험이나 확인자의 감각으로 테스트하는 기법
비교 검사 : 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 확인하는 기법
10. 테스트 종류에 대한 설명
- 단위 테스트 : 개별 모듈, 서브루틴이 정상적으로 실행되는지 확인
- 통합 테스트 : 인터페이스 간 시스템이 정상적으로 실행되는지 확인
- 시스템 테스트 : 구현된 시스템이 정해진 요건에 적합한지 여부를 평가하기 위해 실제 운용과 같은 환경에서 시스템 전체에 대해서 행하는 테스트
- 인수 테스트 : 계약상의 요구사항이 만족되었는지 확인하기 위해, 설치 후 구입자의 현장에서 납품자도 참가하여 구입자에 의해 실시되는 시스템 또는 기능 단위 테스트
- 알파 테스트 : 특정 사용자들에 의해 개발자 관점에서 수행(가장 자주 사용)
- 회귀 테스트 : 어플리케이션에 대하여 변경, 결함 수정 또는 기능개선 같은 원인으로 프로그램 코드에 대하여 물리적인 변경이 발생했을 경우 새로운 결함에 대비하여 이미 실시했던 테스트케이스를 재시험하는 테스트
11. 알맞은 용어
- IPv6는 ( 128 ) 비트 길이를 가진다.
- IPv4는 길이 32bit이며, ( 8 ) 비트식 네 부분으로 나눈다.
12. 공유메모리, 소켓, 세마포어, 메세지 큐 등 프로세스 간 통신하는 기술
답 : IPC(Inter Process Communication)
13. 시스템 통합에 사용되는 솔루션으로 구축 유형에는 Point to Point, Hub & Spoke, Message Bus가 있다. 기업에서 운영되는 서로 다른 프랫폼 및 애플리에케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션
답 : EAI(Enterprise Application integration)
포인트 투 포인트 : 가장 기초적인 애플리케이션 통합 방법 ( 1: 1 단순 통합 방법) /개발자 간 대화를 통해 통합 가능
허브 앤 스포크 : 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중적 방식
메세지 버스 - 애플리케이션 사이 미들웨어를 두어 연게하는 통합 방식/ 뛰어난 확장성과 대용량 데이터 처리 가능
하이브리드 - 그룹 내는 허브 앤 스포크 방식 / 그룹 간에는 메세지 버스 방식 사용하는 통합 방식
14. 주어진 테이블의 Cardinality / Degree
Cardinality : 5
Degree : 4
카니덜리티는 전체 행에 대한 특정 컬럼의 중복 수치를 나타내는 지표
디그리 : 속성의 수
15. C 언어
int main() {
struct insa {
char name[10];
int age;
} a[] = {"Kim", 28, "Lee", 38, "Park", 41, "Choi", 30};
struct insa *p;
p = a;
p++;
printf("%s ", p->name);
printf("%d ", p->age);
}
답 : Lee 38
p++로 인해 s[1]가 되면서 두번째 배열인 Lee와 38이 출력이 된다.
16. 데이터 모델 구성요서 3가지
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구이다.
- 개체 데이터 모델에서는 ( 연산 )을 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타내는데 논리 데이터 모델에서는( 구조 )를 어떻게 나타낼 것인지 표현한다.
- ( 제약조건 ) 는 데이터 무결성 유지를 위한 db의 보편적 방법으로 릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체무결성과 참주 무결성 등이 있다.
17. Java
public class Test {
public static void main(String[] args) {
int j, i;
for (j = 0, i = 0; i <= 5; i++) {
j += i;
System.out.print(i);
if (i == 5) {
System.out.print("=");
System.out.print(j);
} else {
System.out.print("+");
}
}
}
}
답 : 0 + 1 + 2 + 3 + 4 + 5 = 15
18. 시스템 객체의 접근을 개인 또는 그룹의ㅏ 식별자에 기반을 둔 방법, 어떤 종류의 접근 권한을 가진 사용자가 다른 사용자에 자신의 판단에 따라 권한을 허용하는 접근제어 방식
답 : 임의적 접근 통제 or DAC(Discretionary Access Control)
접근 통제는 사람이나 프로세스가 시스템이나 파일에 접근 여부를 허가하거나 거부하는 기능을 말합니다.
서버 접근 통제 유형 - 임의적 접근 통제/ 강제적 접근통제/ 역할 기반 접근통제
- 임의적 접근 통제(DAC - Discretionary Access Control ) : 시스템 객체에 대한 접근을 사용자나 그룹의 신분을 기준으로 제한하는 방법
- 강제적 접근 통제(MAC - Mandatory Access Control) : 미리 정해진 정책과 보안 등급에 의거하여 주체에게 허용된 접근 권한과 객체에게 부여된 허용 등급을 비교하여 접근을 통제하는 모델
- 역할기반 접근 통제(RBAC - Role Based Access Control) : DAC와 MAC의 단점을 보완한 방식으로 멀티 프로그래밍 환경에서의 보완 처리를 위해 제안되었으며 사용자에게 할당된 역할에 기반하여 접근을 통제하며 중앙에서 집중적으로 관리
19. 결합도에 대한 설명
- 내용 결합도 : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
- 스탬프 결합도 : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
- 공통 결합도 : 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도
- 외부 결합도 : 어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
- 제어 결합도 : 단순히 처리를 해야할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어요소가 전달
- 자료 결합도 : 모듈간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
결합도와 품질(낮은 품질에서 좋은 품질 순)
내용 결합도 > 공통 결합도 > 외부 결합도 > 제어 결합도 > 스탬프 결합도 > 자료 결합도
20. 공격 기법
세션 하이재킹 : '세션을 가로채다'라는 의미로 정상적 연결을 RST 패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결한다. 세션 관리 취약점을 이용한 공격 기법이다.
2021년 2회 기출문제
1. 네트워크 장치가 필요 없으며, 멀티 홉 라우팅 기능을 가지고 있고, 군사네트워크에 사용하는 네트워크
답 : 애드훅 네트워크(Ad-hoc Network)
무선 네트워크 구성 방식
- 애드훅 네트워크 : 센서망, 재난망에 사용되며 구성이 빠르고 모든 단말이 동등한 자격으로 망을 구성
- Infrastructure 네트워크 : 이동통신망, Wi-Fi에 사용되며 중앙집중형 방식
- 메쉬 네트워크 : 무선백본망에 사용되며 신뢰성이 우수하고, 계층적인 구조를 가지고 있음
2. 답압
UX (User Experience) : 사람의 감정이나 경험을 나타내는 개념
UI (User Interface) : 사용자 인터페이스. 예로는 CLI이 있다.
3. 트랜잭션의 특징 중, 원자성에 대해서 약술
- 모두 반영되거나 아니면 전혀 반영되지 않아야 한다.
트랜잭션 특징 - 원자성, 일관성, 독립성, 지속성
원자성 : 모두 반영되거나 아니면 전혀 반영되지 않아야 한다.
일관성 : 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것
독립성 : 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우, 어떤 하나의 트랜잭션이라도 다른 트랜잭션의 연산에 끼어 들 수 없다는 점
지속성 : 트랜잭션이 성공적으로 완료되었을 경웨 결과는 영구적으로 반영되어야 한다는 점
4. ( ) 정규형으로써, 부분 함수적 종속성을 제거하여, 완전 함수적 종속을 만족하는 정규형
답 : 제 2 정규형
- 기본키(주문버호 컬럼)이 제품번호에 의해 결정될 수 있기때문에 분해를 해야합니다.
- 부분 함수적 종속성 : 기본키의 부분집합이 결정자가 되버린 형상
제 1정규형 : 도메인이 원자값
제 2정규형 : 부분 함수적 종속 제거
제 3정규형 : 이행적 함수 종속 제거
BCNF : 결정자이면서 후보키가 아닌 것 제거
제 4정규형 : 다치 종속 제거
제 5정규형 : 조인 종속 제거
5. 테이블 수정할때
( ) 테에블명 ( ) 컬럼 = 값 WHERE 점수 >= 90;
답 : UPDATE, SET
6. SQL보기 JOIN할 경우
( ) 테이블이름. 학과 = 학과번호( )
답 : ON, 학과
7. 파이썬 비트 연산자 코드 결과
a=100
i=0
result=0
for i in range(1,3):
result=a>>i
result+=1
print(result)
답 : 26
8. 미국 국립 표준 기술연구소(NIST), DES를 대체하며, 128비트 블록 크기와 128.192.256 비트 키 크기의 대칭 키 암호화 방식
답 : AES(Advanced Encryption Standard)
대칭키 알고리즘 : 동일한 키를 사용하여 암호화와 복호화를 하는 것을 의미하며 가장많이 사용하는 알고리즘이 AES 입니다.
9. 화이트박스 테스트 검정 중에, 각 번호에 해당하는 단어
1. 최소 한번은 모든 문장 수행
2. 결정(Decision)검증기준이라고도 하며, 조건별 참 / 거짓
3. 2번과 달리 전체 조건식을 무시하며, 조건 상관없이 개별 조건 참 / 거짓
답 :
1. 문장
2. 결정
3. 조건
10. SQL 문에서 이씨에 대해 내림차순
Select ... from ...where 이름 like ( ) order by ()
답 : 이%, DESC
11. 응집도 문제
1. 입출력 간 연관성은 없으나, 순서에 따라 수행되는 것
2. 동일한 입력과 출력 사용
3. 하나의기능에 모두 기여하고 밀접하게 연관되어 있는 것(그룹화)
1. 절차적 응집도
2. 교환적 응집도
3. 기능적 응집도
응집도 순서( 낮은것부터 높은 순서)
우연적 > 논리적 > 시간적 > 절차적 > 교환적 > 순차적 > 기능적
우연적 응집도 : 모듈 내부의 각 구성요소들이 연관이 없을 경우
논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
시간적 응집도 : 연관된 기능이라기보다 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
절차적 응집도 : 입출력 간 연관성은 없으나, 순서에 따라 수행되는 것
교환적 응집도 : 동일한 입력과 출력 사용
순차적 응집도 : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
기능적 응집도 : 하나의 기능에 모두 기여하고 밀접하게 연관되어 있는 것(그룹화)
12. 패킷교환방식
1. 목적지 호스트와 미리 연결할 후, 통신하는 연결형 교환 방식
2. 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식
답 :
1. 가상회선 방식
2. 데이터그램 방식
패킷교환방식(저장 방식) : 패킷이라는 단위를 사용하여 데이터를 송신하고 수신합니다. 패킷이란 정보를 일정한 크기로 분할한 뒤 각각의 패킷에 송수신 주소 및 부가 정보를 입력한 것으로 현재 컴퓨터 네트워크에서 주로 사용하는 방식입니다.
반대 개념
회선 교환 방식(비 저장 방식) : 물리적 전용선을 활용하여 데이터 전달 경로가 정해진 후 동일 경로로만 전달이 됩니다. 데이터를 동시에 전송할 수 있는 양을 의미하는 대역폭이 고정되고 안정적인 전송률을 확보할 수 있습니다.
13. 디자인 패터 중에서( ) 패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것으로, 클래스나 객체들이 상호작용하는 방법이다. 알고리즘의 패턴에는 Interpreter, Observer, Command가 있다.
행위패턴은 객체나 클래스 간의 교류 방법에 대해 정의하는 방법을 제시합니다.
행위패턴 클래스 : Interpreter, Template
행위패턴 객체 : Chain of Responsibility, Command, Iterator, Mediator...
14. 병행제어기법 중, 접근한 데이터에 대한 연산을 모두 마칠때까지 상호배제하는 기법
답 : 로킹
병행제어란 다중 프로그램이 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행수행할때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상화작용을 제어하는 것입니다.
병행제어기법 - 로킹, 타임 스탬프, 최적 병행 수행, 다중 버전 기법
타임 스탬프 순서(Time Stamp Ordering) : 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭셔닝 실행을 시작하기 전에 시간표를 부여하여 부여된 시간에 따라 작업을 수행하는 기법
최적 병행 수행(검증기법, 낙관적 기법) : 병행수행하고자 하는 대부분의 트랜잭션이 읽기 전용 트랜잭션일 경우, 트랜잭션 간의 충동률이 매우 낮아서 병행제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템의 상태를 일관성 있게 유지한다는 점을 이용한 기법
다중 버전 기법 : 타임 스탬프의 개념을 이용한 기법으로 타임 스탬프는 트랜잭션 및 데이터들이 이용될 때의 시간을 시간표로 관리하지만 다중 버전 기법은 갱신될 때마다의 버전을 부여하여 관리하는 기법
15. 럼바우 데이터 모델링
1. 입력값이 출력값일 때 (자료흐름도) -> Function Modeling
2. 시간에 따라 변하는 것 (상태 다이어그램) -> Dynamic Modeling
3. E-R모델 -> Object Modeling
럼바우 객체지향 분석 기법은 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 분석 기법이다.
럼바우 객체지향 분석 기법의 절차 : 객체 모델링 > 동적 모델링 > 기능 모델링
16. C언어
int mp(int base, int exp);
int main() {
int res;
res = mp(2, 10);
printf("%d ", res);
return 0;
}
int mp(int base, int exp) {
int res = 1;
for(int i = 0; i < exp; i++) {
res * base;
}
return res;
}
답 :1024
17. 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드
public class test{
public static void main(String[] args) {
System.out.print(test.check(1));
}
빈칸 String check(int num) {
return (num >= 0) ? "positive" : "negative";
}
}
[출력결과]
positive
답 : static
18. C언어
int*ary=int[3];
int s=0;
*(ary+0)=1;
ary[1]=*(ary+0)+2;
ary[2]=*ary+3;
for(i=0; i<3; i++) {
s=s+a[i]
}
print("%d",s);
답 : 8
19. Java 상속문제
class ovr {
public static void main(String[]args) {
ovr a1=new ovr();
ovr2 a2=new ovr2();
System.out.print(a1.san(3,2)+ a2.san(3,2));
}
int san(int x, int y) {
return x+y;
}
}
class ovr2 extends ovr {
int san(int x, int y) {
return x-y + super.san(x,y);
}
}
답 : 11
20 괄호 안 알맞은 대답
- 테스트 하네스와의 도구 구성 요소 중, 상향식 테스트시, 상위 모듈 역할을 대신하는 테스트 드라이버와 하향식 테스트 시, 하위 모듈 역할을 대신하는 테스트( ) 이 있다.
답 : 스텁
테스트 하네스란 시스템 및 시스템 컴포넌트 시험하는 환경의 일부분으로 시험을 지원하는 목적 하에 생성된 코드와 데이터를 뜻합니다. 시험 드라이버라고도 하며, 일반적으로 단위 시험이나 모듈 시험에 사용하기 위해 코드 개발자가 만듭니다.
2021년 3회 기출문제
1. Java 문제
class Connection{
private static Connection _inst = null;
private int count = 0;
static public Connection get(){
if(_inst == null){
_inst = new Connection();
return _inst;
}
return _inst;
}
public void count(){
count++;
}
public int getCount(){
return count;
}
}
public class testCon{
public static void main(String[] args){
Connection conn1 = Connection.get();
conn1.count();
Connection conn2 = Connection.get();
conn2.count();
Connection conn3 = Connection.get();
conn3.count();
System.out.print(conn1.getCount());
}
}
답: 3
static은 메모리에 한번 할당되면 프로그램이 종료될때까지 메모리를 공유하는 것. 인스턴스를 여러번 생성하더라도 static변수나 메서드는 새롭게 생성되는 것이 아님.
① _inst 변수가 static으로 생성됨
② main에서 Connection.get()을 호출하면 _inst가 null인지 아닌지를 체크 후 _inst를 return
③ 만약 _inst가 null이라면 new Connection() 객체를 생성하고 count는 0으로 초기화
→ conn1을 생성해 Connection.get()을 호출할 때, _inst는 null이므로 if문을 돌아 Connection() 객체를 생성하게 됨. 객체를 생성하면 인스턴스를 생성하고 참조값을 return하기 때문에 여기서 부터는 _inst가 null이 아니게 됨
④ conn1.count() 는 0에서 count++ 하므로 1
⑤ conn2를 생성하고 다시 get()을 호출하면 _inst는 null이 아니기 때문에 객체를 새로 생성하지 않음. 그래서 count 값을 그대로 가지고 감
⑥ conn2.count() 는 1에서 count++ 하므로 2
⑦ conn3도 위와 마찬가지로 진행
⑧ conn3.count() 는 2에서 count++ 하므로 3
⑨ 결과적으로 count값는 3이 되었기 때문에 conn1.getCount()를 하면 3이 출력됨
2. 정보 보호 기술인 AAA에 대한 설명
1. 시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증
2. 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용
3. 사용자의 자원(시간, 정보, 위치 등)에 대한 사용 정보를 수집
1. Authentication
2. Authorization
3. Accounting
AAA는 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고, 신뢰성 있는 인증, 권한 검증 등의 기능을 체계적으로 제공하는 정보 보호 기술이다.
신분을 확인하는 인증(authentication)
접근.허가를 결정하는 인가(authorization)
리소스 사용정보를 수집 관리하는 계정(accouting)
위의 3가지를 통합한 보안소프트웨어로 3A라고도 합니다.
3. Grant의 기능을 대해 간략하게 약술
답 : 사용자(User)에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어
Grant는 사용자에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어이며,
Revoke는 사용자에게 부여한 권한을 다시 회수하는 명령어
4. () 안에 답
( ) 스푸핑은 근거리 통신망 하에서( ) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 ( )를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다.
답 : ARP
ARP (Address Resolution Protocol)의 약자로 주소 결정 프로토콜이라 불립니다. 네트워크 상에서 IP주소를 물리적 네트워크 주소(이더넷)로 대응(bind)시키기 위해 사용되는 프로토콜이며, 인터넷 계층에 속해있습니다.
5. Coupling에 대한 설명
- 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
- 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생
답 control
결합도느느 약할수록 모듈의 독립성이 높아지는데,
내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 결합도 순으로 결합도가 약해집니다.
내용 결합도 (Content Coupling)
공통 결합도 (Common Coupling)
외부 결합도 (External Coupling)
제어 결합도 (Control Coupling)
스탬프 결합도(Stamp Coupling)
자료 결합도 (Data Coupling)
6. OSI 7 Layer의 설명으로 해당되는 설명
1. 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할
2. 데이터를 목적지까지 가장 안전하게 빠르게 전달하는 기능
3. 수신자에서 데이터의 압축을 풀 수 있는 방식으로 된 데이터 압축
답 :
1. 데이터 링크
2. 네트워크
3. 표현
OSI 7 Layer란 네트워크에서 통신이 일어나는 과정을 단계별로 파악하기 위해 7단계로 나눈 것을 말합니다.
1 Layer - 물리계층(Physical Layer)
- 단순 데이터를 전기적인 신호로 변환(on/off)해서 주고받는 기능만 하며, 케이블, 리피터, 허브를 통해 데이터를 전송합니다.
2 Layer - 데이터 링크계층(DataLink Layer)
- 물리게층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행하도록 역할합니다.
3 Layer - 네트워크 계층(NetWork Layer)
- 전송 데이터르르 목적지까지 경로를 찾아 전송하는 계층입니다. 주소(IP)를 정하고, 경로(route)를 선택하여 패킷을 전달하는 것이 핵심입니다.
4 Layer - 전송 계층( Transport )
데이터를 전송하고 전송 속도를 조절하며 오류가 발생된 부분은 다시 맞춰주며, 주로 TCP 프로토콜을 사용합니다.
5 Layer - 세션 계층(Session)
- 네트워크의 양쪽 연결을 관리하고 지속적으로 연결을 시켜줍니다.
- TCP/IP의 세션을 만들고 없애는 것을 반복합니다.
6 Layer - 표현 계층(Presentation)
- 응용계층으로부터 전달받거나 전송하는 데이터의 인코딩(언어처리) 및 디코디잉 이루어 집니다.
- JPEG, TIFF, GIF 등의 다양한 포멧을 지원합니다.
7 Layer - 응용계층(Application)
- 사용자가 네트워크에 접근할 수 있도록 도와줍니다.
- 사용자에게 보이는 유일한 계층으로 메일전송/인터넷접속 등의 작업을 수행합니다.
7. ()에 들어갈 알맞는 답
( )은 클래스들 사이의 전체 또는 부분 같은 관계를 나타내는 것이고,
( ) 은 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 IS-A관계라하며, 일반화 관계로 모델링한다.
답 : Aggregation, Generalization
UML 다이어그램의 구조 다이어그램안에 클래스 다이어그램에 대한 종류 문젭입니다.
UML(Unified Modeling Language)는 통합 모델링 언어라 불리며, 시스템을 모델로 표현해주는 대표적인 모델링 언어입니다.
UMl 다이어그램 종류
1. 구조 다이어그램(Structure Diagram)
- 클래스 다이어그램
- 객체 다이어그램
- 복합체 구조 다이어그램
- 배치 다이어그램
- 컴포넌트 다이어그램
- 패키지 다이어그램
2. 행위 다이어그램(Behavior Diagram)
- 활동 다이어그램
- 상태 머신 다이어그램
- 유즈 케이스다이어그램
- 상호작용 다이어그램
클래스 다이어그램(Class Diagram)
시간에 따라 변하지 않는 시스템의 정적이 면을 보여주는 대표적인 UML 구조 다이어그램이며, 시스템을 구성하는 클래스들 사이의 관계를 표현합니다.
1) 연관 관계(association) : 클래스들이 개념상 서로 연결되어 있음을 나타냅니다.
2) 일반환 관계(generalization) : 상속 관계를 설명합니다.
3) 집합 관계 :
- 집약 관계(aggregation) : 클래스 사이의 전체 또는 부분 같은 관계를 나타냅니다.
- 합성 관계(composition) : 클래스 사이의 전체 또는 부분 같은 관계를 나타냅니다.
- 의존 관계(dependency) : 연관 관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용합니다.
- 실체화 관계(relization) : 인터페이스와 구현 클래스 사이의 관계를 나타냅니다.
8. 테스트케이스의 구성 요소
답 : 테스트 조건, 테스트 데이터, 예상 결과
테스트 케이스란 특정 프로그램의 부분 및 경로를 실행해보거나, 요구사항에 준수하는지 확인하기 위해 개발된 입력 값, 조건, 예상된 결과 세트입니다.
9. () 답
() 를 통해 요구사항 명세를 입력 조건과 출력 조건 간의 논리적 관계로 표현하고, 이를 기반으로 테스트 케이스를 도출한다.
()의 '원인(causes)'은 입력 조건을 의미하고 '결과(effects)'는 입력 조건의 결과를 의미하며, 원인과 결과 간의 논리적 관계를 AND, OR, NOT 같은 boolean 연산자를 사용하여 표현한다.
답 : cause effect graph
동적 테스트(Dynamic Test)
- 데스트데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 과정입니다.
- 명세 기반 테스트(Black Box Test)
1) 신택스 기법(Syntax Analysis)
2) 동등 분할 기법(Equivalence Partitioning Analysis)
3) 경계 값 분석 기법(Boundary Value Analysis)
4) 원인-결과 그래프 기법(Cause-Effect Graph Analysis)
5) 의사결정 테이블 기법(Decision Table Analysis)
- 구현 기반 테스트(White Box Test)
1) 문장 검증 기준(Statement Coverage)
2) 분기 검증 기준(Branch Coverage)
3) 조건 검증 기준(Condition Coverage)
4) 분기/조건 검증 기준(Branch/Condition Coverage)
5) 다중 조건 검증 기준(Multiple Condition Coverage)
6) 기본 경로 테스트(Basic Path Test)
10. () 답
() 블록 암호의 일종으로, 미국 NBS(National Bureau of Standards, 현재 NST)에서 국가표준으로 정한 암호이다.
()는 64비트 평문을 64비트 암호문으로 암호화하는 대칭키 암호 알고리즘이다.
()의 키는 7비트마다 오류 검출을 위한 정보가 1비트씩 들어가기 때문에 실질적으로는 56비트이다.
답 : DES
DES(Data Encryption Standard)와 AES(Advanced Encryption Standard)는 대칭키 암호화 방식 중 하나입니다.
DES의 취약점을 보완하기 위해 만들어진 고급 암호화 표준 방식이 AES입니다.
DES와 다르게 128비트 평문을 128비트로 암호화 하였으며,
10/12/14 라운드 수와 이에 대응해 128/192/256/비트의 키길이를 갖습니다.(AEX-128/AES-192/AES-256) 하기 때문에 안전하여 현재 보편적으로 사용되는 암호화 방식입니다.
11. JAVA 문제
public class Gisafirst {
public static void main(String[] args){
int w=3, x=4, y=3, z=5;
if ( (w==2|w==Y) & !(y>z) & (1==x^y!=z) ){
w=x+y;
if( 7==x^y!=w){
System.out.println(w);
} ese {
System.out.println(x);
}
} else {
w = y+z;
if ( 7==y^z != w) {
System.out.println(w);
} else {
System.out.println(z);
}
}
}
}
답 : 7
& : 비트연산자로써 같은 자리를 비교했을때 모두 같은 경우 True/ 아니면 False
| : 비트연산자로써 같은 자리를 비교했을 때 하나라도 조건이 맞을 경우 True / 아니면 False
^ : XOR 연산자로써 두 값이 같으면 False / 아니면 True
12. C언어
#include <stdio.h>
int main(){
int *array[3];
int a = 12, b=24, c=36;
array[0] = &a;
array[1] = &b;
array[2] = &c;
printf("%d", *array[1]+ **array + 1);
}
답 : 37
13. 결과 값을 작성하시오.
답 : 4
cross join은 join을 해서 나올 수 있는 모든 행의 조합을 보여주는 것으로 각 결과를 곱해주면 됩니다.
즉, S로 시작하는 A.NAME의 개수는 2개, T를 포함하는 A.NAME의 개수 또한 2개이므로 2 * 2 = 4가 됩니다.
14. 파이썬
x,y=100,200
print(x==y)
답 : False
여기서는 앞글자는 대문자로 표기하는 것이 답이다.
15. () 안에 들어갈 답
() 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과 같은 추상적인 개념을 기술하기 위해 나타낸 것이다. 또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다. () 다이어그램의 형식은 ( ) 클래스를 포함하여 속성(attribute) 과 메서드(method)가 있다.
답 : 클래스
16. () 답
( ) 패턴은 객체지향 디자인 패턴이다.
( ) 는 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 자식(하위)클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다. 부모(상위)클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다.
답 : Factory method
17. C언어
#include <stdio.h>
struct src {
char name[12];
int os, db, hab, hhab;
}
int main(){
struct src st[3] = {{"가",95,88}, {"나",84,91}, {"다",86,75}};
struct src* p;
p = &st[0];
(p+1)->hab = (p+1)->os + (p+2)->db;
(p+1)->hhab = (p+1)->hab +p->os+ p->db;
printf("%d",(p+1)->hab+(p+1)->hhab);
}
답 : 501
18. 파일 구조(File Structures)에 대한 설명
파일구조는 파일을 구성하는 레코드들이 보조기억장치에 편셩되는 방식으로 접근 방식에 따라 방식이 달라진다.
접근 방법중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은( )을 구성하여 편성하는 방식이 있으며, 레코드를 참조할 때는 ( ) 이 가르키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, ( )접근, 해싱 접근이 있다.
답 : 인덱스(색인)
19. 영문 약어로 작성
( )는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다. 이전까지 사용자 인터페이스는 키보드를 통해 명령어로 작업을 수행시켰지만 ( )에서는 키모드 뿐만 아니라 마우스 등을 이용하여 화면의 메뮤 중 하나를 선택하여 작업을 수행한다. 화면에 아이콘을 띄어 마우스를 이용하여 화면에 있는 아이콘을 클릭하여 작업을 수행하는 방식이다. 대표적으로는 마이크로소프트 Windows, 애플의 Mac 운영체제 등이 있다.
답 : GUI
20. 소프트웨어 통합 테스트
( ) 방식은 이름에서도 알 수 있듯이, 하위 모듈부터 시작하여 상위 모듈로 테스트를 진행하는 방식이며, 이 방식을 사용하기 위해서는 () 가 필요하다.
( ) 는 이미 존재하는 하위 모듈과 존재하지 않은 상위 모듈에 대한 인터페이스 역할을 한다.
답 : 상향식, 테스트 드라이버
모듈을 통합하는 과정에서 모듈 간 호환성의 문제를 찾아내기 위해 수행되는 테스트입니다. 즉, 모듈 간의 인터페이스가 올바르게 작동하는지를 테스트하게 됩니다.
통합 테스트에는 아래와 같은 방식이 존재합니다.
1. 빅뱅(Big Bang) 접근법 : 모든 구성 요소들을 한꺼번에 통합된 후에 트스트 수행
2. 점증적(incremental) 접근법 : 논리적으로 연관된 두개 또는 그 이상의 모듈을 조합시켜서 수행
(1) 하향식(Top Down) 접근법 :
소프트웨어 시스템의 제어 흐름이 위에서 아래로 발생 (스텁 필요)
(2) 상향식(Bottom Up) 접근법 :
모든 모듈들이 테스트될 때까지 더 낮은 레벨에 있는 각 모듈은 더 위에 있는 모듈과 함께 테스트 수행 (드라이버 필요)
(3) 샌드위치 접근법 : 하향식과 상향식 접근법의 조합