본문 바로가기

전체 글348

🚨 전 세계 웹사이트의 70%가 흔들렸다? PHP2Shell 사태 총정리 1. 한 줄 요약: "로그인도 없이 서버를 열어젖히는 열쇠가 나왔다"2026년 10월 21일, PHP에서 원격 코드 실행이 가능한 심각한 보안 취약점 2개가 공식 공개됐습니다. 별도의 로그인 절차 없이 서버에서 악성 코드를 실행할 수 있는 결함이고, 실제 공격 시도까지 포착되자 일부 기관과 기업은 웹사이트 운영을 일시 중단했습니다. 보안업계는 이 사태에 PHP2Shell이라는 이름을 붙였어요. PHP로 '쉘(shell, 서버 명령창)'을 딴다는 뜻이니, 이름부터 불길하죠.2. 사건의 발단: 예고편은 있었는데, 스포일러가 먼저 터졌다PHP 개발진은 치명적인 보안 업데이트를 21일 UTC 14시(한국 시간 23시)에 배포하겠다고 미리 알렸습니다. 해커 뉴스에서는 취약점 정보가 곧 공개된다는 유출 글이 올라왔.. 2026. 10. 24.
[Svelte] SvelteKit v3 SvelteKit 3 정식 출시: v2와 달라진 점과 마이그레이션 가이드 총정리SvelteKit 3가 정식 출시되었습니다. 기능을 대거 추가하는 릴리스라기보다는 레거시를 걷어내고 설정 구조를 Vite 중심으로 재정비하는 정리 릴리스에 가깝습니다. 이 글에서는 v3의 핵심 변화, v2와의 차이점, 그리고 실제 마이그레이션 절차를 한 번에 정리합니다.1. SvelteKit 3, 한눈에 보기SvelteKit 3의 방향성은 크게 세 가지로 요약할 수 있습니다.설정의 Vite 일원화: svelte.config.js가 사라지고 모든 설정이 vite.config.js(ts)의 sveltekit() 플러그인 옵션으로 이동레거시 제거와 Svelte 5 전제: $app/stores, base/assets 등 depreca.. 2026. 10. 9.
[Git] Worktree Command 평소에 개발을 하다 보면 갑자기 급한 버그 수정 요청이 들어오거나, 다른 브랜치의 코드를 참고하면서 작업해야 할 때가 있잖아요?그럴 때마다 지금 하던 작업을 git stash로 잠시 치워두거나, 아직 다 완성되지도 않은 코드를 임시로 commit 하고 브랜치를 옮기는 게 참 번거롭더라고요.그래서 계속 다른 방법들을 찾아봤었는데, 새로 프로젝트를 통째로 clone 받아서 다른 폴더에서 여는 것 외에는 마땅한 대안을 찾기가 어렵더라고요.그런데 프로젝트 용량이 크면 매번 새로 받는 것도 일이고, 설정도 다시 해야 하니 귀찮았어요.하나의 로컬 저장소에서 여러 브랜치를 동시에 펼쳐놓고 작업하면 참 좋을 텐데, 안 그래도 개발 시간에 쫓기는데 이런 사소한 컨텍스트 스위칭에 에너지를 쓰는 건 비효율적이더라고요.그러다.. 2026. 3. 7.
Windsurf IDE, Claude Code 사용하여 웹 개발하기 오래전에 Flutter web으로 만들어봤던 웹인데, 필요한 것들 추가로 더 기능 추가도 하고 프레임워크도 SvelteKit으로 완전히 바꿔서 AI로 바이브 코딩을 해봤습니다. 그 과정에서 느낀 것들 공유를 해보고자 포스팅을 합니다. ㅎㅎ Wep Application먼저, 간략하게 개발한 웹을 소개시켜 드릴게요.https://hmultitools.vercel.app/ 개인적으로 필요했던 툴들을 쉽게 사용하려고 모아둔 사이트 정도로 생각해 주시면 될 것 같아요.프로그래머용 계산기, 대출 계산기, 할인 계산기, 환전 계산기, 로또 계사기, 단위 변환 계산기, BMI 계산기 등 실생활에서 자주 혹은 가끔 이용하는 것들을 계산기 형태로 만들었어요.비교 등을 위해 최근에 했던 계산 결과가 필요한 경우가 많아서, .. 2025. 8. 18.
[Azure] Windows VM with MacOSX Windows에서 돌아가는 프로그램을 mac에서 개발하고 싶어서 azure를 사용해봤어요.선택 이유는 단순히 OS랑 VM이랑 둘 다 같은 회사인 MS라서? 😁Create VMAzure에 회원 가입을 하고 portal에 접속을 하면 바로 메뉴가 보입니다.Virtual machines를 누르고 기본적인 설정만 넣으면 되요.Free Trial로 B1s 사용해봤는데, 이건 뭐 탐색기나 웹브라우저 열기만 해도 엄청난 시간이 걸려서... 도저히 개발용으로 쓸 상태가 안되더라고요.그래서 요번 포스팅에서는 한 단계 올려서 B2s로 해봤어요.가격이 살벌하긴 한데, 전 매일 쓸 것도 아니고 한 달에 몇 시간 안쓸듯 하니... 꺼두면 디스크 비용만 청구되서 한 달에 만원 이하일 듯 하더라고요.이제 기다리면  deploy가.. 2025. 2. 28.
[Mac] Zsh Configuration 이번 포스팅에서는 Mac에서 zsh을 설정하는 방법을 살펴보겠습니다.InstallationMac에서는 homebrew를 이용하여 설치를 하는 게 보편적이죠.다음 명령어로 설치를 합니다.$ brew install zsh개인적으로 zsh을 이 위치까지 올려준 건 모두 oh-my-zsh 덕분이라고 생각합니다.oh-my-posh 같은 아류까지 만들어질 정도니까요.당연히 설치를 해줍니다.$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Plugins이제 유용한 플러그인 몇 가지를 추가해 줍니다.zsh-syntax-highlighting명령어등을 인식해서 색깔을 입혀주는 플러그인 입니다.다음 .. 2024. 12. 25.
[MacOSX] M4 맥미니 초기 설정 맥은 매번 살 때마다 그간의 변화를 고려하여 마이그레이션 하지 않고 새로 설정하고 있어요. ㅎㅎ참고해 보시라고 공유해 봅니다.날짜나 시간 포맷 같이 개인 취향적인 건 각자 설정하면 되니 제외할게요.전 개발 공부가 위주라서 그 외의 다른 건 거의 안하고 있다보니 그 점은 감안해주세요.또한, 영어를 기본 언어로 사용하고 있어요.예전엔 설정도 막 파고 들어서 확장도 직접 만들면서 했는데, 지금은 시간이 워낙 부족해서 그냥 필요한 만큼씩만 찾아서 적용하는 수준이긴 하네요.System Settings전 간단히 다음과 같은 정도를 해줍니다.방화벽 켜기 : 네트워크Dock 자동 숨김 : 데스크탑 및 Dock -> 자동으로 Dock 가리기와 보기입력 소스 변경 키를 우측 ALT로 : 키보드 -> 키보드 단축키마우스 스.. 2024. 12. 25.
[Flutter] Using Firebase Remote Config OpenAPI 등을 사용할 때, 노출이 되면 안되는 key 값들을 사용하게 되죠.따라서, 이 값을 안전하게 할 수 있도록 다양한 방법을 사용합니다.이번엔 firebase에서 제공하는 remote config를 사용하는 방법을 알아보겠습니다.Create Project먼저, firebase에서 프로젝트를 생성합니다.프로젝트 만들기를 누릅니다.다음으로 사용할 이름을 입력하고 계속 버튼을 누릅니다.이후 설정은 원하는대로 해주세요.일단은 기본으로 하셔도 나중에 다 바꿀 수 있을거에요.전 애널리틱스 사용하는 것으로 설정해서 계정 연동까지 해줬어요.마지막으로 프로젝트 만들기 버튼을 누르면 끝입니다.Integrate with Firebase이제 flutter application과 firebase를 연결해 줍니다.Fl.. 2024. 10. 19.
[Python] FFI with Rust 이번 포스팅에서는 Rust로 작성한 코드를 Python에서 사용하는 방법에 대해 설명하겠습니다.Install maturin/PyO3먼저, python 가상 환경을 만들고 rust로작성한 코드를 python package로 빌드할 수 있는 tool을 설치해 줍니다.$ pip install maturinCreate Project다음으로 설치한 tool을 사용하여 프로젝트를 생성합니다.다음 명령을 입력하면 PyO3를 빌드 시스템으로 하는 프로젝트를 생성합니다. $ maturin init -b pyo3Implement Library Crate이제 원하는 rust 코드를 작성합니다.use pyo3::prelude::*;use std::fs::File;use std::io::{Read};#[pyfunction]fn.. 2024. 7. 22.