정보처리기사

[정처기] 필기 기출(2021년 2회) 스터디 #1

멋쟁이천재사자 2023. 2. 8. 00:10

2021년 05월 15일 기출문제를 풀고 관련 개념을 찾아보며 공부한 로그입니다.

 


캡슐화 vs 정보은닉

https://blog.naver.com/limhojin123/222990615408
https://blog.naver.com/ilgolc/222497055746

공부를 더 하기 전에 나의 현재 생각을 좀 적어두자

 

틀린 소리가 많을 수 있다. 나에게 형성된 암묵지를 최대한 끄집어 내서 형식지화 해본다.
그래야 고쳐야 할 부분도 확인할 수 있다.

두 개는 굉장히 유사하다. 비슷한 개념이다. 
그래서 정처기에 문제 지문도 두가지를 명확히 구분이 될 만큼 그런데 문제 지문이 명확하게 기술하지 않아서 두 개 다 답안으로 인정했을 것이다.

정보은닉은 감추는 것에 촛점이 맞추어져 있고, 캡슐화는 복잡한것을 클래스라는 이름으로 퉁쳐서 하나의 이름으로 단순화하여 표현하는 것이다.
정보 은닉은 감추는 것이고, 이것은 안전을 위해 또는 어떤 목적을 위해 접근 제어를 관리하는 것이다.
캡슐화는 멤버변수와 메소드를 하나의 클래스로 묶는 것이다. 캡슐화하는 과정에 어떤것은 은닉이 되기도 한다.
그러나 정보은닉이 캡슐화의 부분집합은 아닐 것 같다.
왜냐하면 외부로 노출된 메소드가 있는 것도 캡슐화한 결과물이기 때문이다. 은닉을 안하는 것도 캡슐화의 하나이기 때문이다.
퍼블릭 메소드의 틀만 노출이 되고 구현 내용은 감추어지는 것도 캡슐화의 하나인데, 구현 내용이 감추어지는 것은 정보 은닉이라고 할수 있을까?
그것은 정보 은닉이 의미하는 것과는 다른 것이다.
정보은닉은 변수와 메소드에서 변수를 감추는 것이다.

 

https://edushare.tistory.com/274
5. 객체지향 설계에서 객체가 가지고 있는 속성과 오퍼레이션의 일부를 감추어서 객체의 외부에서는 접근이 불가능하게 하는 개념은?
1. 조직화
2. 캡슐화
3. 정보은닉
4. 구조화

2,3이 혼동스럽다.

속성과 오퍼레이션의 일부를 --> 캡슐화
감추어서 --> 은닉
외부에서는 접근이 불가능하게 --> 캡슐화

캡슐화가 더 정답에 가까운것 같다.
그런데 처음에 기록한 내용과 문제에 대한 해석이 일관성이 없는 부분이 생겼다.
정보은닉이 접근 제어와 관련된다고 해놓고 외부에서 접근이 불가능하게라는 말은 캡슐화와 관련된다고 생각한다는 점이다.
음 둘 다 내가 하고 있는 생각인데...

다시 문제를 보니 가답안이 3번. 그렇다면 출제자는 정보은닉을 의도해서 출제했었군요.

 

 

문제 오류로 가답안 발표시 3번으로 발표되었지만 확정 답안 발표시 2, 3번이 정답처리 되었습니다. 여기서는 가답안인 3번을 누르면 정답 처리 됩니다.)


힙정렬에 대한 설명
맥스힙 민힙
힙정렬은 평균, 최악 수행시간 모두  0(nlon2n) 입니다
https://blog.naver.com/eaea54/222546596842
https://blog.naver.com/ndb796/221228342808
https://blog.naver.com/dilector/222611298204

 

화이트박스 테스트 기본경로
4번?

DRM 구성요소

28. 디지털 저작권 관리(DRM) 구성 요소가 아닌 것은?
 1. Data warehouse
 2. DRM Controller
 3. Packager
 4. Contents Distributor

 

쉬운 문제였다. 생뚱맞은 DW (Data warehouse) 가 있어서 답을 고르는 것은 쉬웠다.

공부를 해보니 이제 알았다.  클리어링 하우스하고 혼동하라고 만든 선지였다.

 

https://devinus.tistory.com/19

https://it-life.tistory.com/213

하 - 권라
제 - 패콘메
분 - 유
소 - D보

클하
콘제  - 패키저,콘텐츠,메데
콘분  -유시
콘소  -D콘 보컨



유스케이스
액터는 대상 시스템과 상호 작용하는 사람이나 다른 시스템에 의한 역할이다.

모델의 오류 검증은 아닐 듯이라고 예상했는데 이것도 한단다.

사용자가 모델은 제대로 만들어야 그것을 기반으로 어떤 자동화된 결과를 주는 것이라고 생각했는데 그것이 아니었다.

 

요구사항 개발 프로세스
도분명확

도출 -> 분석 -> 명세 -> 확인

https://blog.naver.com/fwangjuwon/222669936060


bridge pattern은 구현부에서 추상층을 분리하여 각자 독립적으로 확장이 가능하게 하는 패턴이다

CASE의 원천 기술은

https://blog.naver.com/go_318039/222991026615
구프자정분
구조적 기법, 프로토타이핑 기술, 자동프로그래밍 기술, 정보 저장소 기술, 분산 처리 기술

UML 모델에서 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계로 옳은 것은?

1.Dependency  2.Realization  3.Generalization  4.Association

 

Dependency(의존) : 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치는 것을 말합니다 (Cascade 생각하셈)
Realization(실체화) : 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정
Generalization(일반화) : 일반화된 사물과 좀 더 특수화된 사물 사이의 관계를 말합니다.('is-a')관계
Association(연관) : 두 사물간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음을 말함 ('has-a')관계라고도 합니다

 

 

Realization

한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정?

인터페이스를 구체화해서 implement 한다는 의미 아닌가. 설명이 더 이해가 안된다.

 

https://blog.naver.com/0116sharon/222994416897

사물들 을 기능적 요소로 서로를 그룹화할 수 있는 관계를 표현한다

한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계이다

사물 사이를 점선으로 표현한다.

기능 쪽에 속이 빈 삼각 화살표를 붙여서 표현한다

정리 잘되어 있음

 

정렬된 N개의 데이터를 처리하는 데 O(Nlog2N)의 시간이 소요되는 정렬 알고리즘은?

     1. 합병정렬
     2. 버블정렬
     3. 선택정렬
     4. 삽입정렬

 

 

정렬 관련해서 쭈욱 이해하고 정리한번 하자

합병정렬 최악의 경우에도 O(nlogn)의 시간 복잡도를 보장한다는 장점

힙정렬과 같네? 완전이진트리의 개념상 무조건 절반씩 줄면서 찾기 때문에 반틈씩 잘라가며 병합하는 알고리즘과 동일하군!
https://todaycode.tistory.com/54
버블정렬 O(N2) : 제곱형 : 제곱에 비례 ⇒ 버블정렬, 삽입정렬, 선택정렬
즉 N 개의 데이터를 가진 배열의경우 (N-1) + )N-2) + (N-3) + (N-4) + ... + 1  비교를 수행한다.
N2-N의 단계로 N2(이차시간)의 효율성을 갖게된다 
https://blog.naver.com/tygk1/222956137192

선택정렬 O(N2) : 제곱형 : 제곱에 비례 ⇒ 버블정렬, 삽입정렬, 선택정렬


이 시험 40번 문제
다음 중 스택을 이용한 연산과 거리가 먼 것은?
선택정렬은 큐를 이용해서 정렬합니다.
 
퀵정렬 평균적인 속도가 매우 빠른 대신 최악의 경우 O(n²)의 시간 복잡도를 가진다는 단점

피봇(pivot)이라 하는 기준 값을 정한 후, 분할 정복하는 방식
분할정복 알고리즘
https://blog.naver.com/right9090/222917248235
삽입정렬 O(N2) : 제곱형 : 제곱에 비례 ⇒ 버블정렬, 삽입정렬, 선택정렬
 
트리정렬 트리 정렬은 이진 탐색 트리를 이용하여 정렬한다.중위 우선 순회 방법으로 이진 탐색 트리의 원소를 순회하는 경로가 오름차순 정렬이다. (LDR)

129회 기술사에도 출제됨. 둘이 비슷한데...
https://blog.naver.com/ybh3469/222792251196

 

 

34. EAI(Enterprise Application Integration) 구축 유형에서 애플리케이션 사이에 미들웨어를 두어 처리하는 것은? (문제 오류로 가답안 발표시 1번으로 발표되었지만 확정 답안 발표시 1, 3, 4번이 정답처리 되었습니다. 여기서는 가답안인 1번을 누르면 정답 처리 됩니다.)
     1. Message Bus
     2. Point-to-point
     3. Hub & Spoke
     4. Hybrid

 

1,3번에서 고민했을 듯. 시험볼 때는 적당히 생각하고 아무거나 선택하자

2,3 은 빅분기인지 ADP 인지 시험 볼때 나왔던 것 같은데...

 

 

 

 

 

40. 다음 중 스택을 이용한 연산과 거리가 먼 것은?
     1. 선택정렬
     2. 재귀호출
     3. 후위표현(Post-fix expression)의 연산
     4. 깊이우선탐색

 

 

33.다음 postfix로 표현된 연산식의 연산 결과로 옳은 것은?
3 4 * 5 6 * + 
(3*4)+(5*6) = 12+30 = 42

 

https://fishbone-s-present.tistory.com/96

 

41. 병렬 데이터베이스 환경 중 수평 분할에서 활용되는 분할 기법이 아닌 것은?
     1. 라운드-로빈
     2. 범위 분할
     3. 예측 분할
     4. 해시 분할

 

현재 싸이트에서 기관별로 쪼개서 기본이 partition table 이다. range 였던 듯.

 

분할을 예측으로 하는 것은 아닌것 같아 3번으로 찍었지만... 옵션을 체크해봐야겠음

 

라운드로빈과 해시는 Bobj 이중화 구성시 인프라 담당자에게 항상 요청함.

L4 세팅할 때 RR 은 세션 문제가 생기니 해시방식으로 해달라.

파티셔닝에도 그런 옵션이? 병렬데이터베이스 환경의 수평분할이 partition 하고 다른 것인가?

 

47. 데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌 것은?
     1. 레코드 집중의 분석 및 설계
     2. 접근 경로 설계
     3. 저장 레코드의 양식 설계
     4. 목표 DBMS에 맞는 스키마 설계

 

 

49. 병행제어 기법의 종류가 아닌 것은?    
     1. 로킹 기법
     2. 시분할 기법
     3. 타임 스탬프 기법
     4. 다중 버전 기법

 

관련 키워드

동시성 제어. race condition. 낙관적. 비관적. 상호배제 동기화.

상호배제는 동기화의 한가지 방법.

데드락. 은행원 알고리즘.

<문제 해설>
병행제어는 동시에 여러 개의 트랜잭션을 병행수행할때, DB의 일관성을 파괴하지 않도록 제어하는 것이다.

시분할 기법은 사용자가 여러개의 작업이 동시에 수행하는 것처럼 느끼도록 분할하는 운영체제 운영기법이다.
[해설작성자 : 해군본부 정체단 674기 수뱅]

병행제어 기법의 종류
로킹 기법
타임 스탬프 기법
최적 병행 수행 기법 (검증 기법, 확인 기법, 낙관적 기법)
다중 버전 기법
[해설작성자 : 31살 백수]

 

 

 

52. 관계형 데이터 모델의 릴레이션에 대한 설명으로 틀린 것은?
     1. 모든 속성 값은 원자 값을 갖는다.
     2. 한 릴레이션에 포함된 튜플은 모두 상이하다.
     3. 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
     4. 한 릴레이션을 구성하는 속성 사이에는 순서가 존재한다.

 

 

57. 개체-관계 모델(E-R)의 그래픽 표현으로 옳지 않은 것은?  
     1. 개체타입 – 사각형
     2. 속성 - 원형
     3. 관계타입 - 마름모
     4. 연결 - 삼각형

 

https://blog.naver.com/boldfaced7/222995590785

 

 

62. 다음 중 가장 약한 결합도(Coupling)는?
     1. Common Coupling
     2. Content Coupling
     3. External Coupling
     4. Stamp Coupling

 

https://hana-moa.tistory.com/250

결합도는 내용(content) 공통( common ) 외( external) 제어( control) 스탬프 ( stamp) 자료 ( data) 순이다

(내)게 (공)()하라고 강요하지 말아요. (제)가 (스)트레스 받(자)나요
내공 외제 쓰자

 

기술사 129 회 1교시 7번 문제. 소프웨어 결합도의 종류

https://youtu.be/88tNMp77wvY?t=1713 

 

https://youtu.be/2cLVNTUbyR0?list=LL&t=2357 

단순히 외우려고 보면 별것 아니지만 가만히 생각해보면 뭔지 모를 소리다.

자료. 메소드의 인자값?

스템프.. 메소드 인수를 클래스로? 그런데 스탬프? 타임스탬프는 아니다. 스탬프

stamp 우편??


#include <stdio.h>

int main(int argc, char *argv[]){
	int a[2][2]	= {{11,22},{44,55}};
	int i, sum	= 0;
	int *p;
	p	= a[0];
	for(int i=1;i<4;i++)
		sum += *(p+i);
	printf("%d",sum);
	return 0;
}

 



18. 애자일 개발 방법론이 아닌 것은?     
     1. 스크럼(Scrum)
     2. 익스트림 프로그래밍(XP, eXtreme Programming)
     3. 기능 주도 개발(FDD, Feature Driven Development)
     4. 하둡(Hadoop)

테스트의 기본원칙
오류 부재의 궤변
살충제 패러 독스
결함 집중 - 파레토 법칙이 좌우. 결함은 소수의 특정한 모쥬레 집중되어 존재

CSMA/CA
무선 랜에서 데이터 전송시, 매체가 비어 있음을 확인한 뒤 충돌을 회피하기 위해 임의 시간을 기다린 후 데이터를 전송하는 방법
네트워크에 데이터의 전송이 없는 경우라도 동시 전송에 의한 충돌에 대비하여 확인 신호를 전송한다


#include <stdio.h>
int main(int argc, char *argv[]){
int a = 4;
int b = 7;
int c = a|b;
print("%d",c);
return 0;
}


class FourCal:
	def setdata(sel, fir, sec):
		sel.fir	= fir
		sel.sec	= sec
	def add(sel):
		result = sel.fir + sel.sec
		return result
a	= FourCal()
a.setdata(4,2)
print(a.add())

 

java 문제

public class Operator{
	public static void main(String[] args){
		int x=5, y=0,z=0;
		y	= x++;
		z	= --x;
		System.out.println(x + "," + y + "," + z);
	}
}

C 코드

 

#include <stdio.h>

int main(int argc, char *argv[]){
	int a[2][2]	= {{11,22},{44,55}};
	int i, sum	= 0;
	int *p;
	p	= a[0];
	for(int i=1;i<4;i++)
		sum += *(p+i);
	printf("%d",sum);
	return 0;
}

OSI 7계층 중 네트워크 계층에 대한 설명으로 틀린 것은?
     1. 패킷을 발신지로부터 최종 목적지까지 전달하는 책임을 진다.
     2. 한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다.
     3. 패킷에 발신지와 목적지의 논리 주소를 추가한다.
     4. 라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공한다.



Bell-Lapadula Model
기밀성은 Bell-LaPadula모델이 대표적이다. 다중등급보안을 정형화해 주체와 객체의 보안수준과 접근을 사용하였다
https://www.boannews.com/media/view.asp?idx=19796&kind=1
https://blog.naver.com/nine01223/222641314791
https://blog.naver.com/lje228/222652785960


86. 라우팅 프로토콜인 OSPF(Open Shortest Path First)에 대한 설명으로 옳지 않은 것은?
     1. 네트워크 변화에 신속하게 대처할 수 있다.
     2. 거리 벡터 라우팅 프로토콜이라고 한다.
     3. 멀티캐스팅을 지원한다.
     4. 최단 경로 탐색에 Dijkstra 알고리즘을 사용한다.

OSPF 는 '링크 상태 알고리즘'을 사용합니다
https://youtu.be/yxFTKa-N6mE

Transcription Error

ISO 12207
기 획공개운유
지 품검활문
조 관기훈개

ISO 15504
https://terms.naver.com/entry.naver?docId=3533060&cid=58528&categoryId=58528
표 9-18 SPICE 모델의 프로세스 수행 능력 단계
불수관확예최

IPSec(IP Security)에 대한 설명으로 틀린 것은?
     1. 암호화 수행시 일방향 암호화만 지원한다.
     2. ESP는 발신지 인증, 데이터 무결성, 기밀성 모두를 보장한다.
     3. 운영 모드는 Tunnel 모드와 Transport 모드로 분류된다.
     4. AH는 발신지 호스트를 인증하고, IP 패킷의 무결성을 보장한다.

nmap
서버에 열린 포트 정보를 스캐닝

서로 다른 네트워크 대역에 있는 호스트들 상호간에 통신할 수 있도록 해주는 네트워크 장비
라우터

Stack Guard
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?



https://losuif.github.io/2022/04/17/정처기10.html
시스템의 구성요소로 볼 수 없는 것은?
입출력 처리 제어 피드백


UML 다이어그램
https://blog.naver.com/bestjwjwjw/222899741741

액티비티 다이어그램
https://blog.naver.com/patanus/221826833287

[애자일] Scrum 개발방법론
https://aroundck.tistory.com/6896

애자일 방법론이란?
https://www.redhat.com/ko/devops/what-is-agile-methodology

CSMA/CA
https://blog.naver.com/choiyoonjun111/222740352862

[정보처리기사] 소프트웨어 테스트 기본원칙 
https://jtrimind.github.io/information-processing/sw-test-principle/

테스트의 기본원칙
https://digital-play.tistory.com/34

[DB] 9. 트랜잭션(Transaction) - (3) 병행 제어, 로킹, 타임스탬프 
https://rebro.kr/163