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. ๋์ ์ ๋ฌด ์คํ์ผ์?
Gradle์ ์ฌ์ฉํ์ฌ ํน์ ํฌ๊ธฐ์ ์ํํธ์จ์ด๋ฅผ ๋น๋ํ๋ ๊ฒฝ์ฐ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ๊ตฌ์กฐํ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค. ๋จผ์ ์ด ์ฅ์์๋ Gradle ๋ค์ค ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ์ด ์ค๋ช ์์์๋ ์ด๋ฅผ ๋ด๋ถ์ ์ผ๋ก ๊ตฌ์กฐํ๋ ๋จ์ผ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์๋ก ๊ฐ์ฃผํฉ๋๋ค. ๋์งธ, ์ํํธ์จ์ด๋ฅผ ์ฌ๋ฌ ์ํํธ์จ์ด ๊ตฌ์ฑ์์๋ก ๊ตฌ์ฑ๋ ์ํํธ์จ์ด ์ ํ์ผ๋ก ๊ฐ์ฃผํ ์ ์์ผ๋ฉฐ, ๊ฐ ๊ตฌ์ฑ์์๋ ๋ณ๋์ Gradle ๋น๋๋ก ํ์๋ฉ๋๋ค. ์ด์ ๋ํด์๋ Gradle์ ์ฌ์ฉํ ์ํํธ์จ์ด ์ ํ ๊ตฌ์กฐํ ์ฅ ์ ์์ธํ ์ค๋ช ๋์ด ์์ต๋๋ค.
Creating a multi-project build
Gradle์ ๋ค์ค ํ๋ก์ ํธ ๋น๋๋ ํ๋์ ๋ฃจํธ ํ๋ก์ ํธ์ ํ๋ ์ด์์ ํ์ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๊ธฐ๋ณธ ๋ค์ค ํ๋ก์ ํธ ๋น๋์๋ ๋ฃจํธ ํ๋ก์ ํธ์ ๋จ์ผ ํ์ ํ๋ก์ ํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด๊ฒ์ app์ด๋ผ๋ ๋จ์ผ ํ์ ํ๋ก์ ํธ๋ฅผ ํฌํจํ๋ ๋ค์ค ํ๋ก์ ํธ ๋น๋์ ๊ตฌ์กฐ์ ๋๋ค.
Example 1. Basic multi-project build
.
โโโ app
โ ...
โ โโโ build.gradle.kts
โโโ settings.gradle.kts
Gradle ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๋ฐ ๊ถ์ฅ๋๋ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋๋ค. build init ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ด ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ ์ค์ผ๋ ํค ํ๋ก์ ํธ(๋จ์ผ ํ์ ํ๋ก์ ํธ๊ฐ ์๋ ๋ฃจํธ ํ๋ก์ ํธ)๋ฅผ ์์ฑํฉ๋๋ค.
๋ฃจํธ ํ๋ก์ ํธ์๋ Gradle ๋น๋ ํ์ผ์ด ์์ผ๋ฉฐ ํฌํจํ ํ์ ํ๋ก์ ํธ๋ฅผ ์ ์ํ๋ ์ค์ ํ์ผ๋ง ์์ต๋๋ค.
settings.gradle.kts
rootProject.name = "basic-multiproject"
include("app")
์ด ๊ฒฝ์ฐ Gradle์ ์ฑ ๋๋ ํฐ๋ฆฌ์์ ๋น๋ ํ์ผ์ ์ฐพ์ต๋๋ค.
gradle projects ๋ช ๋ น์ ์คํํ์ฌ ๋ค์ค ํ๋ก์ ํธ ๋น๋์ ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
> gradle -q projects
------------------------------------------------------------
Root project 'basic-multiproject'
------------------------------------------------------------
Root project 'basic-multiproject'
\--- Project ':app'
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :app:tasks
app ํ์ ํ๋ก์ ํธ๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ ํ๋ฌ๊ทธ์ธ์ ์ ์ฉ ํ๊ณ ๊ธฐ๋ณธ ํด๋์ค๋ฅผ ๊ตฌ์ฑํ์ฌ Java ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
app/build.gradle.kts
plugins {
id("application")
}
application {
mainClass.set("com.example.Hello")
}
app/src/main/java/com/example/Hello.java
package com.example;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
๊ทธ๋ฐ ๋ค์ ์์ฉ ํ๋ก๊ทธ๋จ ํ๋ฌ๊ทธ์ธ์์ ์คํ ์์ ์ ์คํํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์ต๋๋ค.
> gradle -q run
Hello, world!
์ด๊ฒ์ด ๊ธฐ๋ณธ ๋ค์ค ํ๋ก์ ํธ ๋น๋๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ผ๋ง๋ ๊ฐ๋จํ ์ง์ ๋๋ค.
Adding subprojects
์ด์ ์ ๋ง๋ ํ๋ก์ ํธ์ lib๋ผ๋ ๋ค๋ฅธ ํ์ ํ๋ก์ ํธ๋ฅผ ์ถ๊ฐํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฃจํธ ์ค์ ํ์ผ์ ๋ค๋ฅธ include ๋ฌธ์ ์ถ๊ฐํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค.
settings.gradle.kts
rootProject.name = "basic-multiproject"
include("app")
include("lib")
๊ทธ๋ฐ ๋ค์ Gradle์ ํ๋ก์ ํธ์ lib/ ํ์ ๋๋ ํ ๋ฆฌ์์ ์ ํ์ ํ๋ก์ ํธ์ ๋น๋ ํ์ผ์ ์ฐพ์ต๋๋ค.
Example 2. Multi-project build with two subprojects
.
โโโ app
โ ...
โ โโโ build.gradle.kts
โโโ lib
โ ...
โ โโโ build.gradle.kts
โโโ settings.gradle.kts
๋ค์์ผ๋ก, ํ์ ํ๋ก์ ํธ ๊ฐ์ ๋น๋ ๋ ผ๋ฆฌ ๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ ํ๋ก์ ํธ๊ฐ ์๋ก ์ข ์๋ ์ ์๋ ๋ฐฉ๋ฒ์ ์ดํด๋ด ๋๋ค.
Naming recommendations
ํ๋ก์ ํธ๊ฐ ์ฑ์ฅํจ์ ๋ฐ๋ผ ์ด๋ฆ ์ง์ ๊ณผ ์ผ๊ด์ฑ์ด ์ ์ ๋ ์ค์ํด์ง๊ณ ์์ต๋๋ค. ๋น๋๋ฅผ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ํ๋ก ์ ์งํ๋ ค๋ฉด ๋ค์์ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ํ์ ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ํ๋ก์ ํธ ์ด๋ฆ ์ ์ง: ์ค์ ํ์ผ์์ ์ฌ์ฉ์ ์ง์ ํ๋ก์ ํธ ์ด๋ฆ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฐ์๊ฐ ์ด๋ค ํ๋ก์ ํธ๊ฐ ์ด๋ค ํด๋์ ์ํ๋์ง ์ถ์ ํ๋ ๊ฒ์ ๋ถํ์ํ ์ถ๊ฐ ์์ ์ ๋๋ค.
- ๋ชจ๋ ํ๋ก์ ํธ ์ด๋ฆ์ ์ผ๋ฐฅ ๋์ ๋ฌธ์ ํ์ ์ฌ์ฉ : ์ผ๋ฐฅ ๋์ ๋ฌธ์ ํ์์ ๋ชจ๋ ๋ฌธ์๊ฐ ์๋ฌธ์์ด๊ณ ๋จ์ด๊ฐ ๋์ ( '-') ๋ฌธ์๋ก ๊ตฌ๋ถ ๋ ๊ฒฝ์ฐ์ ๋๋ค (์ : kebab-case-formatting). ์ด๊ฒ์ ์ด๋ฏธ ๋ง์ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ฌ์ค์์ ํจํด์ ๋๋ค. ๊ฒ๋ค๊ฐ Gradle์ ์ผ๋ฐฅ ์ผ์ด์ค ์ด๋ฆ์ ๋ํ ์ด๋ฆ ์ฝ์ด๋ฅผ ์ง์ํฉ๋๋ค.
- ์ค์ ํ์ผ์์ ๋ฃจํธ ํ๋ก์ ํธ ์ด๋ฆ ์ ์: 'rootProject.name'์ ๋น๋ ์ค์บ๊ณผ ๊ฐ์ ๋ณด๊ณ ์์ ์ฌ์ฉ๋๋ ๋น๋ ์ ์ฒด์ ์ด๋ฆ์ ํจ๊ณผ์ ์ผ๋ก ํ ๋นํฉ๋๋ค. ๋ฃจํธ ํ๋ก์ ํธ ์ด๋ฆ์ด ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ์ด๋ฆ์ ๋ถ์์ ํ ์ ์๋ ์ปจํ ์ด๋ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ด ๋ฉ๋๋ค(์ฆ, ํ๋ก์ ํธ๋ฅผ ๋ชจ๋ ๋๋ ํฐ๋ฆฌ๋ก ์ฒดํฌ์์ํ ์ ์์).