라이브러리
☞ 모듈화 되어 제공되는 프로그램
☞ 효율적인 프로그램 개발 위해 필요한 프로그램 모아놓은 집합체
▶ 구성
▷ 도움말
→ 라이브러리 사용할 수 있도록 하는 도움말 문서
▷ 설치 파일
→ 라이브러리 적용 위해 제공되는 설치 파일
▷ 샘플 코드
→ 라이브러리 이해하고 손쉽게 적용 위해 제공되는 샘플 소스코드
1. 표준 라이브러리와 외부 라이브러리
▷ 표준 라이브러리
→ 프로그래밍 언어가 기본적으로 가지고 있는 라이브러리 의미
→ 여러 종류의 모듈과 패키지 가지며, 별도의 파일 설치 없이 다양한 기능 이용 가능
▷ 외부 라이브러리
→ 표준 라이브러리와 달리 별도 파일 설치해야 함
→ 누구나 개발하여 설치 가능하며, 인터넷 등을 이용하여 공유 가능
2. 모듈과 패키지
▷ 모듈
→ 한 개의 파일에서 기능 제공
▷ 패키지
→ 여러 개 모듈을 한 개의 폴더에 묶어서 기능 제공
→ 패키지 명과 모듈 명을 import하여 불러올 수 있음
▶ C 표준 라이브러리
▷ stdio.h
→ 핵심 입력과 출력 함수들 정의
▷ string.h
→ 문자열 처리 함수들 정의
▷ math.h
→ 일반적인 수학 함수들 정의
▷ stdlib.h
→ 동적 할당 관련 함수, 난수 생성 함수, 정수의 연산 함수, 검색 및 정렬 함수 등 여러 함수 포함
▶ 파이썬 외부 라이브러리
▷ 넘파이(NumPy)
→ 행렬이나 일반적으로 대규모 다차원 배열 쉽게 처리 가능토록 지원하는 라이브러리
▷ 판다스 (Pandas)
→ 데이터 분석 위해 널리 사용되는 라이브러리 패키지
▷ 필로우(Pllow)
→ 이미지 편집 위한 대표적 라이브러리
▷ 텐서플로우(Tensorflow)
→ 기계 학습과 딥러닝 위해 구글에서 만든 오픈소스 라이브러리로 C++도 지원
▶ 파이썬의 자주 사용되는 라이브러리 기능
▷ 문자열 연산 기능
→ 일반적인 문자열 조작 수행하며, 파이썬의 경우 string 모듈 사용
▷ 문자열 탐색/치환 기능
→ 문자열 패턴 정의하여 탐색, 치환 등 작업에 사용하며, 정규식 사용을 위한 RE 모듈 사용
▷ 수치 계산 기능
→ 기본적 수치 계산 하고자 하는 경우 functions, math 모듈 사용
▷ 난수 생성 기능
→ 난수 다루는 작업에 사용하며, random 모듈 사용
▷ 파일 경로 조작 기능
→ 파일 경로 관련 기능 제공하며 os.path 모듈 사용
▷ 디렉터리 생성 기능
→ 디렉터리 생성 기능 제공하며 tempfile 모듈 사용
▷ 날짜 조작 기능
→ 날짜와 시간 일자와 관련 작업 하고자 하는 경우 datetime 모듈 사용
▷ 로그 출력 기능
→ 로그 출력 기능 제공하며 logging 모듈 사용
▶ 자바 기본 라이브러리
▷ java.lang
→ 자바 언어 주요 구성요소와 관련된 패키지
▷ java.util
→ 다양한 자료구조를 동일한 방법으로 처리 가능토록 하는 라이브러리
▷ java.io, java.niom java.net
→ 키보드, 네트워크, 파일 등 입출력 관련 주요 기능 제공하는 라이브러리
▷ java.sql
→ DB 프로그래밍 관련 라이브러리
예외 처리
☞ 일반적인 실행의 흐름을 바꾸는 몇 가지 조건 처리하도록 설계한 프로그래밍 언어 개념이나 컴퓨터 하드웨어 구조
☞ 프로그램이 처리되는 동안 특정 문제 발생 시 처리 중단하고 다른 처리를 하는 것
▶ 원인
▷ 컴퓨터 하드웨어 문제
→ 설계 오류나 설정 실수로 예기치 못한 결과 도출
▷ 운영 체제 설정 실수
→ 운영 체제 설치 후 설정 시 파라미터 값 오류로 발생
▷ 라이브러리 손상
→ 구 버전의 라이브러리 또는 일부 설치 등 손상된 라이브러리 사용으로 예외 발생
▷ 사용자 입력 실수
→ 존재하지 않는 파일 이름 입력, 숫자 값, 입력 칸에 일반 문자 입력 등으로 발생
▶ 예외 안전성
▷ 완전 보장
→ 예외가 없음 (int b=0;)
▷ 강력 보장
→ 예외 발생해도 해결하면 객체 계속 사용 가능하며 예외 발생 전 상태 유지
▷ 기본 보장
→ 예외 발생해도 해결하면 메모리 누수 등 자원 누수 없으나, 객체 상태 알 수 없음
▶ 예외 원인 별 안전성 수준
1. 예외 보증을 하지 않는 안전 (No exception safety)
2. 최소 예외 안전 (No-leak guarantee)
3. 기본 예외 안전 (Basic exception safety)
4. 강력한 불변의 예외 안전 (Commit or rollback semantics)
5. 실패 투명성 (No throw guarantee)
▶ 사례
1. 예외 처리 문법
ㄱ. 자바 사례
try {
throw new Exception();
} catch (Exception e) {
//Exception 발생 시 처리할 코드
} finally {
//마지막으로 항상 처리할 코드
}
ㄴ 파이썬 사례
f = None
try:
f = file("inputNo")
f.write()
except IOError:
print "file open error"
except: #모든 exception 처리
print "error"
else: #exception 발생하지 않을 때 수행
print "정상적으로 처리"
finally: #항상 처리 될 코드
if f:
f.close()
ㄷ C++ 사례
#include <exception>
int main() {
try {
//일반적 수행 코드
} catch (const std::exception& e) {
//exception 발생 시 처리 코드
}
}
프로토타입
☞ 요구사항 검증 위해 본격적인 개발에 앞서 시제품 형태로 제작되는 원형
☞ 프로토타입 작성 시 라이브러리 활용성 검증하고 원하는 기능에 대한 구현 여부 검토 가능
▶ 라이브러리 활용한 프로토 타입
→ 프로토타입 제작 시 라이브러리 활용하면 단시간에 원하는 기능 구현 가능
→ 라이브러리 검색, 선택, 설치, 적용하고 코드 검토하여 프로토타입 작성
→ 예상 결과와 다른 경우 다른 라이브러리 활용하여 위 단계 반복
▶ 프로토타입 기반 프로그래밍
→ 객체 지향 프로그래밍의 한 형태
→ 클래스 기반 언어에서 상속 사용하는 것과 달리, 객체 프로토타입 제작하여 복제 과정 통해 객체 동작 방식 재사용 가능
→ 클래스리스(class-less), 프로토타입 지향(prototype-oriented), 인스턴스 기반(Instance-based)
function Car()
Car.prototype.handle = 1;
Car.prototype.wheel = 4;
var motorCar = new Car()
console.log(motorcar.wheel); //4
//Car.prototype 빈 객체 생성하고 Car()라는 함수로부터 생성된 객체들은 해당 Car.prototype 값 재사용 가능
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사] Part01-01-1. 현행 시스템 분석 (0) | 2022.02.21 |
---|---|
[정보처리기사] Part05-01-1. 소프트웨어 개발방법론 선정 (1) (0) | 2022.02.16 |
[정보처리기사] Part04-02-2. 언어특성 활용 (0) | 2022.02.16 |
[정보처리기사] Part04-02-1. 기본 문법 활용 (0) | 2022.02.15 |
[정보처리기사] Part04-01-4. 배치 프로그램 구현 (0) | 2022.02.15 |
댓글