Sonamu.getContext()
ํ์ฌ ์คํ ์ค์ธ ์์ฒญ์ Context๋ฅผ ๋ฐํํฉ๋๋ค. AsyncLocalStorage๋ฅผ ํตํด ๊ด๋ฆฌ๋๋ฏ๋ก, ๊ฐ์ ์์ฒญ ์คํ ๋ด ์ด๋์๋ ํธ์ถํ ์ ์์ต๋๋ค.์๊ทธ๋์ฒ
๋ฐํ๊ฐ
- Context: ํ์ฌ ์์ฒญ์ Context ๊ฐ์ฒด
- ํ ์คํธ ํ๊ฒฝ: ๋น Context ๊ฐ์ฒด (request์ reply๋ null)
์์ธ
- Error: Context๋ฅผ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ (ํ๋ก๋์ ํ๊ฒฝ์์๋ง)
์ฌ์ฉ ์์
ํฌํผ ํจ์์์ ์ฌ์ฉ
์๋น์ค ๋ ์ด์ด์์ ์ฌ์ฉ
ํ ์คํธ ํ๊ฒฝ ๋์
ํ ์คํธ ํ๊ฒฝ์์๋ Context๊ฐ ์ฃผ์ ๋์ง ์์๋ ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๊ณ ๋น Context๋ฅผ ๋ฐํํฉ๋๋ค:runWithMockContext๋ฅผ ์ฌ์ฉํ์ธ์:
ํ์ผ ์ ๋ก๋ ์ปจํ ์คํธ
ํ์ผ ์ ๋ก๋ ์์ฒญ์์ ์ ๋ก๋๋ ํ์ผ ์ ๋ณด๋Sonamu.getContext()๋ฅผ ํตํด ์ ๊ทผํฉ๋๋ค. @upload ๋ฐ์ฝ๋ ์ดํฐ๊ฐ ์ ์ฉ๋ ๋ฉ์๋์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์
๋ก๋ ๋ชจ๋์ ๋ฐ๋ผ ๋ ๊ฐ์ง ์์ฑ์ ์ฌ์ฉํฉ๋๋ค:
- Buffer ๋ชจ๋ (๊ธฐ๋ณธ):
bufferedFiles- ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ ํ์ผ, MD5 ๊ณ์ฐ/์ด๋ฏธ์ง ์ฒ๋ฆฌ์ ์ ํฉ - Stream ๋ชจ๋:
uploadedFiles- ์ ์ฅ์๋ก ์ง์ ์คํธ๋ฆฌ๋ฐ๋ ํ์ผ, ๋์ฉ๋ ํ์ผ์ ์ ํฉ
์๊ทธ๋์ฒ
ํ์
์ฃผ์์ฌํญ
- ํ์ผ ์์ฑ์
@upload๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ง ์ค์ ๋ฉ๋๋ค - Buffer ๋ชจ๋(๊ธฐ๋ณธ)์์๋
bufferedFiles๋ฅผ, Stream ๋ชจ๋์์๋uploadedFiles๋ฅผ ์ฌ์ฉํฉ๋๋ค - ๋จ์ผ ํ์ผ ์
๋ก๋์ ๊ฒฝ์ฐ
bufferedFiles?.[0]๋๋uploadedFiles?.[0]์ผ๋ก ์ ๊ทผํฉ๋๋ค
์ฌ์ฉ ์์
๋จ์ผ ํ์ผ ์ ๋ก๋ (Buffer ๋ชจ๋)
๋ค์ค ํ์ผ ์ ๋ก๋ (Buffer ๋ชจ๋)
๋์ฉ๋ ํ์ผ ์ ๋ก๋ (Stream ๋ชจ๋)
ํฌํผ ํจ์์์ ์ฌ์ฉ
๊ด๋ จ ํ์
BufferedFile (Buffer ๋ชจ๋)
UploadedFile (Stream ๋ชจ๋)
์ฃผ์์ฌํญ
AsyncLocalStorage ์คํ
getContext()๋ AsyncLocalStorage๋ฅผ ํตํด ๋์ํ๋ฏ๋ก, ๋ฐ๋์ ๊ฐ์ ๋น๋๊ธฐ ์คํ ์คํ ๋ด์์ ํธ์ถํด์ผ ํฉ๋๋ค:
@upload ๋ฐ์ฝ๋ ์ดํฐ ํ์
bufferedFiles/uploadedFiles ์์ฑ์ ๋ฐ๋์ @upload ๋ฐ์ฝ๋ ์ดํฐ๊ฐ ์ ์ฉ๋ ๋ฉ์๋์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค: