전체 글 163

SSL certificate verify failed 에러 완벽 해결 가이드 (Python·pip·curl·git)

HTTPS로 뭔가를 요청하려는데 이런 에러를 만난 적이 있으실 겁니다.Python이라면: requests.exceptions.SSLError: HTTPSConnectionPool(host='example.com', port=443):Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:unable to get local issuer certificate (_ssl.c:1006)')))pip이라면: Could not fetch URL https://pypi.org/simple/requests/:There was..

IT정보,보안 2026.10.09

[Python] Playwright로 웹 크롤링 차단 회피 및 로그인 세션(Storage State) 자동화 완벽 가이드

파이썬으로 웹 자동화 스크립트나 데이터 수집 프로그램, 자동 포스팅 봇을 개발할 때 가장 마주치기 쉬운 걸림돌은 두 가지입니다.Selenium 사용 시 봇 감지(Bot Detection) 및 차단: Cloudflare나 웹사이트의 보안 솔루션이 감지하여 접속을 차단함반복적인 로그인 및 2차 인증(2FA) 절차: 스크립트를 실행할 때마다 로그인을 다시 해야 해서 자동화가 끊김이러한 한계를 극복하기 위해 최신 웹 자동화 프레임워크인 Playwright를 활용하여 보안 차단을 우회하고, 로그인 세션을 저장/재사용하는 실무 구현법을 정리합니다.1. 왜 Selenium 대신 Playwright인가?Playwright는 Microsoft에서 개발한 차세대 웹 자동화 라이브러리로, 기존 Selenium 대비 다음과 ..

Python 2026.10.09

Python UnicodeDecodeError 완벽 해결 가이드 (한글 인코딩 cp949/euc-kr)

파이썬으로 CSV나 로그 파일을 읽으려는데 이런 에러를 만난 적이 있으실 겁니다. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte또는 반대 방향으로 이런 에러가 나기도 합니다. UnicodeEncodeError: 'cp949' codec can't encode character '✓' in position 5특히 한글이 포함된 파일을 다룰 때 거의 반드시 한 번은 겪게 되는 문제입니다. 엑셀에서 저장한 CSV, 윈도우에서 만든 로그 파일, 오래된 시스템에서 내려받은 데이터가 전형적인 원인입니다.이 글에서는 왜 이런 일이 생기는지와 상황별 해결 방법을 정리합니다.원인: 파일의 인코딩과 읽는 방..

Python 2026.10.08

[MySQL] DB CPU 100% 먹통 해결: EXPLAIN 실행 계획 분석 및 인덱스(Index) 튜닝 실무 가이드

서비스 운영 중 갑자기 DB 서버의 CPU 점유율이 100%까지 치솟으며 전체 시스템이 먹통이 되는 장애를 겪어본 적이 있으신가요?대부분의 원인은 서버 스펙 부족이 아니라, 인덱스가 제대로 걸리지 않은 단 하나의 'Slow Query(슬로우 쿼리)'가 풀 테이블 스캔(Full Table Scan)을 일으키며 시스템 리소스를 잡아먹기 때문입니다.이 글에서는 DB 성능 장애 발생 시 가장 먼저 확인해야 할 EXPLAIN 실행 계획 분석 방법과 핵심 인덱스 튜닝 패턴을 실무 예시와 함께 정해드립니다.1. Slow Query 찾기 및 실행 계획(EXPLAIN) 확인어떤 쿼리가 DB를 죽이고 있는지 확인한 후, 해당 쿼리 맨 앞에 EXPLAIN 키워드를 붙여 실행합니다.SQL EXPLAIN SELECT * FRO..

Mysql,MariaDB 2026.10.08

Git 커밋 되돌리기 완벽 가이드 - reset vs revert vs restore

Git을 쓰다 보면 되돌려야 할 상황이 자주 생깁니다.방금 커밋했는데 파일 하나를 빼먹었다커밋 메시지를 잘못 썼다이미 push한 커밋을 취소해야 한다수정하던 파일을 원래대로 되돌리고 싶다문제는 상황마다 써야 할 명령어가 다르다는 것입니다. reset, revert, restore, checkout이 전부 "되돌리기"처럼 보이지만 하는 일이 완전히 다릅니다. 이 글에서는 상황별로 어떤 명령을 써야 하는지 정리합니다.먼저 알아야 할 Git의 3단계 영역명령어를 이해하려면 Git이 파일을 관리하는 세 영역을 알아야 합니다. 작업 디렉토리 스테이징 영역 저장소(Working Directory) → (Staging Area) → (Repository) 파일 수정 ..

IT정보,보안 2026.10.07

ORA-12154 해결 방법

tnsnames.ora, TNS_ADMIN, SQL Developer 접속 오류 완벽 정리Oracle에 접속하려고 할 때 아래 오류가 나오면, DB 서버가 죽었거나 네트워크가 끊겼다고 생각하기 쉽습니다.text ORA-12154: TNS:could not resolve the connect identifier specified하지만 이 오류는 대부분 DB 서버 장애가 아닙니다.Oracle Client가 입력한 접속 이름을 실제 DB 접속 정보로 변환하지 못했다는 뜻입니다.예를 들어 아래처럼 접속했을 때 발생합니다.bash sqlplus appuser/password@PRODDB여기서 PRODDB는 IP 주소가 아니라 TNS 별칭(alias) 입니다.Oracle Client는 이 별칭을 tnsnames.o..

Oracle 2026.10.07

C++ pure virtual function call 에러 해결 방법

객체 소멸 순서와 virtual destructor 완벽 정리C++ 프로그램을 실행하다가 갑자기 아래와 같은 오류가 발생할 수 있습니다.text pure virtual method calledterminate called without an active exceptionAborted (core dumped)Linux 서버에서는 systemd 로그나 콘솔에 아래처럼 보이기도 합니다.text pure virtual method calledterminate called recursivelyAborted (core dumped)이 오류는 단순한 문법 문제가 아닙니다.대부분 이미 소멸 중이거나 이미 소멸된 객체에 대해 virtual 함수가 호출된 상황에서 발생합니다. 특히 멀티스레드 서버, 콜백 기반 코드, 비동..

C, C++ 2026.10.06

데이터베이스 정규화와 이상현상 완벽 정리 (정보시스템감리사·정보처리기사 대비)

데이터베이스 과목에서 가장 자주 출제되는 주제가 바로 **정규화(Normalization)**입니다. 정보시스템감리사, 정보처리기사, 각종 DB 관련 시험에서 반복해서 나오고, 개발자 면접에서도 단골 질문입니다.이 글에서는 왜 정규화가 필요한지(이상현상), 각 정규형의 조건, 그리고 시험에서 자주 함정으로 나오는 포인트를 정리합니다.정규화는 왜 하는가 — 이상현상(Anomaly)정규화를 하지 않은 테이블에서는 세 가지 문제가 발생합니다. 시험에서 "다음 중 이상현상이 아닌 것은?" 형태로 자주 출제되므로 세 가지를 정확히 구분해야 합니다.아래와 같은 비정규화 테이블을 예로 들어보겠습니다.학번학생명과목코드과목명담당교수1001김철수DB01데이터베이스박교수1001김철수NW01네트워크이교수1002이영희DB01데..

리눅스 서버 CPU 사용률 100% 원인 찾기 완벽 가이드

"서버가 갑자기 느려졌어요"라는 연락을 받고 접속해보면, CPU 사용률이 100%에 붙어 있는 경우가 많습니다. 문제는 여기서부터입니다. 어떤 프로세스가, 왜 CPU를 먹고 있는지를 찾아야 합니다.이 글에서는 막연히 서버를 재시작하기 전에, 원인을 체계적으로 좁혀가는 진단 순서를 정리합니다.1단계: top으로 전체 상황 파악가장 먼저 실행할 명령입니다. bashtop출력 상단의 요약 정보부터 읽습니다. %Cpu(s): 85.3 us, 8.2 sy, 0.0 ni, 1.2 id, 5.1 wa, 0.0 hi, 0.2 si, 0.0 st각 항목의 의미가 중요합니다. 어느 항목이 높은지에 따라 원인이 완전히 달라집니다.항목의미높을 때 의심할 것us (user)사용자 프로세스가 쓰는 CPU애플리케이션 ..

LINUX 2026.10.04

[Linux Server] TCP 소켓 TIME_WAIT 포트 고갈 해결 및 커널 파라미터 최적화 (net.ipv4.tcp_tw_reuse)

Linux 환경에서 C/C++ 소켓 서버나 API 통신 데몬을 운영하다 보면, 순간적으로 트래픽이 몰릴 때 클라이언트 접속이 안 되거나 서버 단에서 다음과 같은 에러 로그가 남으며 통신이 먹통이 되는 현상을 마주하곤 합니다.connect() failed: Cannot assign requested address (99)socket: too many open files이 에러는 서버의 디스크나 CPU 문제라기보다는, 종료된 TCP 연결의 소켓이 TIME_WAIT 상태로 대기하며 로컬 포트를 차지해 새로운 연결에 할당할 포트가 고갈되었을 때 발생합니다.TIME_WAIT가 발생하는 원인과 이를 안전하게 회수하여 서버 처리량을 극대화하는 Linux 커널 파라미터 튜닝 실무 가이드를 정리합니다.1. TIME_WA..

LINUX 2026.10.04