--- /dev/null
+# ์ด๋ฒคํธ: 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>์์ ์ถ๊ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค.