본문 바로가기

IT Programmer/Certification (정보처리기사)

[정보처리기사 필기 대비] 4과목 프로그래밍 언어 활용

 소프트웨어 환경

요구사항 관리 도구 JIRA / IBM DOORS / inteGREAT / Reqify / Trello
설계/모델링 도구 DB Designer / PlantUML / ArgoUML
구현 도구 Eclipse / IntelliJ IDEA / Visual Studio / Netbeans / Node.js
빌드 도구 Ant / Gradle / Maven / Jenkins
테스트 도구 CppUnit / JUnit / HttpUnit / SpringTest
형상관리 도구 GIT / CVS / Subversion / Mercurial

 


프레임워크의 특성

 

모듈화

: 프레임워크의 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로서 품질 향상.

재사용성

: 재사용 가능한 모듈들을 제공함으로써 개발자의 생산상을 향상

확장성

: 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발 가능

제어의 역흐름

: 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로서 생산성을 향상

 


배치 프로그램

정기배치

일, 주, 월과 같이 정해진 기간에 정기적으로 수행된다.

이벤트성 배치

특정 조건을 설정해두고 조건이 충족될 때만 수행된다.

On-demand 배치

사용자 요청 시 수행된다.


변수

: 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간

- 첫 글자는 영문자나 _로 시작해야 하며, 숫자는 올 수 없다.

- 예약어를 변수명으로 사용할 수 없다.

- 변수 선언 시 문장 끝에 반도시 세미콜론(;)을 붙여야 한다.

 

연산자

관계 연산자 : == !==

비트 연산자 : & (모든 비트가 1일 때만 1) ^(모든피트가 같으면 0, 하나라도 다르면 1)

논리 연산자 : ! &&


우선순위 ( 높음 → 낮음 )

산술 연산자 관계 연산자 비트 연산자 논리 연산자 조건 연산자 대입 연산자 순서 연산자

 


운영체제

컴퓨터 시스템의 자원들을 효율적으로 관리

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

제어 방법)

CLI : 키보드로 명령어를 직접 입력하여 작업을 수행하는 사용자 인터페이스

GUI : 키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는 그래픽 사용자 인터페이스를 의미

 


UNIX

- 대부분 C언어로 작성 되어 있어, 이식성이 높으며 장치/프로세스 간의 호환성이 높다.

- 트리 구조의 파일 시스템을 갖는다.

커넬 ( Kernel ) - 컴퓨터 부팅 시, 주기억장치에 적재된 후 상주하면서 실행.
- 프로그램과 하드웨어 간의 인터페이스 역할을 담당.
쉘 ( Shell ) - 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당.
- 명령어가 포함된 파일 형태로 존재하며 보조 기억장치에서 교체 처리가 가능
- 파이프라인* 기능을 제원하고, 입력의 방향을 변경할 수 있다.

파이프라인 : 파이프라인은 둘 이상의 명령을 함꼐 묶어 처리한 경과를 다른 명령의 입력으로 전환하는 기능.


기억장치 관리의 개요

< 접근속도 / 시간 >

레지스터 → 캐시 기억장치 → 주 기억장치  → 보조 기억 장치

 

[ 반입(Fetch) 전략 ] : 보조 기억장치에서 보관중인 자료를 언제 주기억 장치로 적재할 것인가.

- 요구 반입 / 예상 반입

[ 배치(Placement)  전략 ] : 새로 반입되는 자료를 주기억장치의 어디에 위치 시킬 것인가?

- 최초 적합 / 최적 적합 / 최악 적합 

[ 교체(Replacement) 전략 ] : 주기억장치의 모든 영역이 이미 사용중인 상태에서, 사용 되고 있는 영역중에서 어느 영역을 교체하여 사용할 것인가?


페이지 교체 알고리즘

: 페이지 부재* 가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데, 이 때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 기법.

 

[ FIFO

 : 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법 ]

 

ex) 다음의 참조 페이지를 세 개의 페이지 프레임을 가진 기억장치에서 FIFO 알고리즘을 사용하여 교체했을 때  페이지 부재의 수는? ( 단, 초기 페이지 프레임은 모두 비어있는 상태이다.)

부재수 : 6

FIFO 페이지 교체 알고리즘

[ LRU

 :  최근에 가장 오랫동안 사용하지 않은 페이지를 교페하는 기법]

다음의 참조 페이지를 세 개의 페이지 프레임을 가진 기억장치에서 LRU 알고리즘을 사용하여 교체했을 때 페이지 부재의 수는? (단, 초기 페이지 프레임은 모두 비어 있는 상태이다.)

부재 수 : 5

LRU 페이지 교체 알고리즘


Locality ( 지역성 / 구역성 )

: 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론.

- 스레싱을 방지하기 위한 워킹 셋* 이론의 기반

 

[ 시간 구역성 / 공간 구역성 ]

시간 구역성 공간 구역성
- 하나의 페이지를 일정시간 동안 집중적으로 액세스
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음을 의미
- 일정 위치의 페이지를 집중적으로 액세스하는 현상
- 어느 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음을 의미
루프(loop), 스택(stack), 부 프로그램(Sub Routine) 배열 순회, 순차적 코드의 실행

워킹 셋 : 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합

 


프로세스 ( process )

: 프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램

즉, 실행중인 프로그램을 의미하며 작업(Job), 태스크(Task) 라고 한다.

 

PCB (프로세스 제어 블록)

: 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳.

- 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다.

 

스레드 ( Thread )

: 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위.

- 스레드는 독립적인 스케쥴링의 최소 단위


스케줄링

: 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 의미.

 

목적)

- 공정성 / 처리량 증가 / CPU 이용률 증가


인터넷

: TCP/IP 프로토콜을 기반으로 함

 

IP 주소

A Class 국가나 대형 통신망에 사용
B Class 중대형 통신망에 사용
C Class 소규모 통신망에 사용
D Class 멀티캐스트용으로 사용
E Class 실험적 주소이며 공용되지 않음

 

IPv6의 구성

  1. 유니캐스트 : 단일 송신자 - 단일 수신자
  2. 멀티캐스트 : 단일 송신자 - 다중 수신자
  3. 애니캐스트 : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신

OSI 참조 모델

 

OSI TCP/IP 기능  
응용 계층
응용 계층

사용자가 OSI 환경에 접근할 수 있도록 서비스 제공 FTP
SMTP
TELNET
SNMP
DNS
HTTP
표현 계층 응용 계층으로부터 받은 데이터를 세션 계층에
보내기 전에 통신에 적당한 형태로 변환
세션 계층 송/수신 측 간의 관련성을 유지하고 대화 제어를
담당
전송 계층 전송 계층 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템간에 투명한 데이터 전송. 게이트웨이 : 전 계층의 프로토콜 구조가 다른 네트워크의 연결을 수행.

TCP : 신뢰성 있는 연결형 서비스를 제공
UDP / RTCP
네트워크 계층 인터넷
계층
개방 시스템들 간의 네트워크 연결을 관리하는
기능과 데이터의 교환 및 중계 기능
라우터 : 브리지와 같이 LAN-LAN 연결기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가

IP : 데이터그램을 기반으로 하는 비연결형 서비스
( 헤더의 길이 20byte ~ 60byte )
ICMP / IGMP / ARP / RARP 
데이터 링크 계층 네트워크
액세스
계층

두 개의 인접한 개방 시스템들 간에 신뢰성 있고
효율적인 정보 전송
- 송신/수신 간의 속도 차이를 해결: 흐름 제어 기능
랜카드 :
브리지 : LAN과 LAN을 연결/LAN 안에서의 컴퓨터 그룹을 연결하는 기능을 수행
스위치 : LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
물리 계층 전송에 필요한 두 장치 간의 실제 접속과 절단 등
기계적, 전기적, 기능적, 절차적 틍성에 대한
규칙 정의
리피터 : 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송
허브 : 가가운 거리의 컴퓨터들을 연결하는 장치