스트링 디코드 문제에서 망하고, 43분 후 복수에 성공한 이야기 (feat. 중첩 괄호도 처리함)

## 🔧 배경 얼마 전 기술 면접을 보다가 `decodeString` 문제를 받았습니다. 알고리즘 공부는 주로 BFS, DFS 쪽만 하던 터라, 문자열 파싱 문제에서 완전히 발목 잡혔습니다. 거기다 라이브 코딩. 제한 시간 30분. 당연히… 못 풀었죠. 멘탈까지 디코딩당한 날이었습니다. --- ## 🔥 복수의 시작 면접이 끝난 뒤에도 이 문제는 계속 머릿속을 맴돌았습니다. “내가 이걸 못 풀었다고? 진짜?” 그 순간부터 **마음속의 디버거**가 켜졌고, 라이브 코딩에서 시도했던 방식에서 출발해 다시 파기 시작했습니다. 스택도 쓰지 않았습니다. 재귀도 쓰지 않았습니다. 그냥 제 방식대로, 끈질기게 문자열을 조작하면서 풀었습니다. **걸린 시간: 추가 43분.** --- ## 🧠 접근 방식 요약 - `[`와 `]`를 찾는다. 가장 안쪽 괄호부터 시작. - 그 안의 문자열을 꺼내고, 반복 횟수를 계산한다. - 원래 문자열 배열을 `splice`로 조작해서 새로운 문자열을 삽입한다. - 그리고… **처음부터 다시 돌린다.** - 이걸 괄호가 다 없어질 때까지 반복한다. 사실상 **재귀를 흉내 내는 루프 기반 수동 파서**입니다. --- ## ✅ 최종 코드 (with 주석) ```javascript /** * @param {string} s * @return {string} */ var decodeString = function(s) { const strArr = s.split(''); let startIndex = -1; let endIndex = -1; for(let i = 0; i = 0 && endIndex >= 0 && endIndex > startIndex){ const addedStr = strArr.slice(startIndex + 1, endIndex).join(''); ...

CORS Trouble shooting

1. 서버 측 CORS
    1. 
    
원본 요청 정책만 수정하고 응답 헤더 정책을 설정하지 않으면 Access-Control-Allow-Origin 헤더를 리스폰스해주지 않아 브라우저에서 출력하지 않음 2. 클라이언트 측 1. Referrer-Policy - **no-referrer**: `Referer` 헤더 생략 - **no-referrer-when-downgrade**: 프로토콜 보안 수준이 동일하거나 더 높을 때(`HTTP->HTTP`, `HTTP->HTTPS`, `HTTPS->HTTPS`)는 Full URL을, 더 낮을 때(`HTTPS->HTTP`, `HTTPS->File`)는 No data - **origin**: Origin만 전송 - **origin-when-cross-origin**: 동일한 프로토콜 보안 수준에서 same-origin 요청일 때는 Full URL을, cross-origin 요청 및 보안 수준이 낮을 때는 Origin만 전송 - **same-origin**: same-origin일 때는 Full URL을, cross-origin일 때는 생략 - **strict-origin**: 프로토콜 보안 수준이 동일할 때(`HTTP->HTTP`, `HTTPS->HTTPS`)에 한해 Origin만 전송 - **strict-origin-when-cross-origin**: same-origin일 때는 Full URL, cross-origin일 때는 프로토콜 보안 수준이 유지될 때에 한해 Origin만 전송, 보안 수준이 낮아진다면 No data - **unsafe-url**: 무조건 Full URL **(권장되지 않음)** - 클라이언트 사이드에서 Referrer-Policy 를 설정하지 않으면 브라우저 기본 Policy 를 따라가는데 크롬은 strict-origin-when-cross-origin 이 기본 정책으로 변경되어 크롬에서만 정상적으로 출력되지 않는 이슈가 있었음. ⇒ 아임웹 Meta Code 에 아래 코드를 추가하여 Referrer-Policy 변경 ```html ```

Comments

Popular posts from this blog

Operating System Concepts 9th

스티키 헤더 여러개 만들기 (Multiple sticky header)

Operating System Concept