์ปดํ์ผ
์ปดํ์ผ๋ฌ: ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ์ธ์ด๋ก ๋ฐ๊พธ์ด์ฃผ๋ ๋ฒ์ญ ํ๋ก๊ทธ๋จ or ๊ณ ์์ค ์ธ์ด๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค.
๋ํ์ ์ผ๋ก C์ธ์ด ๊ณ์ด ์ธ์ด๊ฐ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ๋ค.
์ด๊ธฐ์ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ธฐ ์ํด์๋ ์ปดํจํฐ ์์์ ๋ฐ๋ก ๋์๊ฐ๋ ๊ธฐ๊ณ์ด๋ฅผ ํตํ์ฌ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค. ๊ทธ๋ฌ๋ ์ด๋ฐ ๊ณผ์ ์ ์์ฐ์ฑ, ๊ธฐ๊ธฐ ๊ฐ ํธํ์ฑ, ๋๋ฒ๊น ๋ฑ ๋ชจ๋ ๋ฉด์์ ํจ์จ์ ์ด์ง ์๋ค. ๋ฐ๋ผ์ ์ปดํจํฐ๊ณตํ์ด ๋ฐ์ ํ๋ฉด์ ๋ง์ ๋ถ๋ถ ์ถ์ํ๋ ๊ณ ์์ค ์ธ์ด๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฒ์ญ๊ธฐ๋ฅผ ํตํด ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๊ธฐ ์์ํ๋๋ฐ, ์ด ๋ฒ์ญ๊ธฐ๊ฐ ๋ฐ๋ก ์ปดํ์ผ๋ฌ์ด๋ค.
(ํฐ๋
ธ์ด๋ง์ด ์ ์๋ค์๊ฒ ์๋จธ๋ฆฌ ๊ตด๋ฆฐ๋ค๊ณ ๋๋ฌด๋ผ ์น ๊ฒ์ด ํ์ฌ์ ์ปดํ์ผ๋ฌ์ด๋ค.)
์ปดํ์ผ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ ์ธ ๋ถ๋ฅ๋ก ๋๋๋ค.
-
์์ ์ฝ๋๋ฅผ ๋ฐ๋ก ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ์ ์ ์ปดํ์ผ(Static Compilation)
-
๋ฐ์ดํธ ๋ฑ์ ์ค๊ฐ ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ AOT ์ปดํ์ผ(Ahead-Of-Time Compilation)
-
์คํ์ ์ต์ด ํ ๋ฒ์ ํํด ์ปดํ์ผ์ ๊ฑฐ์น๋ JIT ์ปดํ์ผ(Just-In-Time Compilation)
์ปดํ์ผ์ ํ๋ ๋์ , ์์ค๋ฅผ ํ๊บผ๋ฒ์ ๋ฒ์ญํ์ง ์๊ณ ๋ช ๋ น ํ๋ํ๋๋ฅผ ์คํํ ๋๋ง๋ค ํด์ํ์ฌ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ๋ ์๋๋ฐ, ์ด ํด์๊ธฐ๋ฅผ ์ธํฐํ๋ฆฌํฐ๋ผ๊ณ ํ๋ค.
์ธํฐํ๋ฆฌํฐ
์ปดํ์ผ๋ฌ๊ฐ ๋ฒ์ญ๊ธฐ๋ผ๋ฉด ์ธํฐํ๋ฆฌํฐ๋ ํต์ญ๊ธฐ์ด๋ค.
์น ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด์ธ SQL, ์์ฒด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค Python, Ruby๋ฑ์ด ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๋ค.
์ฅ์
1. ์์ ์ด ๊ฐ๋จํ๋ค.
์ปดํ์ผ ์ธ์ด์ ๋จ์ ์ ์์ ์ด ์ฉ์ดํ์ง ์์, ์์ ์ฌํญ์ด ๋ฐ์ํ๋ฉด ๋ค์ ์ปดํ์ผ์ ํด์ผ ๋๋๋ฐ, ์์ ํ๋ก๊ทธ๋จ์ผ ๊ฒฝ์ฐ์๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง ์ปดํ์ผ์ด ๋ช ์๊ฐ์ฉ ๊ฑธ๋ฆฌ๋ ๋ฉ์น ํฐ ํ๋ก๊ทธ๋จ์์๋ ๋ฌธ์ ๊ฐ ๋๋ค. ํ์ง๋ง ์ธํฐํ๋ฆฌํฐ๋ ์๋๋ ๋๋ฆฌ์ง๋ง๋ ์์ ์ด ๊ฐ๋จํ๋ค.
์ปดํ์ผ๋ฌ๋ ์์ค ์ฝ๋๋ฅผ ๋ฒ์ญํด์ ์คํ ํ์ผ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ์ ์์ ์ฌํญ์ด ๋ฐ์ํ๋ฉด ์์ค ์ฝ๋๋ฅผ ๋ค์ ์ปดํ์ผํด์ผ ํ๋ค. ํ๋ก๊ทธ๋จ์ด ์๊ณ ๊ฐ๋จํ๋ฉด ๋ฌธ์ ๊ฐ ์์ง๋ง ํ๋ก๊ทธ๋จ ๋ฉ์น๊ฐ ์ปค์ง๋ฉด ์ปดํ์ผ์ด ์๊ฐ ๋จ์๊ฐ ๋๋ ์ผ์ด ๋ง์์ง๋ค. ํ์ง๋ง ์ธํฐํ๋ฆฌํฐ๋ ์์ค ์ฝ๋๋ฅผ ์์ ํด์ ์คํ์ํค๋ฉด ๋. ์ด ์ฅ์ ๋๋ฌธ์ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ ์์ ์ด ๋น๋ฒํ ๋ฐ์ํ๋ ์ฉ๋์ ํ๋ก๊ทธ๋๋ฐ์์ ๋ง์ด ์ฌ์ฉ๋๋ค. ์ด ์ฅ์ ์ ์ต๋ํ ์ด๋ ค์ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ฑ์ฉํ ๊ฒ์ด ์คํฌ๋ฆฝํธ ์ธ์ด๋ค.
๋๋ฒ๊ทธ๊ฐ ์์ํ๋ค. ๊ตฌ๋ฌธ ์ค๋ฅ์ ๊ฒฝ์ฐ ์์ ์ธํฐํ๋ฆฌํฐ์ ๊ฒฝ์ฐ์๋ ์ ๋ง๋ก ํ์ค์ฉ ์ฝ์ด์ ์คํํ๊ธฐ์ ๊ตฌ๋ฌธ ์ค๋ฅ๊ฐ ๋์ค๋ ๋ถ๋ถ ์ ๊น์ง๋ ๋ฉ์ฉกํ๊ฒ ์คํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ์คํ๋์ง ์๋ ๋ถ๋ถ์๋ ์ค๋ฅ๊ฐ ์์ด๋ ์ค๋ฅ๋ก ์ฒ๋ฆฌ๋์ง ์๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ์๋ค. ํ์ง๋ง ์ต๊ทผ์๋ ์ฑ๋ฅ ๋ฑ์ ์ด์ ๋ก ํ์ผ์ ์คํํ๋ฉด ํ์ผ ์ ์ฒด๋ฅผ ์ปดํ์ผ ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฒ์๋ถํฐ ๊ตฌ๋ฌธ ์ค๋ฅ๋ฅผ ์ ๋ถ ์ก์์ฃผ๋ ์ธํฐํ๋ฆฌํฐ๋ ๋ง์์ง๊ณ ์๋ค.
2. ์ค๊ณ๊ฐ ์ฝ๋ค.
๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ค์ ๋๋ถ๋ถ์ด ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ค. ์ธํฐํ๋ฆฌํฐ๋ ์์ฒด์ ์ผ๋ก ์คํ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์, ๋ชฉ์ ํ๋ก๊ทธ๋จ(.exe)์ ๋ง๋๋ ๊ณณ๋ง ์ปดํ์ผ๋ฌ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ๋๋ถ๋ถ ์ฝ๋๋ฅผ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ก ์ง๋ ์์ผ๋ก ๊ฒฐํฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ธํฐํ๋ฆฌํฐ ์ธ์ด๊ฐ ๋ง์์ง๋ ์ด์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ค๊ณ๊ฐ ์ฝ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ฐจ์์์ ๋์ ์ธ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ์ ๋ฆฌํ๋ค. ์ด๋ค ๋ชจ๋์ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ์์์ ํ๋ก๊ทธ๋จ์ ํ๊ฐํ๋ ๊ฒ์ด๋ผ๋๊ฐ ์ฌ์ง์ด ์ด๋ฏธ ์คํ๋๊ณ ์๋ ์ฝ๋ ์์ฒด๋ฅผ ์์ ํ๋ฉฐ ์คํํ๋ ๋ฑ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ์๊ฐ ์๋ค.
๋จ์
1. ์์ค ์ฝ๋๊ฐ ์ฝ๊ฒ ๊ณต๊ฐ๋๋ค.
์ปดํ์ผ๋๋ ์ธ์ด๋ ๊ธฐ๊ณ์ด๋ฅผ ์ฝ์ผ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ์ ์ ์์ผ๋ฉฐ, ๋์ปดํ์ผ๋ฌ๋ฅผ ์ด์ฉํ์ฌ ์๋ณธ ์ธ์ด๋ก ๋ณํํ๋ ๊ฒ๋ ๋ถ๊ฐ๋ฅ์ ์๋๋ค. ํ์ง๋ง ๋ฐ์ดํธ์ฝ๋ ๋ฑ์ผ๋ก ์ปดํ์ผํด์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ๋ ์ ์์ ๋ฟ๋๋ฌ, ์ปดํ์ผ ์ /ํ ์ธ์ด๊ฐ ๋น๊ต์ ๋จ์ํ ํธ์ด๋ผ์ ์ฝ๊ฒ ๋์ปดํ์ผ์ด ๊ฐ๋ฅํ๋ค. ์ํธํ๋ฅผ ํด๋ ์ด์ฐจํผ ์คํ๋ ๋๋ ๋ณตํธํ๋๋ ๋ฌด์ฉ์ง๋ฌผ์ด๋ค. ๊ทธ๋๋ง ์๋ณ์๋ค์ ์ ๋ถ ์ด์ํ๊ฒ ๋ฐ๊พธ๊ณ ํด์ํ๊ธฐ ํ๋ค๊ฒ ๋๋ ํํ๋ ์ ๋ ์ธ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค.
2. ๋ฌธ์๋ฅผ ์ฝ๋ ํน์ฑ์, ๋ฌธ์๋ฅผ ์
๋ ฅํ๋ ํจ์์์ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ฐ ์์ค์ฝ๋์ ์ฌ์ด ์ ์ถ ๊ฐ๋ฅ์ฑ์ด ์คํ๋ ค ์ธํฐํ๋ฆฌํฐ ๊ณ์ด ์ธ์ด๋ค์ ๊ฐ์ ์ด ๋๊ธฐ๋ ํ๋ค. ์จ๊ฐ ๋ถ๋ฒ ๋ณต์ ๋ ํดํน์ ํ์ ์ด๋๊ธฐ ์ฝ๊ณ , ํธ๋ฆฌํ ์ ๊ทผ์ฑ ๋๋ฌธ์ ๋ง์ ์ฌ์ฉ์๋ค์ด ๋ชฐ๋ ค, ์ ์ธ๊ณ์ ์ธ ์ฐ๊ตฌ๊ฐ๋ฐ ์ฑ๊ณผ ๊ณต์ ๊ฐ ์๋์น ์๊ฒ ๊ฐ๋ฅํ๋ค.
์ธํฐํ๋ฆฌํฐ๋ ์คํ ์๋ง๋ค ์์ค ์ฝ๋๋ฅผ ํ ์ค์ฉ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ์คํ ์๋๋ ์ ์ ์ปดํ์ผ ์ธ์ด๋ณด๋ค ๋๋ฆฌ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ์ฌ ๋ฐ์ดํธ์ฝ๋ ์ปดํ์ผ๋ฌ๋ฅผ ์ด์ฉํด ์์ค ์ฝ๋๋ฅผ ๊ฐ์๋จธ์ ํ๊ฒ์ ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํํ๊ฑฐ๋, ๋ฐ๋ณต์ ์ผ๋ก ์ฐ์ด๋ ํจ์์ ํด๋์ค ๋ฑ์ ๊ธฐ๊ณ์ด ์ฝ๋๋ฅผ ์บ์ฑํ๋ JIT ์ปดํ์ผ๋ฌ๋ฅผ ์ธํฐํ๋ฆฌํฐ์ ๋ด์ฅํ๋ ๋ฐฉ์์ด ๋์
๋์๋ค.
JIT
ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์์ ์์ ํ์ํ ๋ถ๋ถ์ ์ฆ์์ผ๋ก ์ปดํ์ผํ๋ ๋ฐฉ์์ ๋งํ๋ค. ๋์ ๋ฒ์ญ์ด๋ผ๊ณ ๋ ํ๋ค.
C๋ C++์์ ํ๋ ๊ฒ์ฒ๋ผ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ ์ ์ฒ์ ํ ๋ฒ ์ปดํ์ผํ๋ ๊ฒ๊ณผ ๋์กฐ์ ์ด๋ค.
๋ณดํต ์ธํฐํ๋ฆฌํฐ๋ฐฉ์์ ์ธ์ด ๊ตฌํ๋ค์ด ์ฑ๋ฅ ํฅ์์ ๋ชฉ์ ์ผ๋ก ๋์
ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
JIT ์ปดํ์ผ๋ฌ๋ ๊ฐ์ ์ฝ๋๋ฅผ ๋งค๋ฒ ํด์ํ๋ ๋์ ์ฒ์ ์คํ๋ ๋ ์ธํฐํ๋ฆฌํธ๋ฅผ ํ๋ฉด์ ์์ฃผ ์ฐ์ด๋ ์ฝ๋๋ฅผ ์บ์ฑํ ๋ค, ์ดํ์๋ ์บ์ฑ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ๋ค ์ฐ๊ธฐ ๋๋ฌธ์ ์ธํฐํ๋ฆฌํฐ์ ๋๋ฆฐ ์คํ ์๋๋ฅผ ๊ฐ์ ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ฌ์ค JIT '์ปดํ์ผ๋ฌ'๋ณด๋ค๋ JIT '์ธํฐํ๋ฆฌํฐ'๊ฐ ๋ ์ ํํ ํํ์ด๋ค. ๋ฐ์ดํธ์ฝ๋ ์ปดํ์ผ์ ์ฌ์ฉํ๋ Java๋ ๋ฐ์ดํธ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ ๋ JIT ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ๋ค.
๋จ์
1. ์ ์ ์ปดํ์ผ๋ ํ๋ก๊ทธ๋จ์ ๋นํด ์คํ ์๋ ๋ฉด์์ ์ํด๋ฅผ ๋ณธ๋ค.
์ด๊ธฐ ๊ตฌ๋ ์์๋ ์์ค ์ฝ๋(ํน์ ๋ฐ์ดํธ์ฝ๋)๋ฅผ ์คํ ๋จ๊ณ์์ ์ปดํ์ผํ๋ ๋ฐ์ ์๊ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชจํ๊ธฐ ๋๋ฌธ์ด๋ค. ํนํ ์คํ ์๊ฐ์ด ๋งค์ฐ ์งง์ ๊ฒฝ์ฐ์๋ ์ ์จ ์ปดํ์ผ๋ ์ฝ๋๋ฅผ ์ ๋๋ก ์ธ๊ถ๋จน๊ธฐ๋ ์ ์ ํ๋ก๊ทธ๋จ์ด ๋๋๋ ๋ฐฐ๋ณด๋ค ๋ฐฐ๊ผฝ์ด ๋ ํฐ ์ํฉ์ด ๋ฒ์ด์ง๊ธฐ๋ ํ๋ค.
ํฌ๊ฒ ๋๋ ์ HotSpot VM๊ณผ ๊ฐ์ด ๋ฉ์๋(ํจ์) ๋จ์๋ก JIT ์ปดํ์ผ์ ํ๋ ๋ฐฉ์๊ณผ, ๊ทธ๋ณด๋ค ๋ ์์ ๋จ์์์ ํ๋ก๊ทธ๋จ ์คํ ํ๋ฆ์ ์ค์๊ฐ์ผ๋ก ์ถ์ ํ๋ฉฐ ์ปดํ์ผํ ์ฝ๋๋ฅผ ํ์ํ๋ Tracing JIT ๋ฐฉ์์ผ๋ก ๋ถ๋ฅํ ์ ์๋ค. ํนํ Tracing JIT์ ๊ฒฝ์ฐ์๋ ์คํ ์์ ์๋ง ์ ์ ์๋ ์ ๋ณด๋ฅผ ์ปดํ์ผ์ ์ ๊ทน์ ์ผ๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ก ์ ์ผ๋ก๋ ์ ์ ์ปดํ์ผ ๋ฐฉ์๋ณด๋ค ์ปดํ์ผ ์๋๊ฐ ๋ ๋นจ๋ผ์ง ์๋ ์๋ค.
2. JIT ์ปดํ์ผ๋ฌ๋ ์ ์ฌ์ ์ผ๋ก ์๋นํ ๋ณด์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ด ์๋, ๋ฐํ์์ ๋์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์คํํ๋ค๋ ํน์ง ๋๋ฌธ์ํนํ JIT ์ปดํ์ผ๋ฌ ์์ฒด์ ๋ฒ๊ทธ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ณง๋ฐ๋ก ๋ณด์์ทจ์ฝ์ ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ํ์ ์ผ๋ก ์ธํ
CPU๊ฒ์ดํธ๋ก ์ ๋ช
ํ ์คํํฐ ๋ณด์์ทจ์ฝ์ ์ JIT์ ์์กดํ๋ JavaScript ์์ง์ ๊ฐ์ง ๋ธ๋ผ์ฐ์ ์์๋ง ๋ฐ์ํ๋ค. ์ค๋ผํด์ HotSpot VM ๋ํ JIT ์ปดํ์ผ๋ฌ ๋ฒ๊ทธ๋ก ์ธํ ๋ค์์ ๋ณด์์ทจ์ฝ์ ์ด ์์๋ค.
์ฐธ๊ณ ๋ก iOS์์๋ ์๊ธฐํ ๋ณด์๋ฌธ์ ๋ฅผ ์ด์ ๋ก ๋คํธ์ํฌ๋ก ๋ฐ์ด๋๋ฆฌ๋ ์ฝ๋๋ฅผ ๋ค์ด๋ฐ์ ์คํํ๋ ๊ฒ์ ๊ธ์งํ๊ณ ์๋ค. ๊ตฌ๊ธ ํฌ๋กฌ์ด๋ ํ์ด์ดํญ์ค์ iOS ๋ฒ์ ์ด ์์ฒด ์์ง์ ์ฐ์ง ๋ชปํ๊ณ ์ ํ์ด ์ ๊ณตํ๋ WebKit์ ์น๋ทฐ๋ฅผ ์ฌ์ฉํ ์๋ฐ์ ์๋ ์ฃผ์ ์ด์ ์ค ํ๋๋ค.[5] ์์ฆ ๋ธ๋ผ์ฐ์ ๋ค์ JavaScript ์์ง์ผ๋ก JIT๋ฅผ ์ฐ๊ธฐ ๋๋ฌธ์ด๋ค. iOS๋ ํธ๋ฒ์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ ์ ์ฑ
์ด ์ด๋ฅผ ํ์ฉํ์ง ์์ ์คํ ์ด์ ์ฌ๋ฆด๋ reject๋๋ค.
์ถ์ฒ:๋๋ฌด์ํค
'๐ Front > ๐ Theory' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CDN]: ์ฌ์ฉ์์ ๊ฐ๊น์ด ๊ณณ์์ ์ ๊ณตํ์ (0) | 2022.05.14 |
---|