소프트웨어 환경
요구사항 관리 도구 | 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
[ LRU
: 최근에 가장 오랫동안 사용하지 않은 페이지를 교페하는 기법]
다음의 참조 페이지를 세 개의 페이지 프레임을 가진 기억장치에서 LRU 알고리즘을 사용하여 교체했을 때 페이지 부재의 수는? (단, 초기 페이지 프레임은 모두 비어 있는 상태이다.)
부재 수 : 5
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의 구성
- 유니캐스트 : 단일 송신자 - 단일 수신자
- 멀티캐스트 : 단일 송신자 - 다중 수신자
- 애니캐스트 : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신
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을 만드는 장치 |
물리 계층 | 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 틍성에 대한 규칙 정의 |
리피터 : 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송 허브 : 가가운 거리의 컴퓨터들을 연결하는 장치 |
'IT Programmer > Certification (정보처리기사)' 카테고리의 다른 글
[ 정보처리기사_실기 ] 데이터 모델 ( 개념, 종류, 구성요소, 특징 ) (0) | 2021.10.05 |
---|---|
[정보처리기사 필기 대비] 5과목 정보시스템 구축 관리 (0) | 2020.08.21 |
[정보처리기사 필기 대비] 3과목 데이터베이스 구축 (0) | 2020.08.19 |
[정보처리기사 필기 대비] 2과목 소프트웨어 개발 (0) | 2020.08.19 |
[정보처리기사 필기 대비] 1과목 소프트웨어 설계 (0) | 2020.08.17 |