잡다한 배똥월드

728x90

 

 

 

 

 

7월 24일 13시에 치뤘던 정보처리산업기사 실기 시험..

일단 공부는 책 한 번 정독 + 쪽지시험 형식으로 계속 공부했었음

 

 

 

 

쪽지시험은 일단 내가 공부하면서 만든 사이트(?)로 하다가

시나공에서 제공하는 문제들로 한 이틀 공부했음

 

 

 

 

그리고 시험 당일 오전에 책 한 번 속독하고...

 

 

 

 

가채점은 수험표에 적어온다는데 내가 본 시험 감독님은 수험표도 넣으라고 하길래

문제 풀고 남은 시간동안 답을 달달 외워서 나옴..

그래서 SQL 문제는 제대로 기억 안나긴 함.

 

 

 

 

어쨋든 내가 작성한 답안하고, 기사퍼스트에서 제공하는 가채점 답안하고 비교하면서 채점 맸음

 

 

 

 

필요하신 분들을 위해 링크도 가져옴

 

 

온라인IT자격증의 시작 기사퍼스트로 대비하세요.

정보공유 >> 가답안 * 가답안 복원과 무관한 글은 사전 통보 없이 삭제하겠습니다.* 22년 2회 정보처리산업기사 실기 시험은 7월 24일 (일) 오후 1:00 시행됩니다.7월 24일 시험 당일 가답안이 진행될

www.gisafirst.com

 

 

 

 

 

대충 가채점으로는 합격이긴한데 9월 2일 합격자 발표일까지 긴장할 예정...

 

 

 

 

문제 난이도는 음... 솔직히 어려운 문제도 있었음

한 5문제 정도..

SQL 문제가 2문제 정도 나왔는데 한 문제는 진짜 이게 뭐야 했는데 대충 있는 것들로 추측하면서 풀었었고..

 

 

 

 

개념 문제들이 존나 어려웠음

어쨋든 그랬음

 

 

 

 

제발 합격해서 두 번 다시 안보게 해주세요

 

 

 

 

 

728x90
728x90

 

 

 

 

 

공부를 하다가 다 이해가 되는데 딱 저 ~ 연산자만 이해가 되지 않았다.

어떤 경우에는 그냥 1은 0으로, 0은 1로 바꾸라는데,

문제를 풀다가 이게 이렇게 되면 숫자가 엄청 커지는데...? 하고 의문점이 들어서

열심히 검색해서 이해하게 되었다...

 

 

 

 

 

 

 

 

 

Java일 경우 문제

 

public class Main{
     public static void main(String []args){
        byte a = 19;
        System.out.printf("%d\n", ~a);
     }
}

 

 

 

 

 

 

 

 

byte 자료형인 a의 값인 15를 2진법으로 변환하면 00001111이 된다.

이걸 보통 방식으로 1은 0으로, 0은 1로 변환하면 11110000이 되는데,

 

 

 

 

 

 

이걸 값으로 그냥 환산하면 240이 되는데 결과는 -16이란다...

그래서 읭..? 왜 이러는거지? 했는데 자바는 무조건 부호를 갖는 signed 타입이고,

signed 타입의 경우에는 최상위 비트로 부호를 구분한다고 한다.

그래서 11110000으로는 부호를 구분하고, 00001111에서 1을 더해서 나온 값으로 숫자를 판별한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

즉, 이렇게 해서 ~a 는 -16이 된다.

 

 

 

 

 

 

 

 

 

만약 unsigned 타입이라면 그냥 1은 0, 0은 1로 바뀐 240이 맞다.

 

 

 

 

 

728x90
728x90

출처 : https://blog.naver.com/nullify00/222695712699

 

 

전체적으로 적용되는 기준 : 대,소문자 구분은 하지 않는다.

유형 1. 영문 풀네임(full-name) 작성

- 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임을 무엇이라고 하는지 영문 풀네임으로 작성하시오

- operating system

 

 

 

 

 

 


 

 

 

 

 

유형 2. 영문 약어(약자) 작성

-컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임을 무엇이라고 하는지 영문 약어으로 작성하시오

-OS

 

 

 

 

 

 


 

 

 

 

 

유형 3. 작성 조건이 제시되지 않은 경우

-컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임을 무엇이라고 하는지 작성하시오

-OS / 운영체제 / operating system 중 정확하게 기억나는 것 한가지만.

 

 

 

 

 

 

 

 

 

 

 

 

유형 4. 답안이 여러개인 경우(수량을 제시 하는 경우와 제시하지 않는 경우)

-운영체제의 목적을 작성하시오.

- 처리능력 / 반환시간 / 사용가능도 / 신뢰도 (작성조건이 제시되지 않았기에 ncs에서 설명한 목적을 모두 작성)

-운영체제의 목적을 2가지 작성하시오.

- 처리능력 / 반환시간 (조건제시가 되었을 경우 정확한 것 중 조건에 맞게 작성 조건을 초과해도 작성한 것중 하나라도 오답시에 오답으로 인정)

 

 

 

 

 

 


 

 

 

 

 

유형 5. 서술식으로 작성

- unix에서 사용하는 chmod의 명령어에 대해 서술하시오

- 파일의 보호모드를 설정하여 파일의 사용 허가를 지정

-데이터베이스의 스키마(schema)에 대해 서술하시오

- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것

 

// 이처럼 서술식으로 작성할 경우 제시된 용어를 특정할 수 있는 키워드가 포함되어야 한다

 

 

 

 

 

 


 

 

 

 

 

유형 6. 프로그램 실행결과 작성

- C언어로 구현된 프로그램을 분석하여 실행결과 값을 작성하시오

#inclue<stdio.h> main(){ int a=5, b=20; printf("%d\n",a); printf("%d\n",b); }

5

20

//(이런식으로 C언어에서 개행표시가 되어있는 작성에서는 줄바꿈을 표시해서 작성)

 

 

 

 

 

 


 

 

 

 

 

유형 7. 변수명 대/소문자 구분

- 다음 Java 프로그램에서 괄호안에 알맞은 답을 작성하여 완성하시오

public class Test{ public static void main(String[] args){ int Num =2; String Name = "Black"; System.out.printf("%d,%s",Num,( )); } }

Name

//변수명을 대.소문자 구분하여 작성 - 프로그램구현부분은 블랭크 처리되어 나오는 문제가 발생

 

 

 

 

 

 


 

 

 

 

 

 

유형 8. SQL문 작성하기

<학생>테이블에서 이름이 '이'로 시작하는 학생들의 학번을 검색하는 SQL문을 쓰시오

- SELECT 학번 FROM 학생 WHERE 이름 LIKE '이%';

//SQL문을 작성할 때는 대.소문자를 구분하지 않는다.

//단, 스펠링 한글자라도 틀리면 오답처리된다.

 

 

 

 

 

 

728x90
728x90

 

 

 

3. 네트워크 관련 장비

  • 리피터(Repeater) : 전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할을 수행
  • 라우터(Router) : 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것으로, 서로 다른 LAN이나 LAN과 WAN의 연결도 수행
  • 게이트웨이(Gateway) : 전 계층(1~7계층)의 프로토콜 구조가 다른 네트워크의 연결을 수행
  • 브리지(Bridge) : LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹(세그먼트)를 연결하는 기능을 수행

 

 

 

 

10. 유스케이스 다이어그램의 구성 요소

  • 시스템(System), 시스템 범위(System Scope), 액터(Actor), 유스케이스(Use Case), 관계(Relationship) 등

 

 

 

 

18. 분산 저장소 방식

  • 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리하는 방식
  • 원격 저장소의 자료를 자신의 로컬 저장소로 복사하여 작업한 후 변경된 내용을 로컬 저장소에서 우전 반영(버전 관리)한 다음 이를 원격 저장소에 반영
  • 로컬 저장소에서 버전 관리가 가능
  • 원격 저장소에 문제가 생겨도 로컬 저장소의 자료를 이용하여 작업할 수 있음
  • 종류 : Git, GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper, Plastic SCM 등

 

 

 

 

32. 객체지향 프로그래밍 언어

  • 상속을 통한 재사용과 시스템의 확장이 용이
  • 코드의 재활용성이 높음
  • 자연적인 모델링에 의해 분석과 설계가 쉽고 효율적으로 할 수 있음
  • 사용자와 개발자 사이의 이해를 쉽게 해줌
  • 대형 프로그램의 작성이 용이
  • 소프트웨어 개발 및 유지보수가 용이
  • 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계 방법이 없음
  • 구현 시 처리 시간이 지연됨
  • 종류 :  JAVA, C++, Smalltalk 등

 

 

 

 

38. 개발 언어의 선정 기준

  • 적정성 : 개발하려는 소프트웨어의 목적에 적합해야 함
  • 효율성 : 코드의 작성 및 구현이 효율적이어야 함
  • 이식성 : 다양한 시스템 및 환경에 적용이 가능해야 함
  • 친밀성 : 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야 함
  • 범용성 : 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야 함

 

 

 

 

 

728x90
728x90

 

 

 

1. UNIX 시스템의 특징

  • 시분할 시스템을 위해 설계된 대화식 운영체제
  • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원
  • 트리 구조의 파일 시스템을 갖음
  • 장치와 프로세스 간의 호환성이 높음

 

 

 

 

2. TCP/IP의 응용 계층

  • WWW, 전자우편(E-Mail), FTP, Telnet, SMTP, SNMP, DNS, HTTP 등
  • DSU(Digital Service Unit) : 컴퓨터나 단말장치로부터 전송되는 디지털 데이터를 전송 회선에 적합한 디지털 신호로 변환하는 과정과 그 반대의 과정을 수행하는 장비

 

 

 

 

3. OSI-7계층

  • 물리 계층 : 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
  • 데이터 링크 계층 : 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당
  • 네트워크 계층 : 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 함
  • 전송 계층 : 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End) 간에 투명한 데이터 전송을 가능하게 함
  • 세션 계층 : 송 · 수신 측 간의 관련성을 유지하고 대화 제어를 담당
  • 표현 계층 : 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 함
  • 응용 계층 : 사용자(응용 프로그램)가 OSI  환경에 접근할 수 있도록 서비스를 제공함

 

 

 

 

9. UML의 관계

  • 연관(Association) 관계 : 2개 이상의 사물이 서로 관련되어 있음을 표현(→)
  • 집합(Aggregation) 관계 : 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현(―◇)
  • 포함(Composition) 관계 : 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현(―◆)
  • 일반화(Generalization) 관계 : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현(―▷)
  • 의존(Dependency) 관계 : 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현(·····>)
  • 실체화(Realization) 관계 : 사물이 할 수 있거나 해야 하는 기능(오퍼레이션, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현(·····▷)

 

 

 

 

10. UML의 다이어그램

  • 클래스(Class) 다이어그램 : 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
  • 배치(Deployment) 다이어그램 : 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
  • 유스케이스(Use Case) 다이어그램 : 사용자의 요구를 분석하는 것으로, 기능 모델링 작업에 사용
  • 활동(Activity) 다이어그램 : 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
  • 커뮤니케이션(Communication) 다이어그램 : 시퀸스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메세지를 표현하는데, 메시지뿐만 아니라 객채들 간의 연관까지 표현

 

 

 

 

16. 개발 단계에 따른 애플리케이션 테스트

  • 단위(Unit) 테스트 : 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것
  • 통합(Integration) 테스트 : 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트
  • 시스템(System) 테스트 : 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는가를 점검하는 테스트
  • 인수(Acceptance) 테스트 : 개발한 소프트웨어가 사용자의 요구사항을 충족하는지에 중점을 두고 테스트하는 방법

 

 

 

 

19. DLT(Distributed Ledger Technology, 분산 원장 기술)

  • 중앙 관리자나 중앙 데이터 저장소가 존재하지 않고 P2P 망 내의 참여자들에게 모든 거래 목록이 분산 저장되어 거래가 발생할 때마다 지속적으로 갱신되는 디지털 원장

 

 

 

 

20. 네트워크 슬라이싱

  • 네트워크에서 하나의 물리적인 코어 네트워크 인프라를 독립된 다수의 가상 네트워크로 분리하여 각각의 네트워크를 통해 다양한 고객 맞춤형 서비스를 제공하는 것을 목적으로 하는 네트워크 기술로 5G 네트워크 구현의 핵심 기술에 해당

 

 

 

 

21. 결합도(Coupling)

  • 두 모듈 간의 상호작용, 또는 의존도 정도를 나타냄
  • 내용(Content) 결합도 : 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있다고 함
  • 공통(Common) 결합도 : 두 모듈이 동일한 전역 데이터를 접근한다면 공통결합 되어 있다고 함
  • 외부(External) 결합도 : 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도
  • 제어(Control) 결합도 : 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 하위 모듈이 상위 모듈에게 처리 명령을 내리는 권리 전도현상이 발생하게 됨
  • 스탬프(Stamp) 결합도 : 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
  • 자료(Data) 결합도 : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도

 

 

 

 

22, 33. 응집도(Cohesion)

  • 기능적(Functional) 응집도 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
  • 순차적(Sequential) 응집도 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
  • 교환적(Communication) 응집도 : 동일한 입력과 출력을 상요하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도
  • 절차적(Procedural) 응집도 : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
  • 시간적(Temporal) 응집도 : 특정 시간에 처리되는 몇 개의 기능응 모아 하나의 모듈로 작성할 경우의 응집도
  • 논리적(Logical) 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
  • 우연적(Coincidental) 응집도 : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

 

 

 

 

27. C언어의 표준 입 · 출력 함수

  • scanf( ), getchar( ), gets( ), printf( ), putchar( ), puts( ) 등

 

 

 

 

28. 절차적 프로그래밍 언어의 종류

  • C
  • ALGOL
  • COBOL
  • FORTRAN 등

 

 

 

 

30. 스크립트 언어의 종류

  • 자바스크립트(JAVA Script)
  • VB 스크립트(Visual Basic Script)
  • ASP(Activie Server Page)
  • JSP(Java Server Page)
  • PHP
  • 파이썬
  • 쉘 스크립트
  • Basic 등

 

 

 

 

38. 헝가리안 표기법(Hungarian Notation)

  • 자료형을 암시하는 문자를 포함하여 작성하는 방법
  • 예를 들어 정수형 변수라는 것을 알 수 있도록 변수명에 int를 의미하는 i를 덧붙여 iValue라고 하는 것

 

 

 

 

40. C언어의 표준 라이브러리

  • stdio.h : 데이터의 입 · 출력에 사용되는 기능들을 제공
  • math.h : 수학 함수들을 제공
  • string.h : 문자열 처리에 사용되는 기능들을 제공
  • stdlib.h : 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능들을 제공
  • time.h : 시간 처리에 사용되는 기능들을 제공

 

 

 

 

41. 데이터베이스의 물리적 설계(데이터 구조화)

  • 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
  • 저장 레코드의 양식 설계
  • 레코드 집중(Record Clustering)의 분석 및 설계
  • 접근 경로 설계 등

 

 

 

 

42. Stack(스택)의 응용 분야

  • 함수 호출의 순서 제어
  • 인터럽트의 처리
  • 수식 계산 및 수식 표기법
  • 컴파일러를 이용한 언어 번역
  • 부 프로그램 호출 시 부귀 주소 저장
  • 서브루틴 호출 및 복귀 주소 저장

 

 

 

 

43. DBMS 필수 기능

  • 정의(Definition) 기능 : 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능
  • 조작(Manipulation) 기능 : 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능
  • 제어(Control) 기능 : 데이터의 무결성이 유지되도록 제어해야 하고, 보안을 유지하고 권한을 검사할 수 있어야 하며, 처리 결과가 항상 정확성을 유지하도록 병행 제어를 할 수 있어야 함

 

 

 

 

44. 데이터베이스의 정의

  • 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임
  • 통합된 데이터(Integrated Data)
  • 저장된 데이터(Stored Data)
  • 운영 데이터(Operational Data)
  • 공용 데이터(Shared Data)

 

 

 

 

54. 삽입 정렬

  • 이미 순서화된 파일에 새로운 하나의 레코드를 순서에 맞게 삽입시켜 정렬
  • 두 번째 키와 첫 번째 키를 비교해 순서대로 나열(1회전)하고, 이어서 세 번째 키를 첫 번째, 두 번째 키와 비교해 순서대로 나열(2회전)하고, 계속해서 n번째 키를 앞의 n-1개의 키와 비교하여 알맞은 순서에 삽입하여 정렬하는 방식

 

 

 

 

56. 인덱스

  • 인덱스를 많이 지정하면 오버헤드가 발생할 수 있으므로 적절히 지정
  • 인덱스와 테이블 데이터의 저장 공간은 적절히 분리되도록 설계해야 함
  • 랜덤 액세스가 빈번히 발생하는 테이블을 인텐스 테이블로 선정
  • 프로젝트 진행중에는 데이터나 프로세스 내용 등에 변경이 많기 때문에 처음부터 모든 인덱스를 한 꺼번에 정의하는 것은 불가능함

 

 

 

 

57. 이행적 함수 종속 관계

  • A → B 이고 B → C일 때, A → C를 만족하는 관계

 

 

 

 

 

728x90
728x90

 

 

 

3. OSI 참조 모델

  • 물리 계층 : 전송 매체로의 전기적 신호 전송
  • 네트워크 계층 : 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 함
  • 세션 계층 : 회화(대화) 단위의 제어를 수행함
  • 프레젠테이션 계층 : 코드 변환, 정보 형식(포맷) 변환
  • 응용 계층 : 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스를 제공

 

 

 

 

4. 통신 프로토콜의 기능과 기법

  • 에러 제어 - ARQ
  • 회선 제어 - 폴링 / 셀렉션
  • 흐름 제어 - Sliding Window
  • 동기 방식 - 비동기식/동기식 전송

 

 

 

 

8. 자료 흐름도(DFD)의 구성 요소

  • 처리(Process)
  • 자료 흐름(Data Flow)
  • 자료 저장소(Data Store)
  • 단말(Terminator) → 발생지와 종착지를 나타냄

 

 

 

 

11. 소프트웨어 아키텍처 설계 과정

  • 요구사항을 분석하여 전체 시스템의 설계 목표를 설정
  • 시스템과 서브시스템의 타입을 결정
  • 서브시스템의 기능과 서브시스템 간의 인터페이스를 정의
  • 표준 아키텍처를 설계

 

 

 

 

12. 마스터-슬레이브 패턴

  • 장애 허용 시스템과 병렬 컴퓨팅  시스템에서 주로 활용되는 패턴
  • 메인 컴포넌트에서 서브 컴포넌트로 작업을 분할하여 배정한 후, 처리된 결과물을 다시 돌려받는 방식의 패턴

 

 

 

 

19. 복잡 이벤트 처리(CEP)

  • 실시간으로 발생하는 많은 사건들 중 의미가 있는 것만을 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법
  • 대용량 데이터 스트림에 대한 요구에 실시간으로 대응하기 위해 개발되었음

 

 

 

 

23. 결합도 (낮음 → 높음)

  • 자료 결합도 → 스탬프 결합도 → 제어 결합도 → 외부 결합도 → 공통 결합도 → 내용 결합도

 

 

 

 

24. 스탬프 결합도(Stamp Coupling)

  • 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
  • 결합도의 정도가 자료 결합도보다 강하고, 제어 결합도보다 약함
  • 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도

 

 

 

 

28. 프레임워크(Framework)

  • 추상화가 아닌 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로서 소프트웨어의 품질을 향상시킴
  • 재사용 가능한 모듈들을 제공함으로써 생산성을 향상시킴
  • 인터페이스 확장을 통해 다양한 형태와 기능을 가진 애플리케이션 개발이 가능
  • 객체들의 제어를 프레임워크에 넘길 수 있음

 

 

 

 

29. 

for (int i = 0; i < 5; i++);
printf("%d", i);
  • for문에서는 문제 없음
  • printf문에서 i는 for문  안에 선언된 지역 변수이기 때문에 for문이 종료되면 없어짐 → i는 존재하지 않는 변수이므로 오류 발생

 

 

 

 

30. charAt(n)

  • n에 시작하는 한 글자를 char형으로 변환하는 것 => charAt(2) 는 c를 의미함

 

 

 

 

34. Fan-In / Fan-Out

  • 팬인 : 어떤 모듈을 제어(호출)하는 모듈의 수
  • 팬아웃 : 어떤 모듈에 의해 제어(호출)되는 모듈의 수
  • F를 호출하는 모듈의 수와 F에 의해 호출되는 모듈의 수를 구하는 것

 

 

 

 

37. 조건 연산자

변수 = (조건) ? 참 : 거짓

 

 

 

 

38. 연산자 우선 순위

  • 순서 → 대입 → 조건 → 이항(논리 → 비트 → 관계 → 시프트 → 산술) → 단항
  • [+=] → [&] → [==] → [<<] → [+] → [*] → [++]

 

 

 

 

41. 데이터 모델

  • 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
  • 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약 조건 등을 기술하기 위한 개념적 도구들의 모임
  • 현실 세계를 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계 과정에서 데이터의 구조(Schema)를 논리적으로 표현하기 위해 사용되는 지능적 도구

 

 

 

 

46. E-R 도형

  • 개체 집합 : 사각형
  • 관계 타입 : 마름모(다이아몬드)
  • 속성 : 타원
  • 기본 키 속성 : 밑줄 타원
  • 개체 타입과 속성을 연결 : 선, 링크

 

 

 

 

49. 단말 노드(Terminal Node)

  • 자식이 하나도 없는 노드

 

 

 

 

 

728x90
728x90

 

 

 

7. XP(eXtreme Programming)의 주요 실천 방법

  • Pair Programming : 다른 사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로 나눠 갖는 환경을 조성
  • Collective Ownership : 개발 코드에 대한 권한과 책임을 공동으로 소유
  • Test-Driven Development : 개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하므로 자신이 무엇을 해야할지 정확히 파악
  • Whole Team : 개발에 참여하는 모든 구성원(고객 포함)들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야 함
  • Continuous Integration : 모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합됨
  • Design Improvement 또는 Refactoring : 프로그램 기능의 변경 없이, 단순화, 유연성 강화 등을 통해 시스템을 재구성
  • Small Releases : 릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응할 수 있음

 

 

 

 

8. 비정형 명세 기법

  • 상태/기능/객체 중심
  • 일반 명사, 동사 등의 자연어를 기반으로 서술 또는 다이어그램으로 작성
  • 자연어의 사용으로 인해 요구사항에 대한 결과가 작성자에 따라 다를 수 있어 일관성이 떨어지고, 해석이 달라질 수 있음
  • 내용의 이해가 쉬워 의사소통이 용이함
  • FSM, Decision Table, ER모델링, State Chart(SATD) 등

 

 

 

 

9. HIPO(Hierarchy Input Process Output)

  • 시스템의 분석 및 설계나 문서화할 때 사용되는 기법
  • 가시적 도표(Visual Table of Contents) : 시스템의 전체적인 기능과 흐름을 보여주는 계층(Tree) 구조도
  • 총체적 도표(Overview Diagram) : 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표
  • 세부적 도표(Detail Diagram) : 총체적 도표에 표시된 기능을 구성하는 기보 ㄴ요소들을 상세히 기술하는 도표

 

 

 

 

10. UML 다이어그램 - 사물(Things)

  • 모델을 구성하는 가장 중요한 기본 요소
  • 다이어그램 안에서 관계가 형성될 수 있는 대상
  • 구조 사물(Structural Things) : 시스템의 개념적, 물리적 요소를 표현하며 대표적인 것으로 클래스, 유스케이스, 컴포넌트, 노드 등이 있음
  • 행동 사물(Behavioral Things) : 시간과 공간에 따른 요소들의 행위를 표현하며 대표적인 것으로 상호작용, 상태 머신 등이 있음
  • 그룹 사물(Grouping Things) : 요소들을 그룹으로 묶어서 표현하며 대표적인 것으로 패키지가 있음
  • 주해 사물(Annotation Things) : 부가적인 설명이나 제약조건 등을 표현하며 대표적인 것으로 노트가 있음

 

 

 

 

11. 소프트웨어 아키텍쳐 설계의 기본 원리 - 추상화(Abstraction)

  • 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시켜 나가는 것
  • 인간이 복잡한 문제를 다룰 때 가장 기본적으로 사용하는 방법
  • 완전한 시스템을 구축하기 전에 그 시스템과 가장 유사한 모델을 만들어서 여러 가지 요인들을 테스트할 수 있음
  • 최소의 비용으로 실제 상황에 대처할 수 있고, 시스템의 구조 및 구성을 대략적으로 파악할 수 있게 해줌
  • 과정 추상화 : 자세한 수행 과정을 정의하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 방법
  • 데이터 추상화 : 데이터의 세부적인 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법
  • 제어 추상화 : 이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표할 수 있는 표현으로 대체하는 방법

 

 

 

 

13. 객체지향(Object-Oriented) - 연관성(Relationship)

  • 두 개 이상의 객체(클래스)들이 상호 참조하는 관계를 말함
종류 의미 특징
is member of  연관화(Association) 2개 이상의 객체가 상호 관련되어 있음을 의미함
is instance of 분류화(Classfication) 동일한 형의 특성을 갖는 객체들을 모아 구성하는 것
is part of 집단화(Aggregation) 관련 있는 객체들을 묶어 하나의 상위 객체를 구성하는 것
is a 일반화(Generalization) 공통적인 성질들로 추성화한 상위 객체를 구성하는 것
특수화/상세화(Specialization) 상위 객체를 구체화하여 하위 객체를 구성하는 것

 

 

 

 

14. Booch 방법

  • 객체지향 분석의 방법론 중 하나
  • 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법
  • 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의함

 

 

 

 

15. GoF의 패턴 분류

  • 생성 패턴(Creational Pattern) : 객체의 생성과 참조 과정을 캡술화 하여 객체가 생성되거나 변경되어도 프로그램의 구조에 영향을 크게 받지 않도록 하여 프로그램에 유연성을 더해줌
  • 구조 패턴(Structual Pattern) : 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴
  • 행위 패턴(Behavioral Pattern) : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

 

 

 

 

26. 포인터 형(Pointer Type)

  • 포인터 : 변수의 주소
  • 포인터 변수 : 변수의 주소를 저장할 때 사용하는 변수
  • 포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에 간접 연산자 *를 붙임
  • 포인터 변수에 주소를 저장하기 위해 변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &를 붙임
  • 실행문에서 포인터 변수에 간접 연산자 *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함
  • 포인터 변수는 필요에 의해 동적으로 할당되는 메모리 영역인 힙 영역에 접근하는 동적 변수임

 

 

 

 

28. 프레임워크 특성

  • 모듈화(Modularity) : 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상시키며, 개발표준에 의한 모듈화로 인해 유지 보수가 용이해짐
  • 재사용성(Reusability) : 재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상, 품질 보증이 가능함
  • 확장성(Extensibility) : 다형성(Polymorphism)을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능함
  • 제어의 역흐름(Inversion of Control) : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴

 

 

 

 

30. Java의 대표적인 표준 라이브러리

  • jang.lang : 자바에 기본적으로 필요한 인터페이스, 자료형, 예외 처리 등에 관련된 기능을 제공하며 import문 없이도 사용할 수 있음
  • java.util : 날짜 처리, 난수 발생, 복잡한 문자열 처리 등에 관련된 기능을 제공
  • java.io : 파일 입 · 출력과 관련된 기능 및 프로토콜을 제공
  • java.net : 네트워크와 관련된 기능을 제공
  • java.awt : 사용자 인터페이스(UI)와 관련된 기능을 제공

 

 

 

 

33. 선언형 프로그래밍 언어

  • HTML, XML, PROLOG 등

 

 

 

 

53. E-R 모델

  • 개념적 데이터 모델의 가장 대표적인 것
  • 1976년 피터 첸(Peter Chen)에 의해 제안되고 기본적인 구성 요소가 정립됨
  • 개체와 개체 간의 관계를 기본 요소로 이용하여 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 펴현하기 위한 방법으로 많이 사용되고 있음
  • 개체 타입과 이들 간의 관계 타입을 이용하여 현실 세계를 개념적으로 표현함
  • 데이터를 개체, 관계, 속성으로 묘사
  • 특정 DBMS를 고려한 것은 아님
  • 개념 세계에서는 현실 세계에 대한 인식을 추상적 개념으로 표현하는데, 이 과정을 정보 모델링이라고 함

 

 

 

 

 

728x90
728x90

 

 

 

1. 운영체제의 목적

  • 처리 능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환 시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  • 사용 가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
  • 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도

 

 

 

 

2. Shell(쉘)

  • 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
  • 시스템과 사용자 간의 인터페이스를 담당
  • DOS의 COMMAND.COM과 같은 기능을 수행

 

 

 

 

3. OSI 참조 모델의 계층과 인터넷 프로토콜의 연결

  • 응용, 표현, 세션 계층 : TELNET, FTP, SMTP, SNMP, DNS, HTTP 등
  • 전송 계층 : TCP, UDP 등
  • 네트워크 계층 : IP, ICMP, IGMP, ARP, RARP 등
  • 데이터 링크, 물리 계층 : Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ 등

 

 

 

 

8. 요구사항 명세(Requirement Specification)

  • 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 것
  • 요구사항을 문서화할 때는 기능 요구사항은 빠짐없이 완전하고 명확하게 기술해야 하며, 비기능 요구사항은 필요한 것만 명확하게 기술해야 함
  • 요구사항은 사용자가 이해하기 쉬우며, 개발자가 효과적으로 설계할 수 있도록 작성되어야 함
  • 설계과정에서 잘못된 부분이 확인될 경우 그 내용을 요구사항 정의서에서 추적할 수 있어야 함
  • 구체적인 명세를 위해 소단위 명세서(Mini-Spec)가 사용될 수 있음

 

 

 

 

25. WAS(Web Application Server)

  • 사용자에게 동적 서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나, 웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버
  • 종류 : Apache Tomcat, IBM WebSphere, Oracle WebLogic, JEUS 등

 

 

 

 

28.

a 계산식 sum
1 0 += 2 * 3 >= 0 ? 2 : 1; 2
2 2 += 3 * 3 >= 2 ? 3 : 1; 5
3 5 += 4 * 3 >= 5 ? 4 : 1; 9
4 9 += 5 * 3 >= 9 ? 5 : 1; 14
5 14 += 6 * 3 >= 14 ? 6 : 1; 20
6 20 += 7 * 3 >= 20 ? 7 : 1; 27
7 27 += 8 * 3 >= 27 ? 8 : 1; 28
8 28 += 9 * 3 >= 28 ? 9 : 1; 29
9 29 += 10 * 3 >= 29 ? 10 : 1; 39

 

 

 

 

30. C언어의 기본적인 데이터 타입

  • 문자 : char
  • 부호없는 문자형 : unsigned char
  • 정수 : short, int, long, long long
  • 부호없는 정수형 : unsigned short, unsigned int, unsigned long
  • 실수 : float, double, long double
  • boolean을 기본적인 데이터 타입으로 제공하는 것은 JAVA이며, C언어에서는 라이브러리로 불러와서 사용

 

 

 

 

34.

x 계산식 y
7 6 % 3 == 0 ?  0
6 5 % 3 == 0 ?  1
5 4 % 3 == 0 ?  2
4 3 % 3 == 0 ?  2
3 2 % 3 == 0 ?  3
2 1 % 3 == 0 ?  4

 

 

 

 

42. 후보키가 되기 위한 두 가지 성질

  • 유일성(Unique) : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함
  • 최소성(Minimality) : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성되어야 함

 

 

 

 

45. 뷰(VIEW)

  • 논리적 데이터 독립성을 제공
  • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해 줌
  • 사용자의 데이터 관리를 간단하게 해줌
  • 접근 제어를 통한 자동 보안이 제공
  • 독립적인 인덱스를 가질 수 없음
  • 뷰의 정의를 변경할 수 없음
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

 

 

 

 

59. 버블 정렬

  • 주어진 파일에서 인접한 두 개의 레코드 키 값을 비교하여 그 크기에 따라 레코드 위치를 서로 교환하는 정렬 방식
원본 37 14 17 40 35
1차 14 37 17 40 35
2차 14 17 37 40 35
3차 14 17 37 40 35
4차 14 17 37 35 40

 

 

 

 

 

728x90

+ Recent posts