2026년에 PHP로 블로그를 만든 이유
작은 블로그를 위해 Nginx, PHP-CGI와 파일 기반 콘텐츠를 선택한 이유를 정리합니다.
이 블로그의 목적은 기록을 쌓는 것뿐만 아니라, 웹 서버부터 콘텐츠가 전달되는 과정까지 직접 이해하는 데 있습니다. 그래서 필요한 기능보다 큰 프레임워크를 먼저 선택하지 않았습니다.
작은 런타임
Nginx가 정적 파일을 처리하고, 그 외 요청은 FastCGI를 통해 PHP로 전달합니다. PHP는 URL을 해석하고 미리 생성된 HTML을 템플릿에 넣어 응답합니다.
GET /ko/posts/example
→ Nginx
→ PHP-CGI
→ generated HTML
글 작성 과정과 서비스 런타임도 분리했습니다. Markdown 변환과 코드 하이라이트는 별도 빌드 스크립트가 담당하고, 운영 서버는 완성된 HTML만 읽습니다.
의도적으로 남겨 둔 단순함
페이지 이동에는 링크를, 데이터 제출에는 HTML 폼을 사용할 계획입니다. JavaScript는 테마나 코드 복사처럼 브라우저에서만 해결할 가치가 있는 기능에 제한합니다.
이 선택이 모든 서비스에 적합한 것은 아닙니다. 하지만 개인 기술 블로그에는 구조를 작게 유지하면서 서버 렌더링, URL 설계, 캐싱과 데이터 저장을 직접 다룰 수 있는 좋은 기준점입니다.
package com.codemcd.springcustomvalidation.dto;
import lombok.*;
import javax.validation.constraints.NotNull;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@Getter
@ToString
public class PersonDto {
@NotNull
private String name;
private int age;
@NotNull
private String birthday;
@Builder
public PersonDto(String name, int age, String birthday) {
this.name = name;
this.age = age;
this.birthday = birthday;
}
}