Loading...
홈 › 블로그

IT 개발 블로그 — REDINFO

PHP Fatal error: Out of memory - 메모리 누수 원인 분석과 ini_set으로 완벽 해결

서버에서 갑자기 PHP 스크립트가 죽어버렸고, 로그에 'Fatal error: Allowed memory size of X bytes exhausted'라는 메시지가 남아있다면 메모리 고갈 문제를 겪고 있는 것이다. 다만 대부분의 개발자들은 memory_limit을 무작정 늘리기만 하고, 정작 왜 메모리가 낭비되는지, 어디서부터 막아야 하는지 모른 채 응급···

6 0
Naver Clova OCR API로 PHP에서 이미지 텍스트 자동 인식하기 - 이미지 업로드부터 한글 텍스트 추출까지 완벽 가이드

영수증이나 신분증 같은 이미지 파일에서 텍스트를 손수 입력하는 건 정말 귀찮다. 많은 개발자들이 OCR(광학 문자 인식) 기능이 필요하다는 걸 알지만, 대부분 복잡한 라이브러리 설정이나 비용 때문에 망설인다. 다만 국내 개발자라면 네이버 클로바 OCR API를 몰랐을 가능성이 크다. 이번에는 네이버 클로바 OCR의 정확한 사용법, 한글 인식 강점, PHP에···

7 0
직장인이 매달 내는 '치약·의료용품' 비용, 세액공제로 돌려받는 실전 가이드

치약, 밴드, 파스, 소독약 같은 의료·건강용품을 매달 사서 쓰는데, 그냥 생활비로만 생각하고 지나간 사람 많을 거다. 근데 이런 항목들이 실은 연말정산에서 의료비 세액공제 대상이 될 수 있다는 거, 알고 있었나. 많은 직장인들이 병원비와 약값만 챙기다가 이 부분을 통째로 놓친다. 이번에는 의료·건강용품 세액공제가 뭐고, 어떤 물건들이 실제로 인정되는지, ···

6 0
CSS 미디어 쿼리 작동 안 할 때 - 뷰포트 메타 태그부터 우선순위까지 완벽 해결

모니터 크기에 맞춰 디자인한 반응형 웹사이트가 실제 모바일에서는 엉망으로 보인다. 미디어 쿼리 코드는 분명히 제대로 썼는데 왜 작동 안 할까. 대부분의 개발자들은 CSS 파일만 들었다 놨다 하면서 시간을 낭비한다. 실제로는 HTML 구조, 뷰포트 설정, CSS 캐싱, 선택자 우선순위 같은 여러 요인이 복합적으로 작용한다. 이번에는 미디어 쿼리가 작동하지 않···

7 0
직장인이 매달 내는 '생활비', 숨은 할인·캐시백 놓친다면 연 수십만 원 손해본다

매달 월급이 들어오자마자 빠져나가는 생활비. 식비, 카페, 편의점, 배달음식까지 작은 지출들이 모여서 통장이 텅텅 빈다. 하지만 대부분의 직장인들은 자기가 얼마나 받을 수 있는 할인과 캐시백을 모르고 그냥 지나친다. 같은 돈을 써도 현명하게 쓰면 10~20% 이상 절약할 수 있다는 건 많은 사람들이 간과한다. 이번에는 일상생활 속에서 놓치기 쉬운 할인·캐시···

6 0
검색 결과에서 내 사이트가 모바일 웹페이지로 표시 안 될 때 - Viewport 메타 태그와 모바일 최적화 완벽 가이드

모바일 사용자가 검색 결과에서 당신의 사이트를 클릭했는데, 데스크톱 레이아웃이 그대로 축소되어 표시되거나 아예 페이지를 찾을 수 없다는 오류가 나타나본 적이 있을까? 대부분의 개발자들은 모바일 최적화가 단순히 CSS 미디어 쿼리 몇 줄이면 된다고 생각하지만, 실제로는 HTML 메타 태그 설정부터 검색 엔진이 인식하는 모바일 페이지 구조까지 여러 단계를 거쳐···

8 0
직장인이 매달 내는 '의약분 외 의료비', 건강보험 적용 범위 제대로 알아야 연 수십만 원 아끼는 법

병원·약국에 갈 때마다 자기 돈으로 내는 의료비가 생각보다 크다고 느껴본 적 있을까. 특히 비염·안경·피부과 치료처럼 자주 반복되는 소소한 의료비는 더 그렇다. 다만 이런 비용 중 상당수는 건강보험이 적용되지 않는 대신 '의료비 세액공제' 대상이 되거나, 심지어 건강보험 혜택을 제대로 받지 못하는 경우가 대부분이다. 이번에는 직장인이 매달 내는 의료비 중 ···

8 0
검색 결과에 뜨는 내 사이트 설명(Meta Description) 자동 생성 및 최적화 완벽 가이드

검색 결과 페이지를 보면 사이트 제목 아래 회색 텍스트로 2~3줄 정도의 설명이 나타난다. 바로 메타 설명(Meta Description)이다. 이 짧은 텍스트가 사용자의 클릭 여부를 크게 좌우하는데, 많은 개발자들은 이걸 제대로 설정하지 않거나 검색 엔진이 임의로 생성하도록 방치한다. 구글이 자동으로 뽑은 설명은 맥락과 맞지 않아 클릭률을 떨어뜨리는 주요···

5 0
PHP implode()와 explode() 완벽 가이드 - 문자열과 배열 변환의 모든 것

개발하다 보면 쉼표로 구분된 문자열을 배열로 만들거나, 배열의 요소들을 하나의 문자열로 합쳐야 할 일이 자주 생긴다. 대부분의 PHP 개발자는 implode()와 explode()를 써봤을 테지만, 매개변수 순서를 헷갈리거나 null/빈 배열 처리에서 예상과 다른 결과를 만나곤 한다. 이번에는 이 두 함수의 정확한 동작 방식, 실무에서 자주 벌어지는 실수,···

5 0
직장인이 매달 내는 '약값', 제대로 청구하면 연 30만 원 더 받는다

처방약을 받을 때마다 '이 약값이 맞나' 의심해본 적 있나. 대부분의 직장인은 약국 영수증을 그냥 버리고, 연말정산 때 영수증이 없어서 의료비 환급을 못 받는다. 더 문제는 의약분업으로 인한 불필요한 중복 처방, 약값 오류, 보험 적용 누락 같은 것들을 전혀 모르고 지나간다는 것이다. 이번에는 약값을 똑똑하게 관리해서 연말정산 때 돈을 돌려받고, 실제로 지···

6 0
직장인이 매달 내는 '휴대폰 요금제', 정말 자신에게 맞는 걸 선택했을까

휴대폰 요금제는 매달 자동으로 빠져나가는 고정비인데, 대부분 가입할 때만 비교하고 나중에는 제대로 들여다보지 않는다. 통신사 직원 추천받거나 광고 캠페인에 따라 가입했다가, 시간이 지나면서 실제 사용 패턴과 맞지 않는 요금제를 계속 내고 있을 가능성이 높다. 같은 데이터량과 통화시간을 쓰는데도 요금제에 따라 매달 5만 원대 차이가 날 수 있다는 점을 아는 ···

4 0
검색 결과에 뜨는 내 사이트 제목(Title) 잘려서 보이나요 - 메타 태그 길이 최적화와 검색 노출 완벽 가이드

검색 결과를 보다 보면 내 사이트 제목이 중간에 끊겨서 '...'으로 표시되는 경우가 있다. 구글은 데스크톱에서 약 60글자, 모바일에서 약 50글자 범위 내에서 제목을 표시하는데, 많은 개발자들이 이 기준을 모르고 80글자 이상의 긴 제목을 작성한다. 문제는 제목이 잘리는 것뿐 아니라, 중요한 키워드가 뒷부분에 숨어버려 검색 트래픽이 줄어든다는 점이다. ···

9 0
Google Search Console URL 검사 도구 활용법 - 색인 생성 실패 원인 분석부터 재크롤링 요청까지

내 웹사이트가 구글에 제대로 색인되고 있는지 확인하려면 어떻게 해야 할까. 많은 개발자들이 Search Console 대시보드의 수치만 바라보다가, 정작 특정 URL이 왜 색인되지 않는지는 알 수 없는 상황을 경험한다. Google Search Console의 URL 검사 도구는 개별 페이지의 색인 상태를 상세히 진단하고, 즉시 크롤링을 요청할 수 있는 강···

5 0
해외 직구 자주 한다면 필독! 개인통관고유부호 명의도용 확인 및 점검으로 세금 폭탄 막는 실전 가이드

해외 직구를 자주 하다 보면 개인통관고유부호를 입력하는 순간이 늘상 찾아온다.다만 내 통관부호가 나도 모르는 사이에 유출되어 남의 물건을 들여오는 데 악용되고 있다는 사실을 잘 몰라서 피해를 보는 경우가 많다.이번에는 개인통관고유부호가 무엇인지, 누가 명의도용 점검 대상인지, 그리고 도용을 막고 예상치 못한 세금 폭탄을 피하는 방법을 정리해서 소개하겠다. ···

6 0
직장인이 매달 내는 '피부과 진료비', 건강보험 적용 vs 비급여 구분해서 30% 아끼는 실전 가이드

피부과를 자주 방문하는 직장인이라면 매달 생각보다 큰 진료비 부담을 느껴본 경험이 있을 거다. 같은 피부 증상인데도 병원마다, 진료 항목마다 청구액이 달라서 혼란스러울 수밖에 없다. 다만 피부과 진료비의 상당 부분이 건강보험으로 덮이는데 제대로 알지 못해서 불필요한 비용을 자꾸 내고 있는 사람이 많다. 이번에는 피부과 진료에서 건강보험이 적용되는 항목과 비···

5 0
GitHub REST API v3 PHP 연동 - 저장소 정보 조회부터 이슈 생성까지 완벽 가이드

GitHub에서 저장소 정보를 조회하거나 이슈를 자동으로 생성해야 하는 상황을 경험해봤을까. 단순히 웹사이트에서 수동으로 클릭하는 것보다 API를 통해 자동화하면 훨씬 효율적이다. 다만 대부분의 개발자들은 GitHub API 인증 방식이 여러 개인 것을 모르고, 레이트 제한에 걸려서 당황하거나, 응답 형식을 제대로 파싱하지 못해 헤맨다. 이번 글에서는 Gi···

7 0
CSS Grid vs Flexbox 레이아웃 완벽 비교 - 2차원 vs 1차원 레이아웃 언제 뭘 쓸까

웹 레이아웃을 짤 때 Grid를 써야 하나 Flexbox를 써야 하나 고민한 적 있을까. 대부분의 개발자들은 둘 다 '정렬된 박스들'이라고 생각해서 그냥 익숙한 것만 쓰거나, 구글에서 답을 찾아서 복사-붙여넣기한다. 다만 두 방식은 근본적으로 다른 목적을 가지고 있고, 어떤 상황에서 어느 것을 쓰느냐에 따라 코드 복잡도와 유지보수성이 완전히 달라진다. 이번···

6 0
직장인이 매달 내는 '보증금 반환보증보험료', 전세 계약 끝난 뒤에도 계속 내고 있진 않나

전세 계약을 끝내고 보증금을 받았는데, 통장에서 자동이체되는 '보증금 반환보증보험료'가 계속 빠져나가고 있다는 사실을 아는 사람은 많지 않다. 특히 계약이 만료된 지 한참 지난 뒤에야 깨닫는 경우가 대부분인데, 이미 수십만 원이 낭비되고 난 뒤일 때가 많다. 다만 이 부분을 제대로 이해하고 관리하면 즉시 지출을 멈출 수 있다. 이번엔 전세금 보증보험료가 뭔···

7 0
MySQL ERROR 1071: Specified key was too long - max_key_length 초과 완벽 해결

마이그레이션이나 테이블 생성 시 갑자기 나타나는 'Specified key was too long' 에러를 경험해봤을까? 인덱스나 기본키를 설정하려는데 컬럼 길이가 너무 길다며 생성이 거부되는 상황이다. 다만 대부분의 개발자들은 이 제한이 정확히 어디서 비롯되었는지, 왜 필요한지, 어떻게 해결해야 하는지 모른 채 컬럼 길이를 무작정 줄이거나 인덱스를 포기해···

7 0
Jest 스냅샷 테스트 실패 원인과 해결법 - 의도치 않은 변경 감지부터 업데이트 전략까지

프로젝트에서 Jest 스냅샷 테스트를 도입했는데, 코드를 조금만 수정해도 자꾸 실패한다는 불평을 팀원들에게서 자주 듣는다. 심지어 실제로 버그가 아닌데도 스냅샷만 갱신하는 데 시간을 쓰고 있진 않나. 스냅샷 테스트는 컴포넌트 렌더링 결과나 API 응답을 자동으로 기록했다가, 이후 변경을 감지하는 강력한 도구다. 다만 올바른 사용법을 모르면 거짓 양성(fal···

5 0
REDINFO Since 2014
webmaster@redinfo.co.kr
Copyright © Redinfo All Rights Reserved