PHP 프레임워크 – Symfony – 1 – Symfony 설치와 구성

PHP 프레임워크 - Symfony - 1 - Symfony 설치와 구성
PHP 프레임워크 – Symfony – 1 – Symfony 설치와 구성

PHP 프레임워크 – Symfony – 설치와 구성

안녕하세요 여러분 😊
이번 시간에는 Symfony 프레임워크를 본격적으로 사용하기 위한 설치 방법과 기본 구성에 대해 알아보겠습니다!
Symfony는 구조가 체계적이고 모듈화가 잘 되어 있어서, 처음에는 다소 복잡해 보일 수 있지만
한 번만 익혀두면 다양한 웹 프로젝트에서 안정적으로 활용하실 수 있어요.

Symfony는 **“자동화된 고급 레고 세트”**라고 보시면 딱 맞습니다!
필요한 모듈만 끼워 넣으면 어떤 시스템이든 멋지게 조립할 수 있는 느낌이죠 🧱💡


1. Symfony 설치를 위한 준비사항

Symfony는 PHP 기반 프레임워크이기 때문에, 먼저 PHP 환경이 준비되어 있어야 해요.

✅ 필수 설치 항목

항목 설명
PHP 8.1 이상 최신 Symfony는 PHP 8 이상을 권장해요
Composer PHP 패키지 관리자
Symfony CLI (선택적이지만 강력 추천) 개발 편의성과 실행 속도 향상
데이터베이스 MySQL, PostgreSQL, SQLite 등 가능

2. Symfony CLI 설치 (강력 추천)

Symfony는 전용 CLI 도구를 제공합니다.
이걸 설치하면 서버 실행, 프로젝트 생성, 번들 관리 등을 아주 쉽게 할 수 있어요!

💻 설치 명령어 (Linux / Mac / WSL 기준)

curl -sS https://get.symfony.com/cli/installer | bash

윈도우 사용자라면 공식 설치 가이드에서 .exe 설치 프로그램을 다운로드하세요!

설치 후에는 아래처럼 버전 확인이 가능합니다:

symfony -v

3. 새로운 Symfony 프로젝트 생성

기본 웹 애플리케이션 템플릿 생성

symfony new my_project_name --webapp
옵션 설명
--webapp Twig, Doctrine, Security 등 일반적인 웹 앱 구성요소 포함
--full 전체 기능 포함 (대규모 프로젝트용)
--api API 전용 구성 (Twig 생략, JSON 기반 API에 적합)

프로젝트 생성 후 디렉터리로 이동:

cd my_project_name

4. Symfony 서버 실행하기

로컬에서 테스트 서버를 즉시 실행하려면:

symfony serve

기본적으로 http://127.0.0.1:8000 주소로 실행됩니다.

브라우저에서 접속하면 Symfony 환영 페이지가 보일 거예요 🎉


5. 프로젝트 디렉터리 구조 이해하기

Symfony는 아래와 같은 구조를 가지고 있어요:

my_project/
├── bin/                # 실행 스크립트 (console 포함)
├── config/             # 설정 파일 (routes, packages, services 등)
├── public/             # 웹 루트 (index.php 존재)
├── src/                # 애플리케이션 코드 (Controller, Entity 등)
├── templates/          # Twig 템플릿 파일
├── tests/              # PHPUnit 테스트
├── translations/       # 다국어 번역
├── var/                # 캐시, 로그 저장
├── vendor/             # Composer 라이브러리
└── .env                # 환경변수 설정

6. 환경 설정 (.env 파일)

Symfony는 .env 파일을 통해 환경별 설정을 쉽게 바꿀 수 있어요.

APP_ENV=dev
APP_SECRET=your_app_secret
DATABASE_URL="mysql://user:password@127.0.0.1:3306/mydb"

환경별 설정이 필요한 경우 .env.dev, .env.test 등을 따로 작성할 수도 있습니다.


7. 라우팅 설정

기본 라우팅은 config/routes.yaml 또는 attributes 방식으로 설정해요.

# config/routes.yaml
home:
    path: /
    controller: App\Controller\HomeController::index

혹은 컨트롤러에서 바로 어노테이션 방식으로도 가능해요:

use Symfony\Component\Routing\Annotation\Route;

class HomeController extends AbstractController
{
    #[Route('/', name: 'home')]
    public function index()
    {
        return $this->render('home/index.html.twig');
    }
}

8. Twig 템플릿 설정

Twig는 Laravel의 Blade와 유사한 템플릿 엔진이에요.
templates/ 폴더에 .html.twig 파일을 만들면 바로 사용 가능해요.

{# templates/home/index.html.twig #}
<h1>안녕하세요 Symfony!</h1>
<p>{{ message }}</p>

컨트롤러에서 변수 전달도 아래처럼 가능하죠:

return $this->render('home/index.html.twig', [
    'message' => '환영합니다!',
]);

9. 데이터베이스 설정과 Doctrine 연동

Symfony는 기본 ORM으로 Doctrine을 사용합니다.

.env에서 DB 정보를 설정한 뒤:

composer require symfony/orm-pack
composer require --dev symfony/maker-bundle

엔티티 생성:

php bin/console make:entity

마이그레이션 실행:

php bin/console doctrine:migrations:migrate

10. 캐시/로그 관리

  • 캐시 삭제: php bin/console cache:clear
  • 로그 확인: var/log/dev.log
  • 설정 확인: php bin/console debug:config

주의할 점 ✅

항목 주의사항
PHP 버전 Symfony 최신 버전은 PHP 8.1 이상 필요
캐시 초기화 설정 변경 후엔 cache:clear 필수
파일 권한 var/, vendor/ 디렉터리는 웹서버가 읽을 수 있도록 권한 설정
번들 설치 기능이 빠져 있다면 composer require로 직접 추가 필요
Composer Symfony는 composer 기반이므로 composer 설치 필수

요약 정리 🎯

작업 명령어
Symfony CLI 설치 `curl -sS https://get.symfony.com/cli/installer | bash`
프로젝트 생성 symfony new my_project --webapp
서버 실행 symfony serve
엔티티 생성 php bin/console make:entity
DB 마이그레이션 php bin/console doctrine:migrations:migrate
캐시 삭제 php bin/console cache:clear

마무리하며 😊

Symfony는 처음엔 다소 구조가 복잡해 보일 수 있지만,
한 번 적응하고 나면 확장성과 유지보수성이 정말 뛰어난 프레임워크예요!

오늘 배운 설치 및 기본 구성 방법을 통해
앞으로 Symfony로 멋진 웹 애플리케이션을 만들어 나갈 수 있는 튼튼한 발판이 되셨길 바라요 🙌

다음 시간에는 Symfony의 라우팅과 컨트롤러 구조를 좀 더 깊이 있게 파헤쳐볼게요!
그럼 오늘도 코딩이 즐거운 하루 되세요~ 🐘💻✨

답글 남기기