---
title: "첫 번째 장고 앱 작성하기, part 6"
version: 5.2
locale: ko
source: https://docs.djangoproject.com/ko/5.2/intro/tutorial06/
canonical: https://djangodocs.dev/ko/5.2/intro/tutorial06/
---
# 첫 번째 장고 앱 작성하기, part 6

이 튜토리얼은 :doc:튜토리얼 5장 \</intro/tutorial05\>\`에 이어서 시작합니다. 우리는 테스트된 Web-poll 애플리케이션을 구축했으며, 이제 스타일시트와 이미지를 추가할 것입니다.

서버에서 생성 된 HTML을 제외하고,  웹 어플리케이션은 일반적으로 전체 웹 페이지를 렌더링하는 데 필요한 추가 파일 — 예:이미지, JavaScript 또는 CSS — 을 제공해야합니다. Django에서는 이러한 파일을 “정적 파일” 이라고 부릅니다.

소규모 프로젝트에서는 정적 파일을 웹 서버에서 찾을 수 있는 위치에 보관할 수 있으므로 이는 큰 문제가 되지 않습니다. 그러나 대형 프로젝트, 특히 여러 앱으로 구성된 프로젝트에서는 각 애플리케이션에서 제공하는 여러 정적 파일 세트를 처리하는 것이 까다로워지기 시작합니다.

이것이 `django.contrib.staticfiles`의 목적입니다: 이것은 각 응용 프로그램(및 여러분이 지정한 다른 위치)의 정적 파일들을 프로덕션 환경에서 쉽게 제공 할 수있는 단일 위치로 수집합니다.

> **도움을 받을 수 있는 방법**
>
> 이 튜토리얼을 수행하는 데 문제가 있는 경우 FAQ 섹션인 :doc:Getting Help \</faq/help\>\`으로 이동하십시오.

## *앱*의 모양과 느낌을 원하는 대로 바꿔보세요.

먼저, `polls` 디렉토리에 `static` 디렉토리를 만듭니다.  `polls/templates/` 안의 템플릿을 찾는 것과 비슷하게 정적 파일을 찾습니다.

Django의 [`STATICFILES_FINDERS`](/ko/5.2/ref/settings/#std-setting-STATICFILES_FINDERS)  설정은 다양한 소스에서 정적 파일을 찾는 방법을 알고 있는 파인더 목록을 가지고 있습니다. 기본값 중 하나는 `AppDirectoriesFinder` 인데,  [`INSTALLED_APPS`](/ko/5.2/ref/settings/#std-setting-INSTALLED_APPS) 에서 “정적” 하위 디렉토리를 찾습니다, 방금 생성 한 `polls` 의 경우입니다. 관리 사이트는 정적 파일에 대해 동일한 디렉토리 구조를 사용합니다.

방금 생성한 `static` 디렉토리 안에 `polls` 라는 또 다른 디렉토리를 만들고 그 안에 `style.css` 라는 파일을 만듭니다. 즉, 스타일 시트는 `polls/static/polls/style.css`에 있어야합니다.  `AppDirectoriesFinder` 정적 파일 검색기 작동 방식 때문에 장고에 있는 이 정적 파일을 템플릿 경로를 참조하는 방식과 유사하게 `polls/style.css` 라고 부를 수 있습니다.

> **정적 파일 네임스페이싱**
>
> 템플릿과 마찬가지로 정적 파일을 ```polls/static``에 직접 저장하면 (다른 ``polls``` 하위 디렉토리를 만드는 대신) 벗어날 수 있지만, 실제로는 좋지 않은 생각입니다. Django는 이름이 일치하는 첫 번째 정적 파일을 선택합니다. 그런데 만약 *다른* 응용 프로그램에 같은 이름의 정적 파일이 있으면 Django는 이들 파일을 구별할 수 없습니다. 우리는 Django가 올바른 것을 가리킬 수 있게 해야하는데, 이것을 보장하는 가장 쉬운 방법은 *namespacing* 입니다. 즉, 정적 파일을 애플리케이션과 *다른* 디렉토리에 두는 것입니다.

그 스타일 시트(`polls/static/polls/style.css`)에 다음 코드를 넣으세요.

*`polls/static/polls/style.css`*

```css
li a {
    color: green;
}
```

다음으로, `polls/templates/polls/index.html`의 맨 위에 다음을 추가하세요.

*`polls/templates/polls/index.html`*

```html+django
{% load static %}

<link rel="stylesheet" href="{% static 'polls/style.css' %}">
```

`{% static %}` 템플릿 태그는 정적 파일의 절대 URL을 생성합니다.

개발에 필요한 것은 이것이 전부입니다.

서버를 시작합니다(이미 실행 중이라면 재시작합니다).

```console
$ python manage.py runserver
```

*Windows*

```doscon
...\> py manage.py runserver
```

`http://localhost:8000/polls/`를 새로고침하면 질문의 링크가 녹색(Django 스타일!)로 표시되는 것을 볼 수 있으며, 이는 스타일시트가 올바로 적재된 것을 의미합니다.

## 배경 이미지 추가하기

다음으로 이미지들을 위 하위 디렉터리를 만듭니다. `polls/static/polls/` 디렉토리에 `images` 하위 디렉토리를 만듭니다. 이 디렉토리 안에 배경으로 사용하려는 이미지 파일을 추가합니다. 이번 튜토리얼에서는 전체 경로가 polls/static/polls/images/background.png\`\`인 background.png\`\`라는 파일을 사용합니다.

그런 다음, 스타일시트(`polls/static/polls/style.css`)에 이미지에 대한 참조를 추가합니다:

*`polls/static/polls/style.css`*

```css
body {
    background: white url("images/background.png") no-repeat;
}
```

`http://localhost:8000/polls/`을 새로고침하면 화면의 왼쪽 상단에 배경이 나타날 것입니다.

> **Warning**
>
> 스타일시트와 같이 Django가 생성하지 않은 정적 파일에는 `{% static %}` 템플릿 태그를 사용할 수 없습니다. 정적 파일을 서로 연결할 때는 항상 상대 경로\*\*를 사용해야 합니다. 그러면 정적 파일의 여러 경로를 수정할 필요 없이 ``STATIC_URL`( :ttag:`static`` 템플릿 태그에서 URL을 생성하는 데 사용됨)을 변경할 수 있습니다.

지금까지의 내용은 **기본**입니다. 프레임워크에 포함된 설정 및 다른 것들에 대한 자세한 내용은 [정적 파일 howto](/ko/5.2/howto/static-files/)와 [정적 파일 레퍼런스](/ko/5.2/ref/contrib/staticfiles/)를 참조하십시오. [정적 파일 배포](/ko/5.2/howto/static-files/deployment/)는 실제 서버에서 정적 파일을 사용하는 방법을 설명합니다.

정적 파일에 익숙해졌으면, Django의 자동 생성되는 관리자 사이트를 커스터마이징하는 법에 대해 배울 수 있는 [이 튜토리얼의 7장](/ko/5.2/intro/tutorial07/)을 보세요.
