C언어
C 언어
함수, 메모리, 컴파일, 포인터 개념을 보안 탐지엔진 구현 관점에서 정리한 C 언어 학습 기록
C 언어는 시스템 가까이에서 동작하는 프로그램을 만들 때 중요하다.
웹 접근 제어 프로젝트에서는 C를 탐지엔진이나 패킷 처리 모듈처럼 빠르고 낮은 레벨의 처리가 필요한 부분에 사용할 수 있다.
C를 공부하는 이유
Python이나 Django는 웹 서비스와 데이터 처리에는 편하지만, 네트워크 패킷처럼 낮은 레벨의 데이터를 빠르게 다루는 데는 C가 더 적합할 수 있다.
프로젝트에서 C가 맡을 수 있는 역할:
- 패킷 감지
- 요청 정보 추출
- URL 또는 IP 정보 전달
- Python ML API 호출 전 데이터 정리
- 빠른 탐지 모듈 구현
기본 구조
C 프로그램은 보통 main 함수에서 시작한다.
c
#include <stdio.h>
int main(void) {
printf("hello\n");
return 0;
}컴파일 후 실행한다.
bash
gcc main.c -o main
./main함수
함수는 반복되는 처리를 나누는 단위다.
c
int add(int a, int b) {
return a + b;
}공부 메모에서 function 관련 내용이 따로 정리되어 있었고, C에서는 함수 선언, 매개변수, 반환값을 정확히 이해하는 것이 중요하다.
포인터와 메모리
C에서 가장 중요한 개념은 포인터다.
포인터는 값 자체가 아니라 값이 저장된 메모리 주소를 다룬다.
c
int number = 10;
int *ptr = &number;보안이나 네트워크 관련 코드를 다룰 때는 버퍼, 문자열, 메모리 주소를 안전하게 다루는 것이 중요하다.
문자열 처리
C의 문자열은 문자 배열이다.
c
char url[] = "http://example.com";URL 탐지엔진을 만든다면 문자열에서 다음 정보를 뽑아낼 수 있어야 한다.
- protocol
- domain
- path
- query string
- 특수문자 개수
- 의심 키워드 포함 여부
프로젝트와 연결되는 부분
AI 웹접근제어 프로젝트에서 C는 전체 판단을 모두 담당하지 않아도 된다.
역할을 나누면 구조가 더 안정적이다.
text
C 탐지엔진
→ 요청 정보 추출
→ Python ML API로 전달
→ 예측 결과 수신
→ 차단 / 허용 처리정리하면 C 공부의 목표는 문법 암기가 아니라 시스템 가까이에서 데이터를 안전하게 다루는 감각을 만드는 것이다.