CHUCK CHUCK 박사

잼잼 개발자

[FRONT] Man in the Middle Proxy 설치하기

mitmproxy

[FRONT] [FRONT] 프론트엔드 쿠키 이슈 해결하기 [FRONT] Nuxt Proxy 설정과 활용 [FRONT] 웹 캐시 전략과 구현 [FRONT] Next.js와 Nuxt.js 비교 분석 [FRONT] Monorepo vs Multi-repo vs Monolith 아키텍처 [FRONT] mitmproxy를 활용한 디버...

[Algorithm] Sorting - Insertion Sort

정렬 삽입 정렬

Insertion Sort? 삽입 정렬(Insertion Sort)은 정렬 알고리즘 중 하나로, 배열의 각 요소를 차례로 비교하며 자신이 위치할 올바른 자리에 삽입하는 방식으로 작동합니다. 이미 정렬된 배열 부분을 유지하면서 새로운 요소를 올바른 위치에 삽입하는 방식입니다. 삽입 정렬은 직관적이고 간단하여 작은 배열을 정렬할 때 매...

[Algorithm] Sorting - Selection Sort

정렬 선택 정렬

Selection Sort? 선택 정렬은 정렬 알고리즘 중 하나로, 리스트에서 가장 작은(또는 가장 큰) 요소를 선택하여 정렬되지 않은 부분의 가장 앞에 위치시키는 방식으로 작동합니다. 이 과정을 반복하면서 전체 리스트를 정렬합니다. 선택 정렬은 비교적 간단하고 이해하기 쉬운 알고리즘입니다. 시간 복잡도: 최악 및 평균 경...

[Algorithm] Sorting - Bubble Sort

정렬 버블 정렬

Bubble Sort? 버블 정렬은 가장 간단한 정렬 알고리즘 중 하나로, 인접한 요소들을 비교하여 정렬하는 방식입니다. 이 알고리즘은 리스트를 반복적으로 순회하면서 인접한 두 요소를 비교하여 순서가 맞지 않으면 서로 교환하는 방식으로 동작합니다. 가장 큰 요소가 리스트의 끝으로 “버블”처럼 떠오르는 모습 때문에 이 이름이 붙었습니...

[Algorithm] Searches - Interpolation Search

탐색 보간 탐색

Interpolation Search? 보간 탐색(Interpolation Search)은 정렬된 배열에서 특정 값을 찾기 위한 탐색 알고리즘으로, 이진 탐색과 비슷하지만, 값의 분포를 활용하여 더 빠르게 탐색할 수 있습니다. 보간 탐색은 주어진 값이 배열의 어떤 위치에 있을지를 예측하여 그 위치에서 탐색을 시작합니다. 이 방식은 ...

[Algorithm] Searches - Binary Search

탐색 이진 탐색

Binary Search? 이진 탐색(Binary Search)은 정렬된 배열에서 값을 효율적으로 찾기 위한 알고리즘입니다. 이진 탐색은 배열을 절반으로 나누어 타겟 값이 어느 절반에 있는지 결정하고, 그 절반에서 다시 절반으로 나누는 과정을 반복합니다. 이 방식으로 탐색 범위를 빠르게 좁힐 수 있어 O(log n)의 시간 복잡도를...

[Algorithm] Searches - Jump Search

탐색 점프 탐색

Jump Search? 점프 탐색(Jump Search)는 선형 탐색(Linear Search)보다 효율적이지만 이진 탐색(Binary Search)만큼 빠르지 않은 중간 정도의 탐색 알고리즘입니다. 점프 탐색은 정렬된 배열에서만 작동하며, 일정한 크기(일반적으로 배열의 크기의 제곱근)를 점프하여 탐색을 수행한 후, 원하는 값이 있...

[Algorithm] Searches - Linear Search

탐색 선형 탐색

Linear Search? Linear Search(선형 탐색)은 가장 기본적인 탐색 알고리즘 중 하나로, 배열이나 리스트 같은 자료 구조에서 원하는 값을 찾을 때 첫 번째 요소부터 마지막 요소까지 순차적으로 비교하는 방식입니다. 이 알고리즘은 O(n)의 시간 복잡도를 가지며, 데이터가 정렬되지 않은 경우에 사용됩니다. 사용 사례...

[Algorithm] Strings - Regular Expression Matching

문자열 정규 표현식 매칭

Rabin-Karp? Rabin-Karp 알고리즘은 문자열에서 특정 패턴을 찾는 데 사용되는 효율적인 해시 기반 문자열 검색 알고리즘입니다. 이 알고리즘의 핵심은 해시 함수를 이용해 텍스트와 패턴의 해시 값을 계산하고, 이를 비교하여 패턴을 찾는 방식입니다. 동작 방식: 패턴과 텍스트의 첫 번째 부분의 해시 값을 계산합니다...

[Algorithm] Strings - Knuth–Morris–Pratt Algorithm

문자열 Knuth–Morris–Pratt

Knuth–Morris–Pratt(KMP)? KMP 알고리즘은 문자열 검색 알고리즘으로, 주어진 문자열 내에서 특정 패턴이 존재하는지, 또는 어디에 존재하는지를 효율적으로 찾는 방법입니다. 이 알고리즘은 패턴의 부분 일치 정보를 미리 계산하여 불필요한 비교를 피하는 방식으로 동작합니다. 알고리즘의 핵심 개념: Prefix ...