committed by
GitHub
1 changed files with 45 additions and 0 deletions
@ -0,0 +1,45 @@ |
|||
# ์ด๋ฒคํธ: startup๊ณผ shutdown |
|||
|
|||
ํ์์ ๋ฐ๋ผ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์๋๊ธฐ ์ ์ด๋ ์ข
๋ฃ๋ ๋ ์คํ๋๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ(ํจ์)๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
์ด ํจ์๋ค์ `async def` ๋๋ ํ๋ฒํ๊ฒ `def`์ผ๋ก ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
!!! warning "๊ฒฝ๊ณ " |
|||
์ด๋ฒคํธ ํธ๋ค๋ฌ๋ ์ฃผ ์์ฉ ํ๋ก๊ทธ๋จ์์๋ง ์๋ํฉ๋๋ค. [ํ์ ์์ฉ ํ๋ก๊ทธ๋จ - ๋ง์ดํธ](./sub-applications.md){.internal-link target=_blank}์์๋ ์๋ํ์ง ์์ต๋๋ค. |
|||
|
|||
## `startup` ์ด๋ฒคํธ |
|||
|
|||
์์ฉ ํ๋ก๊ทธ๋จ์ ์์ํ๊ธฐ ์ ์ ์คํํ๋ ค๋ ํจ์๋ฅผ "startup" ์ด๋ฒคํธ๋ก ์ ์ธํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="8" |
|||
{!../../../docs_src/events/tutorial001.py!} |
|||
``` |
|||
|
|||
์ด ๊ฒฝ์ฐ `startup` ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์๋ ๋จ์ํ ๋ช ๊ฐ์ง ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ `dict` ํ์์ "๋ฐ์ดํฐ๋ฒ ์ด์ค"๋ฅผ ์ด๊ธฐํํฉ๋๋ค. |
|||
|
|||
ํ๋ ์ด์์ ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. |
|||
|
|||
๊ทธ๋ฆฌ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ `startup` ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ์๋ฃ๋ ๋๊น์ง ์์ฒญ์ ๋ฐ์ง ์์ต๋๋ค. |
|||
|
|||
## `shutdown` ์ด๋ฒคํธ |
|||
|
|||
์์ฉ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋ ๋ ์คํํ๋ ค๋ ํจ์๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด `"shutdown"` ์ด๋ฒคํธ๋ก ์ ์ธํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="6" |
|||
{!../../../docs_src/events/tutorial002.py!} |
|||
``` |
|||
|
|||
์ด ์์ ์์ `shutdown` ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์๋ `"Application shutdown"`์ด๋ผ๋ ํ
์คํธ๊ฐ ์ ํ `log.txt` ํ์ผ์ ์ถ๊ฐํ ๊ฒ์
๋๋ค. |
|||
|
|||
!!! info "์ ๋ณด" |
|||
`open()` ํจ์์์ `mode="a"`๋ "์ถ๊ฐ"๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฏธ ์กด์ฌํ๋ ํ์ผ์ ๋ด์ฉ์ ๋ฎ์ด์ฐ์ง ์๊ณ ์๋ก์ด ์ค์ ์ถ๊ฐํฉ๋๋ค. |
|||
|
|||
!!! tip "ํ" |
|||
์ด ์์ ์์๋ ํ์ผ๊ณผ ์ํธ์์ฉ ํ๊ธฐ ์ํด ํ์ด์ฌ ํ์ค ํจ์์ธ `open()`์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. |
|||
|
|||
๋ฐ๋ผ์ ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ธฐ ์ํด "๋๊ธฐ"๊ฐ ํ์ํ I/O (์
๋ ฅ/์ถ๋ ฅ) ์์
์ ์ํํฉ๋๋ค. |
|||
|
|||
๊ทธ๋ฌ๋ `open()`์ `async`์ `await`์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์๋ `async def`๊ฐ ์๋ ํ์ค `def`๋ก ์ ์ธํ๊ณ ์์ต๋๋ค. |
|||
|
|||
!!! info "์ ๋ณด" |
|||
์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๊ดํ ๋ด์ฉ์ <a href="https://www.starlette.io/events/" class="external-link" target="_blank">Starlette ์ด๋ฒคํธ ๋ฌธ์</a>์์ ์ถ๊ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค. |
Loadingโฆ
Reference in new issue