ํ์ ์์ ์ฑ์ด๋ ํต์ฌ ์ปดํจํฐ ๊ณผํ ์๋ฆฌ๊ฐ ํด์ ๊ณผํ์์ ๋ฐ์ดํฐ ์ค๋ฅ ๋ฐฉ์ง, ๋ชจ๋ธ ์ ํ๋ ํฅ์, ๊ธ๋ก๋ฒ ํ์ ์ ์ด์งํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
ํ์ ์์ ํด์ํ: ์์ ๊ฐ ์๊ฒ ํด์ ๋ฐ์ดํฐ ํ์ ํ์
์ฐ๋ฆฌ ๋ฐ๋ค๋ ์ง๊ตฌ์ ์๋ช ์ ์ด๋ฉฐ, ์ธ๊ณ ๊ธฐํ๋ฅผ ๊ฒฐ์ ํ๊ณ ์๋ฐฑ๋ง ๋ช ์ ๋ถ์ํ๋ ์กฐ๋ฅ, ํํ, ์๋ช ์ฒด๋ก ๊ตฌ์ฑ๋ ๋ณต์กํ ์์คํ ์ ๋๋ค. ์ด ๊ด๋ํ ์์ญ์ ์ดํดํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์์จ ์๋ฅด๊ณ ๋ถํ๊ฐ ๊น์ด๋ฅผ ํ๋กํ์ผ๋งํ๊ณ , ์์ฑ์ด ํ๋ฉด์ ์ค์บํ๊ณ , ์ ๋ฐ ๊ธฐ๋ฐ ์ผ์๊ฐ ๋ฌผ์ ๋ง๋ณด๊ณ , ์์ค ๊ธ๋ผ์ด๋๊ฐ ํ๊ณก์ ํ์ํ๋ ๋ฑ ์ ๊ตํ ์ฅ๋น๋ฅผ ๋์์์ด ๋๋ฆฌ๊ณ ์์ต๋๋ค. ์ด๋ค์ ํจ๊ป ํํ๋ฐ์ดํธ ๋จ์๋ก ์ธก์ ๋๋ ๋์งํธ ํ์์ธ ๋ฐ์ดํฐ์ ๊ธ๋ฅ๋ฅผ ์์ฑํฉ๋๋ค. ์ด ๋ฐ์ดํฐ์๋ ๊ธฐํ ๋ณํ ์ดํด, ์ด์ ๊ด๋ฆฌ, ๊ทน์ฌํ ๋ ์จ ์์ธก์ ์ด์ ๊ฐ ๋ด๊ฒจ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ํ์์๋ ์จ๊ฒจ์ง ์ทจ์ฝ์ฑ์ด ์์ต๋๋ค. ๋ฏธ๋ฌํ๊ณ ์กฐ์ฉํ ๋ฐ์ดํฐ ์ค๋ฅ์ ๋๋ค.
์ผ์์ ์ค๋ฅ ์ฝ๋ -9999.9๊ฐ ํ๊ท ์จ๋ ๊ณ์ฐ์ ์ค์๋ก ํฌํจ๋์ด ๊ธฐํ ๋ชจ๋ธ์ ์์ธก์ด ์๊ณก๋์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ๋๋ ํ ๋ฐ์ดํฐ ์ธํธ์์ 1,000๋ถ์ 1์ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ธํธ์์ ๋ช
์์ ์ธ ๊ตฌ๋ณ ์์ด ๋ค๋ฅธ ํ์ค์ ์ฌ์ฉํ์ฌ ์ผ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์คํจํ๋ ๊ฒฝ์ฐ. ์ด๋ ํฐ๋ฌด๋์๋ ์๋๋ฆฌ์ค๊ฐ ์๋๋๋ค. ์ด๋ ๊ณ์ฐ ํด์ํ์ ์ผ์์ ์ธ ๋ถ์์
๋๋ค. "์ฐ๋ ๊ธฐ๋ฅผ ๋ฃ์ผ๋ฉด ์ฐ๋ ๊ธฐ๊ฐ ๋์จ๋ค"๋ ์์น์ด ์ง๊ตฌ์ ๊ท๋ชจ๋ก ์ฆํญ๋ฉ๋๋ค. ๋จ์ผ์ ์๋ชป๋ ๋ฐ์ดํฐ ํฌ์ธํธ๋ ์ ์ฒด ๋ถ์์ ์์์์ผ ๊ฒฐํจ ์๋ ๊ณผํ์ ๊ฒฐ๋ก , ์ฐ๊ตฌ ์๊ธ ๋ญ๋น, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์ ๋ฐ๊ฒฌ์ ๋ํ ์ ๋ขฐ ์์ค๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
ํด๊ฒฐ์ฑ ์ ๋ ๋์ ์ผ์๋ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฟ๋ง ์๋๋ผ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ณด๋ค ์๊ฒฉํ ์ ๊ทผ ๋ฐฉ์์ ์์ต๋๋ค. ์ด๋ ์ปดํจํฐ ๊ณผํ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ด ๊ฐ๋ ฅํ ๊ตฌ๋ช ์ ์ ์ ๊ณตํ๋ ๊ณณ์ ๋๋ค. ํ์ ์์ ์ฑ. ์ด ๊ฒ์๋ฌผ์์๋ ํ์ ์์ ์ฑ์ด ๋ ์ด์ ์ํํธ์จ์ด ์์ง๋์ด์ ํ์ ๊ด์ฌ์ฌ๊ฐ ์๋๋ผ ํ๋์ ์ด๊ณ ๊ฐ๋ ฅํ๋ฉฐ ์ฌํ ๊ฐ๋ฅํ ํด์ ๊ณผํ์ ํ์์ ์ธ ๊ท์จ์ด ๋ ์ด์ ๋ฅผ ํ๊ตฌํ ๊ฒ์ ๋๋ค. ๋ชจํธํ ์คํ๋ ๋์ํธ๋ฅผ ๋์ด ๋ฐ์ดํฐ๊ฐ ํ๋ถํ ์๋์ ์๋ ฅ์ ๊ฒฌ๋ ์ ์๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๊ธฐ๋ฐ์ ๊ตฌ์ถํ ๋์ ๋๋ค.
ํ์ ์์ ์ฑ์ด๋ ๋ฌด์์ด๋ฉฐ, ์ ํด์ํ์๋ค์ด ๊ด์ฌ์ ๊ฐ์ ธ์ผ ํ ๊น์?
ํต์ฌ์ ์ผ๋ก, ํ์ ์์ ์ฑ์ ํธํ๋์ง ์๋ ๋ฐ์ดํฐ ์ ํ์ ํผํฉํ์ฌ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋๋ ์์คํ ์์ ์ ๊ณตํ๋ ๋ณด์ฅ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์จ๋ ํ๋ ๊ฐ๊ณผ ๊ฐ์ ์ซ์๋ฅผ ์์น ์ด๋ฆ๊ณผ ๊ฐ์ ํ ์คํธ ์กฐ๊ฐ์ ์ถ๊ฐํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๋ ๋จ์ํ๊ฒ ๋ค๋ฆฌ์ง๋ง ๊ณผํ ์ปดํจํ ์ ๋ํ ์๋ฏธ๋ ์ฌ์คํฉ๋๋ค.
๋จ์ํ ๋น์ : ๊ณผํ ์คํ์ค
๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ํํ ์คํ์ค๋ก ์๊ฐํ์ญ์์ค. ๋ฐ์ดํฐ ์ ํ์ "์ฐ", "์ผ๊ธฐ", "์ฆ๋ฅ์"์ ๊ฐ์ด ๋ ์ด๋ธ์ด ์ง์ ๋ ๋น์ปค์ ๊ฐ์ต๋๋ค. ํ์ ์์ ์์คํ ์ "์ผ์ฐ"์ด๋ผ๊ณ ํ์๋ ๋น์ปค๋ฅผ ํน์ , ์ ์ด๋ ์ ์ฐจ(ํจ์) ์์ด ๋ฏผ๊ฐํ ์๋ฌผํ์ ์ํ์ฉ์ผ๋ก ์ค๊ณ๋ ์ฉ๊ธฐ์ ๋ถ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ์๊ฒฉํ ์คํ์ค ํ๋กํ ์ฝ๊ณผ ๊ฐ์ต๋๋ค. ์ํํ๊ณ ์๋ํ์ง ์์ ๋ฐ์์ ์ผ์ผํค๊ธฐ ์ ์ ์ค๋จํฉ๋๋ค. ์๋๋ฅผ ๋ช ํํ๊ฒ ๋ฐํ์ผ ํฉ๋๋ค. ํ์ ์์ ์ฑ์ด ์๋ ์์คํ ์ ๋ผ๋ฒจ์ด ์๋ ๋น์ปค๊ฐ ์๋ ์คํ์ค๊ณผ ๊ฐ์ต๋๋ค. ๋ฌด์์ด๋ ์์ ์ ์์ง๋ง ์๊ธฐ์น ์์ ํญ๋ฐ์ ์ํ์ด ์๊ฑฐ๋ ๋ ๋์๊ฒ๋ ๊ทธ๋ด๋ฏํด ๋ณด์ด์ง๋ง ๊ทผ๋ณธ์ ์ผ๋ก ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ ์ํ์ด ์์ต๋๋ค.
๋์ ๋ ์ ์ ํ์ดํ: ๋ ๊ฐ์ง ์ฒ ํ์ ์ด์ผ๊ธฐ
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ด๋ฌํ ๊ท์น์ ์ํํ๋ ๋ฐฉ์์ ์ผ๋ฐ์ ์ผ๋ก ๋์ ๋ฐ ์ ์ ํ์ดํ์ ๋ ๊ฐ์ง ์ง์์ผ๋ก ๋๋ฉ๋๋ค.
- ๋์ ํ์ดํ: ํ์ด์ฌ(๊ธฐ๋ณธ ์ํ), MATLAB ๋ฐ R๊ณผ ๊ฐ์ ์ธ์ด๋ ๋์ ์ผ๋ก ํ์ดํ๋ฉ๋๋ค. ๋ณ์์ ์ ํ์ ๋ฐํ์(ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋)์ ํ์ธ๋ฉ๋๋ค. ์ด๋ ํ๋ฅญํ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ฉฐ ์ด๊ธฐ ์คํฌ๋ฆฝํ
๋ฐ ํ์์ ์ข
์ข
๋ ๋น ๋ฆ
๋๋ค.
์ํ: ๋๋ฝ๋ ์จ๋ ๊ฐ์ด "N/A"๋ก ํ์๋ CSV ํ์ผ์ ์ฝ๋ ํ์ด์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์์ํด ๋ณด์ญ์์ค. ์คํฌ๋ฆฝํธ๋ ์ด๋ฅผ ๋ฌธ์์ด๋ก ์ฝ์ ์ ์์ต๋๋ค. ๋์ค์ ์ด์ ํ๊ท ์จ๋๋ฅผ ๊ณ์ฐํ๋ ค๊ณ ํฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ ํด๋น "N/A" ๊ฐ์ ๋๋ฌํ์ฌ ์ซ์์ ๋ํ๋ ค๊ณ ํ ๋๊น์ง ๋ถ๋ง์ ํ์ํ์ง ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ํ๋ก๊ทธ๋จ์ด ๋ถ์ ์ค๊ฐ์ ์ถฉ๋ํฉ๋๋ค. ๋ ๋์ ๊ฒ์ ๋๋ฝ๋ ๊ฐ์ด
-9999์ธ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์ด ์ ํ ์ถฉ๋ํ์ง ์์ ์ ์์ง๋ง ํ๊ท ์ด ์๋ฑํ๊ฒ ๋ถ์ ํํด์ง๋๋ค. - ์ ์ ํ์ดํ: Rust, C++, Fortran ๋ฐ Java์ ๊ฐ์ ์ธ์ด๋ ์ ์ ์ผ๋ก ํ์ดํ๋ฉ๋๋ค. ๋ชจ๋ ๋ณ์์ ์ ํ์ ์ ์ธ๋์ด์ผ ํ๋ฉฐ ์ปดํ์ผ ์๊ฐ(ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ )์ ํ์ธ๋ฉ๋๋ค. ์ฒ์์๋ ๋ ์๊ฒฉํ๊ฒ ๋๊ปด์ง ์ ์์ง๋ง ์ฒ์๋ถํฐ ์ ์ฒด ์ค๋ฅ ํด๋์ค๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
๋ณด์: ์ ์ ์ผ๋ก ํ์ดํ๋ ์ธ์ด์์๋ ์จ๋ ๋ณ์๊ฐ ๋ถ๋ ์์์ ์ซ์๋ง ํฌํจํ๋๋ก ์ ์ธํฉ๋๋ค. "N/A" ๋ฌธ์์ด์ ํ ๋นํ๋ ค๊ณ ํ์๋ง์ ์ปดํ์ผ๋ฌ๋ ์ค๋ฅ์ ํจ๊ป ์ค์งํฉ๋๋ค. ๋จผ์ ๋๋ฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ(์: ์ซ์ ๋๋ "๋๋ฝ" ํ๋๊ทธ๋ฅผ ๋ชจ๋ ํฌํจํ ์ ์๋ ํน์ ๊ตฌ์กฐ ์ฌ์ฉ)์ ์ฌ์ ๊ฒฐ์ ํ๋๋ก ํฉ๋๋ค. ์ค๋ฅ๋ ์ํผ์ปดํจํฐ์์ ์ค์ํ ๋ชจ๋ธ์ ์คํํ๋ ๋์์ด ์๋ ๊ฐ๋ฐ ์ค์ ํฌ์ฐฉ๋ฉ๋๋ค.
๋คํํ ์ธ์์ ๊ทธ๋ ๊ฒ ์ด์ง๋ฒ์ด ์๋๋๋ค. ์ต์ ๋๊ตฌ๋ ๊ฒฝ๊ณ๋ฅผ ํ๋ฆฌ๊ฒ ํ๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ ๊ณผํ์ ๋ ๋ณด์ ์ธ ์ธ์ด์ธ ํ์ด์ฌ์ ์ด์ ๊ฐ๋ฐ์๊ฐ ๋์ ์ฝ๋์ ์ ์ ํ์ดํ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ์ฌ ๋ ๊ฐ์ง ์ธ๊ณ์ ์ฅ์ ์ ์ป์ ์ ์๋ ๊ฐ๋ ฅํ ํ์ ํํธ ์์คํ ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
๊ณผํ ๋ฐ์ดํฐ์์ "์ ์ฐ์ฑ"์ ์จ๊ฒจ์ง ๋น์ฉ
๋์ ์ผ๋ก ํ์ดํ๋ "์ ์ฐํ" ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ์ฉ์ดํจ์ ๊ณผํ์ ๋งฅ๋ฝ์์ ์ฌ๊ฐํ ์จ๊ฒจ์ง ๋น์ฉ์ ์๋ฐํฉ๋๋ค.
- ๋ญ๋น๋ ๊ณ์ฐ ์ฃผ๊ธฐ: ๊ธฐํ ๋ชจ๋ธ์ด ๊ณ ์ฑ๋ฅ ์ปดํจํ ํด๋ฌ์คํฐ์์ 72์๊ฐ ์คํ ์ค 24์๊ฐ ๋ง์ ์ถฉ๋์ ์ผ์ผํค๋ ํ์ ์ค๋ฅ๋ ์๊ฐ, ์๋์ง ๋ฐ ๋ฆฌ์์ค์ ์์ฒญ๋ ๋ญ๋น๋ฅผ ๋ํ๋ ๋๋ค.
- ์นจ๋ฌตํ๋ ์์: ๊ฐ์ฅ ์ํํ ์ค๋ฅ๋ ์ถฉ๋์ ์ผ์ผํค๋ ์ค๋ฅ๊ฐ ์๋๋ผ ์กฐ์ฉํ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ์ค๋ฅ์ ๋๋ค. ํ์ง ํ๋๊ทธ๋ฅผ ์ค์ ๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๊ฑฐ๋, ๋จ์๋ฅผ ํผํฉํ๊ฑฐ๋, ํ์์คํฌํ๋ฅผ ์๋ชป ํด์ํ๋ ๊ฒ์ ๊ณผํ ์ฐ๊ตฌ์ ๊ธฐ์ด๋ฅผ ํผ์ํ๋ ๋ฏธ๋ฌํ๊ฒ ์๋ชป๋ ๋ฐ์ดํฐ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- ์ฌํ์ฑ ์๊ธฐ: ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ด ๋ถ์์ ํ๊ณ ๋ฐ์ดํฐ ์ ํ์ ๋ํ ์์์ ๊ฐ์ ์ด ์คํฌ๋ฆฝํธ ๋ด์ ์จ๊ฒจ์ ธ ์์ผ๋ฉด ๋ค๋ฅธ ์ฐ๊ตฌ์๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฌํํ๋ ๊ฒ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํด์ง๋๋ค. ํ์ ์์ ์ฑ์ ๋ฐ์ดํฐ ๊ฐ์ ์ ๋ช ์์ ์ผ๋ก ๋ง๋ค๊ณ ์ฝ๋๋ฅผ ๋ ํฌ๋ช ํ๊ฒ ๋ง๋ญ๋๋ค.
- ํ์ ๋ง์ฐฐ: ๊ตญ์ ํ์ด ๋ฐ์ดํฐ ์ธํธ ๋๋ ๋ชจ๋ธ์ ๋ณํฉํ๋ ค๊ณ ํ ๋ ๋ฐ์ดํฐ ์ ํ ๋ฐ ํ์์ ๋ํ ์๋ก ๋ค๋ฅธ ๊ฐ์ ์ผ๋ก ์ธํด ๋ช ๋ฌ๊ฐ์ ์ง์ฐ๊ณผ ๊ณ ๋ ๋๋ฒ๊น ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ํ: ํด์ ๋ฐ์ดํฐ๊ฐ ์๋ชป๋๋ ๊ณณ
์ถ์์ ์ธ ๊ฒ์์ ๊ตฌ์ฒด์ ์ธ ๊ฒ์ผ๋ก ์ด๋ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ค์์ ํด์ ๋ฐ์ดํฐ ์ํฌํ๋ก์์ ๋ฐ์ํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ์์์ ์ธ ์ ํ ๊ด๋ จ ์ค๋ฅ์ ํ์ ์์ ์ ๊ทผ ๋ฐฉ์์ด ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๋ฐฉ์์ ๋๋ค.
์ ๋ช ๋์ Null: ๋๋ฝ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
๋ชจ๋ ํด์ํ์๋ ๋๋ฝ๋ ๋ฐ์ดํฐ์ ์ต์ํฉ๋๋ค. ์ผ์ ์ค๋ฅ, ์ ์ก ์ค๋ฅ ๋๋ ๊ฐ์ด ํ์ฉ ๊ฐ๋ฅํ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค. ์ด๊ฒ์ ์ด๋ป๊ฒ ํํ๋ฉ๋๊น?
NaN(Not a Number)-9999,-99.9๋๋1.0e35์ ๊ฐ์ ๋งค์ง ๋๋ฒ"MISSING","N/A"๋๋"---_"์ ๊ฐ์ ๋ฌธ์์ด- ์คํ๋ ๋์ํธ์ ๋น ์
์ํ: ๋์ ์ผ๋ก ํ์ดํ๋ ์์คํ
์์๋ ํ๊ท ๋๋ ์ต์๊ฐ์ ๊ณ์ฐํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๋จผ์ ๋งค์ง ๋๋ฒ๋ฅผ ํํฐ๋งํ๋ ๊ฒ์ ์๊ธฐ๊ฐ ์ฝ์ต๋๋ค. ์์ ํด์๋ฉด ์จ๋ ๋ฐ์ดํฐ ์ธํธ์ -9999๊ฐ ํ๋ ์์ผ๋ฉด ํ๊ท ๋ฐ ํ์ค ํธ์ฐจ๊ฐ ์ฌํ๊ฒ ์๊ณก๋ฉ๋๋ค.
ํ์
์์ ์๋ฃจ์
: ๊ฐ๋ ฅํ ํ์
์์คํ
์ ๋ถ์ฌ๋ฅผ ๋ช
์์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์ ํ์ ์ฌ์ฉ์ ์ฅ๋ คํฉ๋๋ค. Rust ๋๋ Haskell๊ณผ ๊ฐ์ ์ธ์ด์์ ์ด๊ฒ์ Option ๋๋ Maybe ์ ํ์
๋๋ค. ์ด ์ ํ์ Some(value) ๋๋ None์ ๋ ๊ฐ์ง ์ํ๋ก ์กด์ฌํ ์ ์์ต๋๋ค. ์ปดํ์ผ๋ฌ์ ์ํด ๋ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋๋ก ๊ฐ์ ๋ฉ๋๋ค. value๊ฐ ์๋์ง ๋จผ์ ํ์ธํ์ง ์๊ณ ๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ณ์ฐ์์ ๋๋ฝ๋ ๊ฐ์ ์ค์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ด์ฌ์์๋ ํ์
ํํธ๋ก ๋ชจ๋ธ๋งํ ์ ์์ต๋๋ค. Optional[float], ์ด๋ `Union[float, None]`๋ก ๋ณํ๋ฉ๋๋ค. `mypy`์ ๊ฐ์ ์ ์ ๊ฒ์ฌ๊ธฐ๋ ์ด ์ ํ์ ๋ณ์๋ฅผ ์ํ ์ฐ์ฐ์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋จผ์ `None`์ธ์ง ํ์ธํ์ง ์์ผ๋ฉด ํ๋๊ทธ๋ฅผ ํ์ํฉ๋๋ค.
๋จ์ ํผ๋: ํ์ฑ ๊ท๋ชจ์ ์ฌ์์ ์ํ ๋ ์ํผ
๋จ์ ์ค๋ฅ๋ ๊ณผํ ๋ฐ ๊ณตํ์์ ์ ์ค์ ์ ๋๋ค. ํด์ํ์ ๊ฒฝ์ฐ ์ํ์ ๊ทธ๋งํผ ๋์ต๋๋ค.
- ์จ๋: ์ญ์จ, ์ผ๋น ๋๋ ํ์จ์ธ๊ฐ์?
- ์๋ ฅ: ๋ฐ์๋ฐ(dbar), ํ์ค์นผ(Pa) ๋๋ ํ์ด๋/์ ๊ณฑ์ธ์น(psi)์ธ๊ฐ์?
- ์ผ๋: ์ค์ฉ ์ผ๋ ์ฒ๋(PSS-78, ๋จ์ ์์) ๋๋ ์ ๋ ์ผ๋(g/kg)์ธ๊ฐ์?
- ๊น์ด: ๋ฏธํฐ ๋๋ ํจ๋ค์ธ๊ฐ์?
์ํ: ๋ฐ๋๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ๋ฐ์๋ฐ์ ์๋ ฅ์ ์์ํ๋ ํจ์์ ํ์ค์นผ์ ๊ฐ์ด ์ฃผ์ด์ง๋๋ค. ๊ฒฐ๊ณผ ๋ฐ๋ ๊ฐ์ 10,000์ ์ธ์๋งํผ ๋จ์ด์ ธ ๋ฌผ ๋ฉ์ด๋ฆฌ ์์ ์ฑ์ด๋ ํด๋ฅ์ ๋ํ ์์ ํ ๋น์์์ ์ธ ๊ฒฐ๋ก ์ผ๋ก ์ด์ด์ง๋๋ค. ๋ ๊ฐ ๋ชจ๋ ์ซ์(์: `float64`)์ด๋ฏ๋ก ํ์ค ํ์ ์์คํ ์ ์ด ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ํฌ์ฐฉํ์ง ์์ต๋๋ค.
ํ์ ์์ ์๋ฃจ์ : ์ฌ๊ธฐ์ ๊ธฐ๋ณธ ํ์ ์ ๋์ด ์๋ฏธ ์ฒด๊ณ์ ํ์ ๋๋ ๋๋ฉ์ธ๋ณ ํ์ ์ ๋ง๋ค ์ ์์ต๋๋ค. `float`๋ง ์ฌ์ฉํ๋ ๋์ ์ธก์ ๊ฐ์ ๋ํ ๋ณ๋์ ํ์ ์ ์ ์ํ ์ ์์ต๋๋ค.
class Celsius(float): pass
class Kelvin(float): pass
class Decibar(float): pass
๊ทธ๋ฐ ๋ค์ ํจ์ ์๊ทธ๋์ฒ๋ฅผ ๋ช
์์ ์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค. def calculate_density(temp: Celsius, pressure: Decibar) -> float: .... ๋ณด๋ค ๊ณ ๊ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋ ๋จ์ ๋ณํ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ํธํ๋์ง ์๋ ๋จ์๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํ ๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ์๋ ์์ต๋๋ค(์: ์จ๋์ ์๋ ฅ ์ถ๊ฐ). ์ด๋ ์ค์ํ ๊ณผํ์ ์ปจํ
์คํธ๋ฅผ ์ฝ๋ ์์ฒด์ ์ง์ ํฌํจ์์ผ ์์ฒด ๋ฌธ์ํ ๋ฐ ํจ์ฌ ์์ ํ๊ฒ ๋ง๋ญ๋๋ค.
ํ์์คํฌํ ๋ฐ ์ขํ์ ๋ชจํธ์ฑ
์๊ฐ๊ณผ ๊ณต๊ฐ์ ํด์ํ์ ๊ธฐ๋ณธ์ด์ง๋ง ๊ทธ ํํ์ ์ง๋ขฐ๋ฐญ์ ๋๋ค.
- ํ์์คํฌํ: UTC ๋๋ ํ์ง ์๊ฐ์ ๋๊น? ํ์์ ๋ฌด์์ ๋๊น(ISO 8601, UNIX epoch, Julian day)? ์ค์ด๋ฅผ ๊ณ ๋ คํฉ๋๊น?
- ์ขํ: 10์ง์ ๋๋ ๋/๋ถ/์ด ๋จ์์ ๋๊น? ์ธก์ง ๊ธฐ์ค์ ์ ๋ฌด์์ ๋๊น(์: WGS84, NAD83)?
์ํ: ์ ์ ํ ๋ณํ ์์ด UTC๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ํ์ง ์๊ฐ์ ์ฌ์ฉํ๋ ๋ ๊ฐ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ณํฉํ๋ฉด ์ธ๊ณต์ ์ธ ์ผ์ฃผ๊ธฐ ํจํด์ ๋ง๋ค๊ฑฐ๋ ์กฐ์ ํผํฉ ๋๋ ์๋ฌผ์ฑ ํ๋ํฌํค ๊ฐํ์ ๊ฐ์ ํ์์ ์๋ชป๋ ํด์์ผ๋ก ์ด์ด์ง๋ ๋ช ์๊ฐ ๋จ์๋ก ์ด๋ฒคํธ๋ฅผ ์ ๋ ฌ ํด์ ํ ์ ์์ต๋๋ค.
ํ์ ์์ ์๋ฃจ์ : ์ ์ฒด ์์คํ ์์ ์ค์ํ ๋ฐ์ดํฐ ์ ํ์ ๋ํด ๋จ์ผํ๊ณ ๋ช ํํ ํํ์ ์ ์ฉํฉ๋๋ค. ์๊ฐ์ ๊ฒฝ์ฐ ์ด๋ ๊ฑฐ์ ํญ์ ํ์คํ๋ UTC๋ก ํ์ค ์๊ฐ๋ ์ธ์ ๋ ์ง ์๊ฐ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ์ ์์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ช ์์ ์ธ ์๊ฐ๋ ์ ๋ณด๊ฐ ์๋ ํ์์คํฌํ๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ขํ์ ๊ฒฝ์ฐ ์ ํจํ ๋ฒ์(๊ฐ๊ฐ -90 ~ 90 ๋ฐ -180 ~ 180) ๋ด์์ ์๋์ ๊ฒฝ๋๋ฅผ ํฌํจํด์ผ ํ๋ ํน์ `WGS84Coordinate` ์ ํ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ชป๋ ์ขํ๊ฐ ์์คํ ์ ๋ค์ด์ค๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๊ฑฐ๋ ๋๊ตฌ: ํด์ ์ํฌํ๋ก์์ ํ์ ์์ ์ฑ ๊ตฌํ
ํ์ ์์ ์ฑ์ ์ฑํํ๋ ค๋ฉด ์ต์ํ ๋๊ตฌ๋ฅผ ํฌ๊ธฐํ ํ์๊ฐ ์์ต๋๋ค. ๋ ์๊ฒฉํ ๊ดํ์ผ๋ก ๋ณด๊ฐํ๊ณ ์ต์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค.
ํ์ํ๋ ํ์ด์ฌ์ ๋ถ์
๊ณผํ๊ณ์์ ํ์ด์ฌ์ด ์ง๋ฐฐ์ ์์ ๊ฐ์ํ ๋, ํ์ ํํธ(PEP 484์ ์ ์๋จ)์ ๋์ ์ ์ง๋ 10๋ ๋์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๊ฐ์ฅ ์ค์ํ ๋ฐ์ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ๋ณธ ํ์ด์ฌ์ ๋์ ํน์ฑ์ ๋ณ๊ฒฝํ์ง ์๊ณ ํจ์ ์๊ทธ๋์ฒ์ ๋ณ์์ ์ ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ด์ (ํ์ค ํ์ด์ฌ):
def calculate_practical_salinity(conductivity, temp, pressure):
# Assumes conductivity is in mS/cm, temp in Celsius, pressure in dbar
# ... complex TEOS-10 calculation ...
return salinity
`temp`์ด ์ผ๋น์ผ๋ก ์ ๋ฌ๋๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ฝ๋๋ ์คํ๋์ง๋ง ๊ฒฐ๊ณผ๋ ๊ณผํ์ ์๋ฏธ๊ฐ ์์ ๊ฒ์ ๋๋ค.
์ดํ(ํ์ ํํธ๊ฐ ์๋ ํ์ด์ฌ):
def calculate_practical_salinity(conductivity: float, temp_celsius: float, pressure_dbar: float) -> float:
# The signature now documents the expected types.
# ... complex TEOS-10 calculation ...
return salinity
Mypy์ ๊ฐ์ ์ ์ ํ์ ๊ฒ์ฌ๊ธฐ๋ฅผ ์ฝ๋์์ ์คํํ๋ฉด ์ฌ์ ๊ฒ์ฌ์ ๊ฐ์ด ์๋ํฉ๋๋ค. ์ด๋ฌํ ํํธ๋ฅผ ์ฝ๊ณ float๋ฅผ ์์ํ๋ ํจ์์ ๋ฌธ์์ด์ ์ ๋ฌํ๋ ค๊ณ ํ๊ฑฐ๋ ๊ฐ์ด `None`์ผ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํฉ๋๋ค.
๋ฐ์ดํฐ ์์ง ๋ฐ ๊ฒ์ฆ์ ์ํด Pydantic๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ ์ ์ ๋๋ค. ํ์ ์ด ์๋ ํ์ด์ฌ ํด๋์ค๋ก ์์๋๋ ๋ฐ์ดํฐ์ "๋ชจ์"์ ์ ์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Pydantic์ ์์ ๋ฐ์ดํฐ(์: API์ JSON ๋๋ CSV์ ํ)๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์๋์ผ๋ก ์ ๋ฆฌ๋ ํ์ ๊ฐ์ฒด๋ก ๋ณํํฉ๋๋ค. ๋ค์ด์ค๋ ๋ฐ์ดํฐ๊ฐ ์ ์๋ ํ์ ๊ณผ ์ผ์นํ์ง ์์ผ๋ฉด(์: ์จ๋ ํ๋์ ์ซ์๊ฐ ์๋ "์ค๋ฅ"๊ฐ ํฌํจ๋จ) Pydantic์ ๋ช ํํ ์ ํจ์ฑ ๊ฒ์ฌ ์ค๋ฅ๋ฅผ ์ฆ์ ๋ฐ์์์ผ ๋ถํจํ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ดํธ์์ ์ค๋จํฉ๋๋ค.
์ปดํ์ผ๋ ์ธ์ด: ์ฑ๋ฅ ๋ฐ ์์ ์ ๊ณจ๋ ํ์ค
ํด์ ์ํ ๋ชจ๋ธ ๋๋ ์ ์์ค ๊ณ์ธก๊ธฐ ์ ์ด์ ๊ฐ์ ์ฑ๋ฅ์ด ์ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ์ปดํ์ผ๋ ์ ์ ์ผ๋ก ํ์ดํ๋ ์ธ์ด๊ฐ ํ์ค์ ๋๋ค. Fortran๊ณผ C++๋ ์ค๋ซ๋์ ์ํฌํธ์ค์์ง๋ง Rust์ ๊ฐ์ ํ๋ ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ๊ณผ ํ์ ์์ ์ฑ ๋ชจ๋์ ๋ํ ํ์ ์ถ์ข ์ ๋ถํํ๋ ์ด์ ์ ํตํด ์ธ๊ณ ์ต๊ณ ์์ค์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฏ๋ก ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ต๋๋ค.
Rust์ `enum` ์ ํ์ ํด์ํ์ ํนํ ๊ฐ๋ ฅํฉ๋๋ค. ์ผ์์ ์ํ๋ฅผ ์๋ฒฝํ๊ฒ ๋ช ํํ๊ฒ ๋ชจ๋ธ๋งํ ์ ์์ต๋๋ค.
enum SensorReading {
Valid { temp_c: f64, salinity: f64 },
Error(String),
Offline,
}
์ด ์ ์๋ฅผ ์ฌ์ฉํ๋ฉด `SensorReading`์ ๋ณด์ ํ๋ ๋ณ์๋ ์ด๋ฌํ ์ธ ๊ฐ์ง ๋ณํ ์ค ํ๋์ฌ์ผ ํฉ๋๋ค. ์ปดํ์ผ๋ฌ๋ ๋ชจ๋ ๊ฐ๋ฅ์ฑ์ ์ฒ๋ฆฌํ๋๋ก ๊ฐ์ํ์ฌ ์จ๋ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ธฐ ์ ์ ์ค๋ฅ ์ํ๋ฅผ ํ์ธํ๋ ๊ฒ์ ์์ด๋ฒ๋ฆฌ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
ํ์ ์ธ์ ๋ฐ์ดํฐ ํ์: ๊ธฐ๋ฐ์ ์์ ์ฑ ๊ตฌ์ถ
ํ์ ์์ ์ฑ์ ์ฝ๋์๋ง ๊ตญํ๋ ๊ฒ์ด ์๋๋๋ค. ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ ๊ดํ ๊ฒ์ ๋๋ค. ํ์ผ ํ์ ์ ํ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
- CSV(์ผํ๋ก ๊ตฌ๋ถ๋ ๊ฐ)์ ๋ฌธ์ ์ : CSV ํ์ผ์ ์ผ๋ฐ ํ ์คํธ์ ๋๋ค. ์ซ์์ ์ด์ ๊ตฌ๋ฌธ ๋ถ์์ ์๋ํ ๋๊น์ง ํ ์คํธ์ ์ด๊ณผ ๊ตฌ๋ณํ ์ ์์ต๋๋ค. ๋ฉํ๋ฐ์ดํฐ์ ๋ํ ํ์ค์ด ์์ผ๋ฏ๋ก ๋จ์, ์ขํ๊ณ ๋ฐ null ๊ฐ ๊ท์น์ ์ฝ๊ฒ ์์ค๋๊ฑฐ๋ ๋ฌด์๋๋ ์ธ๋ถ์์ ๋ฌธ์ํ๋์ด์ผ ํฉ๋๋ค.
- ์๊ฐ ์ค๋ช
ํ์์ ์๋ฃจ์
: NetCDF(๋คํธ์ํฌ ๊ณตํต ๋ฐ์ดํฐ ํ์) ๋ฐ HDF5(๊ณ์ธต์ ๋ฐ์ดํฐ ํ์ 5)์ ๊ฐ์ ํ์์ ๊ทธ๋ด ๋งํ ์ด์ ๊ฐ ์์ด ๊ธฐํ ๋ฐ ํด์ ๊ณผํ์ ๊ธฐ๋ฐ์
๋๋ค. ์ด๊ฒ๋ค์ ์์ฒด ์ค๋ช
๋ฐ์ด๋๋ฆฌ ํ์์
๋๋ค. ์ฆ, ํ์ผ ์์ฒด์ ๋ฐ์ดํฐ๋ฟ๋ง ์๋๋ผ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ค๋ช
ํ๋ ๋ฉํ๋ฐ์ดํฐ๋ ํฌํจ๋์ด ์์ต๋๋ค.
- ๊ฐ ๋ณ์์ ๋ฐ์ดํฐ ์ ํ(์: 32๋นํธ ๋ถ๋ ์์์ , 8๋นํธ ์ ์).
- ๋ฐ์ดํฐ์ ์ฐจ์(์: ์๊ฐ, ์๋, ๊ฒฝ๋, ๊น์ด).
- ๊ฐ ๋ณ์์ ์์ฑ(์: `units`("degrees_celsius"), `long_name`("Sea Surface Temperature") ๋ฐ `_FillValue`(๋๋ฝ๋ ๋ฐ์ดํฐ์ ์ฌ์ฉ๋๋ ํน์ ๊ฐ)).
NetCDF ํ์ผ์ ์ด๋ฉด ๋ฐ์ดํฐ ์ ํ์ด๋ ๋จ์๋ฅผ ์ถ์ธกํ ํ์๊ฐ ์์ต๋๋ค. ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ์์ ์ง์ ์ฝ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํ์ผ ์์ค์์ ํ์ ์์ ์ฑ์ ํ ํํ์ด๋ฉฐ FAIR(๊ฒ์ ๊ฐ๋ฅ, ์ ๊ทผ ๊ฐ๋ฅ, ์ํธ ์ด์ฉ ๊ฐ๋ฅ ๋ฐ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ) ๋ฐ์ดํฐ๋ฅผ ๋ง๋๋ ๋ฐ ํ์์ ์ ๋๋ค.
ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ํฌํ๋ก์ ๊ฒฝ์ฐ Zarr์ ๊ฐ์ ํ์์ ์ด๋ฌํ ๋์ผํ ์ด์ ์ ์ ๊ณตํ์ง๋ง ํด๋ผ์ฐ๋ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์ ์ ์ฅ๋ ์ฒญํฌ๋ ์์ถ ๋ฐ์ดํฐ ๋ฐฐ์ด์ ๋ํ ๋๊ท๋ชจ ๋ณ๋ ฌ ์ก์ธ์ค๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค.
์ฌ๋ก ์ฐ๊ตฌ: ํ์ ์์ ์๋ฅด๊ณ ๋ถํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ
์ด๋ฌํ ์์น์ด ์ด๋ป๊ฒ ๊ฒฐํฉ๋๋์ง ํ์ธํ๊ธฐ ์ํด ์๋ฅด๊ณ ๋ถํ์ ๋ํ ๋จ์ํ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1๋จ๊ณ: ์์ง ๋ฐ ์์ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ
์๋ฅด๊ณ ๋ถํ๊ฐ ํ๋ฉด์ผ๋ก ์ฌ๋ผ์ ์์ฑ์ ํตํด ํ๋กํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. ์์ ๋ฉ์์ง๋ ์ปดํฉํธํ ๋ฐ์ด๋๋ฆฌ ๋ฌธ์์ด์ ๋๋ค. ํด์์์์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์ด ๋ฉ์์ง๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ฒ์ ๋๋ค.
- ์์ ํ์ง ์์ ์ ๊ทผ ๋ฐฉ์: ์ฌ์ฉ์ ์ง์ ์คํฌ๋ฆฝํธ๊ฐ ํน์ ์คํ์ ์์ ๋ฐ์ดํธ๋ฅผ ์ฝ๊ณ ์ด๋ฅผ ์ซ์๋ก ๋ณํํฉ๋๋ค. ๋ฉ์์ง ํ์์ด ์ฝ๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ํ๋๊ฐ ์์๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ๊ฐ ์คํจํ์ง ์๊ณ ๊ฐ๋น์ง ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ์๋ชป๋ ๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฑ์ธ ์ ์์ต๋๋ค.
- ํ์ ์์ ์ ๊ทผ ๋ฐฉ์: ์์๋๋ ๋ฐ์ด๋๋ฆฌ ๊ตฌ์กฐ๋ ๊ฐ ํ๋์ ๋ํ ์๊ฒฉํ ํ์ (์: ํ์์คํฌํ์ ๊ฒฝ์ฐ `uint32`, ํฌ๊ธฐ ์กฐ์ ๋ ์จ๋์ ๊ฒฝ์ฐ `int16`)์ผ๋ก Pydantic ๋ชจ๋ธ ๋๋ Rust ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋ฉ๋๋ค. ๊ตฌ๋ฌธ ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ด ๊ตฌ์กฐ์ ๋ง์ถ๋ ค๊ณ ์๋ํฉ๋๋ค. ๋ถ์ผ์น๋ก ์ธํด ์คํจํ๋ฉด ๋ฉ์์ง๊ฐ ์ฆ์ ๊ฑฐ๋ถ๋๊ณ ๋ค์ด์คํธ๋ฆผ ๋ฐ์ดํฐ๋ฅผ ์์์ํค๋ ๋์ ์๋ ๊ฒํ ๋ฅผ ์ํด ํ๋๊ทธ๊ฐ ์ง์ ๋ฉ๋๋ค.
2๋จ๊ณ: ์ฒ๋ฆฌ ๋ฐ ํ์ง ๊ด๋ฆฌ
์ด์ ์์, ์ ํจ์ฑ์ด ๊ฒ์ฌ๋ ๋ฐ์ดํฐ(์: ์๋ ฅ, ์จ๋, ์ ๋๋)๋ฅผ ํ์๋ ๊ณผํ ๋จ์๋ก ๋ณํํ๊ณ ํ์ง ๊ด๋ฆฌ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
- ์์ ํ์ง ์์ ์ ๊ทผ ๋ฐฉ์: ๋ ๋ฆฝํ ์คํฌ๋ฆฝํธ ๋ชจ์์ด ์คํ๋ฉ๋๋ค. ํ๋์ ์คํฌ๋ฆฝํธ๋ ์ผ๋๋ฅผ ๊ณ์ฐํ๊ณ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ ์ด์๊ฐ์ ํ์ํฉ๋๋ค. ์ด๋ฌํ ์คํฌ๋ฆฝํธ๋ ์ ๋ ฅ ๋จ์ ๋ฐ ์ด ์ด๋ฆ์ ๋ํ ๋ฌธ์ํ๋์ง ์์ ๊ฐ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ํ์ ์์ ์ ๊ทผ ๋ฐฉ์: ํ์ ํํธ๊ฐ ์๋ ํ์ด์ฌ ํจ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. `process_profile(raw_profile: RawProfileData) -> ProcessedProfile`. ํจ์ ์๊ทธ๋์ฒ๊ฐ ๋ช ํํฉ๋๋ค. ๋ด๋ถ์ ์ผ๋ก `calculate_salinity(pressure: Decibar, ...)`์ ๊ฐ์ ๋ค๋ฅธ ํ์ํ๋ ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. ํ์ง ๊ด๋ฆฌ ํ๋๊ทธ๋ ์ ์(์: `1`, `2`, `3`, `4`)๋ก ์ ์ฅ๋์ง ์๊ณ , ์๋ฅผ ๋ค์ด `QualityFlag.GOOD`, `QualityFlag.PROBABLY_GOOD`์ ๊ฐ์ ์ค๋ช ์ ์ธ `Enum` ์ ํ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจํธํจ์ ๋ฐฉ์งํ๊ณ ์ฝ๋๋ฅผ ํจ์ฌ ๋ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
3๋จ๊ณ: ๋ณด๊ด ๋ฐ ๋ฐฐํฌ
์ต์ข , ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ ํ๋กํ์ผ์ ์ ์ธ๊ณ ๊ณผํ๊ณ์ ๊ณต์ ํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
- ์์ ํ์ง ์์ ์ ๊ทผ ๋ฐฉ์: ๋ฐ์ดํฐ๊ฐ CSV ํ์ผ์ ์ ์ฅ๋ฉ๋๋ค. ์ด ํค๋๋ "temp", "sal", "pres"์ ๋๋ค. ๋ณ๋์ `README.txt` ํ์ผ์ ์จ๋๊ฐ ์ญ์จ์ด๊ณ ์๋ ฅ์ด ๋ฐ์๋ฐ์์ ์ค๋ช ํฉ๋๋ค. ์ด README๋ ๋ถ๊ฐํผํ๊ฒ ๋ฐ์ดํฐ ํ์ผ๊ณผ ๋ถ๋ฆฌ๋ฉ๋๋ค.
- ํ์ ์์ ์ ๊ทผ ๋ฐฉ์: ๋ฐ์ดํฐ๋ ์ปค๋ฎค๋ํฐ ํ์ค ๊ท์น(์: ๊ธฐํ ๋ฐ ์์ธก ๊ท์น)์ ๋ฐ๋ผ NetCDF ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค. ํ์ผ์ ๋ด๋ถ ๋ฉํ๋ฐ์ดํฐ๋ `์จ๋`๋ฅผ `units = "celsius"` ๋ฐ `standard_name = "sea_water_temperature"`๊ฐ ์๋ `float32` ๋ณ์๋ก ๋ช ์์ ์ผ๋ก ์ ์ํฉ๋๋ค. ํ์ค NetCDF ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ ์ธ๊ณ์ ๋ชจ๋ ์ฐ๊ตฌ์๋ ์ด ํ์ผ์ ์ด๊ณ ๋ชจํธํจ ์์ด ํฌํจ๋ ๋ฐ์ดํฐ์ ์ ํํ ํน์ฑ์ ์ ์ ์์ต๋๋ค. ์ด์ ๋ฐ์ดํฐ๋ ์ค์ ๋ก ์ํธ ์ด์ฉ ๊ฐ๋ฅํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๋ ํฐ ๊ทธ๋ฆผ: ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ฌธํ ์กฐ์ฑ
ํ์ ์์ ์ฑ์ ์ฑํํ๋ ๊ฒ์ ๋จ์ํ ๊ธฐ์ ์ ์ ํ ๊ทธ ์ด์์ ๋๋ค. ์ด๋ ์๊ฒฉํจ๊ณผ ํ์ ์ผ๋ก์ ๋ฌธํ์ ๋ณํ์ ๋๋ค.
ํ์ ์ ์ํ ๊ณตํต ์ธ์ด๋ก์์ ํ์ ์์ ์ฑ
๊ตญ์ ์ฐ๊ตฌ ๊ทธ๋ฃน์ด ๊ฒฐํฉ ๋ชจ๋ธ ๋น๊ต ํ๋ก์ ํธ(CMIP)์ ๊ฐ์ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ํ๋ ฅํ ๋ ๋ช ํํ๊ฒ ์ ์๋ ํ์ ์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ์ธํฐํ์ด์ค๊ฐ ํ์์ ์ ๋๋ค. ์๋ก ๋ค๋ฅธ ํ๊ณผ ๋ชจ๋ธ ๊ฐ์ ๊ณ์ฝ ์ญํ ์ ํ๋ฉฐ ๋ค์ํ ๋ฐ์ดํฐ ์ธํธ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ํตํฉํ ๋ ๋ฐ์ํ๋ ๋ง์ฐฐ๊ณผ ์ค๋ฅ๋ฅผ ๋ํญ ์ค์ ๋๋ค. ๋ช ์์ ์ ํ์ด ์๋ ์ฝ๋๋ ์์ฒด์ ์ผ๋ก ์ต๊ณ ์ ๋ฌธ์ ์ญํ ์ ํ๋ฉฐ ์ธ์ด ์ฅ๋ฒฝ์ ์ด์ํฉ๋๋ค.
์จ๋ณด๋ฉ ๊ฐ์ํ ๋ฐ "๋ถ์กฑ ์ง์" ๊ฐ์
์ด๋ค ์ฐ๊ตฌ์ค์์๋ ์ข ์ข "๋ถ์กฑ ์ง์"(ํน์ ๋ฐ์ดํฐ ์ธํธ๊ฐ ๊ตฌ์กฐํ๋ ๋ฐฉ์์ด๋ ํน์ ์คํฌ๋ฆฝํธ๊ฐ ํ๋๊ทธ ๊ฐ์ผ๋ก `-999`๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํ ์์์ ์ดํด)์ด ์์ต๋๋ค. ์ด๋ก ์ธํด ์ ์ ์๊ณผ ์ฐ๊ตฌ์์ด ์์ฐ์ฑ์ ๋์ด๋ ๊ฒ์ด ์์ฒญ๋๊ฒ ์ด๋ ค์์ง๋๋ค. ๋ช ์์ ์ ํ์ด ์๋ ์ฝ๋๋ฒ ์ด์ค๋ ์ด ์ง์์ ์ฝ๋์ ์ง์ ์บก์ฒํ์ฌ ์ ๊ท ์ด๋ฏผ์๋ค์ด ๋ฐ์ดํฐ ํ๋ฆ ๋ฐ ๊ฐ์ ์ ๋ ์ฝ๊ฒ ์ดํดํ๊ณ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํด์์ ๋ํ ์ ์ ์ง์์ ์์กด๋๋ฅผ ์ค์ ๋๋ค.
์ ๋ขฐํ ์ ์๊ณ ์ฌํ ๊ฐ๋ฅํ ๊ณผํ ๊ตฌ์ถ
์ด๊ฒ์ด ๊ถ๊ทน์ ์ธ ๋ชฉํ์ ๋๋ค. ๊ณผํ์ ๊ณผ์ ์ ์ ๋ขฐ์ ์ฌํ์ฑ์ ๊ธฐ๋ฐํฉ๋๋ค. ๊ด๋ฒ์ํ ์ ์ฌ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฒ๊ทธ ๋ฒ์ฃผ๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ํ์ ์์ ์ฑ์ ๋ถ์์ ๋์ฑ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ค๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋์ฑ ์ ๋ขฐํ ์ ์๊ฒ ํฉ๋๋ค. ์ฝ๋ ์์ฒด๊ฐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์ฉํ ๋, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์์ ์ป์ ๊ณผํ์ ๊ฒฐ๋ก ์ ๋ํด ๋ ๋์ ํ์ ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด๋ ๋ง์ ๊ณผํ ๋ถ์ผ์์ ์ง๋ฉดํ ์ฌํ์ฑ ์๊ธฐ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ค์ํ ๋จ๊ณ์ ๋๋ค.
๊ฒฐ๋ก : ํด์ ๋ฐ์ดํฐ๋ฅผ ์ํ ๋ ์์ ํ ๊ณผ์ ๊ณํ
ํด์ํ์ ๋น ๋ฐ์ดํฐ ์๋๋ก ํ๊ณ ํ ์ง์ ํ์ต๋๋ค. ๋ณํํ๋ ์ง๊ตฌ์ ๋ํ ์ด ๋ฐ์ดํฐ๋ฅผ ์ดํดํ๊ณ ์คํ ๊ฐ๋ฅํ ์ง์์ผ๋ก ๋ฐ๊พธ๋ ๋ฅ๋ ฅ์ ์ ์ ์ผ๋ก ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ฌ๋ ค ์์ต๋๋ค. ๋ชจํธํ๊ณ ๋ถ์์ ํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์จ๊ฒจ์ง ๋น์ฉ์ ๋ ์ด์ ๊ฐ๋นํ ์ ์์ต๋๋ค.
ํ์ ์์ ์ฑ์ ๊ด๋ฃ์ ์ธ ์ค๋ฒํค๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ฐ๊ตฌ ์๋๋ฅผ ๋ฆ์ถ๋ ๊ฒ์ด ์๋๋๋ค. ๋์ค์ ๋ฐ์ํ๋ ์น๋ช ์ ์ด๊ณ ๋น์ฉ์ด ๋ง์ด ๋๋ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ๋ฐ์ฑ์ ๋ ธ๋ ฅ์ ์๋น๊ธฐ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ฝ๋๋ฅผ ๊นจ์ง๊ธฐ ์ฌ์ด ์ผ๋ จ์ ์ง์นจ์์ ๊ณผํ์ ๋ฐ๊ฒฌ์ ์ํ ๊ฐ๋ ฅํ๊ณ ์์ฒด ๋ฌธ์ํ๋ ์์คํ ์ผ๋ก ๋ณํํ๋ ์ ๋ฌธ ๋ถ์ผ์ ๋๋ค.
์์ผ๋ก ๋์๊ฐ๋ ค๋ฉด ๊ฐ์ธ, ์ฐ๊ตฌ์ค ๋ฐ ๊ธฐ๊ด์ ์์์ ์ธ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค.
- ๊ฐ๋ณ ์ฐ๊ตฌ์์ ๊ฒฝ์ฐ: ์ค๋ ์์ํ์ธ์. ํ์ด์ฌ์์ ํ์ ํํธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ญ์์ค. Pydantic๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์์๋ณด๊ณ ์ฌ์ฉํ์ญ์์ค. ๊ฐ์ ์ ๋ช ์์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด ํจ์์ ์ฃผ์์ ์ถ๊ฐํฉ๋๋ค.
- ์ฐ๊ตฌ์ค ๋ฐ PI์ ๊ฒฝ์ฐ: ์ํํธ์จ์ด ์์ง๋์ด๋ง ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ๊ณผํ์ ํ๊ตฌ์ ํจ๊ป ๊ฐ์น ์๊ฒ ์ฌ๊ฒจ์ง๋ ๋ฌธํ๋ฅผ ์กฐ์ฑํ์ญ์์ค. ๋ฒ์ ๊ด๋ฆฌ, ์ฝ๋ ๊ฒํ ๋ฐ ํ์คํ๋ ํ์ ์ธ์ ๋ฐ์ดํฐ ํ์์ ์ฌ์ฉ์ ์ฅ๋ คํ์ญ์์ค.
- ๊ธฐ๊ด ๋ฐ ์๊ธ ์ง์ ๊ธฐ๊ด์ ๊ฒฝ์ฐ: ๊ณผํ ์ปดํจํ ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊ต์ก์ ์ง์ํ์ญ์์ค. ๊ณต๊ณต ์๊ธ์ผ๋ก ์ง์๋๋ ์ฐ๊ตฌ๋ฅผ ์ํด FAIR ๋ฐ์ดํฐ ์์น๊ณผ NetCDF์ ๊ฐ์ ์์ฒด ์ค๋ช ํ์์ ์ฌ์ฉ์ ์ฐ์ ์ํ๊ณ ์๋ฌดํํฉ๋๋ค.
ํ์ ์์ ์ฑ ์์น์ ์์ฉํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ ๋ ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ 21์ธ๊ธฐ ํด์ํ์ ์ํ ๋์ฑ ์ ๋ขฐํ ์ ์๊ณ ํฌ๋ช ํ๋ฉฐ ํ์ ์ ์ธ ๊ธฐ๋ฐ์ ๊ตฌ์ถํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฐ๋ค์ ๋์งํธ ๋ฐ์์ด ๊ฐ๋ฅํ ํ ์ ํํ๊ณ ์ ๋ขฐํ ์ ์๋๋ก ํ์ฌ ์์ผ๋ก ๋ฅ์น ๋์ ์ ํตํด ๋ ์์ ํ๊ณ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ ๊ณผ์ ์ ๊ณํํ ์ ์๋๋ก ๋ณด์ฅํ๊ณ ์์ต๋๋ค.