1. ์ด ๋๊ตฌ๋ ๋ฌด์์ ํ๋์
์ด ๋ฌด๋ฃ ์จ๋ผ์ธ ์ ๊ท์ ์ ๋ฆฌ๊ธฐ๋ ์ ๊ท์์ผ๋ก ํ ์คํธ๋ฅผ ์ ๋ฆฌยท๋ณํํฉ๋๋ค. ๋งค์นญ ์ ๊ฑฐ ๋๋ ์นํ, ํจํด ํ๋ ๋๋ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฐ์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ ๊ท์ ์นํ, ํ ์คํธ ์ ๋ฆฌ, ์ ๊ท์ ์ผ๊ด ์ฐพ๊ธฐยท๋ฐ๊พธ๊ธฐ๋ก ์ฌ์ฉํ์ธ์. ๊ฐ์ ยท์ ๋ก๋ ๋ถํ์, ๋ชจ๋ ์์ ์ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฃจ์ด์ง๋๋ค. ํ ํจํด์ ์ถ๋ ฅ์ด ๋ค์ ์ ๋ ฅ์ด ๋๋๋ก ์ฐ์ํ ์ ์์ต๋๋ค. ์๋ชป๋ ์ ๊ท์์ ์ธ๋ผ์ธ ์ค๋ฅ๋ก ํ์๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ ๋ฆฌ, ๋ฌธ์ ์ ๊ฑฐ, ์ ๊ทํ, ๋งํฌ์ ์ ๊ฑฐ, CSV ์ ๋ฆฌ์ ์ ํฉํฉ๋๋ค.
2. ์ฌ์ฉ ๋ฐฉ๋ฒ
๋น ๋ฅธ ์์: ํ
์คํธ๋ฅผ ๋ถ์ฌ๋ฃ๊ณ ํจํด(์: \s+ ๊ณต๋ฐฑ)์ ์ถ๊ฐํ ๋ค ์นํ์ ๋น์ฐ๋ฉด ์ ๊ฑฐ, ์นํ ํ
์คํธ๋ฅผ ๋ฃ์ผ๋ฉด ์นํํ๊ณ ํ๋๊ทธ๋ฅผ ์ค์ ํ ํ ์ ์ฉํ์ธ์. ํจํด์ ๋ ์ถ๊ฐํด ์ฐ์ํ ์ ์์ต๋๋ค. ์๋ชป๋ ํจํด์ ํด๋น ๊ท์น ์๋์ ์ค๋ฅ๋ก ํ์๋ฉ๋๋ค.
- ํ ์คํธ ์ ๋ ฅ โ ์ฒ๋ฆฌํ ํ ์คํธ ๋ถ์ฌ๋ฃ๊ธฐ ๋๋ ์ ๋ ฅ.
- ํจํด ์ถ๊ฐ โ ์ ๊ท์ ์
๋ ฅ(์:
\d+์ซ์,\s+๊ณต๋ฐฑ). "ํจํด ์ถ๊ฐ"๋ก ์ฌ๋ฌ ๊ท์น ์ฐ์. - ์นํ(์ ํ) โ ๋น์ฐ๋ฉด ๋งค์นญ ์ ๊ฑฐ, ๊ฐ ํจํด์ ์นํ ํ ์คํธ ์ ๋ ฅ.
- ํ๋๊ทธ ์ค์ โ ์ ์ญ(g), ๋์๋ฌธ์ ๋ฌด์(i) ๋ฑ. ๋ชจ๋ ํจํด์ ๊ณตํต.
- ์ ์ฉ โ ํด๋ฆญํด ์คํ(๋๋ ์ค์๊ฐ ๋ชจ๋). ๊ฒฐ๊ณผ๊ฐ ํ์๋๋ฉฐ ์๋ชป๋ ํจํด์ ์คํจํ ๊ท์น ์๋์ ์ค๋ฅ๋ก ํ์๋ฉ๋๋ค.
3. ์๋ ๋ฐฉ์
๊ฐ ํจํด์ ์ฌ์ฉ ์ new RegExp()๋ก ๊ฒ์ฆ๋ฉ๋๋ค. ํจํด์ ์์ฐจ ์ ์ฉ๋ฉ๋๋ค. ๊ท์น N์ ์ถ๋ ฅ์ด ๊ท์น N+1์ ์
๋ ฅ์ด ๋ฉ๋๋ค. ํจํด์ด ์๋ชป๋๋ฉด ์ฐ์๊ฐ ์ค๋จ๋๊ณ ๋ถ๋ถ ์ถ๋ ฅ๊ณผ ํจ๊ป ์คํจํ ๊ท์น ์๋์ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค. ์ ์ญ(g) ํ๋๊ทธ๊ฐ ๊ธฐ๋ณธ์ด๋ผ ๊ท์น๋น ํ ๋ฒ์ ๋ชจ๋ ๋งค์นญ์ด ์นํ๋ฉ๋๋ค. ๋ชจ๋ ์ฒ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ์์ ํด๋ผ์ด์ธํธ ์ธก์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ ์๋ฒ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋์ง ์์ต๋๋ค.
4. ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์์
- ๋ฐ์ดํฐ ์ ๋ฆฌ โ ์ฌ๋ถ ๊ณต๋ฐฑยท์ค๋ฐ๊ฟยทํน์๋ฌธ์ ์ ๊ฑฐ.
- ์ถ์ถ โ ์บก์ฒ ๊ทธ๋ฃน์ผ๋ก ์ถ์ถยท์นํ(์: ๋ ์ง ํ์ ๋ณ๊ฒฝ).
- ์ ๊ทํ โ ๋ณํ ์นํ(์: ์ฐ์ ๊ณต๋ฐฑ โ ๊ณต๋ฐฑ ํ๋).
- ๋งํฌ์ ์ ๊ฑฐ โ HTML ํ๊ทธ ๋ฑ ๋งํฌ์ ์ ๊ฑฐ.
- CSV ์ ๋ฆฌ โ ๊ตฌ๋ถ์ยท์ด์ค์ผ์ดํ ์์ .
์์
- ํจํด
\s+, ์นํโ ์ฐ์ ๊ณต๋ฐฑ์ ํ๋๋ก. - ํจํด
\d{3}-\d{3}-\d{4}, ์นํ[REDACTED]โ ์ ํ๋ฒํธ ์จ๊น. - ํจํด
[^\w\s], ์นํ ๋น์ โ ๋ชจ๋ ๊ตฌ๋์ ์ ๊ฑฐ.
5. ์ ํ ์ฌํญ ๋ฐ ์๋ ค์ง ์ ์ฝ
- ํจํด ๋จผ์ ๊ฒ์ฆ โ ์๋ชป๋ ์ ๊ท์์ ์ค๋ฅ๋ก ํ์๋๋ฉฐ ์นํ์ ์๋ํ์ง ์์ต๋๋ค.
- ReDoS โ ๋งค์ฐ ๋ณต์กํ ํจํด์ ์คํ์ด ๋๋ ค์ง ์ ์์ผ๋ฏ๋ก catastrophic backtracking์ ํผํ์ธ์.
- ์์ฐจ ์ฐ์ โ ์ฌ๋ฌ ํจํด์ ์์๋๋ก ์ ์ฉ๋๋ฉฐ ๊ฐ ๊ท์น์ ์ด์ ๊ท์น์ ์ถ๋ ฅ์ ์ฒ๋ฆฌํฉ๋๋ค.
- JavaScript ์ ๊ท์ โ JS ์ ๊ท์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ฉฐ PCRE ์ผ๋ถ ๊ธฐ๋ฅ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค.