라이브러리
IT 위키
더 많은 작업
- 상위 문서: 정보처리기사/프로그래밍 언어 활용
- Library
- 자주 사용하는 기능을 재사용할 수 있도록 함수, 클래스, 모듈 등으로 미리 만들어 모아 둔 것
- 개발자는 라이브러리를 가져와(include, import) 필요한 기능을 호출하여 사용한다.
- 프레임워크는 전체 흐름을 프레임워크가 제어하고 개발자 코드를 호출하지만(제어의 역전), 라이브러리는 개발자 코드가 흐름을 제어하며 필요할 때 라이브러리를 호출한다.
- 구성 요소: 도움말, 설치 파일, 샘플 코드 등
| 구분 | 설명 | 예 |
|---|---|---|
| 표준 라이브러리 | 프로그래밍 언어에 기본으로 포함되어 별도 설치 없이 사용 | C 표준 헤더, java.lang, Python os·math |
| 외부 라이브러리 | 별도로 내려받아 설치해야 하는 라이브러리 | numpy, pandas(pip로 설치), Maven 저장소의 Java 라이브러리 |
| 헤더 | 주요 함수 |
|---|---|
| stdio.h | printf, scanf, fopen, fclose, fgets, getchar, putchar |
| stdlib.h | malloc, free, atoi, atof, rand, srand, exit, qsort, abs |
| string.h | strlen, strcpy, strcat, strcmp, memcpy, memset |
| math.h | sqrt, pow, fabs, ceil, floor, sin, log |
| time.h | time, clock, localtime |
- 관련 문서: C 언어 stdlib.h, C 언어 malloc
- java.lang: String, Math, Integer, System, Object, Thread 등. import 없이 자동으로 사용된다.
- java.util: Scanner, ArrayList, HashMap, Random, Date 등 자료구조·유틸리티
- java.io: InputStream, OutputStream, File, BufferedReader 등 입출력
- 그 외: java.net(네트워크), java.sql(데이터베이스 연결)
- 표준 모듈: os(운영체제 기능), sys(인터프리터 관련), math(수학), random(난수), datetime(날짜·시간), re(정규표현식), json
- 외부 라이브러리: numpy(수치 배열), pandas(데이터 분석), matplotlib(시각화), requests(HTTP)
- 관련 문서: 파이썬 라이브러리 os, 파이썬 pandas
| 지정자 | 의미 | 지정자 | 의미 |
|---|---|---|---|
| %d | 10진 정수 | %f | 실수(기본 소수점 6자리) |
| %c | 문자 1개 | %s | 문자열 |
| %x | 16진 정수 | %o | 8진 정수 |
| %e | 지수 표기 실수 | %% | % 문자 출력 |
int n;
scanf("%d", &n); /* 입력 변수에는 주소(&)를 전달 */
printf("[%5d][%-5d][%05d]\n", 42, 42, 42); /* [ 42][42 ][00042] */
printf("[%x][%o][%.3f]\n", 255, 8, 3.14159); /* [ff][10][3.142] */
- 배열 이름 자체가 주소이므로 문자열 입력은
scanf("%s", str);처럼 & 없이 쓴다.
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String s = sc.next();
System.out.print("줄바꿈 없음");
System.out.println("줄바꿈 있음");
System.out.printf("%d %.2f%n", 10, 3.14159); // 10 3.14
n = int(input()) # input()은 항상 문자열을 반환
print(1, 2, 3, sep="-", end="!\n") # 1-2-3!
print("%d %s" % (10, "abc")) # 10 abc
- 관련 문서: 파이썬 print
- 함수의 이름, 반환 자료형, 매개변수 자료형을 호출 전에 미리 선언한 것이다.
- C 컴파일러는 이를 보고 호출 시 인자 개수와 자료형을 검사한다. 라이브러리의 헤더 파일에는 함수 프로토타입이 들어 있다.
int add(int a, int b); /* 함수 프로토타입 */
int main(void) { return add(1, 2); }
int add(int a, int b) { return a + b; }
- C 헤더별 대표 함수(strlen·strcpy는 string.h, malloc·atoi는 stdlib.h, sqrt·pow는 math.h)를 구분한다.
- printf 형식 지정자와 폭·정렬·0 채움 출력 결과를 묻는다.
- Java에서 import 없이 쓰는 패키지는 java.lang 이다.