뷰 파일(.twig)에서는 중괄호 {{ 변수명 }} 를 통해 값을 출력하고, {% for %} 등의 구문을 통해 제어 흐름을 다룹니다.
templates/profile.twig
<h2>반갑습니다, {{ user.name }}님!</h2>
<p>권한: {{ user.role | upper }}</p> <!-- upper 필터를 통해 대문자로 렌더링 -->
<h4>보유 기술 스택:</h4>
<ul>
{% for skill in user.skills %}
<li>{{ skill }}</li>
{% else %}
<li>등록된 스킬이 없습니다.</li>
{% endfor %}
</ul>
localhost:8080/profile/Minstudio
반갑습니다, Minstudio님!
권한: ADMINISTRATOR
보유 기술 스택:
PHP
Slim Framework
Twig
💡 안전한 XSS 방어 (Auto-escaping)
Twig의 {{ }} 출력 구문은 기본적으로 HTML 이스케이프 처리가 자동으로 적용됩니다. 악의적인 유저가 입력 폼에 <script> 태그를 넣어두었더라도, 브라우저에서 실행되지 않고 안전한 텍스트로 치환되어 렌더링되므로 XSS(Cross Site Scripting) 공격을 원천적으로 차단할 수 있습니다.
Twig 렌더링 결과 확인
위의 코드 실행 결과 블록에서 볼 수 있듯, $userData 배열 데이터가 Twig 엔진을 거치면서 템플릿의 변수 부분과 결합되어 완벽한 HTML 페이지로 브라우저에 렌더링 됩니다.