Slug(슬러그)란?

피코소프트 디자이너
피코소프트 디자이너 2025.08.29 15:00
  • 홈페이지공개
  • 조회수 4
  • 댓글수 0

1265




안녕하세요. 피코소프트 백승흔입니다.


피코소프트 게시판 설계 과정에서 Slug 기능을 개발하게 되었으며, 이에 대한 주요 특징과 기술적인 내용을 간단히 정리하였습니다.



slug는 특정 콘텐츠(게시글, 페이지 등)를 식별하기 위해 사용되는 짧고 읽기 쉬운 URL-friendly 문자열입니다.


대부분의 CMS(워드프레스, WIX 등)에서는 자동 생성 기능을 제공합니다.



https://www.picosoft.kr/service/poster-design/

# 위 URL은 slug 형태로 피코소프트의 서비스 중, 포스터 디자인에 대해 설명하는 페이지입니다.



Slug의 특징


사람이 읽을 수 있음 : 123?post_id=5 대신 how-to-make-a-website처럼 의미를 전달


검색엔진(SEO)에 좋음 : 키워드가 URL에 포함되므로 검색 랭킹에 도움


공유/복사하기 쉬움 : 간결하고 이해하기 쉬운 URL 구조



Slug가 사용되는 곳


게시물 URL : /blog/how-to-write-slugs/


제품 URL : /products/red-sneakers/


FAQ, 페이지, 메뉴 : /faq/홈페이지-제작/



Slug 기반 라우팅


1. 데이터베이스(DB) 구조


CREATE TABLE posts (

    id INT AUTO_INCREMENT PRIMARY KEY,

    title VARCHAR(255),

    slug VARCHAR(20) UNIQUE,

    content TEXT

);

게시물을 Slug로 조회하기 위해서는, Slug 값이 중복되지 않도록 UNIQUE 제약 조건을 설정하여 유일성을 보장해야 합니다.



2. .htaccess (Apache mod_rewrite)


RewriteEngine On


# /post/slug-값 → index.php?slug=slug-값

RewriteRule ^post/([^/]+)/?$ index.php?slug=$1 [L,QSA]

3. PHP 라우팅 예시


<?php

// URL에서 slug 받기

$slug = $_GET['slug'] ?? null;


if ($slug) {

    $stmt = $mysqli->prepare("SELECT * FROM posts WHERE slug = ?");

    $stmt->bind_param("s", $slug);

    $stmt->execute();

    $result = $stmt->get_result();

    $post = $result->fetch_assoc();


    if ($post) {

        echo "<h1>{$post['title']}</h1>";

        echo "<div>{$post['content']}</div>";

    } else {

        http_response_code(404);

        echo "게시글을 찾을 수 없습니다.";

    }

}

?>

그럼 오늘도 좋은 하루 보내세요.


감사합니다.



▶ 해당 게시물 블로그에서 보기


https://blog.naver.com/qortmdgms/223973296140