์ด๊ฒ์ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ v0.7.0.tar.gz๋ก ๋ค์ด๋ก๋ํ ์ ์๋ jscodeshift๋ผ๋ Linux ์ฑ์ ๋๋ค. ์ํฌ์คํ ์ด์ ์ฉ ๋ฌด๋ฃ ํธ์คํ ์ ๊ณต์ ์ฒด์ธ OnWorks์์ ์จ๋ผ์ธ์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
OnWorks๊ฐ ํฌํจ๋ jscodeshift๋ผ๋ ์ฑ์ ๋ฌด๋ฃ๋ก ์จ๋ผ์ธ์ผ๋ก ๋ค์ด๋ก๋ํ์ฌ ์คํํด ๋ณด์ธ์.
์ด ์ฑ์ ์คํํ๋ ค๋ฉด ๋ค์ ์ง์นจ์ ๋ฐ๋ฅด์ธ์.
- 1. ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ PC์ ๋ค์ด๋ก๋ํ์ต๋๋ค.
- 2. ํ์ผ ๊ด๋ฆฌ์ https://www.onworks.net/myfiles.php?username=XXXXX์ ์ํ๋ ์ฌ์ฉ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- 3. ์ด๋ฌํ ํ์ผ ๊ด๋ฆฌ์์์ ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๋ก๋ํฉ๋๋ค.
- 4. ์ด ์น์ฌ์ดํธ์์ OnWorks Linux ์จ๋ผ์ธ ๋๋ Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MACOS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์์ํฉ๋๋ค.
- 5. ๋ฐฉ๊ธ ์์ํ OnWorks Linux OS์์ ์ํ๋ ์ฌ์ฉ์ ์ด๋ฆ์ผ๋ก ํ์ผ ๊ด๋ฆฌ์ https://www.onworks.net/myfiles.php?username=XXXXX๋ก ์ด๋ํฉ๋๋ค.
- 6. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํ๊ณ ์คํํฉ๋๋ค.
์คํฌ๋ฆฐ ์ท
Ad
jscodeshift
๊ธฐ์
jscodeshift๋ ์ฌ๋ฌ JavaScript ๋๋ TypeScript ํ์ผ์ ๋ํด codemod๋ฅผ ์คํํ๊ธฐ ์ํ ํดํท์ ๋๋ค. ์ ๋ฌ๋ ๊ฐ ํ์ผ์ ๋ํด ์ ๊ณต๋ ๋ณํ์ ์คํํ๋ ์คํ๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ๋ณํ๋(์๋) ํ์ผ ์์ ๋ํ ์์ฝ๋ ์ถ๋ ฅํฉ๋๋ค. ๋ค๋ฅธ API๋ฅผ ์ ๊ณตํ๋ ์ฌ์บ์คํธ ๋ํผ์ ๋๋ค. Recast๋ AST์์ AST๋ก์ ๋ณํ ๋๊ตฌ์ด๋ฉฐ ์๋ณธ ์ฝ๋์ ์คํ์ผ์ ์ต๋ํ ์ ์งํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ด๋ฏธ ์ธ๊ธํ๋ฏ์ด jscodeshift๋ ์ฌ์บ์คํธ์ ๋ํ ๋ํผ๋ ์ ๊ณตํฉ๋๋ค. jscodeshift API๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ค๋ฉด recast(๋ฐ AST)์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ ์ดํดํด์ผ ํฉ๋๋ค. AST ๋ ธ๋๋ Mozilla Parser API์ ๋ฐ๋ฅธ ํน์ ํ๋ ์งํฉ์ด ์๋ ์ผ๋ฐ JavaScript ๊ฐ์ฒด์ ๋๋ค. ๋ ธ๋๋ฅผ ์๋ณํ๋ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ํด๋น ์ ํ์ ์ด์ฉํ๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ AST ๋ ธ๋ ์ ํ์ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋ ๊ด์ฐฎ์ต๋๋ค. (esprima) AST ํ์๊ธฐ๋ ํน์ JS ์ฝ๋ ์กฐ๊ฐ์ ๋ํด AST๋ฅผ ๊ฒ์ฌํ๋ ์จ๋ผ์ธ ๋๊ตฌ์ ๋๋ค.
ํน์ง
- npm์์ jscodeshift ๊ฐ์ ธ์ค๊ธฐ
- CLI๋ ๋ค์ํ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
- ๋ณํ์ ๋จ์ํ ๋ค์ ํ์์ ํจ์๋ฅผ ๋ด๋ณด๋ด๋ ๋ชจ๋์ ๋๋ค.
- ํ์ฌ ์ฒ๋ฆฌ๋ ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด์ ํฉ๋๋ค.
- ์ด ๊ฐ์ฒด๋ jscodeshift ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์คํ๊ธฐ์ ๋์ฐ๋ฏธ ํจ์๋ฅผ ๋ ธ์ถํฉ๋๋ค.
- ์ด API๋ ํธ์์ ๋ ธ์ถ๋์ด ์์ง๋ง ๊ผญ ์ฌ์ฉํ ํ์๋ ์์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
์๋ฐ ์คํฌ๋ฆฝํธ
์ด๋ https://sourceforge.net/projects/jscodeshift.mirror/์์๋ ๊ฐ์ ธ์ฌ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ๋ฌด๋ฃ ์ด์ ์์คํ ์ค ํ๋์์ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์จ๋ผ์ธ์ผ๋ก ์คํํ๊ธฐ ์ํด OnWorks์์ ํธ์คํ ๋์์ต๋๋ค.