952. 데이터 모델의 종류
- 개념적 데이터 모델
- 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계 표현
- 정보 모델 : 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현
- 대표적인 개념적 데이터 모델 : E-R 모델
- 논리적 데이터 모델
- 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
- 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현
- 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용
- 논리적 데이터 모델의 구분 : 관계 모델, 계층 모델, 네트워크 모델
953. 정규화 과정
비정규 릴레이션 |
↓ 도메인이 원자 값 |
1NF |
↓ 부분적 함수 종속 제거 |
2NF |
↓ 이행적 함수 종속 제거 |
3NF |
↓ 결정자이면서 후보키가 아닌 것 제거 |
BCNF |
↓ 다치 종속 제거 |
4NF |
↓ 조인 종속성 이용 |
5NF |
956. 이상 현상
- 삽입 이상 : 불필요한 데이터를 함께 삽입하지 않으면 데이터를 삽입하는 것이 불가능한 현상
- 수정(갱신) 이상 : 중복된 데이터 가운데 일부만 수정되어 데이터의 불일치가 발생하는 현상
- 삭제 이상 : 어떤 데이터를 삭제하면 유용한 데이터도 함께 삭제가 되는 현상
960. SQL의 Hint
- 사용자가 수동으로 어떠한 경우에도 실행 계획을 고정하기 위해 사용
- SQL의 힌트 사용 : SELECT /* + hint[{hint} .... ] */
961. IEEE 802의 주요 표준 규격
- 802.1 : 전체의 구성, OSI 참조 모델과의 관계, 통신망 관리 등에 관한 규약
- 802.2 : 논리 링크 제어 LLC 계층에 관한 규약
- 802.3 : CSMA / CD 방식의 매체 접근 제어 계층에 관한 규약
- 802.4 : 토큰 버스 방식의 매체 접근 제어 계층에 관한 규약
- 802.5 : 토큰 링 방식의 매체 접근 제어 계층에 관한 규약
- 802.6 : 도시형 통신망 MAN에 관한 규약
- 802.9 : 종합 음성, 데이터 네트워크에 관한 규약
- 802.11 : 무선 LAN에 고나한 규약
962. 교착상태 발생의 필요 충분 조건
- 상호 배제 (Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
- 점유와 대기 (Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
- 비선점 (Non-preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
- 환형 대기 (Circuler Wait) : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함
964. TCP/IP 프로토콜
- Network Access Layer
- OSI 7 Layer : 물리 계층, 데이터 링크 계층
- 하드웨어적인 요소와 관련된 모든 것들을 지원하는 계층
- 송신 측 컴퓨터 : 상위 계층으로부터 전달 받은 패킷에 물리적인 주소는 MAC 주소 정보를 가지고 있는 헤더를 추가하여 프레임을 만들고, 프레임을 하위 계층인 물리 계층으로 전달
- 수신 측 컴퓨터 : 데이터 링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달
- Internet Layer
- OSI 7 Layer : 네트워크 계층
- 상위 트랜스포트 계층으로부터 받은 데이터에 IP 패킷 헤더를 붙여 IP 패킷을 만들고 전송
- Transport Layer
- OSI 7 Layer : 전송 계층
- 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송 기능 제공
- 시스템의 논리주소와 포트를 가지고 있어서 각 상위 계층과 프로세스를 연결해서 통신 수행
- 정확한 패킷의 전송을 보장하는 TCP와 정확한 전송을 보장하지 않는 UDP 프로토콜을 이용
- 데이터의 정확한 전송보다 빠른 전송이 필요한 멀티미디어 통신에서 UDP를 사용
- Application Layer
- OSI 7 Layer : 세션 계층, 프레젠테이션 계층, 애플리케이션 계층
- 응용 프로그램들이 네트워크 서비스, 메일 서비스, 웹 서비스 등을 할 수 있도록 표준적인 인터페이스 제공
966. C언어의 라이브러리 함수
- stdio.h :
- printf : 문자 및 값을 형식화, stdout에 인쇄
- scanf : stdin에서 arg-list로 지정된 위치로 데이터를 읽기
- fprintf : 문자 및 값을 형식화하고 출력, stream에 인쇄
- fscanf : stream에서 arg-list로 지정된 위치로 데이터를 읽기
- fclose : 지정된 스트링 닫기
- fopen : 지정된 파일 열기
- math.h :
- sqrt : x의 제곱근 계산
- pow : 값 x의 y 제곱 계산
- abs : 정수 인수 n의 절대 값 계산
- string.h :
- strlen : string 길이 계산
- strcpy : string2를 string 1에 복사
- strcmp : string1의 값을 string2와 비교
- stdlib.h :
- atoi : string 정수 변환
- atof : string을 long integer로 변환 (문자를 부동 소수점 값으로 변환)
- srand : 의사 난수 생성기에 대한 seed 값 설정:
시스템 포함 파일
|
함수
|
함수 프로토타입
|
설명
|
assert.h | assert | void assert(int expression); | 진단 메세지를 인쇄하고, 표현식이 false인 경우 프로그램을 종료합니다. |
ctype.h | isprint | int isprint(int c); | c가 공백을 포함한 인쇄 가능한 문자인지 테스트합니다. |
ctype.h | ispunct | int ispunct(int c); | c가 구두점 문자인지 테스트합니다. |
ctype.h | isspace | int isspace(int c); | c가 공백 문자인지 테스트합니다. |
ctype.h | isupper | int isupper(int c); | c가 대문자인지 테스트합니다. |
ctype.h | iswalnum4 | int iswalnum (wint_t wc); | 영숫자 와이드 문자가 있는지 확인합니다. |
ctype.h | iswalpha4 | int iswalpha (wint_t wc); | 영문자 와이드 문자가 있는지 확인합니다. |
ctype.h | iswblank4 | int iswblank (wint_t wc); | 공백 또는 탭 와이드 문자가 있는지 확인합니다. |
ctype.h | iswcntrl4 | int iswcntrl (wint_t wc); | 제어 와이드 문자를 테스트합니다. |
ctype.h | iswctype4 | int iswctype(wint_t wc, wctype_t wc_prop); | 와이드 문자 wc에 특성 wc_prop가 있는지 여부를 판별합니다. |
ctype.h | iswdigit4 | int iswdigit (wint_t wc); | 10진수 와이드 문자가 있는지 확인합니다. |
ctype.h | iswgraph4 | int iswgraph (wint_t wc); | 와이드 문자 공백을 제외하고 인쇄 와이드 문자가 있는지 확인합니다. |
ctype.h | iswlower4 | int iswlower (wint_t wc); | 소문자 와이드 문자가 있는지 확인합니다. |
ctype.h | tolower | int tolower(int c); | c를 소문자로 변환합니다. |
ctype.h | toupper | int toupper(int c); | c를 대문자로 변환합니다. |
ctype.h | towctrans | wint_t towctrans(wint_t wc, wctrans_t desc); | desc에서 설명하는 맵핑에 기반하여 와이드 문자 wc를 변환합니다. |
langinfo.h | putc1 | int putc(int c, FILE *stream); | c를 출력 stream에 인쇄합니다. |
locale.h | malloc | void *malloc(size_t size); | 기억장치 블록을 예약합니다. |
locale.h | sinh | double sinh(double x); | x의 쌍곡 사인을 계산합니다. |
locale.h | wcscmp | int wcscmp(const wchar_t *string1, const wchar_t *string2); | 두 와이드 문자 스트링, *string1 및 *string2를 비교합니다. |
math.h | acos | double acos(double x); | x의 역코사인을 계산합니다. |
math.h | asin | double asin(double x); | x의 역사인을 계산합니다. |
math.h | atan | double atan(double x); | x의 역탄젠트를 계산합니다. |
math.h | atan2 | double atan2(double y, double x); | y/x의 역탄젠트를 계산합니다. |
math.h | clearerr | void clearerr(FILE *stream); | stream에 대한 오류 인디케이터 및 파일의 끝 인디케이터를 재설정합니다. |
math.h | cosh | double cosh(double x); | x의 쌍곡 코사인을 계산합니다. |
math.h | ctime | char *ctime(const time_t *time); | time을 문자 스트링으로 변환합니다. |
math.h | erfc | double erfc(double x); | x의 큰 값에 대한 오류 함수를 계산합니다. |
math.h | exit | void exit(int status); | 정상적으로 프로그램을 종료합니다. |
math.h | fabs | double fabs(double x); | 부동 소수점 인수 x의 절대값을 계산합니다. |
math.h | fclose | int fclose(FILE *stream); | 지정된 스트림을 닫습니다. |
math.h | fprintf | int fprintf(FILE *stream, const char *format-string, arg-list); | 문자 및 값을 형식화하고 출력 stream에 인쇄합니다. |
math.h | fputc1 | int fputc(int c, FILE *stream); | 문자를 출력 stream에 인쇄합니다. |
math.h | fwrite | size_t fwrite(const void *buffer, size_t size,size_t count, FILE *stream); | buffer에서 stream까지 size 길이의 항목을 최대 count회 기록합니다. |
math.h | gmtime_r | struct tm *gmtime_r (const time_t *time, struct tm *result); | time 값을 tm 유형의 구조로 변환합니다. (gmtime의 재시작 가능 버전.) |
math.h | islower | int islower(int c); | c가 소문자인지 테스트합니다. |
math.h | localtime_r | struct tm *localtime_r (const time_t *timeval, struct tm *result); | time 값을 유형 tm의 구조로 변환합니다. (localtime의 재시작 가능 버전.) |
math.h | localtime64 | struct tm *localtime64(const time64_t *timeval); | timeval을 유형 tm의 구조로 변환합니다. |
math.h | localtime64_r | struct tm *localtime64_r (const time64_t *timeval, struct tm *result); | time 값을 유형 tm의 구조로 변환합니다. (localtime64의 재시작 가능 버전.) |
math.h | log10 | double log10(double x); | x의 밑이 10인 로그를 계산합니다. |
math.h | mbsrtowcs4 | size_t mbsrtowc (wchar_t *dst, const char **src, size_t len, mbstate_t *ps); | 멀티바이트 스트링을 와이드 문자 스트링으로 변환합니다. (mbstowcs의 재시작 가능 버전.) |
math.h | mbstowcs | size_t mbstowcs(wchar_t *pwc, const char *string, size_t n); | string의 멀티바이트 문자를 대응하는 wchar_t 코드로 변환하고 pwc에 n개 이하의 코드를 지정합니다. |
math.h | nexttowardl | long double nexttowardl(long double x, long double y); | x 이후 y 방향으로 다음에 표시 가능한 값을 계산합니다. |
math.h | nl_langinfo4 | char *nl_langinfo(nl_item item); | item에서 지정하는 요청된 정보를 설명하는 스트링을 현재 로케일에서 검색합니다. |
math.h | perror | void perror(const char *string); | stderr에 오류 메세지를 인쇄합니다. |
math.h | pow | double pow(double x, double y); | 값 x의 y제곱을 계산합니다. |
math.h | printf | int printf(const char *format-string, arg-list); | 문자 및 값을 형식화하고 stdout에 인쇄합니다. |
math.h | putenv | int *putenv(const char *varname); | 기존 변수를 대체하거나 새로 작성하여 환경 변수 값을 설정합니다. |
math.h | quantized128 | int quantexpd128(_Decimal128 x); | 4배정밀도 십진 부동 소수값의 퀀텀 지수를 다른 4배정밀도 십진 부동 소수값의 퀀텀 지수로 설정합니다. |
math.h | quantized64 | int quantexpd64(_Decimal64 x); | 배정밀도 십진 부동 소수값의 퀀텀 지수를 다른 배정밀도 십진 부동 소수값의 퀀텀 지수로 설정합니다. |
math.h | raise | int raise(int sig); | 신호 sig를 실행 중인 프로그램에 전송합니다. |
math.h | rand | int rand(void); | 의사 난수 정수를 리턴합니다. |
math.h | rand_r | int rand_r(void); | 의사 난수 정수를 리턴합니다. (재시작 가능 버전) |
math.h | realloc | void *realloc(void *ptr, size_t size); | 이전에 예약된 기억장치 블록의 size를 변경합니다. |
math.h | samequantumd128 | __bool__ samequantumd128(_Decimal128 x, _Decimal128 y); | 두 4배정밀도 십진 부동 소수값의 퀀텀 지수가 동일한지 판별합니다. |
math.h | samequantumd32 | __bool__ samequantumd32(_Decimal32 x, _Decimal32 y); | 두 단정밀도 십진 부동 소수값의 퀀텀 지수가 동일한지 판별합니다. |
math.h | samequantumd64 | __bool__ samequantumd64(_Decimal64 x, _Decimal64 y); | 두 배정밀도 십진 부동 소수값의 퀀텀 지수가 동일한지 판별합니다. |
math.h | sqrt | double sqrt(double x); | x의 제곱근을 계산합니다. |
math.h | srand | void srand(unsigned int seed); | 의사 난수 생성기에 대한 seed를 설정합니다. |
math.h | strcat | char *strcat(char *string1, const char *string2); | string2를 string1에 연결합니다. |
math.h | tanh | double tanh(double x); | x의 쌍곡 탄젠트를 계산합니다. |
math.h | wcslen | size_t wcslen(const wchar_t *string); | string으로 가리키는 스트링에서 와이드 문자 수를 계산합니다. |
math.h | wcslocaleconv | struct wcslconv *wcslocaleconv(void); | 현재 로케일에 따라 struct wcslconv에서 숫자 수량을 형식화합니다. |
math.h | wcsncat | wchar_t *wcsncat(wchar_t *string1, const wchar_t *string2, size_t count); | string2의 최대 count개 와이드 문자를 string1의 끝에 추가하고 결과에 wchar_t 널 문자를 추가합니다. |
math.h | 시간 | time_t time(time_t *timeptr); | 현재 캘린더 시간을 리턴합니다. |
nl_types.h | catgets6 | char *catgets(nl_catd catd, int set_id, int msg_id, const char *s); | 열린 메세지 카탈로그에서 메세지를 검색합니다. |
nl_types.h | catopen6 | nl_catd catopen (const char *name, int oflag); | 메세지 카탈로그를 엽니다. 이 작업은 메세지를 검색하기 전에 수행해야 합니다. |
nl_types.h | ceil | double ceil(double x); | x 이상의 가장 작은 정수를 나타내는 double 값을 계산합니다. |
regex.h | remove | int remove(const char *filename); | filename으로 지정된 파일을 삭제합니다. |
regex.h | rename | int rename(const char *oldname, const char *newname); | 지정된 파일명을 변경합니다. |
regex.h | rewind1 | void rewind(FILE *stream); | stream과 연관된 파일 포인터를 파일 시작 위치로 재배치합니다. |
regex.h | scanf | int scanf(const char *format-string, arg-list); | stdin에서 arg-list로 지정된 위치로 데이터를 읽습니다. |
setjmp.h | mbtowc | int mbtowc(wchar_t *pwc, const char *string, size_t n); | 멀티바이트 문자 string의 처음 n바이트에 대응하는 wchar_t 코드를 wchar_t 문자 pwc에 저장합니다. |
setjmp.h | sin | double sin(double x); | x의 사인을 계산합니다. |
signal.h | regcomp | int regcomp(regex_t *preg, const char *pattern, int cflags); | pattern으로 가리키는 소스 정규식을 실행 가능 버전으로 컴파일하고 preg로 가리키는 위치에 저장합니다. |
signal.h | sprintf | int sprintf(char *buffer, const char *format-string, arg-list); | 문자 및 값을 형식화하고 buffer에 저장합니다. |
stdarg.h | va_end | void va_end(va_list arg_ptr); | 가변 인수 리스트 처리에서 정상 리턴을 사용합니다. |
stdarg.h | va_start | void va_start(va_list arg_ptr, variable_name); | va_arg 및 va_end에 의한 후속 사용 시 arg_ptr을 초기화합니다. |
stdarg.h | vfprintf | int vfprintf(FILE *stream, const char *format, va_list arg_ptr); | 문자를 형식화하고 가변 개수의 인수를 사용하여 출력 stream에 문자를 인쇄합니다. |
stdarg.h | vfscanf | int vfscanf(FILE *stream, const char *format, va_list arg_ptr); | 지정된 스트림에서 가변 개수의 인수로 지정된 위치로 데이터를 읽습니다. |
stdarg.h | vwscanf | int vwscanf(const wchar_t *format, va_list arg_ptr); | stdin에서 가변 개수의 인수로 지정된 위치로 와이드 데이터를 읽습니다. |
stdarg.h | wcscat | wchar_t *wcscat(wchar_t *string1, const wchar_t *string2); | string2로 가리키는 스트링의 사본을 string1로 가리키는 스트링의 끝에 추가합니다. |
stdarg.h | wcscpy | wchar_t *wcscpy(wchar_t *string1, const wchar_t *string2); | *string2의 컨텐츠(종료 wchar_t 널 문자 포함)를 *string1로 복사합니다. |
stdarg.hstdio.h | vscanf | int vscanf(const char *format, va_list arg_ptr); | stdin에서 가변 개수의 인수로 지정된 위치로 데이터를 읽습니다. |
stdio.h | calloc | void *calloc(size_t num, size_t size); | num 요소의 배열에 대한 기억장치 공간을 예약하고(각각 size바이트) 모든 요소 값을 0으로 초기화합니다. |
stdio.h | clock | clock_t clock(void); | 작업을 시작한 이후 경과한 프로세서 시간을 리턴합니다. |
stdio.h | fdopen5 | FILE *fdopen(int handle, const char *type); | 핸들로 식별된 파일과 입력 또는 출력 스트림을 연관합니다. |
stdio.h | feof | int feof(FILE *stream); | 파일의 끝 플래그가 지정된 stream에 대해 설정되었는지 테스트합니다. |
stdio.h | ferror | int ferror(FILE *stream); | stream에서 읽거나 해당 스트림에 기록하는 경우 오류 인디케이터를 테스트합니다. |
stdio.h | fflush1 | int fflush(FILE *stream); | 출력 stream과 연관된 버퍼의 컨텐츠를 기록합니다. |
stdio.h | fgetc1 | int fgetc(FILE *stream); | 입력 stream에서 부호없는 단일 문자를 읽습니다. |
stdio.h | fgetpos1 | int fgetpos(FILE *stream, fpos_t *pos); | stream과 연관된 파일 포인터의 현재 위치를 pos로 가리킨 오브젝트에 저장합니다. |
stdio.h | fgets1 | char *fgets(char *string, int n, FILE *stream); | 입력 stream에서 스트링을 읽습니다. |
stdio.h | fileno5 | int fileno(FILE *stream); | 현재 stream과 연관된 파일 핸들을 판별합니다. |
stdio.h | floor | double floor(double x); | x 이하의 가장 큰 정수를 나타내는 부동 소수점 값을 계산합니다. |
stdio.h | fmod | double fmod(double x, double y); | x/y의 부동 소수점 나머지를 계산합니다. |
stdio.h | fopen | FILE *fopen(const char *filename, const char *mode); | 지정된 파일을 엽니다. |
stdio.h | fputs1 | int fputs(const char *string, FILE *stream); | 스트링을 출력 stream에 복사합니다. |
stdio.h | fread | size_t fread(void *buffer, size_t size, size_t count, FILE *stream); | 입력 stream에서 size 길이의 항목을 최대 count회 읽고 buffer에 저장합니다. |
stdio.h | free | void free(void *ptr); | 기억장치 블록을 해제합니다. |
stdio.h | freopen | FILE *freopen(const char *filename, const char *mode, FILE *stream); | stream을 닫고 지정된 파일에 재지정합니다. |
stdio.h | frexp | double frexp(double x, int *expptr); | 부동 소수점 숫자를 가수와 지수로 분리합니다. |
stdio.h | fscanf | int fscanf(FILE *stream, const char *format-string, arg-list); | stream에서 arg-list로 지정된 위치로 데이터를 읽습니다. |
stdio.h | fseek1 | int fseek(FILE *stream, long int offset, int origin); | stream과 연관된 현재 파일 위치를 새 위치로 변경합니다. |
stdio.h | ftell1 | long int ftell(FILE *stream); | 파일 포인터의 현재 위치를 가져옵니다. |
stdio.h | gamma | double gamma(double x); | 감마 함수 계산 |
stdio.h | getc1 | int getc(FILE *stream); | 입력 stream에서 단일 문자를 읽습니다. |
stdio.h | getchar1 | int getchar(void); | stdin에서 단일 문자를 읽습니다. |
stdio.h | getenv | char *getenv(const char *varname); | varname에 대한 환경 변수를 검색합니다. |
stdio.h | gets | char *gets(char *buffer); | stdin에서 스트링을 읽고, buffer에 저장합니다. |
stdio.h | getwchar6 | wint_t getwchar(void); | stdin에서 다음 멀티바이트 문자를 읽고 와이드 문자로 변환한 후 stdin에 대해 연관된 파일 위치 인디케이터를 진행합니다. |
stdio.h | gmtime | struct tm *gmtime(const time_t *time); | time 값을 tm 유형의 구조로 변환합니다. |
stdio.h | gmtime64 | struct tm *gmtime64(const time64_t *time); | time 값을 tm 유형의 구조로 변환합니다. |
stdio.h | gmtime64_r | struct tm *gmtime64_r (const time64_t *time, struct tm *result); | time 값을 tm 유형의 구조로 변환합니다. (gmtime64의 재시작 가능 버전.) |
stdio.h | hypot | double hypot(double side1, double side2); | 변 길이가 side1 및 side2인 직각 삼각형의 빗변을 계산합니다. |
stdio.h | isalpha | int isalpha(int c); | c가 영문자인지 테스트합니다. |
stdio.h | isascii4 | int isascii(int c); | c가 7비트 US-ASCII 범위에 포함되는지 테스트합니다. |
stdio.h | putchar1 | int putchar(int c); | c를 stdout에 인쇄합니다. |
stdio.h | puts | int puts(const char *string); | 스트링을 stdout에 인쇄합니다. |
stdio.h | putwchar6 | wint_t putwchar(wchar_t wc); | 와이드 문자 wc를 멀티바이트 문자로 변환하고 stdout에 기록합니다. |
stdio.h | qsort | void qsort(void *base, size_t num, size_t width, int(*compare)(const void *element1, const void *element2)); | num 요소의 배열을 빠르게 정렬합니다(각각 크기가 width바이트). |
stdio.h | quantexpd128 | _Decimal128 quantized128(_Decimal128 x, _Decimal128 y); | 4배정밀도 십진 부동 소수값의 퀀텀 지수를 계산합니다. |
stdio.h | quantexpd64 | _Decimal64 quantized64(_Decimal64 x, _Decimal64 y); | 배정밀도 십진 부동 소수값의 퀀텀 지수를 계산합니다. |
stdio.h | setbuf | void setbuf(FILE *stream, char *buffer); | stream에 대한 버퍼링을 제어합니다. |
stdio.h | setjmp | int setjmp(jmp_buf env); | 스택 환경을 저장합니다. 그러면 후속으로 longjmp에서 복원할 수 있습니다. |
stdio.h | setlocale | char *setlocale(int category, const char *locale); | locale에 정의된 변수를 변경 또는 쿼리합니다. |
stdio.h | setvbuf | int setvbuf(FILE *stream, char *buf, int type, size_t size); | stream에 대한 size 버퍼 및 버퍼링을 제어합니다. |
stdio.h | signal | void(*signal (int sig, void(*func)(int))) (int); | 신호 sig에 대한 신호 핸들러로 func를 등록합니다. |
stdio.h | snprintf | int snprintf(char *outbuf, size_t n, const char*, ...) | n자를 outbuf에 기록한 후에 함수가 중단된다는 점을 제외하고 sprintf와 동일합니다. |
stdio.h | sscanf | int sscanf(const char *buffer, const char *format, arg-list); | buffer에서 arg-list로 지정된 위치로 데이터를 읽습니다. |
stdio.h | strcasecmp | int srtcasecmp(const char *string1, const char *string2); | 대소문자를 구분하지 않고 스트링을 비교합니다. |
stdio.h | strcmp | int strcmp(const char *string1, const char *string2); | string1의 값을 string2와 비교합니다. |
stdio.h | tmpnam | char *tmpnam(char *string); | 임시 파일명을 생성합니다. |
stdio.h | toascii | int toascii(int c); | c를 7비트 US-ASCII 문자 세트의 문자로 변환합니다. |
stdio.h | va_arg | var_type va_arg(va_list arg_ptr, var_type); | 한 인수 값을 리턴하고 다음 인수를 가리키도록 arg_ptr을 수정합니다. |
stdio.h | va_copy | void va_copy(va_list dest, va_list src); | src의 사본으로 dest를 초기화합니다. |
stdio.h | vswscanf | int vswscanf(const wchar_t *buffer, const wchar_t *format, va_list arg_ptr); | 버퍼에서 가변 개수의 인수로 지정된 위치로 와이드 데이터를 읽습니다. |
stdio.h | wcrtomb4 | int wcrtomb (char *s, wchar_t wchar, mbstate_t *pss); | 와이드 문자를 멀티바이트 문자로 변환합니다. (wctomb의 재시작 가능 버전.) |
stdio.h | wcschr | wchar_t *wcschr(const wchar_t *string, wchar_t character); | string으로 가리키는 와이드 문자 스트링에서 character의 표시를 검색합니다. |
stdio.h stdarg.h | vfwscanf | int vfwscanf(FILE *stream, const wchar_t *format, va_list arg_ptr); | 지정된 스트림에서 가변 개수의 인수로 지정된 위치로 와이드 데이터를 읽습니다. |
stdio.h stdarg.h | vprintf | int vprintf(const char *format, va_list arg_ptr); | 가변 개수의 인수를 사용하여 문자를 형식화하고 stdout에 인쇄합니다. |
stdio.h stdarg.h | vsnprintf | int vsnprintf(char *outbuf, size_t n, const char*, va_list); | n자를 outbuf에 기록한 후에 함수가 중단된다는 점을 제외하고 vsprintf와 동일합니다. |
stdio.h stdarg.h | vsprintf | int vsprintf(char *target-string, const char *format, va_list arg_ptr); | 가변 개수의 인수를 사용하여 문자를 형식화하고 버퍼에 저장합니다. |
stdio.h stdarg.h | vsscanf | int vsscanf(const char*buffer, const char *format, va_list arg_ptr); | 버퍼에서 가변 개수의 인수로 지정된 위치로 데이터를 읽습니다. |
stdio.h stdarg.h | vswprintf | int vswprintf(wchar_t *wcsbuffer, size_t n, const wchar_t *format, va_list arg); | 와이드 문자 및 값의 시리즈를 형식화하고 버퍼 wcsbuffer에 저장합니다. |
stdio.h stdarg.h | vwprintf6 | int vwprintf(const wchar_t *format, va_list arg); | 가변 인수 리스트가 arg로 대체된다는 점을 제외하고 wprintf와 동일합니다. |
stdlib.h | abort | void abort(void); | 비정상적으로 프로그램을 중지합니다. |
stdlib.h | abs | int abs(int n); | 정수 인수 n의 절대값을 계산합니다. |
stdlib.h | atexit | int atexit(void (*func)(void)); | 정상 종료 시 호출할 함수를 등록합니다. |
stdlib.h | atof | double atof(const char *string); | string을 배정밀도 부동 소수점 값으로 변환합니다. |
stdlib.h | atoi | int atoi(const char *string); | string을 정수로 변환합니다. |
stdlib.h | atol | long int atol(const char *string); | string을 long integer로 변환합니다. |
stdlib.h | bsearch | void *bsearch(const void *key, const void *base, size_t num, size_t size, int (*compare) (const void *element1, const void *element2)); | num 요소의 배열에서 2진 검색을 수행합니다(각각 size바이트). 배열은 compare로 가리키는 함수에서 오름차순으로 저장되어야 합니다. |
stdlib.h | catclose6 | int catclose (nl_catd catd); | 이전에 열린 메세지 카탈로그를 닫습니다. |
stdlib.h | erf | double erf(double x); | x의 오류 함수를 계산합니다. |
stdlib.h | exp | double exp(double x); | 부동 소수점 인수 x의 지수 함수를 계산합니다. |
stdlib.h | fsetpos1 | int fsetpos(FILE *stream, const fpos_t *pos); | 현재 파일 위치를 pos로 판별된 새 위치로 이동합니다. |
stdlib.h | isalnum | int isalnum(int c); | c가 영숫자인지 테스트합니다. |
stdlib.h | log | double log(double x); | x의 자연 로그를 계산합니다. |
stdlib.h | longjmp | void longjmp(jmp_buf env, int value); | setjmp 함수에서 env에 전에 설정된 스택 환경을 복원합니다. |
stdlib.h | memchr | void *memchr(const void *buf, int c, size_t count); | 부호없는 문자로 변환된 c의 첫 번째 표시를 buf의 처음 count바이트에서 검색합니다. |
stdlib.h | memcmp | int memcmp(const void *buf1, const void *buf2, size_t count); | buf1 및 buf2의 최대 count바이트를 비교합니다. |
stdlib.h | memcpy | void *memcpy(void *dest, const void *src, size_t count); | src의 count바이트를 dest에 복사합니다. |
stdlib.h | memmove | void *memmove(void *dest, const void *src, size_t count); | src의 count바이트를 dest에 복사합니다. 겹치는 오브젝트 간 복사가 허용됩니다. |
stdlib.h | quantexpd32 | _Decimal32 quantized32(_Decimal32 x, _Decimal32 y); | 단정밀도 십진 부동 소수값의 퀀텀 지수를 계산합니다. |
stdlib.h | quantized32 | int quantexpd32(_Decimal32 x); | 단정밀도 십진 부동 소수값의 퀀텀 지수를 다른 단정밀도 십진 부동 소수값의 퀀텀 지수로 설정합니다. |
stdlib.h | regerror | size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size); | 정규식 preg에 대한 오류 코드 errcode의 설명을 찾습니다. |
stdlib.h | regexec | int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t *pmatch, int eflags); | 널 종료 스트링 string을 컴파일된 정규식 preg와 비교하여 둘 사이의 일치를 찾습니다. |
stdlib.h | regfree | void regfree(regex_t *preg); | 정규식 preg를 구현하도록 regcomp에서 할당한 메모리를 해제합니다. |
stdlib.h | strchr | char *strchr(const char *string, int c); | string에서 c의 첫 번째 표시를 찾습니다. |
stdlib.h | strtod128 | _Decimal128 strtod128(const char *nptr, char **endptr); | nptr을 4배정밀도 십진 부동 소수값으로 변환합니다. |
stdlib.h | strtof | float strtof(const char *nptr, char **endptr); | nptr을 부동 값으로 변환합니다. |
stdlib.h | strtok | char *strtok(char *string1, const char *string2); | string2에서 다음 문자로 구분된 string1의 다음 토큰을 찾습니다. |
stdlib.h | strtok_r | char *strtok_r(char *string, const char *seps, char **lasts); | seps에서 다음 문자로 구분된 string의 다음 토큰을 찾습니다. (strtok의 재시작 가능 버전.) |
stdlib.h | strtol | long int strtol(const char *nptr, char **endptr, int base); | nptr을 부호있는 long integer로 변환합니다. |
stdlib.h | strxfrm | size_t strxfrm(char *string1, const char *string2, size_t count); | string2를 변환하고 string1에 결과를 배치합니다. 변환은 프로그램의 현재 로케일에 의해 판별됩니다. |
stdlib.h | swprintf | int swprintf(wchar_t *wcsbuffer, size_t n, const wchar_t *format, arg-list); | 와이드 문자 및 값의 시리즈를 형식화하고 와이드 문자 버퍼 wcsbuffer에 저장합니다. |
stdlib.h | swscanf | int swscanf (const wchar_t *buffer, const wchar_t *format, arg-list) | buffer에서 arg-list로 지정한 위치로 데이터를 읽습니다. |
stdlib.h | tan | double tan(double x); | x의 탄젠트를 계산합니다. |
stdlib.h | wcscoll4 | int wcscoll (const wchar_t *wcs1, const wchar_t *wcs2); | 현재 로케일에서 배열 순서를 사용하여 두 와이드 문자 스트링을 비교합니다. |
stdlib.h | wcscspn | size_t wcscspn(const wchar_t *string1, const wchar_t *string2); | *string1로 가리키는 스트링의 초기 세그먼트에서 *string2로 가리키는 스트링에 나타나지 않는 wchar_t 문자 수를 판별합니다. |
string.h | memset | void *memset(void *dest, int c, size_t count); | dest에서 count바이트를 값 c로 설정합니다. |
string.h | mktime | time_t mktime(struct tm *time); | 로컬 time을 캘린더 시간으로 변환합니다. |
string.h | mktime64 | time64_t mktime64(struct tm *time); | 로컬 time을 캘린더 시간으로 변환합니다. |
string.h | modf | double modf(double x, double *intptr); | 부동 소수점 값 x를 소수 및 정수 파트로 구분합니다. |
string.h | nextafter | double nextafter(double x, double y); | x 이후 y 방향으로 다음에 표시 가능한 값을 계산합니다. |
string.h | strcpy | char *strcpy(char *string1, const char *string2); | string2를 string1에 복사합니다. |
string.h | strcspn | size_t strcspn(const char *string1, const char *string2); | string2에 포함되지 않는 문자로 구성된 string1의 초기 서브스트링 길이를 리턴합니다. |
string.h | strerror | char *strerror(int errnum); | 오류 메세지 스트링에 errnum의 오류 번호를 맵핑합니다. |
string.h | strfmon4 | int strfmon (char *s, size_t maxsize, const char *format, ...); | 통화 값을 스트링으로 변환합니다. |
string.h | strftime | size_t strftime (char *dest, size_t maxsize, const char *format, const struct tm *timeptr); | format으로 판별된 스트링에 따라, dest로 가리키는 배열에 문자를 저장합니다. |
string.h | strlen | size_t strlen(const char *string); | string 길이를 계산합니다. |
string.h | strncasecmp | int strncasecmp(const char *string1, const char *string2, size_t count); | 대소문자를 구분하지 않고 스트링을 비교합니다. |
string.h | strncmp | int strncmp(const char *string1, const char *string2, size_t count); | string1 및 string2의 최대 count자를 비교합니다. |
string.h | strpbrk | char *strpbrk(const char *string1, const char *string2); | string2에 있는 임의 문자의 첫 번째 표시를 string1에서 찾습니다. |
string.h | strptime4 | char *strptime(const char *buf, const char *format, struct tm *tm); | 날짜 및 시간 변환 |
string.h | strrchr | char *strrchr(const char *string, int c); | string에서 c의 마지막 표시를 찾습니다. |
string.h | strspn | size_t strspn(const char *string1, const char *string2); | string2에 포함된 문자로 구성된 string1의 초기 서브스트링 길이를 리턴합니다. |
string.h | strtod | double strtod(const char *nptr, char **endptr); | nptr을 배정밀도 값으로 변환합니다. |
string.h | strtod32 | _Decimal32 strtod32(const char *nptr, char **endptr); | nptr을 단정밀도 십진 부동 소수값으로 변환합니다. |
string.h | strtod64 | _Decimal64 strtod64(const char *nptr, char **endptr); | nptr을 배정밀도 십진 부동 소수값으로 변환합니다. |
string.h | strtold | long double strtold(const char *nptr, char **endptr); | nptr을 long double 값으로 변환합니다. |
string.h | strtoul | unsigned long int strtoul(const char *string1, char **string2, int base); | string1을 부호없는 long integer로 변환합니다. |
string.h | 시스템 | int system(const char *string); | string을 시스템 명령 분석기로 전달합니다. |
strings.h | strcoll | int strcoll(const char *string1, const char *string2); | 현재 로케일에서 배열 순서를 사용하여 두 스트링을 비교합니다. |
strings.h | strncpy | char *strncpy(char *string1, const char *string2, size_t count); | string2에서 최대 count자를 string1에 복사합니다. |
time.h | asctime | char *asctime(const struct tm *time); | 구조로 저장된 time을 문자 스트링으로 변환합니다. |
time.h | asctime_r | char *asctime_r (const struct tm *tm, char *buf); | 구조로 저장된 tm을 문자 스트링으로 변환합니다. (asctime의 재시작 가능 버전.) |
time.h | cos | double cos(double x); | x의 코사인을 계산합니다. |
time.h | ctime_r | char *ctime_r(const time_t *time, char *buf); | time을 문자 스트링으로 변환합니다. (ctime의 재시작 가능 버전.) |
time.h | ctime64 | char *ctime64(const time64_t *time); | time을 문자 스트링으로 변환합니다. |
time.h | ctime64_r | char *ctime64_r(const time64_t *time, char *buf); | time을 문자 스트링으로 변환합니다. (ctime64의 재시작 가능 버전.) |
time.h | difftime | double difftime(time_t time2, time_t time1); | time2 및 time1 사이의 차이를 계산합니다. |
time.h | difftime64 | double difftime64(time64_t time2, time64_t time1); | time2 및 time1 사이의 차이를 계산합니다. |
time.h | div | div_t div(int numerator, int denominator); | numerator를 denominator로 나눈 경우 몫과 나머지를 계산합니다. |
time.h | isblank | int isblank(int c); | c가 공백 또는 탭 문자인지 테스트합니다. |
time.h | iscntrl | int iscntrl(int c); | c가 제어 문자인지 테스트합니다. |
time.h | isdigit | int isdigit(int c); | c가 10진수인지 테스트합니다. |
time.h | isgraph | int isgraph(int c); | c가 공백을 제외한 인쇄 가능한 문자인지 테스트합니다. |
time.h | mblen | int mblen(const char *string, size_t n); | 멀티바이트 문자 string의 길이를 판별합니다. |
time.h | mbrlen4 | int mbrlen (const char *s, size_t n, mbstate_t *ps); | 멀티바이트 문자의 길이를 판별합니다. (mblen의 재시작 가능 버전.) |
time.h | mbrtowc4 | int mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps); | 멀티바이트 문자를 와이드 문자로 변환합니다(mbtowc의 재시작 가능 버전). |
time.h | mbsinit4 | int mbsinit (const mbstate_t *ps); | 상태 오브젝트 *ps에서 초기 상태를 테스트합니다. |
time.h | nextafterl | long double nextafterl(long double x, long double y); | x 이후 y 방향으로 다음에 표시 가능한 값을 계산합니다. |
time.h | nexttoward | double nexttoward(double x, long double y); | x 이후 y 방향으로 다음에 표시 가능한 값을 계산합니다. |
time.h | strncat | char *strncat(char *string1, const char *string2, size_t count); | string2에서 최대 count자를 string1에 연결합니다. |
time.h | strstr | char *strstr(const char *string1, const char *string2); | string1에서 string2의 첫 번째 표시에 대한 포인터를 리턴합니다. |
time.h | time64 | time64_t time64(time64_t *timeptr); | 현재 캘린더 시간을 리턴합니다. |
time.h | tmpfile | FILE *tmpfile(void); | 임시 2진 파일을 작성하고 엽니다. |
wctype.h | iswprint4 | int iswprint (wint_t wc); | 인쇄 와이드 문자가 있는지 확인합니다. |
wctype.h | iswpunct4 | int iswpunct (wint_t wc); | 영숫자, 공백 문자가 아닌 와이드 문자를 테스트합니다. |
wctype.h | iswspace4 | int iswspace (wint_t wc); | iswalnum이 false인 와이드 문자의 구현 정의 세트에 대응하는 와이드 문자가 있는지 확인합니다. |
wctype.h | iswupper4 | int iswupper (wint_t wc); | 대문자 와이드 문자가 있는지 확인합니다. |
wctype.h | iswxdigit4 | int iswxdigit (wint_t wc); | 16진수 문자가 있는지 확인합니다. |
wctype.h | isxdigit4 | int isxdigit(int c); | c가 16진수인지 테스트합니다. |
wctype.h | j0 | double j0(double x); | 순서 0의 첫 번째 종류에 대한 베셀 함수 값을 계산합니다. |
wctype.h | j1 | double j1(double x); | 순서 1의 첫 번째 종류에 대한 베셀 함수 값을 계산합니다. |
wctype.h | jn | double jn(int n, double x); | 순서 n의 첫 번째 종류에 대한 베셀 함수 값을 계산합니다. |
wctype.h | labs | long int labs(long int n); | n의 절대값을 계산합니다. |
wctype.h | ldexp | double ldexp(double x, int exp); | x에 (2의 exp제곱)을 곱한 값을 리턴합니다. |
wctype.h | ldiv | ldiv_t ldiv(long int numerator, long int denominator); | numerator/denominator 연산의 몫과 나머지를 계산합니다. |
wctype.h | localeconv | struct lconv *localeconv(void); | 현재 로케일에 따라 구조 Iconv에서 숫자 수량을 형식화합니다. |
wctype.h | localtime | struct tm *localtime(const time_t *timeval); | timeval을 유형 tm의 구조로 변환합니다. |
wctype.h | towlower4 | wint_t towlower(wint_t wc); | 대문자를 소문자로 변환합니다. |
wctype.h | towupper4 | wint_t towupper(wint_t wc); | 소문자를 대문자로 변환합니다. |
wctype.h | ungetc1 | int ungetc(int c, FILE *stream); | c를 입력 stream에 다시 푸시합니다. |
wctype.h | wcsftime | size_t wcsftime(wchar_t *wdest, size_t maxsize, const wchar_t *format, const struct tm *timeptr); | timeptr 구조의 시간 및 날짜 스펙을 와이드 문자 스트링으로 변환합니다. |
wcsncmp | int wcsncmp(const wchar_t *string1, const wchar_t *string2, size_t count); | string1의 최대 count개 와이드 문자를 string2와 비교합니다. | |
wcsncpy | wchar_t *wcsncpy(wchar_t *string1, const wchar_t *string2, size_t count); | string2에서 최대 count개 와이드 문자를 string1에 복사합니다. | |
wcspbrk | wchar_t *wcspbrk(const wchar_t *string1, const wchar_t *string2); | string2로 가리키는 스트링에서 string1로 가리키는 스트링에 있는 와이드 문자의 첫 번째 표시를 찾습니다. | |
wcsptime | wchar_t *wcsptime(const wchar_t *buf, const wchar_t *format, struct tm *tm); | 날짜 및 시간 변환. 와이드 문자를 사용한다는 점을 제외하고 strptime()과 동일합니다. | |
wcsrchr | wchar_t *wcsrchr(const wchar_t *string, wchar_t character); | string으로 가리키는 스트링에서 character의 마지막 표시를 찾습니다. | |
wcsrtombs4 | size_t wcsrtombs (char *dst, const wchar_t **src, size_t len, mbstate_t *ps); | 와이드 문자 스트링을 멀티바이트 스트링으로 변환합니다. (wcstombs의 재시작 가능 버전.) | |
wcsspn | size_t wcsspn(const wchar_t *string1, const wchar_t *string2); | string1로 가리키는 스트링의 초기 세그먼트에서 와이드 문자 개수를 계산합니다. 이 세그먼트는 string2로 가리키는 스트링에서 완전히 와이드 문자로 구성됩니다. | |
wcsstr | wchar_t *wcsstr(const wchar_t *wcs1, const wchar_t *wcs2); | wcs1에서 wcs2의 첫 번째 표시를 찾습니다. | |
wcstod | double wcstod(const wchar_t *nptr, wchar_t **endptr); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 double 값으로 변환합니다. | |
wcstod128 | _Decimal128 wcstod128(const wchar_t *nptr, wchar_t **endptr); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 4배 정밀도 십진 부동 소수값으로 변환합니다. | |
wcstod32 | _Decimal32 wcstod32(const wchar_t *nptr, wchar_t **endptr); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 단정밀도 십진 부동 소수값으로 변환합니다. | |
wcstod64 | _Decimal64 wcstod64(const wchar_t *nptr, wchar_t **endptr); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 배정밀도 십진 부동 소수값으로 변환합니다. | |
wcstof | float wcstof(const wchar_t *nptr, wchar_t **endptr); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 float 값으로 변환합니다. | |
wcstok | wchar_t *wcstok(wchar_t *wcs1, const wchar_t *wcs2, wchar_t **ptr) | wcs1을 토큰 순서로 구분합니다. 각각 wcs2로 가리키는 와이드 스트링의 와이드 문자로 구분합니다. | |
wcstol | long int wcstol(const wchar_t *nptr, wchar_t **endptr, int base); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 long integer 값으로 변환합니다. | |
wcstold | long double wcstold(const wchar_t *nptr, wchar_t **endptr); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 long double 값으로 변환합니다. | |
wcstombs | size_t wcstombs(char *dest, const wchar_t *string, size_t count); | wchar_t string를 멀티바이트 스트링 dest로 변환합니다. | |
wcstoul | unsigned long int wcstoul(const wchar_t *nptr, wchar_t **endptr, int base); | nptr로 가리키는 와이드 문자 스트링의 초기 부분을 부호없는 long integer 값으로 변환합니다. | |
wcsxfrm4 | size_t wcsxfrm (wchar_t *wcs1, const wchar_t *wcs2, size_t n); | 문자 배열 가중치를 나타내는 값으로 와이드 문자 스트링을 변환하고 결과 와이드 문자 스트링을 배열에 배치합니다. | |
wctob | int wctob(wint_t wc); | 초기 시프트 상태인 경우 멀티바이트 문자 표시가 1바이트인 확장된 문자 세트의 멤버에 wc가 대응하는지 여부를 판별합니다. | |
wctomb | int wctomb(char *string, wchar_t character); | character의 wchar_t 값을 멀티바이트 string으로 변환합니다. | |
wctrans | wctrans_t wctrans(const char *property); | 스트링 인수 특성으로 식별된 와이드 문자 사이에서 맵핑을 설명하는 wctrans_t 유형의 값을 구성합니다. | |
wctype4 | wctype_t wctype (const char *property); | 문자 특성 분류에 대한 핸들을 가져옵니다. | |
wcwidth | int wcswidth(const wchar_t *pwcs, size_t n); | 와이드 문자 스트링의 표시 너비를 판별합니다. | |
wmemchr | wchar_t *wmemchr(const wchar_t *s, wchar_t c, size_t n); | s에서 가리킨 오브젝트의 처음 n개 와이드 문자에서 c의 첫 번째 표시를 찾습니다. | |
wmemcmp | int wmemcmp(const wchar_t *s1, const wchar_t *s2, size_t n); | s1에서 가리킨 오브젝트의 처음 n개 문자를 s2에서 가리킨 오브젝트의 처음 n개 와이드 문자와 비교합니다. | |
wmemcpy | wchar_t *wmemcpy(wchar_t *s1, const wchar_t *s2, size_t n); | n개의 와이드 문자를 s2에서 가리킨 오브젝트에서 s1에서 가리킨 오브젝트로 복사합니다. | |
wmemmove | wchar_t *wmemmove(wchar_t *s1, const wchar_t *s2, size_t n); | n개의 와이드 문자를 s2에서 가리킨 오브젝트에서 s1에서 가리킨 오브젝트로 복사합니다. | |
wmemset | wchar_t *wmemset(wchar_t *s, wchar_t c, size_t n); | s에서 가리킨 오브젝트의 처음 n개 와이드 문자에 c의 값을 복사합니다. | |
wprintf6 | int wprintf(const wchar_t *format, arg-list); | wprintf에 대한 인수 이전에 삽입된 인수 stdout를 포함하는 fwprintf와 동일합니다. | |
wscanf6 | int wscanf(const wchar_t *format, arg-list); | wscanf의 인수 이전에 삽입된 인수 stdin을 포함하는 fwscanf와 동일합니다. | |
y0 | double y0(double x); | 순서 0의 두 번째 종류에 대한 베셀 함수 값을 계산합니다. | |
y1 | double y1(double x); | 순서 1의 두 번째 종류에 대한 베셀 함수 값을 계산합니다. | |
yn | double yn(int n, double x); | 순서 n의 두 번째 종류에 대한 베셀 함수 값을 계산합니다. |
970. JAVA의 변수와 자료형
- String 문자열 타입 : CAR을 저장할 때 사용
972. 교착상태의 해결방법
- 예방 (Prevention)
- 교착 상태가 발생하지 않도록 사전에 시스템을 제어
- 교착 상태 발생의 네가지 조건 중 어느 하나를 제거(부정)함으로써 수행
- 자원의 낭비가 가장 심한 기법
- 회피 (Avoidance)
- 교착 상태가 발생할 가능성을 배제하지 않고 교착 상태가 발생하면 적절히 피하는 방법
- 대표적인 기법 : 은행원 알고리즘 (Banker's Algorithm) - 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래한 기법
- 발견 (Detection)
- 시스템에 교착 상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것
- 교착 상태 발견 알고리즘과 자원 할당 그래프 사용 가능
- 회복 (Recovery)
- 교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복
973. CIDR 표기를 서브넷 마스크로 전환하는 방법
- XXX.XXX.XXX.XX/NN : / 기호 뒤의 NN을 확인해야 함
- NN이 28이므로 /24에서 4개의 비트를 Net ID로 더 가져왔다는 의미 (Net ID 개수가 28개)
- 28개일 때의 서브넷 마스크는 255.255.255.240
- 240 : 마지막 8개 비트에서 Nedt ID로 할당한 4개를 1로 세팅한 후 10진수로 표현
975. 페이징 기법의 페이지 크기에 따른 특징
- 페이지 크기가 작을 경우
- 페이지 단편화 감소 : 한 개의 데이터를 주 기억장치로 이동하는 시간이 줄어듬
- 불피룡한 내용이 주기억 장치에 적재될 확률이 적음 : 효율적인 워킹 셋 유지
- Locality에 더 일치 : 기억장치 효율 향상
- 페이지 정보를 갖는 페이지 앱 테이블의 크기가 커지고, 매핑 속도가 늦어짐
- 디스크 접근 횟수가 많아져서 전체적인 입출력 시간은 늘어남
- 페이지 크기가 클 경우
- 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지고 매핑 속도가 빨라짐
- 디스크 접근 횟수가 줄어들어 전체적인 입출력의 효율성 증가
- 페이지 단편화 증가 : 한 개의 페이지를 주 기억장치로 이동하는 시간이 늘어남
- 프로세스 수행에 불필요한 내용도 주기억장치에 적재될 수 있음
976. 응집도
응집도 약함 | |
우연적 응집도 | 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도 |
논리적 응집도 | 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도 |
시간적 응집도 | 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도 |
절차적 응집도 | 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도 |
교환적 응집도 | 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우 응집도 |
순차적 응집도 | 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도 |
기능적 응집도 | 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도 |
응집도 강함 |
977. C언어의 연산자 우선 순위
- 괄호, 대괄호 → 부정, 증감 산술 연산자 → 곱셈, 나눗셈 산술 연산자 → 덧셈, 뺄셈 산술 연산자 → 시프트 연산자 → 관계 연산자 → 논리 연산자 → 삼항 연산자 → 대입 연산자
- 괄호 대괄호 : (), []
- 부정, 증감 산술 연산자 : !, ~, ++, --
- 곱셈, 나눗셈 산술 연산자 : *, /, %
- 덧셈, 뺄셈 산술 연산자 : +, -
- 시프트 연산자 : ≫, ≪
- 관계 연산자 : <, <=, >, >=
- 논리 연산자 : &, ^, |, &&, ||
- 삼항 연산자 : ?, :
- 대입 연산자 : =, +=, -=, *=, /=
980. 페이지 교체 알고리즘
- OPT
- 추후 가장 오랫동안 사용하지 않을 페이지 교체
- 호출 순서 및 참조상황 사전 예측 필요
- FIFO
- 적재시간 기억, 오래된 페이지 교체
- 이해성, 프로그래밍 간단, Belady's 이상현상 발생
- LRU
- 최근 가장 오랫동안 미사용 페이지 교체
- 계수기, 스택 사용
- LFU
- 사용 페이지 빈도수가 가장 적은 페이지 교체
- 프로그램 실행 초기 많이 사용된 페이지 유리
- NUR
- 최근에 사용하지 않은 페이지 교체
- 참조비트, 변형 비트 사용
982. 접근통제 정책
- 임의 접근 통제 (DAC)
- 시스템 객체에 대한 접근을 사용자 개인 또는 그룹의 식별자를 기반으로 제한
- 주체와 객체의 신분 및 임의적 접근 통제 규칙에 기초하여 객체에 대한 주체의 접근을 통제
- 통제 권한 : 주체에 있음 - 주체가 임의적으로 접근 통제 권한 배분 가능
- 강제 접근 통제 (MAC)
- 정보 시스템 내에서 어떤 주체가 특정 객체에 접근하려 할 때 양쪽의 보안 레이블에 기초하여 높은 보안 수준을 요구하는 정보가 낮은 보안 수준의 주체에게 노출되지 않도록 접근 제한
- 통제 권한 : 제 3자 - 주체는 접근 통제 권한과 무관
- 역할 기반 접근 통제 (RBAC)
- 사용자가 주어진 역할에 대한 접근 권한을 부여받는 방식
- 사용자가 바뀌어도 역할 변화 없음
- 통제 : DB 작업 권한 통제, 운영체제 작업 권한 통제
983. 스토리지 유형
- DAS
- 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
- 서버에서 저장 장치 관리
- 속도가 빠르고 설치 및 운영이 용이
- 초기 구축 비용 및 유지보수 비용 저렴
- 직접 연결 방식 : 다른 서버에서 접근 불가, 파일 공유 불가
- 확장성 및 유연성이 떨어짐
- 저장 데이터가 적고 공유가 필요없는 환경에 적합
- NAS
- 서버와 저장장치를 네트워크를 통해 연결하는 방식
- 별도의 파일 관리 기능이 있는 NAS Storage가 내장된 저장장치를 직접 관리
- Ethernet 스위치를 통해 다른 서버에서도 스토리지에 접근 가능 : 파일 공유 가능, 장소에 구애 맏지 않고 저장장치에 쉽게 접근 가능
- 확장성, 유연성 우수
- 접속 증가 시 성능 저하
- SAN
- DAS의 빠른 처리 + NAS의 파일 공유 장점 혼합
- 서버와 저장 장치를 연결하는 전용 네트워크 별도 구성
- 광 채널 FC 스위치를 이용하여 네트워크 구성
- 서버나 저장장치를 광케이블로 연결하여 처리 속도가 빠름
- 저장장치를 공유함으로써 여러 개의 저장장치나 백업 장비 단일화
- 확장성, 유연성, 가용성이 뛰어남
- 높은 트랜잭션 처리에 효과적
- 기존 시스템의 경우 장비의 업그레이드가 필요, 초기 설치 비용 부담
986. CWE(Common Weakness Enumeration) 보안 약점
- 입력 데이터 검증 및 표현
- 보안 기능
- 시간 및 상태
- 에러 처리
- 코드 품질
- 캡슐화
- API 악용
987. 보안 약점
- SQL 삽입
- 웹 응용 프로그램에서 SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회
- 동적 쿼리에서 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지
- 경로 조작 및 자원 삽입
- 데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제
- 사용자 입력값을 식별자로 사용하는 경우 경로 순회 공격 방지 필터를 사용하여 방지
- 크로스사이트 스크립팅
- 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취, 비정상적인 기능 수행 유발
- HTML 태그 제한, 스크립트에 삽입되지 않도록 문자를 다른 문자로 치환하여 방지
- 운영체제 명령어 삽입
- 외부 입력값을 통해 시스템 명령어의 실행을 유도하여 권한을 탈취, 시스템 장애 유발
- 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지
- 위험한 형식 파일 업로드
- 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템 손상, 시스템을 제어
- 업로드 되는 파일의 확장자 제한, 파일명 암호화, 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 방법으로 방지
- 신뢰되지 않는 URL 주소로 자동접속 연결
- 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도
- 연결되는 외부 사이트의 주소를 화이트 리스트로 관리함으로써 방지
- 메모리 버퍼 오버플로
- 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생, 프로그램 오작동 유발 및 악의적인 코드 실행으로 공격자가 프로그램을 통제할 수 있는 권한 획득
- 적절한 버퍼의 크기 설정, 설정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있도록 함으로써 방
988. 공개키 암호화 (Public Key System)
- 비대칭키 암호화
- 공개키와 개인키라는 두 개의 암호화 키를 사용해서 암호화하고 복호화하는 방법
- 송신자 : 공개키를 수신 받은 후 공개키로 암호화하여 메시지 전송
- 수신자 : 개인키로 복호화
- 장점 : 대칭키 암호화 기법의 키 공유 문제 해결
- 단점 : 암호화 키의 길이가 길어서 암호화 및 복호화 성능이 대칭키 암호화 기법보다 떨어짐
990. DRDos (분산 반사 서비스 거부 공격)
- DRDoS의 정의
- 정상적인 서비스를 작동 중인 서버를 reflection으로 트래픽을 증폭시켜 공격하는 기법
- DDoS 공격의 에이전트 설치 상의 어려움을 보완, TCP 프로토콜 및 라우팅 테이블 운영상의 취약성 이용
- 정상 서버를 에이전트화하여 공격하는 기법
- DRDoS의 공격 원리 및 대응 방안
- TCP 취약성 (3-Way Handshake), BGP 취약성, Reflection서버 (다수 라우터, 대용량 대역폭 서비스)
- 서버 보호, 클라이언트 보호, ISP 업체를 통한 통제
- DRDoS의 대표적 공격 루틴
- 악의를 가진 해커가 타겟을 찾은 후 해당 타겟으로 자신 위조
- 위조된 신분으로 인터넷 서비스를 정상적으로 사용중인 서버나 웹 서비스 요청
- 웹 서비스를 요청 받은 서버, 라우터 등이 위조된 목적지로 응답
- 실제 타겟은 아무것도 모른 채 엄청난 양의 응답을 받고 서비스 거부
992. 네트워크 보안 솔루션
- 방화벽
- 내부 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 수행하는 보안 시스템
- UTM
- 다중 위협에 대해 보호 기능을 제공할 수 있는 포괄적 보안 시스템
- 방화벽, 안티바이러스, 콘텐츠 필터링 등 하나의 패키지로 통합되어 있는 형태
- Ant-DDos
- 서비스에 대한 정당한 접근을 방해하거나 차단하고자 네트워크에 분산되어 있는 많은 에이전트를 이용하여 공격 대상 서버에 동시에 과도한 서비스 요청을 발생시키는 공격을 차단하기 위한 보안 솔루션
- VPN
- 인터넷 망에 사설망을 구축하여 이용자가 전용망 없이 사용할 수 있게 하는 보안 솔루션
- NAC (네트워크 접근 제어)
- 사용자 PC가 내부 네트워크에 접근하기 전에 보안 정책을 준수 했는지 검사하여 네트워크 접속을 통제하는 기술
- IDS
- 네트워크에서 송 / 수신 되는 데이터의 비정상적인 사용, 오남용을 실시간으로 탐지하는 보안 솔루션
- IPS
- 네트워크에서 공격 서명을 찾아내어 자동으로 조치를 취함으로서 비정상적인 트래픽을 중단시키는 보안 솔루션
- 수동적인 방어 개념의 침입 차단 시스템, 침입 탐지 시스템과 달리 침입 경고 이전에 공격을 중단시키는데 중점을 둔 침입 유도 기능과 자동 대응 기능이 합쳐진 솔루션
994. 웹 프로토콜 방화벽 솔루션 (WAF)
- WAF의 개념
- 일반적인 네트워크 방화벽과는 달리 웹 애플리케이션 보안에 특화되어 개발된 솔루션
- SQL Injection, Cross-Site Scripting (XSS) 등과 같은 웹 공격을 탐지하고 차단하는 기능 수행
- WAF의 주요 기능
- Request Validation : 사용자 요청 검증
- 어플리케이션 접근 제어, 과다 요청 제어 (Web DoS)
- 버퍼 오버 플로우 차단, SQL / 스크립트 차단
- 업로드 파일 / 요청 형식 검사
- Content Protection : 컨텐츠 보호
- 신용 카드 정보 유출 차단, 주민 등록번호 유출 차단
- 웹 변조 방지, 응답 형식 검사, 코드 노출 차단
- Cloacking : 위장
- 서버존 가상화 URL 변환, 부하 분산
- 사용자에게 제공되는 정보 중 일부 위장
- Request Validation : 사용자 요청 검증
- WAF의 유형
- 설계 방식에 따른 유형
- N/W 기반 : 네트워크 구간에 인라인 트랜스 패런트 및 프락시 방식으로 구성되며 전송되는 웹 트래픽에 대한 분석 및 차단 기능 수행
- Host 기반 : 각 웹 서버에 설치된 보안 에이전트와 마스터 서버, 관리용 콘솔 환경으로 구성
- 처리 방식에 따른 유형
- Proxy 방식 : 웹 서버 앞단에서 웹 방화벽이 클라이언트 요청을 받아 필터링 처리 후 다시 웹 서버와 재접속을 맺는 방식
- Filtering 방식 : 웹 방화벽이 웹 서버의 플러그인 모듈처럼 동작하는 방식
- 설계 방식에 따른 유형
996. 개발 방법 프로세스 - CBD 방법론
- 재사용이 가능한 컴포넌트의 개발 또는 상용 컴포넌트들을 조합하여 애플리케이션 개발 생산성과 품질 향상
- 시스템 유지 보수 비용 최소화
998. 해쉬 기법
- 하나의 문자열을 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 단방향 암호화 방식
- 정보의 위변조 (정보 무결성) 를 확인하기 위한 방법
- 전자서명, 부인방지, 전자봉투 등에 활용
999. 암호화 알고리즘
- 암호화 키와 복호화 키가 동일한 암호화 기법
- 암호문을 송신하거나 수신하는 사용자는 사전에 암호화 키를 교환해야 함
- 암호화 키와 복호화 키 둘 다 비밀키
- 부인 방지 여부가 불가능하고 키의 관리가 복잡함
- 안전한 인증이 어려움
- 구현이 용이하며 암호화 속도가 빠르고 경제성이 높음, 변형이 가능함
- 암호화 알고리즘의 구현 방식 : 블록, 스트림 암호화
- 적용 알고리즘 : DES, 3DES, SEED, AES, IDEA
1000. 오버플로우 해결 방법
- 선형 개방 주소법
- 충돌이 발생한 다음 위치에서 차례로 검색하여 첫번째 빈공간에 저장
- 레코드 전체 개수를 미리 예측 가능할 경우 적용 가능한 방법
- 체인법
- 오버플로가 발생한 레코드를 별도의 버킷으로 연결하여 저장
- 링크를 위한 오버 헤드 발생, 레코드 개수 예측이 어려울 경우 적용
- 다중 해싱법 (확장 해싱)
- 키의 처음 비트를 이용하여 디렉토리를 통해 버킷에 접근 가능
- 버킷에 오버플로가 발생할 경우 새로운 버킷을 생성하고 디렉토리의 포인터를 변경하거나 디렉토리를 확장
- 스택 가드 (Stackguard)
- 카나리 (carnary, 무결성 체크용 값) 사용
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 1 ~ 50 오답정리 (1) | 2025.03.28 |
---|---|
[정보처리기사 필기] 기출문제 - 901 ~ 950. 오답노트 (0) | 2025.03.26 |
[정보처리기사 필기] 기출문제 - 851~ 900. 오답노트 (1) | 2025.03.25 |
[정보처리기사 필기] 기출문제 - 801~ 850. 오답노트 (0) | 2025.03.24 |
[정보처리기사 필기] 기출문제 - 751 ~ 800. 오답노트 (0) | 2025.03.20 |