본문 바로가기

반응형

IT & 개발

(54)
Git Checkout 충돌 해결: 유실을 감수하는 방법 vs 안전한 방법 Git을 사용하시다 보면 브랜치를 전환하려 할 때, 아래와 같은 에러 메시지를 마주하실 수 있습니다:error: Your local changes to the following files would be overwritten by checkout: some/file.txtPlease commit your changes or stash them before you switch branches.이 메시지는 로컬에서 수정한 파일이 전환하려는 브랜치에서도 변경되어 있어서, Git이 해당 파일의 변경사항을 잃지 않도록 막고 있다는 의미입니다.하지만 때로는 해당 변경사항이 불필요하거나 유실되어도 괜찮은 경우가 있고, 반대로 절대로 놓치고 싶지 않은 중요한 작업일 수도 있습니다. 이 글에서는 두 경우 모두를 안..
😲 “((” 이게 다르다고? — 괄호의 숨겨진 정체 어느 날, ((와 같은 괄호가 텍스트 치환이 안 되는 이상한 상황을 마주했습니다. 분명 코드에서는 "("를 잘 인식하고 있었는데, 현실에서는 작동하지 않더군요. 왜 그럴까요?✅ 괄호도 다를 수 있다?우리가 흔히 쓰는 괄호 (와 )는 키보드에서 쉽게 입력할 수 있습니다. 그런데 문제는 문서나 입력기, 환경에 따라 비슷해 보이지만 완전히 다른 문자로 인식될 수 있다는 데 있습니다.예를 들어 아래 두 괄호를 보세요:( (반각 괄호, ASCII)( (전각 괄호, Full-width)🔍 실제로 확인해보자: 유니코드 비교괄호의 정체를 확인하는 가장 확실한 방법은 유니코드 코드포인트를 살펴보는 것입니다.문자 이름 유니코드(반각 소괄호 (half-width)U+0028(전각 소괄호 (full-width)U+FF08?..
🚫 Nginx 413 Request Entity Too Large 오류 해결 방법 웹 서버에서 파일 업로드 또는 대용량 데이터를 전송하려 할 때, 아래와 같은 오류를 마주한 적 있으신가요?413 Request Entity Too Large이는 클라이언트가 서버로 보낸 요청 본문(request body)의 크기가 Nginx가 허용하는 최대 크기를 초과했을 때 발생하는 오류입니다. 기본적으로 Nginx는 1MB까지만 허용합니다.📌 에러 상황 예시저는 /api/parse 라는 경로로 Flask 앱에 요청을 보내는 환경에서 이 문제를 겪었습니다. POST 요청으로 PDF나 이미지 같은 데이터를 전송할 때 발생했죠.location /api/parse { proxy_pass http://localhost:8088/parse; ...}🔧 해결 방법: client_max_body_si..
Laravel 외래 키 삭제 처리 – onDelete() 옵션 정리 Laravel에서 테이블 간 외래 키(foreign key)를 설정할 때, 부모 테이블의 데이터가 삭제되면 자식 테이블에 어떤 영향을 줄지 설정할 수 있습니다. 이때 사용하는 메서드가 바로 onDelete()입니다.이 글에서는 Laravel 마이그레이션에서 외래 키 삭제 동작을 제어하는 방법을 간단히 소개합니다.🧨 기본 예시php복사편집$table->foreignIdFor(ProductGroup::class) ->nullable() ->constrained() ->onDelete('set null'); 위 코드는 다음을 의미합니다:product_group_id 컬럼은 product_groups 테이블의 id를 참조합니다.부모 데이터가 삭제되면 외래 키 값을 null로 변경합니다.⚙️ onDelete 옵..
Laravel Sail + Nginx 리버스 프록시 환경에서 Mixed Content 오류 해결기 Laravel을 Docker 기반의 Sail로 운영하고, Nginx를 호스트 서버(Ubuntu)에 리버스 프록시로 구성해 SSL을 적용했는데도, 브라우저에서 Mixed Content: HTTP 리소스를 요청했기 때문에 차단됨이라는 경고를 받았습니다.빌드 결과에는 HTTPS가 잘 적용되어 있었는데, 도대체 왜 이런 문제가 발생했을까요?💡 문제 상황 요약Laravel Sail은 Docker 컨테이너 내부에서 실행호스트 서버는 Nginx를 설치해 SSL(HTTPS) 적용 및 리버스 프록시 설정vite.config.js에 base: 'https://도메인/build/' 명시하고, NODE_ENV=production으로 빌드도 완료public/build/manifest.json에도 http://는 없음그럼에도 ..
[SSH] 접속 오류 해결: “REMOTE HOST IDENTIFICATION HAS CHANGED!” 메시지가 떴을 때 서버에 SSH 접속을 시도했는데 아래처럼 무시무시한 경고 메시지를 본 적 있으신가요?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Someone could be eavesdropping on you right now (man-in-the-middle attack)!...Host key verification failed.처음 보는 분들은 해킹인가? 싶은 생각이 드실 수도 있습니다. 이 글에서는 이 경고 메시지가 왜 뜨는지, 실제로 위험한 ..
MySQL에서 특수문자(①~⑩) 검색 및 제거하는 방법 (버전별 정리) 데이터베이스를 사용하다 보면 데이터 정제가 필요한 경우가 자주 발생합니다. 특히 사용자 입력값이나 외부 데이터에 ①②③④⑤⑥⑦⑧⑨⑩ 같은 불필요한 특수문자가 포함되어 있을 수 있습니다.이런 특수문자를 검색하고 제거하는 방법을 MySQL 8.0 이상 / 이하 버전으로 나누어 정리해 보겠습니다.MySQL 8.0 이상 사용 시MySQL 8.0 이상에서는 정규표현식 함수 REGEXP_REPLACE()와 REGEXP 검색을 사용할 수 있어 훨씬 깔끔하게 처리할 수 있습니다.1. 특수문자 포함 여부 검색SELECT * FROM your_table WHERE your_column REGEXP '①|②|③|④|⑤|⑥|⑦|⑧|⑨|⑩'; REGEXP는 해당 정규표현식에 하나라도 일치하면 해당 행을 반환합니다.2. 특수문자..
Git에서 'Permission denied' 오류 해결 방법 Git을 사용하다 보면 cannot update the ref 'refs/remotes/origin/dev': unable to append to '.git/logs/refs/remotes/origin/dev': Permission denied 오류를 만날 수 있습니다. 이는 파일 접근 권한 문제로 인해 발생하는데, 이를 해결하는 방법을 단계별로 정리해 보았습니다.1. 파일 권한 확인 및 수정우선, 문제가 발생한 파일의 소유권과 권한을 확인해야 합니다.ls -l .git/logs/refs/remotes/origin/dev결과를 확인했을 때, 파일 소유자가 현재 로그인한 사용자와 다르다면 소유권을 변경해야 합니다.sudo chown -R $(whoami) .git/또는 Git 폴더 전체에 쓰기 권한을 부여..

반응형