응집도 / 결합도
결합도 : 모듈 내부가 아닌 외부에서 모듈과의 연관도 또는 모듈간의 상호의존성을 나타내는 정도
내용결합도(content)>공통결합도(common)>외부결합도(extern)>
제어결합도(control)>스탬프결합도(stamp)>자료결합도(data)
응집도 : 모듈의 독립성을 나타내는 개념, 모듈 내부 구성요소 간 연관 정도
기능적(Funcional) > 순차적(Sequenfial) >통신적(Communication) > 절차적(procedure) >
시간적(Temporal) > 논리적(Logical) > 우연적(Coincidental)
OSI 7계층 : 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
1계층 : 물리계층(physical Layer) 전기적, 기계적, 기능적특성을 이용해 통신 케이블로 데이터 전송
- 실제장비연결
통신케이블 / 리피터 / 허브
2계층 : 데이터링크계층(DataLink Layer) 브릿지나 스위치를 통해 맥주소를 가지고 물리 계층에서 받은 정보 전달
포인트 투 포인트 (Point to Point) / 에러검출 / 재전송 / 흐름제어
3계층 : 네트워크계층(Network Layer) 데이터를 목적지ᄁᆞ지 가장 안전하고 빠르게 전달하는 기능(라우팅)
IP주소 사용 / 흐름제어 / 세그멘테이션 / 오류제어 / 인터네트워킹 / 경로설정
4계층 : 전송계층(Transport Layer) TCP프로토콜 이용/ 포트를 열어서 응용프로그램들을 전송
연결기반 / 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송 / end-to-end / 패킷생성
5계층 : 세션계층(Session Layer) 데이터가 통신하기 위한 논리적인 연결
동시 송수신 방신, 반이중 방식, 전이중 방식 , TCP / IP세션을 만들고 없애는 책임
6계층 : 표현계층(Presentation Layer) 데이터 표현이 상이한 응용프로세스의 독립성을 제공하고 암호화
사용자의 명령어를 완성 및 결과 표현, 포장/압축/암호화
7계층 : 응용계층(Application Layer) HTTP/FTP/SMTP/POP3/IMAP/Telnet 프로토콜
응용서비스 수행 / 네트워크 소프트웨어 UI부분 / 사용자의 입출력 부분
제어프로그램 : 시스템 작동감시 , 순서지정, 데이터 관리등의 역할을 수행하는 프로그램
감시프로그램(Superviosr Program)
작업 제어 프로그램(Job Control Program) : 연속 처리를 위한 스케줄 및 시스템 자원 할당 등 담당
데이터 관리 프로그램 : 주기억 보조기억장치 사이의 자료전송, 파일의 조작
입출력 자료와 프로그램간의 논리적 연결 등 처리할 수 있도록 관리
처리프로그램 : 제어프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램
서비스 프로그램 : 효율성을 위해 사용 빈도가 높은 프로그램
문제 프로그램 : 특정 업무 해결을 위해 사용자가 작성한 프로그램
언어 번역 프로그램 : 어셈블러, 컴퍼일러, 인터프리터
IEEE802.3 LAN
First Fit (최초적합)/ Best Fit(최적적합) / Worst Fit(최악접합)
최초적합 : 가장 최초로 발견되는 hole에 할당
최적적합 : 가장 잘 맞는데에 넣는다.
최악적합 : 가장 큰 공간
Paging / Segmentation
페이징 기법: 프로그램을 일정한 크기로 나눈 단위 / 여러프로그램 동시 실행 / 내부 단편화 문제발생
세그먼테이션 기법 : 사용자 주소 공간을 논리적인 단위로 나눈 것 / 외부단편화에 의한 기억장비 낭비 줄일 수 있다
세그먼트크기가 가변적이기 때문에 다른 세그먼트 영역을 침범하지 않는 기억장치 보호기 필요
FIFO (First In First Out)
선입선출
교착상태(Deadlock) : 시스템 자원에 대한 요구가 뒤엉킨 상태
둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원으르 서로 기다릴 때 무한 대기에 빠지는 상황
발생조건 : 상호배제 – 한번에 프로세스 하나만 해당 자원을 사용할 수 있다
점유대기 – 자원을 최소한 하나 보유, 다른 프로세스에 할당된 자원을 점유
비선점 – 이미 할당된 자원을 강제로 빼앗을 수 없다
순환대기 – 대기 프로세스의 집합이 순환 형태로 자원을 대가하고 있어야 한다.
IPv6 / IP주소체계
C언어 변수 ./산술연산자
구분 | 예약어 | |
제어문 | 반복 | do, for, while |
선택 | case, default, else. is, switch | |
분기 | break, continue, goto, return | |
자료형 | char, short, int, long, float, double, enum, signed, unsigned, union, void, struct, typedef | |
기억 클래스 | auto, register, extern | |
기타 | const, sizeof, volatile |
+ |
- |
* |
/ |
% |
++ |
-- |
C언어 라이브러리 함수
stdio.h | 데이터의 입, 출력 |
math.h | 수학 함수 제공 |
string.h | 문자열 처리 |
stdlib.h | 자료형 변환, 난수발생, 메모리 할당 |
time.h | 시간처리 |
라이브러리 개념
프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체로 필요할 때
언제든지 호출하여 사용
개발환경구축
- 개발프로젝트를 이해하고 하드웨이 및 소프트웨어 장비를 구축하는 것
- 하드웨어와 소프트웨어의 성능, 편의성, 라이선스 등의 비즈니스 환경에 적합한 제품을들 최종적으로 결정하여 구축함.
하드웨어 환경
- 사용자와 인터페이스 역할을 하는 클라이언트와 클라이언트와 통신하여 서비스를 제공하는 서버로 구성됨
- 클라이언트 : PC, 스마트폰
- 서버 : 웹서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버 등
웹 서버 (Web Server)
- 클라이언트로부터 직접 요청을 받아 처리하는 서버로 저용량의 정적파일들을 제공
- 웹 서버의 기능
기능 | 설명 |
HTTP / HTTPS 지원 | 브라우저로부터 요청을 받아 응답할 때 사용되는 프로토콜 |
통신기록(Communication Log) | 처리한 요청들을 로그 파일로 기록하는 기능 |
정적 파일 관리 (Managing Static Files) | HTML, CSS, 이미지 등의 정적파일들을 저장하고 관리 |
대역폭 제안(Bandwidth Throttling) | 네트위크 트래픽의 포화를 방지하기 위해 응답 속도를 제한하는 기능 |
가상 호스팅(Virtual Hosting) | 하나의 서버로 여러 개의 도메인 이름을 연결하는 기능 |
인증(Authentication) | 사용자가 합법적인 사용자인지를 확인하는 기능 |
웹 애플리케이션 서버 (WAS : Web Application Server)
- 정적인 콘텐츠를 처라히는 웹서버와 반대
- 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어(=소프트웨어)
- 데이터 접근, 세션관리, 트랜잭션 관리 등을 위한 라이브러리를 제공
데이터베이스 서버
-데이터베이스와 이를 관리하는 DBMS를 운영하는 서버
파일서버
-데이터베이스에 저장하기에는 비효율적이거나, 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버
소프트웨어 환경
- 클라이언트와 서버 운영을 위한 시스템 소프트웨어와 개발에 사용되는 개발 소프트웨어로 구성
-시스템 소프트웨어 : 운영체제(OS), 웹 서버 및 WAS운용을 위한 서버 프로그램, DBMS
-개발 소프트웨어 : 요구사항 관리 도구, 설계/ 모델링 도구, 빌드 도구, 구현 도구, 테스트도구, 형상관리도구 등
요구사할 관리 도구 | 요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어 JIRA / Trello |
설계 / 모델링 도구 | UML을 지원, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어 |
빌드 도구 | 구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어 Ant, Maven, Gradel, Jenkins |
구현 도구 | 개발 언어를 통해 애플리케이션의 실제 구현을 지원해주는 소프트웨어 Eclipse, Visual Studio, Node.js |
테스트 도구 | 모듈들이 요구사항에 적합하게 구현했는지 테스트하는 소프트웨어 |
형상 관리 도구 | 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어 SVN(Subversion), GIT |
개발 언어의 선정 기준
-적정성 : 개발하려는 소프트웨어의 목적에 적합
-효율성 : 코드의 작성 및 구현이 효율적이여야 함
-이식성 : 다양한 시스템 및 환경에 적용 가능해야 함
-친밀성 : 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야함
-범용성 : 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야함
서버개발에 사용되는 프로그래밍 언어
-JAVA, Java Script, Python, PHP, Ruby 등
서버 개발 프레임워크
- 프레임워크 : 뼈대 골조, 소프트웨어에서는 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체
- MVC (Model, View, Controller) 패턴을 기반으로 개발됨
프레임워크 | 특징 |
Spring | JAVA 기반, 전자정부 표준 프레임워크의 기반 기술 사용 |
Node.js | Java Script 기반, 비동기 입출력 처리와 이벤트 위주의 높은 처리 성능을 갖고 있어 실시간으로 입출력이 빈번한 애플리케이션에 적합 |
Django | Python 기반, 컴포넌트의 재사용 |
Codeigniter | PHP 기반, 인터페이스가 간편 |
Ruby on Rails | Ruby 기반, 신속한 개발 |
서버 프로그램 구현(효과적인 모듈 설계)
- 응용 소프트웨어와 동일하게 모듈 및 공통 모듈을 개발 한 후, 모듈들을 통합하는 방식으로 구현, 유지보수가 용이해야함
- 모듈의 독립성을 높이려면 모듈의 결합도(Coupling)를 약하게 하고 응집도(Cohesion)를 강하게 하며 모듈의 크기를
작게 만들어야 함
- 복잡도와 중복성을 줄이고 일관성 유지
- 공통 모듈은 여러 프로그램에서 재사용 할 수 모듈의미 -> 함수와 객체 재사용, 컴포넌트 재사용, 애플리케이션 재사용
재사용 프로그래밍 기법
- 객체지향 / 제네릭 / 자동 / 메타
프레임워크 특징
- 모듈화 : 캡술화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써
소프트웨어의 품질 향상시킴 (Modularity)
- 재사용성 : 재사용이 가능한 모듈들을 제공함으로써 개발자의 생선성을 향상시킴(Reusability)
- 확장성 : 다형성(Polymorphism)을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진
개발이 가능(Extensibility)
- 제어의 역흐름 : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크가 관리함으로써
생산성 향상시킴
프레임워크의 구성요소
- 개발환경 / 실행환경 / 운영환경 / 관리환경
소프트웨어 개발 보안의 개요
- 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여 보안 위협으로부터 안전한 소프트위어를 개발하기 위한
일련의 보안 활동을 의미
- 시큐어 코딩(Secure Coding)
- 기밀성(Confidentiality) / 무결성(Integrity) / 가용성(Avaliability) 유지하는 것을 목표
- 정부에서 제공하는 소프트웨어 개발 보안 가이드를 참고
소프트웨어 개발 보안 점검 항목
- 세션통제 : 세션(서버와 클라이언트의 연결)의 연결과 연결로 인해 발생하는 정보를 관리하는 것
- 입력 데이터 검증 및 표현 : 입력데이터에 대한 유효성 검증체계를 갖추고 검증 실패 시 이를 처리할 수 있도록 코딩
- 보안기능 : 인증, 접근제어, 기밀성, 암호화 등
- 시간 및 상태 : 동시 수행을 지원는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과
실행상태를 관리하여 시스템이 원활히 동작되도록 코딩하는 것
- 에러처리 :발생할 수 있는 오류들을 사전에 정의하여 에러로 인해 발생할 수 있는 문제들을 예방
- 코드 오류 ; 개발자들이 코딩 중 실수하기 쉬운 타입 변환, 자원의 반환등을 고려하여 코딩
- 캡슐화 : 데이터(속성)와 데이터를 처리하는 함수를 하나의 객체로 묶어 코딩하는 것
- API 오용 : API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 고려하여 코딩
API (Application Programming Interface)
- 응용프로그램 개발 시 운영체계나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 함으로써
효율적인 소프트웨어 구현을 도와주는 인터페이스
- 개발에 필요한 여러 도구를 제공
- 누구나 무료로 사용 할 수 있게 공개된 API Open API라고 함
배치프로그램(Batch Program)
- 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것
이벤트성 배치 | 특정 조건을 설정해두고 조건이 충족될 때만 수행 |
On-Demand 배치 | 사용자 요청 시 수행 |
정기 배치 | 일, 주, 월과 같이 정해진 기간에 정기 수행 |
필수요소 | 설명 |
대용량 데이터 | 대량의 데이터를 가져오거나, 전달하거나, 계산 등의 처리가 가능해야 함 |
자동화 | 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행돼야 함 |
견고성 | 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행돼야 함 |
안전성/신뢰성 | 오류가 발생하면 오류의 발생위치, 시간 등을 추적할 수 있어야함 |
성능 | 다른 응용프로그램ㄹ의 수행을 방해하지 않아야 하고, 지정된 시간내에 처리가 완료돼야함. |
배치 스케줄러, 잡 스케줄러
- 일괄처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
-스프링 배치 : 스프링이 가지고 있는 다양한 기능들을 모두 사용 할 수 있는 오픈 소스 프레임 워크
-쿼츠 : 스프링 프레임워크로 개발되는 응용프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈 소스
패키지 소프트웨어
- 기업에서 일반적으로 사용하는 여러 기능들을 통합하여 제공하는 소프트웨어
- 기업에서 패키지 소프트웨어를 구입해 기업 환경에 적합하게 커스터마이징 후 사용
- 기능 요구사항을 70% 이상 충족시키는 패키지 소프트웨어 사용
패키지 소프트웨어 | 전용 개발 소프트웨어 | |
기능 요구사항 | 70% 이상 충족시키는 패키지 소프트웨어 | 모든 기능 요구사항 반영 가능 |
안정성 | 품질이 검증됐고, 업계 표준 준용 | 개발자의 역량에 따라 달라짐 |
라이선스 | 판매자 | 회사 |
생산성 | 개발을 위한 인력과 시간 절약 가능 | 개발을 위한 인력과 시간 필요 |
호환성 | 보장안됨 | 설계단계부터 고려하며 개발에서 호환성이 좋음 |
유지보수 | 결함 발생 시 즉시 대응 어려움 | 결함 발생 시 즉시 대응 가능 |
데이터 타임
- 변수에 저장될 데이터의 형식을 나타내는 것
- 변수에 값을 저장하기 전에 문자형, 정수형, 실수형 등 어떤 형식 값으로 저장할지 선언
Boolean / 조건의 참 거짓 / 기본 false |
Char / 문자타입 / ‘ ’ 표시 / ‘a’ ‘A’ ‘1’ |
String / 문자열 타입 / “ ” 표시 |
Int / 정수타입 |
float / 부동 소수점 타입 |
Array / 배열타입 / 데이터는 중괄호 안에는 콤마 |
C / C++ 데이터 타입 크기 | ||
문자 | char | 1 Byte |
정수 | short | 2 Byte |
int | 4 Byte | |
long | 4 Byte | |
long long | 8 Byte | |
실수 | float | 4 Byte |
double | 8 Byte | |
long double | 8 Byte |
변수
- 값을 저장하기 위한 공간, 변할 수 있는 값을 의미
변수명 작성 규칙
- 영문자, 숫자, _ 언더바 사용가능
- 첫글자는 영문자, _ 언더바로 시작할 수 있으나 숫자는 올 수 없다.
- 글자 수에 제한이 없고, 대소문자 구분
- 공백이나 *,+,-,/ 등 특수문자 사용불가
- 예약어를 변수명르로 사용할 수 없음
- 변수 선언 시 문장 끝에 반드시 세미콜론 붙여야 함
예약어 – c 언어
구분 | 예약어 | |
제어문 | 반복 | do, for, while |
선택 | case, default, else. is, switch | |
분기 | break, continue, goto, return | |
자료형 | char, short, int, long, float, double, enum, signed, unsigned, union, void, struct, typedef | |
기억 클래스 | auto, register, extern | |
기타 | const, sizeof, volatile |
기억 클래스
- (변수의 값을 저장하기 위한 기억영역이 할당되는데)기억영역을 결정하는 작업
자동변수 / 메모리(스택) / auto / 일시적 / 지역적 |
레지스터 변수 / 레지스터 / register / 일시적/ 지역적 |
정적 변수(내부) / 메모리(데이터) / static / 영구적 / 지역적 |
정적 변수(외부) / 메모리(데이터) / static / 영구적 / 전역적 |
외부변수 / 메모리(데이터) / extern / 영구적 / 전역적 |
변수의 선언
- 자료형 변수명 = 값;
-자료형 : 변수에 저장될 자료의 형식 지정
-변수명: 사용자가 원하는 이름을 임의로 지정
-값: 변수를 선언하면서 초기화할 값을 지정
포인터
- 포인터 : 변수의 주소
- 포인터 변수 : C언어에서 변수의 주소를 저장할 때 사용하는 변수
- 변수 선언
int *a; (변수 명 앞에 간접 연산자*)
a = &b; (변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &)
c = *a; (실행문에서 포인터 변수에 간접 연산자*를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함)
포인터와 배열
- 배열을 포인터 변수에 저장한 후 포인터를 이용해 배열의 요소에 접근 할 수 있음
- 배열 요소에 대한 주소를 지정할 때는 일반 변수와 동일하게 &연산자를 사용
절차적 프로그래밍 언어의 장, 담점
- 컴퓨터의 처리 구조와 유사하여 실행속도가 빠름
- 같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용할 수 있음(이식성)
- 모듈 구성이 용이하며, 구조적인 프로그래밍이 가능함
- 프로그램을 분석하기 어렵고 유지보수나 코드의 수정이 어려움
절차적 프로그래밍의 언어의 종류
C | 데니스 리치 / 시스템 프로그래밍 언어 /포인터 제공 고급 프로그래밍 언어, 저급 프로그래밍언어 특징을 모두 갖춤 Unix의 일부가 c언어로 구현/ 컴파일러 방식의 언어 / 이식성이 좋음 |
Algol | 수치 계산이나 논리연산을 위한 과학 기술 계산용 언어 |
Cobol | 사무 처리용 언어 / 영어문장식 |
Fortran | 과학기술 계산용 언어 |
Basic | 교육용으로 개발되어 언어의 문법이 쉬움 |
객체지향 프로그래밍 언어
- 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법
객체지향 프로그래밍 언어의 장, 단점
- 상속을 통한 재사용과 시스템의 확장이 용이하고, 코드의 재활용성이 높음
- 사용자와 개발자 사이에 이해를 쉽게 해주고, 대형 프로그램의 작성이 용이함
- 프로그래밍 구현을 지원해주는 정형화된 분석 및 설계 방법이 없음
- 구현 시 처리 시간이 지연됨 -> 실행 속도가 느림
객체지향 프로그래밍 언어의 종류
c++ | C언어에 객체지향 개념을 적용한 언어 |
c# | C++과 java 문법 비슷 / JAVA와 달리 불안전 코드와 같은 기술을 통해 플랫폼 간 상호 운용성 확보 |
JAVA | 분산 네트워크 환경 적용 가능 여러 작업 동시에 처리 가능 운영체제 및 하드웨어에 독립적이며 이식성이 강함, 캡슐화, 재사용성 높다 |
Delphi | Windows운영체제에서 모든 부분을 프로그래밍 할 수 있는 언어 |
Smalltal k | 1세대 객체 지향 프로그래밍 언어 |
객체지향 프로그래밍 언어의 구성요소
- 객체(Object) : 독립적으로 식별 가능한 이름을 갖고 있다 / 일정한 기억 장로를 갖고 있다.
- 클래스(Class) : 추상화하는 단위 / 객체들이 갖는 속성과 연산(method)을 정의
- 인스턴스(Instance) : 클래스에 속한 각각의 객체
- 메서드(Method) : 클래스로부터 생성된 객체를 사용하는 방법 / 함수 / 프로시저 / 연산
- 메시지(Message) : 객체에게 어떤 행위를 하도록 지시하기 위한 방법
객체지향 프로그래밍 언어의 특징
- 캡슐화(Encapsulation) : 데이터(속성)와 함수를 하나로 묶는 것 / 은폐가능 오류의 파급 효과 적음
재사용이 용이함
- 상속성(Inheritance) : 부모클래스의 모든 속성을 자식 클래스에서 물려받는 것
- 다형성(Polymorphism) : 메시지에 의해 객체가 연산을 수행하게 될 때, 하나의 메시지에 대해 각 클래스가
가지고 있는 고유의 방법으로 응답할 수 있는 능력
- 추상화(Abstraction) : 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념
- 정보은닉(Information Hiding) : 자신의 정보를 숨기고 자신만의 연산만을 통해서 접근을 허용
스트립스 언어의 개요
- 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게하는 언어
- 클라이언트용 언어(Java Script) : 클라이언트의 웹 브라우저에서 해석되어 실행
- 서버용 스크립트 언어(ASP, JSP, PHP, Python) : 서버에서 해석되어 실행된 후 결과만 보냄
스크립트 언어의 장담점
- 컴파일 없이 바로 실행->결과 확인
- 개발 시간이 짧고, 소스 코드를 쉽고 빠르게 수정할 수 있음
- 코드를 읽고 해석해야 하므로 실행속도가 느리고, 런타임 오류가 많이 발생
스크립트 언어의 종류
- Java Sciript : 클래스가 존재하지 않으며, 변수 선언도 필요없음
- ASP : 서버측에서 동적으로 수앻되는 페이지 만들기 위한 언어
- JSP : JAVA로 만들어진 서버용 스크립트
- PHP : C, JAVA등과 문법 유사
- Python : 라이브러리 풍부, 유니코드 문자열, 들여쓰기 사용, 대화형 인터프리터 언어
- Perl : 인터프리터 방식
라이브러리 개념
- 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아
놓은 집합체로 필요할 때 언제든지 호출하여 사용
C언어의 표준 라이브러리
stdio.h | 데이터의 입, 출력 |
math.h | 수학 함수 제공 |
string.h | 문자열 처리 |
stdlib.h | 자료형 변환, 난수발생, 메모리 할당 |
time.h | 시간처리 |
JAVA 의 표준 라이브러리
java.lang | 인터페이스, 자료형, 예외처리 등 import문없이도 사용 가능 |
java.util | 날짜처리, 난수발생, 복잡한 문자열 처리 |
java.io | 파일 입출력 |
java.net | 네트워크 |
java.awt | 사용자 인터페이스 UI 와 관련 기능 제공 |
운영체제의 목적
- 처리능력(Througtput) : 일정 시간 내에 시스템이 처리하는 일의 양
- 반환 시간(Turn Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린시간
- 사용 가능도(Availability) : 시스템을 사용 할 필요가 있을 때 즉시 사용 가능한 정도
- 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도
운영체제의 기능
- 자원관리 / 스케줄링 기능 제공 / 인터페이스 제공 / 입출력 장치와 사용자 프로그램제어
데이터 및 자원의 공유기능 / 시스템의 오류 검사 및 복구/ 자원보호기능
'정보처리기사 필기' 카테고리의 다른 글
정보처리기사 필기 정리 (정보시스템 구축 관리) (0) | 2023.02.07 |
---|---|
정보처리기사 필기 정리 (데이터베이스 구축) (0) | 2023.02.07 |
정보처리기사 필기 정리(소프트웨어 개발) (0) | 2023.02.07 |
정보처리기사 필기 정리(소프트웨어 설계) (0) | 2023.02.07 |