메인 콘텐츠로 이동하기
  1. 6개월, 혹은 그 이상의 보안 여정/

2025.10.27 (Day 1) 파이썬 기초 및 보안 활용 종합 학습 로그

·2 분·

2025.10.27 (Day 1) 파이썬 기초 및 보안 활용 종합 학습 로그 #

1. 주요 개념 요약 #

  • 컴파일 vs 인터프리터: 파이썬은 인터프리터 기반 언어이므로 실행 시점에 변수 타입을 확인하는 과정이 동반된다. 따라서 정확한 데이터 처리를 위해 type() 함수를 통한 타입 체크 습관이 중요하다.
  • 식별자 규칙: 숫자로 시작할 수 없으며 예약어 사용이 제한된다. 클래스 명명에는 PascalCase를, 변수나 함수에는 CamelCase를 적용하는 관례를 따른다.
  • 함수와 메서드: 함수는 독립적인 실행 단위를 가지나, 메서드는 특정 인스턴스에 종속되어 동작한다는 차이가 있다.
  • Built-In Type: List, String, Tuple은 인덱싱과 슬라이싱을 지원한다. 특히 Tuple과 String은 생성 후 변경이 불가능한 Immutable 특성을 가지므로 데이터 무결성 관리에 활용된다.
  • Truthy & Falsy: 수치 1은 True로, 0이나 빈 컨테이너([], “")는 False로 판정되는 논리 구조를 이해해야 조건문 설계 시 오류를 줄일 수 있다.

2. 코드 활용 사례 #

A. 슬라이싱 패턴 #

  • 대량의 문자열 데이터에서 특정 위치의 값만 반복적으로 추출할 때 스텝 슬라이싱을 활용한다.
strEx = '홀짝홀짝...' 
print(strEx[::2])   # 특정 패턴의 데이터만 필터링

B. 딕셔너리 안전 접근 (KeyError 방지) #

  • 보안 로그 파싱 중 특정 키가 존재하지 않을 경우 프로그램이 중단되는 것을 막기 위해 .get() 메서드 사용을 원칙으로 한다.
userInfo = {'name': 'jslim'}
role = userInfo.get('role', 'guest') # 키 부재 시 기본값 반환으로 예외 방지

C. F-String 포맷팅 #

  • 로그 출력 시 가독성을 높이고 향후 파싱이 용이하도록 숫자 포맷팅을 적용한다.
num = 1234567.8912
# 천단위 구분자 기입 및 정렬을 통한 로그 가독성 확보
print(f"로그 포맷: {num:,} | 정렬: {num:020.2f}")

3. 보안 관점 적용 #

  • Set을 활용한 중복 탐지: 데이터 중복을 허용하지 않는 Set의 특성은 동일 토큰을 이용한 중복 로그인이나 비정상적인 반복 요청을 탐지하는 로직에 적합하다.
# 기존 토큰 집합과 대조하여 중복 발생 시 보안 경고 발생
if token in userTokens: raise ValueError("Potential Token Reuse Detected") 
  • 로그 데이터의 구조화: 다중 라인 문자열과 F-string을 조합하면 SIEM 등에서 분석하기 쉬운 정형화된 로그를 생성할 수 있다. 이는 탐지 규칙 생성 효율을 높인다.
  • 데이터 구조의 목적성: 단순 이벤트 발생 순서는 List에 기록하고, 사용자 세션이나 자산 정보와 같이 구조화된 데이터는 JSON과 호환되는 Dict 구조를 사용하여 관리 효율을 높인다.