๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํŒจ์บ  ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

<์ด์ „ ๊ธ€>

https://silvercoding.tistory.com/14

 

[DJANGO ๊ธฐ์ดˆ] 4. ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ (MTV ๊ตฌ์กฐ - T, V ์ž‘์„ฑ)

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํŒจ์บ  ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. <์ด์ „ ๊ธ€> https://silvercoding.tistory.com/13 https://silvercoding.tistory.com/12 https://silvercoding.tistory.com/11 [DJANGO ๊ธฐ์ดˆ] ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์•ฑ ์ƒ์„ฑ..

silvercoding.tistory.com

 

 

CDN 

๋ถ€ํŠธ์ŠคํŠธ๋žฉ CDN์€ Content Delivery Network์˜ ์•ฝ์ž๋กœ, ์™ธ๋ถ€์— ์žˆ๋Š” CSS๋˜๋Š” Javascript์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์ด๋‹ค. 

 

๊ฐ„๋žตํ•œ ๊ฐœ๋…์„ ๋ณด๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜์ž. CSS๋‚˜ Javascript์™€ ๊ฐ™์€ ํŒŒ์ผ์ด ์›๋ณธ ์„œ๋ฒ„์— ๋“ค์–ด๊ฐ€์žˆ๊ณ  ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„œ๋ฒ„๋กœ ๋ถ„์‚ฐ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์„œ๋ฒ„๊ฐ€ ํ•œ๊ตญ์— ์žˆ๊ฒŒ ๋˜๊ณ , ๊ทธ๋Ÿผ ์›๋ณธ์ด ํ•œ๊ตญ์— ์žˆ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๋ฏธ๊ตญ์— ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ๋ฉ€๋ฆฌ ์žˆ๋Š” ์„œ๋ฒ„ ํƒ“์— ๋Š๋ฆฐ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต๋ฐ›๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ค‘๊ฐ„์— ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋“ค์„ ๋‘๋Š” ๊ฒƒ์ด๋‹ค. ๋‚˜๋ผ๋ณ„๋กœ ์„œ๋ฒ„๋ฅผ ๋ฟŒ๋ ค๋†“๋Š” ๊ฒƒ์ด๋‹ค. ์ด์ฒ˜๋Ÿผ ์ž์‹ ์—๊ฒŒ ๋น ๋ฅธ ๊ณณ์œผ๋กœ ์ ‘์†ํ•ด์„œ ๋ฐ›์•„๊ฐ€๋Š” ์„œ๋น„์Šค๊ฐ€ CDN ์ด๋‹ค. 

 

 

๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ ์“ฐ์ธ CSS ๋งํฌ๋„ ์›๋ณธ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ๊ฒŒ ์•„๋‹ˆ๋ผ ํ˜„์žฌ pc์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ด๋‹ค. 

 

 

(๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด)

CDN ์ฐธ๊ณ  ๋ฌธ์„œ 

https://docs.microsoft.com/ko-kr/azure/cdn/cdn-overview

 

CDN(์ฝ˜ํ…์ธ  ๋ฐฐ๋‹ฌ ๋„คํŠธ์›Œํฌ)์ด๋ž€? - Azure

Azure CDN(Content Delivery Network) ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ๊ณ ๋Œ€์—ญํญ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐฐ๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

docs.microsoft.com

 

๊ธฐ์กด์— ์ด๋Ÿฌํ•œ CDN์„ ์‚ฌ์šฉํ•˜์—ฌ CSS๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” CDN์„ ์“ฐ์ง€ ์•Š์œผ๋ฉด์„œ CSS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. 

 

 

 

 

์ง์ ‘ ๋งŒ๋“  CSS ํŒŒ์ผ์„ ์ ์šฉํ•˜๋ ค๋ฉด  

1. static ํด๋” ๋งŒ๋“ค๊ธฐ 

community ---> static ํด๋” ์ƒ์„ฑ

์ƒ์„ฑํ•œ static ํด๋”์—์„œ css, javascript ํŒŒ์ผ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ฒŒ๋œ๋‹ค.

 

settings.py 

...
import os

...

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

...

์ด๋ฏธ STATIC_URL ์ž‘์„ฑ๋˜์–ด์žˆ๋‹ค. ์ด์ œ cssํŒŒ์ผ์— ์ ‘๊ทผํ–ˆ์„ ๋•Œ ๊ทธ๊ฒŒ ์–ด๋””ํŒŒ์ผ์— ์žˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

STATICFILES_DIRS = [] ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ํด๋”๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. BASE_DIR ๋Š” ํ”„๋กœ์ ํŠธ ํด๋”์ธ community์ด๊ณ , ์ƒ์„ฑํ•œ static ํด๋”์™€ joinํ•ด์ค€๋‹ค. os๋ฅผ importํ•˜๋Š” ๊ฒƒ๋„ ์žŠ์ง€ ๋ง์ž.

 

 

 

 

 

2. CSS ํŒŒ์ผ ์ค€๋น„

๋ฐฑ์—”๋“œ ์ค‘์‹ฌ์˜ ํ”„๋กœ์ ํŠธ์ด๋ฏ€๋กœ ์ง์ ‘ CSS ํŒŒ์ผ์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์˜ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. 

 

 

<bootstrap 4.3 themes free>

https://bootswatch.com/

 

Bootswatch: Free themes for Bootstrap

Customizable Changes are contained in just two SASS files, enabling further customization and ensuring forward compatibility.

bootswatch.com

์ด๊ณณ์—์„œ ๋งˆ์Œ์— ๋“œ๋Š” ํ…Œ๋งˆ๋ฅผ ๊ณจ๋ผ์„œ 

bootstrap.min.css ๋ฅผ ๋‹ค์šด๋ฐ›์•„์ค€๋‹ค. 

 

๋‹ค์šด๋ฐ›์€ ํŒŒ์ผ์„ staticํด๋”์— ์˜ฎ๊ฒจ์ค€๋‹ค. 

 

 

 

์ด์ œ ๋ชจ๋“  ์ค€๋น„๋ฅผ ๋งˆ์ณค๊ณ , html์— ์ ์šฉํ•ด์ค€ ๋‹ค์Œ ๊ฒฐ๊ณผ ํ™•์ธ์„ ํ•ด๋ณธ๋‹ค.

 

 

3. html์— CSS ์ ์šฉํ•ด์ฃผ๊ธฐ

user ---> templates --->  register.html

 

์›๋ž˜ ์ฝ”๋“œ

...

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2+xf0Uwh9KtT" crossorigin="anonymous"></script>
</head>

...

 

 

CSS ํ…Œ๋งˆ ์ ์šฉ ์ฝ”๋“œ

...

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="/static/bootstrap.min.css" />
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2+xf0Uwh9KtT" crossorigin="anonymous"></script>
</head>

...

link ํƒœ๊ทธ๋งŒ ๋ฐ”๊พผ๋‹ค. static ํด๋”์˜ css ํŒŒ์ผ์„ ์—ฐ๊ฒฐ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

 

๋ชจ๋‘ ๋งˆ์นœ ํ›„ ์„œ๋ฒ„์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ํ™”๋ คํ•œ ํ…Œ๋งˆ๊ฐ€ ์ ์šฉ์ด ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค!

 

 

 

๋‹ค์Œ ๊ธ€์—์„œ๋Š” ์„ธ์…˜ ๋ฐ ๋กœ๊ทธ์ธ์„ ์•Œ์•„ ๋ณด๋„๋ก ํ•œ๋‹ค. 

+ Recent posts