당신의 Next.js 프로젝트, 지금 해킹당할 수 있습니다. React 19 보안이슈에 대해 CVE-2025-55182 (React2shell)
·
Stack/Next.js
React / Next.js 보안 취약점 관련 내용으로 글을 포스팅합니다.개요지난 11월 29일, 보안 연구원 Lachlan Davidson에 의해 React 생태계, 특히 최신 버전인 React 19와 Next.js를 관통하는 치명적인 보안 취약점이 발견되었습니다. 이 문제는 Meta 측에 즉시 보고되었으며, 현재 전 세계 프론트엔드/풀스택 개발자들 사이에서 가장 시급한 이슈로 떠오르고 있습니다.이번 취약점은 단순한 정보 노출이 아닌, 원격 코드 실행(RCE, Remote Code Execution) 이 가능하다는 점에서 매우 위험합니다. 이에 따라 다음과 같은 CVE 번호와 심각도 점수가 부여되었습니다.관련 CVE:CVE-2025-55182 (React)CVE-2025-66478 (Next.js)CV..
A-star 알고리즘
·
알고리즘 정리
A-star 알고리즘이란?A* 알고리즘은 최단 경로 탐색 알고리즘으로, 다익스트라(Dijkstra)의 장점과 휴리스틱(Heuristic)을 결합한 방식이다.다익스트라: 실제로 이동한 비용(g(n))을 최소화A-star: g(n) + 미래에 걸릴 비용 추정(h(n)) = f(n)을 최소화즉, $f(n)=g(n)+h(n)$ 다음과 같은 식을 가지게 된다.g(n): 시작점에서 현재까지 온 실제 비용h(n): 현재 위치에서 목표까지의 추정 비용 (휴리스틱)A-star 알고리즘을 사용하는 이유다익스트라는 모든 방향을 탐색하기 때문에 비효율적일 수 도 있다.A-star 는 목표 지향적으로 움직여 불필요한 탐색을 줄이고, 빠르게 경로를 찾아냅니다.휴리스틱 함수란?A*의 핵심은 h(n) 을 어떻게 정의하느냐에 달라진다..
다익스트라 알고리즘 (Dijkstra’s Algorithm) 개념 정리
·
알고리즘 정리
1. 다익스트라 알고리즘이란?최단 경로(Shortest Path) 알고리즘 중 하나.특정 시작 정점에서 다른 모든 정점까지의 최단 거리를 구하는 알고리즘이다.음수 가중치가 없을 때만 사용 가능.2. 원리 (Greedy + Priority Queue)매번 가장 가까운 정점을 선택해 확정(visited)한다.해당 정점을 거쳐 다른 정점으로 가는 경로를 최단 거리로 갱신한다.이를 반복하면서 모든 정점의 최단 거리를 구한다.핵심 아이디어:"가장 가까운 정점부터 처리하면, 그 이후에는 더 짧은 경로가 나올 수 없다."3. 알고리즘 과정시작 정점의 거리를 0으로, 나머지는 ∞(무한대)로 초기화.방문하지 않은 정점 중 가장 거리가 짧은 정점을 선택.선택한 정점을 거쳐 갈 수 있는 이웃 정점들의 거리를 갱신.모든 정점..
[BOJ][P5] 6549 히스토그램에서 가장 큰 직사각형
·
알고리즘 문제풀이
문제 내용입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ 1,000,000,000)가 주어진다. 이 숫자들은 히스토그램에 있는 직사각형의 높이이며, 왼쪽부터 오른쪽까지 순서대로 주어진다. 모든 직사각형의 너비는 1이고, 입력의 마지막 줄에는 0 6이 하나가 주어진다히스토그램 내에서 만들 수 있는 가장 큰 직사각형의 넓이를 구하는 문제다.문제 접근 (의식의 흐름대로)딱 문제를 보고 들었던 생각들을 정리하면 다음과 같다.일단 n이 10만이고, 직사각형 높이가 10억이니까 이걸 전부 반복시키면 안되겠다시간 복잡도를 무조건 생각해야..
[BOJ][G5] 2504 괄호의값
·
알고리즘 문제풀이
문제 내용‘()’ 인 괄호열의 값은 2이다.‘[]’ 인 괄호열의 값은 3이다.‘(X)’ 의 괄호값은 2×값(X) 으로 계산된다.‘[X]’ 의 괄호값은 3×값(X) 으로 계산된다.‘(()[[]])([])’ 의 괄호값을 구해보자. ‘()[[]]’ 의 괄호값이 2 + 3×3=11 이므로 ‘(()[[]])’의 괄호값은 2×11=22 이다. 그리고 ‘([])’의 값은 2×3=6 이므로 전체 괄호열의 값은 22 + 6 = 28 이다.문자열(스트링)이 주어진다. 단 그 길이는 1 이상, 30 이하문제 접근올바르지 못한 괄호열이면 반드시 0을 출력 이런경우 ‘+’ 로 계산 ‘[()]’ 경우 * 로 계산.(()[[]])([]) 를 처리하는 방법에 대해 생각해보자1. → 우선 올바른 괄호열인지 여부를 파악2. → valu..
[BOJ][S3] 17413_단어뒤집기2
·
알고리즘 문제풀이
알고리즘 BOJ_17413_단어뒤집기2_S3문제 내용문자열 S이 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' ``'), 특수 문자('', '>')로만 이루어져 있다''와 '>'가 문자열에 있는 경우 번갈아가면서 등장'로 시작해서 '>'로 끝나는 길이가 3 이상인 부분 문자열이고, ''와 '>' 사이에는 알파벳 소문자와 공백만 있다. 단어는 알파벳 소문자와 숫자로 이루어진 부분 문자열이고, 연속하는 두 단어는 공백 하나로 구분무문제 접근문자열 S 에서 단어를 뽑아낸다. 뽑아내는 기준은 우선위로 로 구분을 하고 안 공백(' ')은 바뀌지 않고 외부의 공백(' ') 은 바뀌게 된다.일단 List 형태로 저장한다. 그리고 태그안에 들어가는 건지 아니면 그냥 문자열인지 구분하는 Lis..