본문 바로가기

반응형

분류 전체보기

(106)
😲 “((” 이게 다르다고? — 괄호의 숨겨진 정체 어느 날, ((와 같은 괄호가 텍스트 치환이 안 되는 이상한 상황을 마주했습니다. 분명 코드에서는 "("를 잘 인식하고 있었는데, 현실에서는 작동하지 않더군요. 왜 그럴까요?✅ 괄호도 다를 수 있다?우리가 흔히 쓰는 괄호 (와 )는 키보드에서 쉽게 입력할 수 있습니다. 그런데 문제는 문서나 입력기, 환경에 따라 비슷해 보이지만 완전히 다른 문자로 인식될 수 있다는 데 있습니다.예를 들어 아래 두 괄호를 보세요:( (반각 괄호, 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 폴더 전체에 쓰기 권한을 부여..
Fail2Ban으로 리눅스 서버 보안 강화하기 🔒 Fail2Ban이란?Fail2Ban은 리눅스 서버 보안을 강화하는 침입 방지 도구입니다. 특정 패턴(예: 로그인 실패, 404 에러, 악성 봇 탐색 등)이 감지되면 자동으로 IP를 차단하는 기능을 제공합니다. 보통 SSH, Nginx, Apache, FTP, Postfix(메일 서버) 등에서 보안 위협이 되는 IP를 차단하는 데 사용됩니다.🚀 Fail2Ban 설치 및 기본 설정✅ 1. Fail2Ban 설치Ubuntu/Debiansudo apt update && sudo apt install fail2ban -yCentOS/RHELsudo yum install epel-release -ysudo yum install fail2ban -yArch Linuxsudo pacman -S fail2ban✅ ..

반응형