2025/03 3

ReDos Attack으로 실제 서비스 분석하기

1. Regex정규식은 특정한 규칙(전화번호, 이메일)을 갖는 문자열의 집합을 다루는 데 사용하는 언어입니다. 다양한 언어에서 형식, 검증, 검색 치환을 위해서 지원하고 있습니다.2. 정규식 사용법2-1. 매칭 패턴대문자 영어는 아닌 것을 뜻합니다.패턴의미a-zA-Z, 0-9, ㄱ-ㅎ-으로 범위를 지정한다.\d, \D숫자\w, \W알파벳, 숫자, 언더스코어\s, \S스페이스 공백\특수문자특수기호2-2. 검색 패턴패턴의미|OR[ ]괄호안의 문자 중 하나[^문자 ]괄호안의 문자를 제외한 것^문자열특정 문자열로 시작문자열$특정 문자열로 끝남()그룹화(?:패턴)그룹 검색\b, \B단어의 처음, 끝2-3. 수량 표현패턴의미?최대 1개*있거나 없거나+최소 1개{min, max}최소 ~ 최대전화번호 정규식을 예시로 ..

카테고리 없음 2025.03.20

파이썬의 기이한 특징들

1. 256 is 256은 참, 257 is 257은 거짓파이썬의 비교 연산자에는 ==와 is가 있습니다.==는 두 객체가 같은 값을 갖고 있는지를 비교하지만 is 연산자는 두 객체의 id값이 동일한 값인지를 검사합니다.id는 파이썬의 객체를 구별하는 값이라고 생각하면 됩니다.>>> a = 10>>> b = 10.0>>> a == bTrue>>> a is bFalse10과 10.0의 값은 같지만 서로 다른 객체이기 때문에 is 비교연산자로 서로의 id값을 비교하게 되면 False가 됩니다.>>> (id(a), id(b))(4343095344, 4344870928) 파이썬은 새로운 정수 객체를 만들어서 메모리에 올리는 시간이 짧은 편입니다.그 이유는 CPython 인터프리터에서 최적화를 위해 -5 ~ 25..

카테고리 없음 2025.03.12

CS - Coroutine 코루틴

1. 동시성과 병렬성코루틴을 공부하기 전에 동시성과 병렬성을 알고 있어야 합니다.1-1. Concurrency 동시성동시성은 이름만 보면 무언가가 동시에 실행되는 것처럼 생각할 수 있지만 실제론 하나의 시스템이 여러 작업을 동시에 처리하는 것처럼 보이게 하는 것이라는 의미를 갖고 있습니다.동시성은 비동기 프로그래밍, 코루틴 등등을 사용해 구현됩니다. 동시성은 여러 작업들을 서로 바꿔가며 진행하기 때문에 여러 요청들을 동시에 처리하거나 서로 번갈아가며 처리할 수 있습니다.1-2. 병렬성병렬성은 여러 작업을 물리적으로 동시에 처리하는 것을 말합니다. 여러 cpu나 코어 등을 이용해서 여러 작업을 병렬로 처리합니다. 동시성병렬성구분동시에 처리하는 것처럼 보이게 하는것물리적으로 동시에 처리하는것동작싱글 코어에서..

카테고리 없음 2025.03.06