New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. ๊ธ์ ์ ์น๊ตฌ์๊ฒ ๋น๋ ธ๋๋ฐ ์ค๋์ด ๋์ ์ฃผ๊ธฐ๋ก ํ๋ .. ๊ทธ๋ฐ๋ฐ ์นด๋๊ฐ์ ๋ด์ผํ๋ ๋ ๋ ์ค๋์ธ๋ฐ... ์ด๊ฑธ ์ด์ฉ๋...
4. ์ฐ๋ฆฌ ํ์ฌ๋ ์ค์ํ ์์ฌ ๊ฒฐ์ ์ ํ ๋?
5. ์ด์ฌํ ์ผํ ๋๋ฅผ ์ํ ์ ๋ฌผ์ ์ฃผ๊ณ ์ถ๋ค. ์ด๋ค๊ฒ ์ข์๊น?
6. ์ํ์์ ํฌ์์ํ์ ์ถ์ฒ๋ฐ์๋ค. ์ด๋ค๊ฑธ ๊ฐ์ ํ์ง?
7. ํ์ฌ์์์ ๋๋?
8. ๊ฟ์์ ๊นจ์ด๋๋ 20๋ ์ ์ผ๋ก ๋์๊ฐ๋ค. ๋น์ ์ด ์ ์ผ ๋จผ์ ํ๋์ผ์?
9. ๋ด๊ฐ ์ธ์ฌ ๋ด๋น์๋ผ๋ฉด ์ ๊ท ์ ์ฌ์ ์ฑ์ฉ ์ ์ ์ผ ์ค์ํ๊ฒ ๋ณด๋๊ฒ์?
10. ํ์ฌ์ ์ ๋ง ์ซ์ดํ๋ ๋๋ฃ๊ฐ ์๋ค๋ฉด?
11. ๊ฐ๋ํ ์ง์ ๊ฐ์ฅ์ด ๋์๋ค.. ์๋ ์ ์์ผ ๋ ์ ๋ฌผ์?
12. ํ์ ํ์ฌ ์ถ๊ทผ ์คํ์ผ์?
13.ํ์ฌ ์ฒด์ก๋ํ ํ๋ ๋ ์ด๋ค. ์ค๋ ๋ญํ์ง?
14. ๋์ ์ ๋ฌด ์คํ์ผ์?
What is Gradle?
Gradle์ ๊ฑฐ์ ๋ชจ๋ ์ ํ์ ์ํํธ์จ์ด๋ฅผ ๋น๋ํ ์ ์์ ๋งํผ ์ ์ฐํ ์คํ ์์ค ๋น๋ ์๋ํ ๋๊ตฌ์ ๋๋ค. Gradle์ ๋น๋ํ๋ ค๋ ํญ๋ชฉ์ด๋ ๋น๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ฑฐ์ ๊ฐ์ ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ Gradle์ ํนํ ์ ์ฐํฉ๋๋ค.
Design
Gradle์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์ฌํญ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณํฉ๋๋ค.
High performance
Gradle์ ์ ๋ ฅ ๋๋ ์ถ๋ ฅ์ด ๋ณ๊ฒฝ๋์ด ์์ ์ ์ํํด์ผ ํ๋ ์์ ๋ง ์คํํ์ฌ ๋ถํ์ํ ์์ ์ ๋ฐฉ์งํฉ๋๋ค. Gradle์ ๋ค์ํ ์บ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ๋น๋์ ์ถ๋ ฅ์ ์ฌ์ฌ์ฉํฉ๋๋ค. ๊ณต์ ๋น๋ ์บ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์ปดํจํฐ์ ์ถ๋ ฅ์ ์ฌ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
JVM foundation
Gradle์ JVM์์ ์คํ๋ฉ๋๋ค. ๋น๋ ๋ก์ง์ ํ์ค Java API๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก Java์ ์ต์ํ ์ฌ์ฉ์์๊ฒ๋ ๋ณด๋์ค์ ๋๋ค. ๋ํ ๋ค์ํ ํ๋ซํผ์์ Gradle์ ์ฝ๊ฒ ์คํํ ์ ์์ต๋๋ค.
Conventions
Gradle์ ๊ท์น์ ํตํด ์ผ๋ฐ์ ์ธ ์ ํ์ ํ๋ก์ ํธ๋ฅผ ์ฝ๊ฒ ๋น๋ํ ์ ์๋๋ก ํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ต์ํ์ผ๋ก ์ ์งํ๊ธฐ ์ํด ํฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๊ท์น์ ์ค์ ์ ๊ตฌ์ฑํ๊ณ , ๊ณ ์ ํ ์์ ์ ์ถ๊ฐํ๊ณ , ๋น๋์์ ๋ค๋ฅธ ๋ง์ ์ฌ์ฉ์ ์ง์ ์ ์ํํ ์ ์์ต๋๋ค.
Extensibility
๋๋ถ๋ถ์ ๋น๋์๋ ์ฌ์ฉ์ ์ง์ ๋น๋ ๋ ผ๋ฆฌ๊ฐ ํ์ํ ํน๋ณํ ์๊ตฌ ์ฌํญ์ด ์์ต๋๋ค. Gradle์ ์ฝ๊ฒ ํ์ฅํ์ฌ ๋ง์ถค ์์ ๋ฐ ํ๋ฌ๊ทธ์ธ์ด ํฌํจ๋ ์์ฒด ๋น๋ ๋ก์ง์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Android ๋น๋๋ฅผ ์ฐธ์กฐํ์ญ์์ค : ๋ฒ์ ๋ฐ ๋น๋ ์ ํ๊ณผ ๊ฐ์ ๋ง์ ์๋ก์ด ๋น๋ ๊ฐ๋ ์ ์ถ๊ฐํฉ๋๋ค.
IDE support
๋ช๋ช ์ฃผ์ IDE๋ Android Studio, IntelliJ IDEA, Eclipse, VSCode ๋ฐ NetBeans๋ฅผ ํฌํจํ Gradle ๋น๋์์ ์ํธ ์์ฉ์ ์ ๊ณตํฉ๋๋ค. Gradle์ ํ๋ก์ ํธ๋ฅผ Visual Studio๋ก ๋ก๋ํ๋ ๋ฐ ํ์ํ ์๋ฃจ์ ํ์ผ์ ์์ฑํ ์๋ ์์ต๋๋ค.
Insight
๋น๋ ๊ฒ์™์ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋น๋์ ๋ํ ๊ด๋ฒ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋น๋ ์ค์บ์ ์ฌ์ฉํ์ฌ ๋น๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ๋๋ฒ๊น ๋์๋ง์ ์ํด ๊ณต์ ํ ์๋ ์์ต๋๋ค.
Terminology
Gradle์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ ์ ์ ๋ค์ ์ฉ์ด๋ฅผ ์์๋๋ฉด ๋์์ด ๋ฉ๋๋ค.
Projects
ํ๋ก์ ํธ๋ Gradle์ด ๋น๋ํ๋ ๊ฒ์ ๋๋ค. ํ๋ก์ ํธ์๋ ์ผ๋ฐ์ ์ผ๋ก build.gradle ๋๋ build.gradle.kts๋ผ๋ ํ๋ก์ ํธ์ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์ ์๋ ํ์ผ์ธ ๋น๋ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋น๋ ์คํฌ๋ฆฝํธ๋ ํด๋น ํ๋ก์ ํธ์ ๋ํ ์์ , ์ข ์์ฑ, ํ๋ฌ๊ทธ์ธ ๋ฐ ๊ธฐํ ๊ตฌ์ฑ์ ์ ์ํฉ๋๋ค. ๋จ์ผ ๋น๋์๋ ํ๋ ์ด์์ ํ๋ก์ ํธ๊ฐ ํฌํจ๋ ์ ์์ผ๋ฉฐ ๊ฐ ํ๋ก์ ํธ์๋ ์์ฒด ํ์ ํ๋ก์ ํธ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
Tasks
์์ ์๋ ์ฝ๋ ์ปดํ์ผ, ํ ์คํธ ์คํ ๋๋ ์ํํธ์จ์ด ๋ฐฐํฌ์ ๊ฐ์ ์ผ๋ถ ์์ ์ ์คํํ๊ธฐ ์ํ ๋ ผ๋ฆฌ๊ฐ ํฌํจ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๊ธฐ์กด ์์ ์ ์ฌ์ฉํฉ๋๋ค. Gradle์ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ ๊ธฐ๋ณธ ์ ๊ณต Java ํ ์คํธ ์์ ๊ณผ ๊ฐ์ด ๋ง์ ์ผ๋ฐ์ ์ธ ๋น๋ ์์คํ ์๊ตฌ์ฌํญ์ ๊ตฌํํ๋ ์์ ์ ์ ๊ณตํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๋ ๋ง์ ์ ํ์ ์์ ์ ์ ๊ณตํฉ๋๋ค.
์์ ์์ฒด๋ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Actions: ํ์ผ ๋ณต์ฌ ๋๋ ์์ค ์ปดํ์ผ๊ณผ ๊ฐ์ ์์ ์ ์ํํ๋ ์์ ๋ถ๋ถ
- Inputs: ์์ ์ด ์ฌ์ฉํ๊ฑฐ๋ ์๋ํ๋ ๊ฐ, ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ
- Outputs: ์์ ์ด ์์ ํ๊ฑฐ๋ ์์ฑํ๋ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ
Plugins
ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ์์ , ํ์ผ ๋ฐ ์ข ์์ฑ ๊ตฌ์ฑ์ ๋์ด ๋น๋์ ์๋ก์ด ๊ฐ๋ ์ ๋์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋๋ถ๋ถ์ ์ธ์ด ํ๋ฌ๊ทธ์ธ์ ๋น๋์ ์์ค ์งํฉ์ ๊ฐ๋ ์ ์ถ๊ฐํฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ์ ์ฌ๋ฌ ํ๋ก์ ํธ์์ ๋ก์ง๊ณผ ๊ตฌ์ฑ์ ์ฌ์ฌ์ฉํ๋ ์๋จ์ ์ ๊ณตํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ์์ ์ ํ ๋ฒ ์์ฑํ๊ณ ์ฌ๋ฌ ๋น๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ ๋ก๊น , ์ข ์์ฑ ๋ฐ ๋ฒ์ ๊ด๋ฆฌ์ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ์ ํ ๊ณณ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋น๋ ์คํฌ๋ฆฝํธ์ ์ค๋ณต์ด ์ค์ด๋ญ๋๋ค. ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ ํ๊ฒ ๋ชจ๋ธ๋งํ๋ฉด ์ฌ์ฉ ํธ์์ฑ๊ณผ ํจ์จ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
Build Phases
Gradle์ ๋น๋ ์๋ช ์ฃผ๊ธฐ์ ์ธ ๊ฐ์ง ๋น๋ ๋จ๊ณ์์ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ํ๊ฐํ๊ณ ์คํํฉ๋๋ค.
Initialization
๋น๋์ ๋ํ ํ๊ฒฝ์ ์ค์ ํ๊ณ ๋น๋์ ์ฐธ์ฌํ ํ๋ก์ ํธ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
Configuration
๋น๋์ ๋ํ ์์ ๊ทธ๋ํ๋ฅผ ์์ฑํ๊ณ ๊ตฌ์ฑํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์คํํ๋ ค๋ ์์ ์ ๋ฐ๋ผ ์คํํด์ผ ํ๋ ์์ ๊ณผ ์์๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
Execution
๊ตฌ์ฑ ๋จ๊ณ๊ฐ ๋๋ ๋ ์ ํํ ์์ ์ ์คํํฉ๋๋ค.
Builds
๋น๋๋ Gradle ํ๋ก์ ํธ์์ ์์ ๋ชจ์์ ์คํํ๋ ๊ฒ์ ๋๋ค. ๋ช ๋ น์ค ์ธํฐํ์ด์ค(CLI) ๋๋ IDE๋ฅผ ํตํด ์์ ์ ํ๊ธฐ๋ฅผ ์ง์ ํ์ฌ ๋น๋๋ฅผ ์คํํฉ๋๋ค. Gradle์ ๋น๋๋ฅผ ๊ตฌ์ฑํ๊ณ ์คํํ ์์ ์ ์ ํํฉ๋๋ค. Gradle์ ์์ฒญ๋ ์์ ๊ณผ ์ข ์ ํญ๋ชฉ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฅ ์์ ์ ์ฒด ์์ ์งํฉ์ ์คํํฉ๋๋ค.