반응형

전체 글 168

Next.js 환경 변수 undefined, 빌드 때 값이 굳는 이유

Next.js 환경 변수 중 NEXT_PUBLIC_ 접두사가 붙은 값은 next build를 실행할 때 JS 번들에 박힙니다. 그래서 배포 뒤에 값을 바꿔도 화면에는 반영되지 않습니다. 접두사가 없는 변수는 서버(Node.js)에서만 읽히므로, 브라우저 코드에서 읽으면 undefined가 나옵니다. 이 글은 두 증상을 가르는 판별 순서와 값이 안 바뀔 때의 점검 순서를 담았습니다. [1] [2]이 글의 기준일: 2026-11-03 · 확인 환경: 공식 문서 (Next.js 환경 변수 가이드 2026-08-25 갱신, 셀프호스팅 가이드 2026-10-15 갱신. 문서에 적힌 Next.js 버전은 확인하지 못했고, connection()이 15.0.0에서 stable이 된 것만 확인했습니다)배포 뒤 unde..

Frontend/next.js 05:49:53

nginx proxy_pass 슬래시 차이: 404가 나는 경로 규칙 정리

nginx proxy_pass 뒤에 경로(URI)가 붙어 있으면 location과 일치한 부분이 그 경로로 바뀌어 전달되고, 경로가 없으면 클라이언트가 보낸 주소가 그대로 전달됩니다. 슬래시 하나로 이 둘이 갈리기 때문에, 뒤쪽 서버에서 404가 나면 먼저 이 규칙을 의심해야 합니다. 이 글은 조합별로 어느 주소가 뒤쪽 서버에 닿는지 표로 보여 주고, 안 될 때 볼 로그와 명령까지 이어 갑니다. [1]이 글의 기준일: 2026-11-02 · 확인 환경: 공식 문서 (nginx.org 문서, proxy_http_version 기본값은 1.29.7 이후 기준)프록시 뒤에서 404가 나는 이유404의 흔한 원인은 nginx가 뒤쪽 서버에 넘기는 주소가 내가 생각한 주소와 다른 경우입니다. 브라우저에서는 /ap..

PostgreSQL 백업 형식 비교: plain·custom·directory

PostgreSQL 백업을 pg_dump로 받는다면, 작은 DB를 SQL로 남기려는 사람은 plain을, 복원 때 골라 쓰려는 사람은 custom을, 큰 DB를 병렬로 다루려는 사람은 directory를 고르면 됩니다. 이 글은 세 형식을 복원 도구, 병렬 옵션, 일부만 복원하기 기준으로 한 표에 놓고 고르는 순서까지 적습니다. [1] [2]이 글의 기준일: 2026-11-02 · 확인 환경: 공식 문서 (PostgreSQL 문서 current, 정확한 버전 번호는 확인하지 못함)형식 3가지를 한 표로 놓고 보기pg_dump의 형식은 plain, custom, directory, tar입니다. plain이 기본값이고, 나머지는 -F 옵션으로 고릅니다. 이 글은 앞의 3가지를 중심으로 보고, tar는 표에..

Database/PostgreSQL 2026.11.02

클로드 코드 MCP 서버 추가, local·project·user 범위 고르기

팀과 공유할 MCP 서버는 project 범위로 추가합니다. 내 키가 필요한 서버는 local, 모든 프로젝트에서 쓰는 개인 서버는 user 범위입니다. 범위를 따로 지정하지 않으면 local로 들어가므로, 팀에 공유되지 않는 것이 기본입니다. 이 글은 클로드 코드 MCP 서버를 추가하는 명령, 범위별 저장 위치, 키를 파일에 쓰지 않는 방법, 연결이 안 될 때의 점검 순서를 한 번에 묶었습니다. [1]이 글의 기준일: 2026-11-02 · 확인 환경: 공식 문서 (Claude Code 공식 MCP 문서, v2.1.28x대 기능까지 언급)MCP 서버 추가 명령은 전송 방식에 따라 모양이 다릅니다원격 서버는 HTTP 전송으로, 내 컴퓨터에서 도는 서버는 stdio(표준 입출력으로 프로세스와 대화하는 방식..

MCP 2026.11.02

useEffect 두 번 실행, StrictMode는 개발에서만 그렇습니다

useEffect가 두 번 실행되는 것은 StrictMode(React가 개발 중 실수를 찾아내는 검사 모드)가 일부러 한 사이클을 더 돌리기 때문이며, 프로덕션 빌드에서는 한 번만 실행됩니다. 이 글은 cleanup(정리) 함수가 있을 때와 없을 때 요청과 화면 상태가 어떻게 달라지는지 표로 비교하고, 고치는 코드까지 보여 줍니다. 읽는 데는 5분, 준비물은 Effect 안에서 fetch를 쓰는 React 컴포넌트 하나입니다. [1] [2]이 글의 기준일: 2026-11-02 · 확인 환경: 공식 문서 (react.dev StrictMode·Synchronizing with Effects, React 19 업그레이드 가이드, Next.js reactStrictMode 문서)두 번 호출되는 증상과 발생 ..

Frontend/react 2026.11.02

옵시디언 플러그인 설치 전 제한 모드 끄기 점검 5가지

옵시디언 플러그인을 설치하려면 설정의 커뮤니티 플러그인에서 제한 모드를 먼저 꺼야 합니다. 제한 모드를 끄면 서드파티(제3자가 만든) 코드가 내 컴퓨터에서 돌 수 있습니다. 그래서 켜기 전에 플러그인 제작자를 믿을 수 있는지 점검해야 합니다. 이 글은 켜는 순서와 함께 설치 전 점검 5가지를 묶어 둡니다. 준비물은 옵시디언 앱과 인터넷 연결입니다. [1] [2]이 글의 기준일: 2026-11-02 · 확인 환경: 공식 문서 (Obsidian Help의 Plugin security, Community plugins, Configuration folder 페이지, 영어 UI 기준)제한 모드가 막는 것과 풀면 달라지는 것제한 모드는 옵시디언의 기본값이며, 서드파티 코드를 실행하지 못하게 막습니다. [1] 공식..

Obsidian 2026.11.02

바이브 코딩 API 키 유출 방지, push protection 4단계 설정

키를 .env 파일로 빼고 .gitignore로 제외한 뒤 깃허브 push protection을 켜면, API 키가 저장소에 닿기 전에 걸러집니다. 설정은 4단계이고 준비물은 깃허브 계정과 터미널입니다. push protection은 시크릿(키·토큰 같은 비밀값)의 push를 미리 막는 기능이며, 저장소 단위는 기본이 꺼져 있습니다. [1]이 글의 기준일: 2026-11-01 · 확인 환경: 공식 문서 (GitHub Docs, 2026-10-31 확인)바이브 코딩에서 키가 코드에 박히는 순간키가 AI가 만든 코드에 직접 적힌 채로 저장소에 들어가는 경우가 있습니다. 동작 확인용으로 키를 코드 안에 넣은 뒤 그대로 커밋(변경 내용을 기록하는 일)하는 경우입니다.GitHub는 이렇게 코드에 박힌 자격 증명(..

vibe coding 2026.11.01

커서 AI 보안 설정 점검: Workspace Trust·Run Modes 확인

커서 AI 보안 설정은 기본값만 지켜도 터미널 명령과 MCP 도구 호출에 사용자 승인이 필요합니다. 점검할 곳은 Workspace Trust, Run Modes, MCP 승인 설정 세 군데이고, 준비물은 Cursor 데스크톱 앱 하나입니다. 이 글은 기본값과 위험해지는 변경을 짝지어, 내 설정이 어느 쪽인지 가려내는 표를 드립니다. [1] [2] [3]이 글의 기준일: 2026-11-01 · 확인 환경: 공식 문서 (Cursor 문서, 2026-10-31 확인. 문서에 발행일과 버전 표기가 없어 확인일을 기준으로 삼았습니다)보도된 허점과 내 설정은 어떤 관계인가이번 보도의 허점은 내장 브라우저 문제여서, 사용자가 설정으로 막을 수 있는 부분은 따로 있습니다. Forever Security는 2026-10..

시놀로지 DSM 업데이트로 PHP2Shell 패치 확인하는 3단계

시놀로지 DSM 업데이트로 PHP2Shell 취약점 패치를 확인하려면 DSM 버전, PHP 패키지 버전, 영향 패키지 설치 여부를 차례로 적어 대조하면 됩니다. 준비물은 관리자 계정이고, 버전을 적는 세 단계와 대조 한 번이면 끝납니다. 끝나면 내 NAS가 패치됐는지 아닌지 판단할 수 있습니다. [1] [2]이 글의 기준일: 2026-11-01 · 확인 환경: 공식 문서 (Synology-SA-26:14, 2026-10-22 공개, 2026-10-31 확인. DSM 7.4·7.3·7.2·7.1·7.0·6.2 관련 내용)이번 권고가 닿는 패키지와 DSM 범위핵심은 PHP를 쓰는 패키지가 영향권이라는 점입니다. 시놀로지 권고문 Synology-SA-26:14(PHP2Shell)는 전체 심각도가 Critica..

git diff 바이너리 Python 오류, errors=replace로 읽는 법

Python으로 git diff 출력을 글자로 읽다 바이너리 파일이 낀 변경에서 멈췄다면, 읽는 쪽에 errors="replace"를 주면 풀립니다. 이 글의 바꿀 곳은 subprocess.run 인자 3개, 준비물은 git과 Python 3.7 이상, 결과는 디코딩 오류 없이 diff를 읽는 스크립트입니다. 원인과 대안 옵션까지 함께 정리했습니다. [1] [2]이 글의 기준일: 2026-11-01 · 확인 환경: 공식 문서 (Python 3 문서, git-scm.com 문서. 문서가 말하는 버전 기준, 문서 확인 2026-10-31)이미지 삭제가 낀 변경에서 작업이 멈췄습니다변경 확인 단계에서 스크립트가 멈추고 작업이 실패로 처리됐습니다. 이미지 같은 바이너리(글자가 아닌 데이터) 파일을 지운 변경이 ..

반응형