분류 전체보기
-
개요드디어 맥북을 업그레이드 했다. 오랜 기간 동고동락한 m1 에어를 보내주고 m4 에어를 질러버렸다.기분좋게 마이그레이션까지 마치고 VScode에서 터미널을 열었는데 갑자기 아래와 같은 에러가 출력되기 시작했다.compinit:480: compdump: function definition file not found.zshrc:188: add-zsh-hook: function definition file not foundcompinit 관련 에러zsh에서 compinit은 자동 완성 기능을 초기화할 때 사용하는 함수인데, 뭔가 꼬였는지 함수 파일 자체를 못 찾는다고 에러가 발생했다.그래서 .zshrc에 다음 스크립트를 추가해보았다autoload -Uz compinitcompinitautoload -U b..
기타 - compinit:480: compdump: function definition file not found 에러 해결(feat. m4 에어 마이그레이션)개요드디어 맥북을 업그레이드 했다. 오랜 기간 동고동락한 m1 에어를 보내주고 m4 에어를 질러버렸다.기분좋게 마이그레이션까지 마치고 VScode에서 터미널을 열었는데 갑자기 아래와 같은 에러가 출력되기 시작했다.compinit:480: compdump: function definition file not found.zshrc:188: add-zsh-hook: function definition file not foundcompinit 관련 에러zsh에서 compinit은 자동 완성 기능을 초기화할 때 사용하는 함수인데, 뭔가 꼬였는지 함수 파일 자체를 못 찾는다고 에러가 발생했다.그래서 .zshrc에 다음 스크립트를 추가해보았다autoload -Uz compinitcompinitautoload -U b..
11:34:14 -
개요Grafana로 PHP 서버 상태를 모니터링하려고 하다가 Apache 환경에서의 설정과 보안 문제를 겪게 되어, 그 과정을 정리해보았다.특히 server-status를 외부에서 접근 가능하게 열었을 때 생기는 보안 이슈와, Nginx 프록시 환경에서의 IP 처리 문제를 어떻게 해결했는지를 중심으로 다룬다.Apache server-status 활성화Apache에서는 mod_status 모듈을 활성화한 뒤 /server-status 엔드포인트를 열어 서버 상태 정보를 확인할 수 있다.Grafana로 apache 서버를 모니터링 할때는 해당 데이터를 수집하기 위해 보통 Prometheus용 Apache Exporter와 연결하여 시각화한다.처음에는 다음과 같은 설정으로 server-status를 활성화했었..
PHP - Apache server status 설정 + 프록시 IP 처리개요Grafana로 PHP 서버 상태를 모니터링하려고 하다가 Apache 환경에서의 설정과 보안 문제를 겪게 되어, 그 과정을 정리해보았다.특히 server-status를 외부에서 접근 가능하게 열었을 때 생기는 보안 이슈와, Nginx 프록시 환경에서의 IP 처리 문제를 어떻게 해결했는지를 중심으로 다룬다.Apache server-status 활성화Apache에서는 mod_status 모듈을 활성화한 뒤 /server-status 엔드포인트를 열어 서버 상태 정보를 확인할 수 있다.Grafana로 apache 서버를 모니터링 할때는 해당 데이터를 수집하기 위해 보통 Prometheus용 Apache Exporter와 연결하여 시각화한다.처음에는 다음과 같은 설정으로 server-status를 활성화했었..
2025.04.21 -
피곤한 월요일, 여느 때와 같이 일을 하다 잠깐 쉬는 시간에 내 사이트는 잘 돌아가고 있나 들어가보았는데?메인페이지에서 500 에러가 발생하고 있었다.경험상 잘 돌아가던 사이트의 메인페이지에서 에러가 발생하는 경우는 보통 db 연결에 장애가 생겨 그런 경우가 대부분이었어서 '뭐지 db가 꺼졌나?', 'cloudflare 연결한게 원인인가? 아닌데.. db는 ip로 연결해서 별 관련 없는데..' 하는 생각을 하며 서버에 접속을 해보았다.흐으음... db는 안 내려갔고... 이상이 없는데? redis가 내려갔나? redis도 정상적인데....원인을 찾지 못하고 애꿎은 서버 로그만 뒤적이고 있었다.그런데???All your data is backed up. You must pay 0.0100 BTC to bc..
DB를 털리다.피곤한 월요일, 여느 때와 같이 일을 하다 잠깐 쉬는 시간에 내 사이트는 잘 돌아가고 있나 들어가보았는데?메인페이지에서 500 에러가 발생하고 있었다.경험상 잘 돌아가던 사이트의 메인페이지에서 에러가 발생하는 경우는 보통 db 연결에 장애가 생겨 그런 경우가 대부분이었어서 '뭐지 db가 꺼졌나?', 'cloudflare 연결한게 원인인가? 아닌데.. db는 ip로 연결해서 별 관련 없는데..' 하는 생각을 하며 서버에 접속을 해보았다.흐으음... db는 안 내려갔고... 이상이 없는데? redis가 내려갔나? redis도 정상적인데....원인을 찾지 못하고 애꿎은 서버 로그만 뒤적이고 있었다.그런데???All your data is backed up. You must pay 0.0100 BTC to bc..
2025.04.14 -
개요가난한 개발자는 무료 서버를 사용할 수 밖에 없고 8,000km나 떨어진 서버를 사용하는 사이트에 접속하면 속도는 끔찍한 경우가 대부분이다.특히나 메인페이지에 접속할때마다 자체 이미지 호스팅 서버에서 수많은 이미지를 불러오고, db 서버에서 복잡한 조회 쿼리를 실행하는 내 사이트의 속도는 최악 중의 최악에 치달았다.이를 해결하기 위해 방법을 찾아보다 CDN 서비스라는 것을 알게 되었고, 그 중에 전세계 1등 CDN 서비스 회사인 Cloudflare를 사용하게 되었다.DNS 설정을 하고, 처음보는 서비스가 신기해 이것저것 설정을 해본 후 속도가 얼마나 빨라졌나 기대를 하며 내 사이트에 접속을 하는데! 이게 뭐람? 정상적이던 내 사이트가 갑자기 접속이 안 되기 시작했다.ERR_SSL_PROTOCOL_ER..
Nginx - Nginx Proxy Manager + Cloudflare ssl 적용개요가난한 개발자는 무료 서버를 사용할 수 밖에 없고 8,000km나 떨어진 서버를 사용하는 사이트에 접속하면 속도는 끔찍한 경우가 대부분이다.특히나 메인페이지에 접속할때마다 자체 이미지 호스팅 서버에서 수많은 이미지를 불러오고, db 서버에서 복잡한 조회 쿼리를 실행하는 내 사이트의 속도는 최악 중의 최악에 치달았다.이를 해결하기 위해 방법을 찾아보다 CDN 서비스라는 것을 알게 되었고, 그 중에 전세계 1등 CDN 서비스 회사인 Cloudflare를 사용하게 되었다.DNS 설정을 하고, 처음보는 서비스가 신기해 이것저것 설정을 해본 후 속도가 얼마나 빨라졌나 기대를 하며 내 사이트에 접속을 하는데! 이게 뭐람? 정상적이던 내 사이트가 갑자기 접속이 안 되기 시작했다.ERR_SSL_PROTOCOL_ER..
2025.04.11 -
개요Go로 이미지 호스팅 서버를 개발하던 중, 이미지 리사이즈 기능을 구현하는 과정에서 고민했던 점들을 정리해보았다.go 주요 이미지 리사이즈 라이브러리 비교라이브러리장점단점bimg- libvips 기반으로 매우 빠른 처리 속도 - 메모리 사용량이 적음 - 다양한 이미지 포맷 지원- C 바인딩으로 인한 설치 복잡도 증가 - libvips 의존성 필요 - Windows 환경에서 설정이 까다로움imaging- 순수 Go로 작성되어 설치가 간단 - 크로스 플랫폼 지원이 용이 - API가 직관적이고 사용하기 쉬움- 처리 속도가 상대적으로 느림 - 메모리 사용량이 많음 - 일부 고급 이미지 처리 기능 부재nfnt/resize- 가볍고 단순한 구현 - 순수 Go로 작성되어 의존성이 ..
Go - 이미지 리사이즈 기능(/h2non/bimg)개요Go로 이미지 호스팅 서버를 개발하던 중, 이미지 리사이즈 기능을 구현하는 과정에서 고민했던 점들을 정리해보았다.go 주요 이미지 리사이즈 라이브러리 비교라이브러리장점단점bimg- libvips 기반으로 매우 빠른 처리 속도 - 메모리 사용량이 적음 - 다양한 이미지 포맷 지원- C 바인딩으로 인한 설치 복잡도 증가 - libvips 의존성 필요 - Windows 환경에서 설정이 까다로움imaging- 순수 Go로 작성되어 설치가 간단 - 크로스 플랫폼 지원이 용이 - API가 직관적이고 사용하기 쉬움- 처리 속도가 상대적으로 느림 - 메모리 사용량이 많음 - 일부 고급 이미지 처리 기능 부재nfnt/resize- 가볍고 단순한 구현 - 순수 Go로 작성되어 의존성이 ..
2025.03.28 -
개요개발을 하다보면 변수를 넣어야하는 문자열을 또 변수로 사용하게 될때가 있는데 매번 문자열을 불러와서 변수를 .으로 붙여주거나 복잡하게 넣어주게 돼서 간단한 방법이 없나 찾아보다 클로저 함수라는 것을 사용하게 되었다.사용 예시// 문자열에 변수 추가$exam_url = fn($id) => "https://example.com/user/$id";echo $exam_url(123); // "https://example.com/user/123"// 문자열에 변수 여러 개 추가$profile = fn($name, $age) => "이름: $name, 나이: $age";echo $profile("aleph", 26); // "이름: aleph, 나이: 26"// 문자열에 삼항연산자로 변수 추가$status = ..
PHP - 클로저(Closure, 익명 함수)개요개발을 하다보면 변수를 넣어야하는 문자열을 또 변수로 사용하게 될때가 있는데 매번 문자열을 불러와서 변수를 .으로 붙여주거나 복잡하게 넣어주게 돼서 간단한 방법이 없나 찾아보다 클로저 함수라는 것을 사용하게 되었다.사용 예시// 문자열에 변수 추가$exam_url = fn($id) => "https://example.com/user/$id";echo $exam_url(123); // "https://example.com/user/123"// 문자열에 변수 여러 개 추가$profile = fn($name, $age) => "이름: $name, 나이: $age";echo $profile("aleph", 26); // "이름: aleph, 나이: 26"// 문자열에 삼항연산자로 변수 추가$status = ..
2025.03.21 -
개요웹개발을 할때 svg 아이콘이 필요하면 유튜브에서 사용하는 svg 태그를 가져다 사용하고 있는데 유튜브에 존재하는 모든 svg를 미리 분류해두고 싶어 php를 사용해 유튜브 페이지의 전체 html에서 svg 태그만 추출하기 위해 php로 태그 추출기를 만들어보았다.코드(.*?)/is";preg_match_all($pattern, $html, $matches);// 결과 처리$output = implode("\n", $matches[0]);// 파일로 저장file_put_contents('output.html', $output);echo "태그 추출이 완료되었습니다.";사용 예시input.html 위 html을 php 파일과 같은 경로에 input.html로 저장하..
PHP - html 태그 추출기개요웹개발을 할때 svg 아이콘이 필요하면 유튜브에서 사용하는 svg 태그를 가져다 사용하고 있는데 유튜브에 존재하는 모든 svg를 미리 분류해두고 싶어 php를 사용해 유튜브 페이지의 전체 html에서 svg 태그만 추출하기 위해 php로 태그 추출기를 만들어보았다.코드(.*?)/is";preg_match_all($pattern, $html, $matches);// 결과 처리$output = implode("\n", $matches[0]);// 파일로 저장file_put_contents('output.html', $output);echo "태그 추출이 완료되었습니다.";사용 예시input.html 위 html을 php 파일과 같은 경로에 input.html로 저장하..
2025.03.17 -
See the Pen Star Rating by 김채민 (@aleph-kim) on CodePen.
HTML, CSS - 별점 선택(Star Rating)See the Pen Star Rating by 김채민 (@aleph-kim) on CodePen.
2025.03.13