Serverless ์์ํด๋ณด๊ธฐ
์๋ ํ์ธ์. ์ค๋์ Serverless์ ๋ํด ์์๋ณด๊ณ , AWS์ Serverless๋ฅผ ์ฝ๊ฒ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
Serverless
์๋ฒ๋ฆฌ์ค๋ ์ ๊ฐ ์์ฆ ์์ฃผ ์ฌ์ฉํ๊ณ ์๋ ์ํคํ ์ฒ ์ค์ ํ๋์ ๋๋ค. ์๋ฒ๋ฆฌ์ค๋ ๋จ์ด ๊ทธ๋๋ก๋ '์๋ฒ๊ฐ ์๋ค' ๋ผ๋ ์๋ฏธ์ด์ง๋ง ์ ๋ง ์๋ฒ๊ฐ ์์ด ๋์ํ๋ ๊ฒ์ ์๋๊ณ , ์ฐ๋ฆฌ๊ฐ ์ค์ ์๋น์ค๋ฅผ ํ๊ธฐ ์ํด ๊ฐ์๋จธ์ ์ด๋ ์ด์์ฒด์ ํ๊ฒฝ์ ๊ตฌ์ฑํ์ฌ ์ฒ๋ฆฌํ์ง ์์๋ ์๋น์คํ ์ ์์์ ์ด์ผ๊ธฐํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ธฐ์กด์ ์๋น์ค๋ฅผ ์ด์ํ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ์ผ ํ์ต๋๋ค.
1. ์๋น์คํ ์๋ฒ ์ค๋น
2. ์ด์์ฒด์ ์ค์น
3. ๋คํธ์ํฌ ํ๊ฒฝ ๊ตฌ์ถ
4. ์ธํ๋ผ ๊ด๋ฆฌ
์ ์ฐ์ค์ ์๊ฐํ์๋ฉด ์ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฒ๋ฅผ ์ด์ํ๊ธฐ ์ํด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋์ ์๋ฒ๋ก ์์ํ์ฌ ํด๋น ์๋ฒ์ ์ด์์ฒด์ ๋ฅผ ์ค์นํ๊ณ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ๋ ๋ฐฉํ๋ฒฝ ๋ฑ์ ๋ณด์ ์ฅ๋น๋ ํฌํจ๋ฉ๋๋ค. ์ด ๋ถ๋ถ์ด ์ปค์ง๊ฒ ๋๋ฉด ์์คํ ์์ง๋์ด๋ฅผ ๊ณ ์ฉํด์ผ ํ ์ ๋์ ์ธ๋ ฅ์ด ํ์ํด์ง๊ฒ ๋๊ฒ ์ฃ ..
์ด๋ฌํ ๋ถ๋ถ์ ๊ฐ์ํํ์ฌ ์ง์ ๊ตฌ์ถํ๋ ๋น์ฉ์ ๋ ์๋ชจํด์ค ์ ์๋๋ก ํด์ฃผ๋ ๋ํ์ ์ธ ์๋น์ค๊ฐ ๋ฐ๋ก IaaS์ ๋๋ค.
IaaS(Infrastructure as a Service)
IaaS๋ ์์คํ ์์ ํ์ํ ๋ชจ๋ ์ธํ๋ผ ์์์ ๊ฐ์ํํ์ฌ ์ฝ๊ฒ ์๋น์ค ํด์ฃผ๋ ๊ฒ์ ์ด์ผ๊ธฐ ํฉ๋๋ค. ๋ํ์ ์ผ๋ก Amazon Web Service์ EC2๊ฐ ๋ฐ๋ก ์ด๋ฌํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ฉฐ ๋ ์ด์ ์๋ฒ ์์, ๋คํธ์ํฌ, ๋ณด์ ์ฅ๋น ๋ฑ์ ์ง์ ๊ตฌ์ถํ ๋น์ฉ์ ์ค์ฌ์ฃผ๋ ๊ฒ์ด์ฃ .
์ฌ๊ธฐ์ ์ข ๋ ๊ฐ์ํ ๋ ๊ฒ์ PaaS๋ผ ํฉ๋๋ค.
PaaS(Platform as a Service)
IaaS๋ ์ฐ๋ฆฌ๊ฐ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ ํ๊ฒฝ์์ ํ๋์จ์ด ์์ ์ ๊ฐ์ํ ์์ผ์ฃผ๋ ์ญํ ์ด์๋ค๋ฉด PaaS๋ ๊ทธ๋ณด๋ค ๋ ๊ฐ์ํ ๋์ด ์ต์ ํ๋ ๋ฐํ์๊น์ง๋ฅผ ์ ๊ณตํด์ค๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์ (Flask, Django, Spring ๋ฑ)๋ง ๋ฐฐํฌํ๋ฉด ๋ฐ๋ก ์๋น์คํ ์ ์์ฃ . ๊ทธ๋ ๋ค๋ฉด ๋ก๋ ๋ฐธ๋ฐ์ฑ๊ณผ ๊ฐ์ ๋ถ์ฐ ํ๊ฒฝ์ ์ด๋ป๊ฒ? ๊ทธ๊ฒ๋ ๋ชจ๋ ์๋์ผ๋ก ์ ๊ณตํด์ค๋๋ค.
BaaS(Backend as a Service) / FaaS(Function as a Service)
์ ๊ฐ ์๊ธฐํ๋ ค๊ณ ํ๋ Serverless๋ ๋ฐ๋ก ์ฌ๊ธฐ์ ์ํฉ๋๋ค. ์์ฆ์ ๋ชจ๋ฐ์ผ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ ๋ฐฑ์๋ ์๋ฒ ๊ฐ๋ฐ์ ํ๊ณค ํฉ๋๋ค. ๋ฌผ๋ก ๊ฐ๋ฐ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ํ์ง๋ง ์์ฆ ๋ฐ์นญ๋๋ ์ฑ๋ค์ ๋๋ถ๋ถ ์๋ฒ์์ ํต์ ์ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ๋ฑ์ ์ฑ์ ๊ตฌ์กฐ๊ฐ ๋๋ค์๋ผ๊ณ ๋ณผ ์ ๋๋ก ๋์คํ ๋์ด ์์ฃ .
PaaS๋ ํฐ ์ฐจ์ด๋ ๋ฐ๋ก ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ (Flask, Spring ๋ฑ)์ด ์์ด๋ ์๋ฒ ์ฝ๋๋ฅผ ์คํํ๋ค๋ ์ ์ ๋๋ค. ์ ๋ง ์ด๊ฒ ๊ฐ๋ฅํ ์ผ์ธ๊ฐ์? ํ์์ธ ์ ๋ ๋๋ฌ์ง๋ง ๊ฐ๋ฅํฉ๋๋ค.
AWS๋ฅผ ์ด์ฉํ Serverless
์๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ๊ทธ์ ์์ํ๋ ์ด์ ํ๊ฒฝ์ด ํ์ํฉ๋๋ค. ์์์ ์ค๋ช ๋๋ฆฐ ๊ฒ์ฒ๋ผ ์๋ฒ์ ์ด์์ฒด์ ์ค์น๋ ํ์์ด์ง๋ง ์ด๋ ์ปจํ ์ด๋ ๋ด์ง ๊ฐ์ ํ๊ฒฝ(KVM) ๋ฑ์ผ๋ก ๊ฐ์ํ ํ ์ ์๋ ์๋ฃจ์ ์ด ์กด์ฌํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ด ์ด๋ป๊ฒ ๋ฐฑ์๋ ์๋ฒ๊ฐ ๋ง๋ค์ด์ง ์ ์์๊น์? ์ง๊ธ ๊ทธ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ ์ฐ๋ฆฌ๊ฐ ๋ฐฑ์๋ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ๊ทธ๋ฅผ ์ฒ๋ฆฌํ ์๋ฒ ํ๋ก๊ทธ๋จ ์ฝ๋๊ฐ ํ์ํฉ๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ ๋น์ฐํ ๊ฒ์ด์ง์. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์๋ฒ์ ์ญํ ์ ํ๋ ค๋ฉด ์๋ ํฌ์ธํธ๊ฐ ํ์ํ๋ฐ ๋ณดํต ์๋ฒ ํ๋ ์์ํฌ์์ ์ด ์๋ ํฌ์ธํธ๋ฅผ ์ง์ ํด์ค๋๋ค.
์๋ฅผ ๋ค์๋ฉด HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ ๋ฐฑ์๋ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ค๊ณ ๊ฐ์ ํ์ ๋, ํด๋น ์ฝ๋๊ฐ POST ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ผ์ฐํ ํ ๊ฒ์ธ์ง, GET ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ผ์ฐํ ํ ๊ฒ์ธ์ง๋ฅผ ์ง์ ํด์ค์ผ ํ๋ค๋ ๊ฒ์ด์ฃ .
์ด๋ฅผ ์ํด AWS์์๋ ๋ ๊ฐ์ง ์๋น์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ AWS Lambda์ ์๋ ํฌ์ธํธ๋ฅผ ์ง์ ํด์ฃผ๋ API Gateway ์ ๋๋ค.
Lambda๋ฅผ ์ฌ์ฉํ ์ฝ๋ ์์ฑ
AWS์ ์ฝ์ ํ๋ฉด์์ ์๋น์ค๋ฅผ ๋๋ฅด๊ฒ ๋๋ฉด ์ปดํจํ ํญ๋ชฉ์์ Lambda ํญ๋ชฉ์ ๋ณด์ค ์ ์์ต๋๋ค.
ํจ์ ์์ฑ์ ํด๋ฆญํ๊ฒ ๋๋ฉด ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ , ํ์ผ ์ด๋ฆ๊ณผ ๋ฐํ์ ํ๊ฒฝ์ ์ค์ ํด์ผ ํฉ๋๋ค.
์ ๋ Python 3.6์ ์ฌ์ฉํด์ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ ์ ๋ ฅํ์ จ์ผ๋ฉด ํจ์ ์์ฑ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ ๊ณต๊ฐ์ด ์ฃผ์ด์ง๋๋ค. ์ฝ๋๋ฅผ ์น์์ ๋ฐ๋ก ์์ฑํ ์๋ ์์ง๋ง ์์ฑํ๋ค ๋ณด๋ฉด ์์ ์ด ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋์ ์ฌ์ฉํ๊ณ ์ถ์ ๋๊ฐ ์๊ธธ ๊ฒ์
๋๋ค. ๊ทธ๋ด ๋๋ ZIP์ผ๋ก ์
๋ก๋๋ฅผ ํ ์ ์๋ ๋ฐฉ๋ฒ๋ ์กด์ฌํฉ๋๋ค.
๊ทธ๋ผ ๊ฐ๋จํ๊ฒ ์ ์ ๋ธ๋ก๊ทธ์ ์ค๋ ๋ฐฉ๋ฌธ์ ์๊ฐ ๋ช๋ช ์ธ์ง๋ฅผ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
์ด๋ ๊ฒ ์ฝ๋๊ฐ ์์ฑ๋์์ผ๋ฉด ์ด์ Lambda์ ์ ๋ก๋๋ฅผ ํ์๋ฉด ๋ฉ๋๋ค.
(๋ก์ปฌ์์ ์ฝ๋๋ฅผ ์์ฑ ํ ์ ๋ก๋ํ์ค ๋๋ ๋ฐ๋์ ZIP์ผ๋ก ์์ถํ์ ์ ์ ๋ก๋ํ์ ์ผ ํฉ๋๋ค.)
์ ๋ก๋๋ ์์ ๊ฐ์ด ํ์๋ฉด ๋๋ฉฐ ์ ๋ก๋ ํ์ ๋ฐ๋์ ์ ์ฅ ๋ฒํผ์ ํด๋ฆญํ์ ์ผ ์ฝ๋๊ฐ ์ ์ฉ๋ฉ๋๋ค.
์ ์ด์ ์ฝ๋๋ฅผ ์ฌ๋ ธ์ผ๋ ์ ์์ ์ผ๋ก ์ฝ๋๊ฐ ๋์ํ๋์ง ํ์ธํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ํ
์คํธ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ฐ, ์ ๋ ์ฌ์ฉ์ ์
๋ ฅ์์ด ๋จ์ํ ์ ์ํ๋ฉด ๋ฐ๋ก ์๋ ค์ฃผ๋ ์ฝ๋์ด๋ฏ๋ก ์๋ฌด๋ฐ ๊ฐ์ ๋ฃ๊ณ ํ
์คํธ ํ์์ต๋๋ค.
์ด๋ ๊ฒ ํ ์คํธ์ ์ฑ๊ณตํ๋ฉด ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋ ๊ฒ์ ๋๋ค.
API Gateway๋ฅผ ์ฌ์ฉํ ์๋ ํฌ์ธํธ ์์ฑ
์ด์ ์ฝ๋๊ฐ ์์ฑ๋์์ผ๋ ์๋ ํฌ์ธํธ๋ฅผ ์ฃผ๋๋ก ํด๋ณด์ฃ . ์ ๋ ๊ฐ๋จํ GET ๋ฉ์๋๋ฅผ ์ฃผ๋ฉด ๋ฐ๋ก ์ ๋ธ๋ก๊ทธ ๋ฐฉ๋ฌธ์ ์๊ฐ ์ ์๋๋๋ก ํ ๋ฒ ํด๋ณด๊ฒ ์ต๋๋ค.
API Gateway์ ์ ์ํ์ฌ API ์์ฑ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ ํ๋ฉด์ด ๋์ค๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ์ฌ๋ฌ๋ถ๋ค์ด ์ํ์๋ API ์ด๋ฆ์ ์
๋ ฅํด์ฃผ์ ํ, API ์์ฑ ๋ฒํผ์ ๋๋ฌ์ค๋๋ค.
๊ทธ๋ผ ์ด์ ์ฌ๊ธฐ์ ์ฌ๋ฌ๋ถ๋ค์ด ์ํ๋ ๋ฆฌ์์ค์ ๋ฉ์๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ.. ์ด๋ด ์๊ฐ;
๊ทธ๋ผ ์ ๋ง๋ก GET ๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ์๊น ์์ฑํ ์ฝ๋์ ํจ์ ์ด๋ฆ์ ์
๋ ฅํ๊ณ ์ ์ฅ์ ๋๋ฅด์๋ฉด ๋ง๋ค์ด์ง๋๋ค.
(๊ถํ ๊ด๋ จ ๋ฉ์์ง๊ฐ ๋์ค๋ฉด ํ์ธ์ ํด๋ฆญํด์ค๋๋ค.)
์ด์ ๋จ์ ๊ฒ์ ๋ฐฐํฌ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋ฐฐํฌ๋ URI๋ฅผ ์ค์ ํ๋ ๊ฒ์ด๋ฏ๋ก ์ฃผ์์ ๋ค์ด๊ฐ ์ํ๋ ์ด๋ฆ์ ์
๋ ฅํ์๊ณ ๋ฐฐํฌ๋ฅผ ๋๋ฅด์๋ฉด ๋ฉ๋๋ค.
์ต์ข
์ ์ผ๋ก ๋ฐฐํฌ๊ฐ ์๋ฃ๋๋ฉด ์ด๋ ๊ฒ ์๋ฒ๋ฆฌ์คํ ์ ์ ๋ธ๋ก๊ทธ ๋ฐฉ๋ฌธ์ ์ ์นด์ดํ
์ด ๋ง๋ค์ด์ก์ต๋๋ค.
๋ง์น๋ฉฐ...
์ฌ๊ธฐ๊น์ง ์๋ฒ๋ฆฌ์ค๋ฅผ ์์ํด๋ณด๋ ๊ฐ๋จํ ์ค์ต์ ํด๋ดค์ต๋๋ค. ํ์คํ ์ฅ์ ์ด๋ผ๊ณ ์๊ฐ๋์๋ ๊ฒ์ ์ง์ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ์ง ์์๋ ์ฝ๊ฒ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์์ ์ ์ด๋ฐ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ๋ ค ํ๋ค๋ฉด ๋คํธ์ํฌ ๊ตฌ์ถ๋ถํฐ ๋๋ฉ์ธ ๊ตฌ์ ๋ถํฐ ํ์ฌ๊ธ ์ฌ๋ฌ๊ฐ์ง ๋น์ฉ ์๋ชจ๊ฐ ๋ค๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง ์ด๋ฌํ ์๋น์ค๊ฐ ํ์ฑํ ๋จ์ผ๋ก์จ ๋ฌ๋ ์ปค๋ธ๊ฐ ๋ง์ด ์ค์๊ณ , ๊ฐ์ธ ์ฌ์ฉ์๋ ์ฝ๊ฒ ์ธํ๋ผ์ ๊ตฌ์ถ ์์ด๋ ๊ฐ์ธ ์๋น์ค๋ฅผ ํ ์ ์๋ค๋ ์ ์ด ๋งค์ฐ ๋์ ๋๋๋ค.
๋ฐ๋ฉด์ ๋จ์ ์ด ์๋ค๋ฉด ์ฝ๋ ๋๋ฒ๊น ์ด ์ฝ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ณด๋ค์ํผ ์ฝ๋๋ฅผ ์น์์ ๋ฐ๋ก ์์ฑํ๊ฑฐ๋ ์๋๋ฉด ์์ฑ๋ ์ฝ๋๋ฅผ ์ฌ๋ ค์ ์ง์ ํ ์คํธํ์ฌ์ผ ํฉ๋๋ค. ์ด ํฌ์คํธ์์ ๋ค๋ฃฌ ์ฝ๋๋ ์ง๊ทนํ ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ํ ์คํธ๊ฐ ์ฉ์ดํ์ง๋ง ์๋น์ค๊ฐ ํฌ๊ฑฐ๋ ์ฝ๋ ํฌ๊ธฐ๊ฐ ํฐ ๊ฒฝ์ฐ์๋ ๋ฌธ์ ๊ฐ ์๋ ๋ถ๋ถ์ ์ฐพ๊ธฐ ์ํด์ ๋๋ฒ๊น ๊ณผ์ ์ด ํ์ํฉ๋๋ค. ํ์ง๋ง ๊ทธ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊น ์ด ์ฝ์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ ๊ฐ์ง ๋ ๋จ์ ์ด ์๋ค๋ฉด ์ง๊ธ ์๋ฒ๋ฆฌ์ค๋ ์ฌ๋ฌ ๋ฒ ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ๊ณ ์๋ค๊ฐ๋ค ํด์ผํ๋ ๋ถํธํจ์ด ์์ต๋๋ค. ๊ธฐ์กด์ ๋ฐฉ๋ฒ์ผ๋ก ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋๋ ์๋ฒ ํ๋ ์์ํฌ์์ ๋ชจ๋ ๊ฒ์ ์ค์ ํ์ผ์ ๋ด์๋๊ณ ํ ๋ฒ์ ๋ฐฐํฌํ๋ ๊ฒ์ด์์ง๋ง ์ด์ ๊ฐ์ด ์ฝ๋๋ฅผ ์ฌ๋ฆฌ๊ณ ๊ฑฐ๊ธฐ์ ๋ ๋ฆฌ์์ค๋ฅผ ๋ฐ๋ก ๋ ์ถ๊ฐํ๊ธฐ์๋ ์ฌ๋ฌ ๊ฐ์ง๋ก ์์ด ๋ง์ด ๋ค์ด๊ฐ๋๋ค. ์ด ๋ถ๋ถ์ ๋ํด์๋ ์ฐจ๊ธฐ ํฌ์คํธ์์ ์ข ๋ ์ฝ๊ฒ Serverless๋ฅผ ๋ฐฐํฌํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'Cloud Platform > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Serverless framework๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ฝ๊ฒ ์๋ฒ ๋ฐฐํฌํ๊ธฐ (0) | 2018.05.30 |
---|---|
API Gateway์ ๋๋ฉ์ธ์ ๋ด ๋๋ฉ์ธ์ผ๋ก ์ค์ ํ๊ธฐ (0) | 2018.03.03 |