반응형

2025/02 115

C 표준 라이브러리 string.h 개요 및 문자열 관련 함수 (strlen, strcpy, strncpy)

C 표준 라이브러리 string.h 개요 및 문자열 관련 함수 (strlen, strcpy, strncpy)C 언어에서 문자열 처리는 표준 라이브러리 를 통해 제공됩니다. string.h는 문자열을 다루는 다양한 함수들을 포함하고 있으며, 이를 활용하면 문자열의 길이를 측정하거나 복사하는 등의 작업을 쉽게 수행할 수 있습니다.이번 포스팅에서는 string.h의 개요와 함께 문자열 관련 주요 함수 중 strlen, strcpy, strncpy에 대해 살펴보겠습니다.1. 개요는 문자열과 관련된 다양한 함수를 포함하고 있는 헤더 파일입니다. 이 헤더 파일에 정의된 함수들은 다음과 같은 작업을 수행할 수 있습니다.문자열 길이 측정 (strlen)문자열 복사 (strcpy, strncpy)문자열 연결 (strc..

Bash Shell Script로 반복 작업 자동화하기

Bash Shell Script로 반복 작업 자동화하기Linux는 Bash Shell Script를 사용하여 반복적인 작업을 자동화하기에 최적화된 환경을 제공합니다. 이번 포스팅에서는 Bash Shell Script를 이용해 백업 작업과 로그 정리 작업을 자동화하는 예제를 통해 효율적인 스크립트 작성 방법을 소개하겠습니다.1. 반복 작업 자동화의 필요성서버 관리나 시스템 운영 중에는 반복적인 작업이 자주 발생합니다. 예를 들어:특정 디렉토리의 데이터를 주기적으로 백업오래된 로그 파일을 주기적으로 삭제하여 디스크 공간 확보이러한 작업을 자동화하면 시간과 노력을 절약할 수 있으며, 실수를 방지할 수 있습니다.2. 자동 백업 스크립트 예제요구 사항특정 디렉토리(/home/user/data)를 /backup/d..

Bash Script에서 `curl`과 `jq` 사용법 [ 외부 프로그램 활용하기 ]

Bash Script에서 curl과 jq 사용법 (외부 프로그램 활용하기)Bash 스크립트는 단순히 명령어를 나열하는 수준을 넘어 외부 프로그램을 활용하여 더욱 강력하고 유연한 스크립트를 작성할 수 있습니다. 특히 API 호출 및 JSON 데이터 처리를 위해 curl과 jq는 매우 유용합니다. 이번 포스팅에서는 이 두 가지 프로그램을 사용하는 방법과 예제를 통해 실용적인 스크립트를 작성하는 방법을 알아보겠습니다.1. curl의 소개 및 기본 사용법curl은 URL을 통해 데이터를 전송하거나 가져오는 데 사용되는 명령어입니다. HTTP, HTTPS, FTP 등 다양한 프로토콜을 지원합니다.1.1 curl의 기본 형식curl [옵션] [URL]1.2 주요 옵션-X: 요청 메서드 지정(GET, POST, PU..

C 파일 에러 처리 함수(perror, clearerr, feof, ferror)

C 파일 에러 처리 함수(perror, clearerr, feof, ferror)C 언어에서 파일 입출력 중 에러가 발생할 수 있으며, 이러한 에러를 처리하는 기능이 필요합니다. stdio.h 헤더 파일에는 파일 관련 오류를 확인하고 처리할 수 있는 여러 함수가 제공됩니다. 오늘은 perror, clearerr, feof, ferror 함수에 대해 알아보고 예제 코드를 통해 실제 동작을 확인해 보겠습니다.1. perror 함수perror 함수는 마지막으로 발생한 시스템 오류 메시지를 출력하는 함수입니다. 파일 처리 과정에서 오류가 발생하면 perror를 이용해 어떤 오류가 발생했는지 확인할 수 있습니다.사용법void perror(const char *s);s: 오류 메시지 앞에 출력할 문자열입니다.예제#..

C 언어 파일 포인터와 위치 조정 - fseek, ftell, rewind

C 언어 파일 포인터와 위치 조정 - fseek, ftell, rewindC 언어에서 파일을 다룰 때 파일 포인터를 사용하여 원하는 위치로 이동하고, 현재 위치를 확인하는 기능이 필요합니다. 이를 위해 stdio.h에서 제공하는 fseek, ftell, rewind 함수를 사용할 수 있습니다.이번 글에서는 파일 포인터의 개념과 함께 fseek, ftell, rewind 함수의 사용법을 예제 코드와 함께 설명하겠습니다.1. 파일 포인터란?C 언어에서 파일은 스트림(stream)으로 관리되며, FILE * 타입의 파일 포인터를 통해 조작됩니다. 파일 포인터는 현재 파일에서 읽기/쓰기 작업을 수행할 위치를 가리킵니다.파일의 특정 위치로 이동하거나 현재 위치를 확인하려면 fseek, ftell, rewind 함..

Bash Shell Script 실행 속도 최적화

Bash Shell Script 실행 속도 최적화Bash Shell Script는 간단한 작업 자동화부터 복잡한 시스템 관리까지 다양한 용도로 사용됩니다. 하지만 스크립트가 커지고 복잡해질수록 실행 속도가 느려질 수 있습니다. 오늘은 Bash Shell Script의 실행 속도를 최적화하기 위한 실용적인 방법들을 살펴보겠습니다.1. 불필요한 프로세스 호출 줄이기문제awk, sed, grep 같은 외부 명령어는 강력하지만, 호출할 때마다 새로운 프로세스가 생성되어 실행 속도가 느려질 수 있습니다.해결 방법가능한 한 Bash 내장 기능을 사용하여 외부 명령 호출을 줄입니다.예제비효율적인 코드#!/bin/bash# 외부 명령어 호출value=$(echo "12345" | awk '{print $1}')echo..

NP 문제와 NP-완전 문제

NP 문제와 NP-완전 문제NP 문제와 NP-완전 문제는 컴퓨터 과학에서 중요한 개념으로, 특히 알고리즘의 효율성과 복잡도를 이해하는 데 있어 핵심적인 역할을 합니다. 이 글에서는 NP와 NP-완전 문제에 대한 개념을 이해하고, Java와 C로 간단한 예제를 통해 이를 더 깊이 탐구해 보겠습니다.P와 NP 문제먼저 P와 NP 문제를 설명하겠습니다. P는 다항시간 내에 해결 가능한 문제의 집합을 의미합니다. 즉, P 문제는 효율적으로 해결할 수 있는 문제들로, 입력 크기에 비례하여 계산 시간이 다항식으로 증가하는 문제들입니다.예를 들어, 정렬 알고리즘이나 최단 경로를 찾는 알고리즘 등은 모두 P 문제에 속합니다. 이러한 문제들은 입력이 주어졌을 때 다항시간 안에 해결할 수 있기 때문에 실용적으로 효율적입니..

C언어 표준 입출력 (stdio.h) - fprintf와 fscanf 사용법

C언어 표준 입출력 (stdio.h) - fprintf와 fscanf 사용법C언어에서 파일 입출력은 매우 중요한 기능 중 하나입니다. 표준 라이브러리인 stdio.h를 사용하면 파일을 읽고 쓸 수 있으며, 특히 fprintf와 fscanf는 포맷팅된 데이터를 파일에 기록하거나 읽을 때 유용합니다. 이번 포스팅에서는 fprintf와 fscanf의 기본 개념과 사용법을 살펴보고, 실용적인 예제를 통해 이해를 돕겠습니다.1. fprintf와 fscanf 개요fprintf 함수fprintf 함수는 포맷을 지정하여 파일에 데이터를 출력하는 함수입니다. printf와 비슷한 방식으로 동작하지만, 결과를 표준 출력이 아닌 파일에 기록합니다.fprintf 함수 원형int fprintf(FILE *stream, cons..

Bash Shell Script awk와 sed를 활용한 데이터 처리

Bash Shell Script awk와 sed를 활용한 데이터 처리Linux 환경에서 데이터를 처리하거나 파일 내용을 분석할 때, awk와 sed는 강력한 도구로 활용됩니다. 이 글에서는 두 명령어의 기본 개념과 주요 사용법을 알아보고, 실습 예제를 통해 활용 방법을 익혀보겠습니다.awk 소개awk는 텍스트 파일을 줄 단위로 읽고, 특정 조건에 맞는 데이터를 추출하거나 가공할 수 있는 강력한 텍스트 처리 도구입니다.awk의 기본 문법awk 'pattern { action }' filepattern: 데이터를 필터링하는 조건 (예: 특정 문자열 포함 여부).action: 조건에 맞는 데이터에 수행할 작업 (예: 출력, 계산 등).file: 처리 대상 파일.주요 필드 변수$0: 현재 줄 전체.$1, $2,..

페르마트(Fenwick Tree) 트리와 세그먼트(Segment Tree) 트리

페르마트(Fenwick Tree) 트리와 세그먼트(Segment Tree) 트리고급 데이터 구조는 복잡한 문제들을 효율적으로 해결하기 위해 필수적입니다. 특히 대규모 데이터 처리나 실시간 쿼리에서 효율성을 극대화할 수 있는 자료구조는 성능을 크게 향상시킬 수 있습니다. 오늘 소개할 고급 데이터 구조로는 페르마트 트리(Fenwick Tree, 또는 Binary Indexed Tree)와 세그먼트 트리(Segment Tree)가 있습니다. 이 두 가지 자료구조는 주로 배열에 대한 구간 합 계산이나 업데이트 작업을 효율적으로 수행하는 데 사용됩니다.페르마트 트리 (Fenwick Tree)페르마트 트리는 주로 누적 합 계산 및 부분 합 업데이트를 빠르게 수행하기 위한 자료구조입니다. 이를 통해 $O(\log n..

반응형