반응형 crud4 [PHP] REST API 서버 만들기 — 프레임워크 없이 순수 PHP로 CRUD API 구현 왜 만들었나지난 두 편에서 PHP로 로그인 시스템과 게시판을 만들었다. 둘 다 서버에서 HTML을 렌더링하는 전통적인 방식이었다. 이번엔 반대로, JSON만 응답하는 REST API 서버를 만든다.프론트엔드가 React든 Vue든 모바일 앱이든, API 서버는 입력받고 처리하고 JSON을 돌려주는 역할만 한다. 프레임워크 없이 PHP 내장 기능만으로 이걸 구현하면, 라우팅이 어떻게 동작하는지, HTTP 메서드가 왜 5가지인지, 상태 코드가 왜 중요한지 직접 체감할 수 있다.기술 상세아키텍처27-php-rest-api/├── index.php # 라우터 + 핸들러 (단일 진입점)├── db.php # PDO SQLite 싱글턴├── .htaccess # Apache 리라이트 (php -S .. 2026. 3. 4. [PHP] 게시판 CRUD 만들기 — SQLite, CSRF 방어, 소유권 검사, 페이지네이션 왜 만들었나지난 글에서 PHP 로그인/회원가입 시스템을 만들었다. 그런데 인증만 있고 정작 뭔가를 올릴 곳이 없으니 반쪽짜리였다. 게시판은 웹 개발의 가장 고전적인 CRUD 예제이면서도, 실전에서 반드시 부딪히는 패턴들이 압축돼 있다.인증된 사용자만 쓸 수 있는 기능 (작성/수정/삭제)남의 글을 못 건드리게 하는 소유권 검사CSRF 공격 방어페이지네이션 (글이 많아지면 한 번에 다 보여줄 수 없다)SQLite를 그대로 쓰고 MySQL로 전환할 때는 DSN 한 줄만 바꾸는 구조로 설계했다.기술 상세아키텍처26-php-board/├── db.php # PDO 싱글턴, 테이블 auto-create├── auth.php # 세션, CSRF, current_user()├── header.php .. 2026. 3. 4. [Python] FastAPI로 REST API 서버 만들기 — Pydantic, CRUD, 자동 문서화 왜 FastAPI인가Python 백엔드 프레임워크 하면 Flask나 Django가 먼저 떠오른다. FastAPI는 2019년에 등장했지만 이미 Star 수에서 Flask를 앞질렀다. 이유는 세 가지다.첫째, 빠르다. Starlette + uvicorn 기반 비동기 서버라 Node.js, Go 수준의 처리량이 나온다. 둘째, 타입 힌트 기반 자동 검증이다. Pydantic 모델을 정의하면 요청 파싱, 유효성 검사, 에러 메시지가 자동으로 처리된다. 셋째, 자동 문서화다. 코드를 작성하면 /docs에서 Swagger UI가 즉시 열린다.Flask와 비교하면:항목FlaskFastAPI성능WSGI (동기)ASGI (비동기)입력 검증직접 구현Pydantic 자동 처리문서화별도 설정/docs 자동 생성타입 힌트선택.. 2026. 3. 4. [HTML/CSS/JS] 로컬스토리지 메모장 앱 만들기 로컬스토리지 메모장 앱 만들기왜 만들었나서버 없이 브라우저만으로 동작하는 메모 앱이 목표였다. localStorage로 데이터를 영구 저장하고, CRUD 전체를 바닐라 JS로 구현했다. 외부 라이브러리는 없다.구현 목표:메모 생성/수정/삭제 (CRUD 완성)자동 저장 — 타이핑 멈추면 600ms 후 저장 (디바운스)실시간 검색 — 제목 + 본문 동시 필터링XSS 방어 — escHtml()로 사용자 입력 이스케이프구조파일 하나, 외부 의존성 없음.06-localstorage-notepad/└── index.html레이아웃은 3영역으로 나뉜다.영역역할Topbar앱 타이틀, 검색창, 새 메모 버튼Sidebar메모 목록 (제목 + 미리보기 + 날짜)Editor제목 인풋 + 본문 textarea + 저장 상태 +.. 2026. 2. 28. 이전 1 다음 반응형