ํ๋ ์์ํฌ๋ฅผ ์ํ JAVA - Java ์ค์ต ํ๋ก์ ํธ : ์ซ์์ผ๊ตฌ ๊ฒ์
1. Dependency :
์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ
- gradle : Build Tool์ ์ญํ
- ๋น๋ํ๋ค / ์คํํ๋ค.
- ์ธ๋ถ์ ์์กด์ฑ์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ค์น
- build tool ์ค์ ํ์ผ์ธ build.gradle ํ์ผ ์ด์ด์ dependencies ํ์ธ ๊ฐ๋ฅ
- https://search.maven.org/ ์์ ์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฒ์ํ๊ณ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
- javafaker ๊ฒ์ → Gradle Snippets๋ฅผ ๋ณต์ฌ → build.gradle ํ์ผ dependencies์ ์ถ๊ฐํด์ค๋ค. → Gradle refresh
- javafaker : ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๋๋ค์ผ๋ก ๋ง๋ค์ด๋ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๋ฐ๋ชจ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด๋ผ๋ ์ฌ์ฉ๋๊ณค ํ๋ค.
public static void main(String[] args) {
System.out.println("Hello world!");
Faker faker = new Faker();
Integer[] nums = Stream.generate(()-> faker.number().randomDigit())
.distinct() // ์ค๋ณต๋์ง์๊ฒ
.limit(5) // ์ต๋ 5๊ฐ
.toArray(Integer[] :: new); // ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ
System.out.println(Arrays.toString(nums));
}
- lombok : java ํ๋ก์ ํธ๋ฅผ ํ ๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋. ์ด๋ ธํ ์ด์ ์ ํตํด ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ( IntelliJ “lombok” ํ๋ฌ๊ทธ์ธ์ ๋ฐ๋ก ์ค์นํด์ผํจ. )
import lombok.*;
@AllArgsConstructor // ์๋์ผ๋ก ๋ณ์๋ฅผ ๋ด๋ ์์ฑ์๋ฅผ ์์ฑํด์ค
@NoArgsConstructor // ๊ธฐ๋ณธ์์ฑ์ ์์ฑ
@ToString // ์๋์ผ๋ก toString์ ์์ฑ
@EqualsAndHashCode // ์๋์ผ๋ก equal ํจ์๋ฅผ ์์ฑ
@Getter // ์๋์ผ๋ก ๋ณ์์ ๋ํ get ํจ์ ์์ฑ
@Setter // ์๋์ผ๋ก ๋ณ์์ ๋ํ set ํจ์ ์์ฑ
public class User {
private int age;
private String name;
}
@Data // ์์ ๊ธฐ๋ณธ ์ด๋
ธํ
์ด์
์ด ๋ค ์ ์ฉ๋จ
public class User {
private int age;
private String name;
}
2. ํ๋ก์ ํธ ์ค๊ณ
์ซ์์ผ๊ตฌ ๊ฒ์ ์ค๊ณ
1๏ธโฃ ์๊ตฌ์ฌํญ ํ์ ํ๊ธฐ
- ๊ฒ์์ ๋ฃฐ์ ์ดํด
- ๋์ํ๊ฒฝ, ๋ฐ์ดํฐ์ ๋ฒ์
- 3์๋ฆฌ ์ซ์ ์ฌ์ฉ
- ์ค๋ณต ์ซ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- 1~9๋ฅผ ์ฌ์ฉ
- Console์์ ๋์ํ๋ ํ๋ก์ ํธ
2๏ธโฃ ์ผ์ ๊ฐ์ฒด๋ก ๋๋๊ธฐ/๊ฐ์ฒด๋ฅผ ์ฐ๊ด ์ง๊ธฐ
3๏ธโฃ ํต์ฌ๋ก์ง ์ค๊ณํ๊ธฐ
- Flow Chart
3. ํ๋ก์ ํธ ๊ตฌํ : ์์ง ๋ ์ด์ด
- BaseBall class ์ด NumberGenerator, Input, Output์ ๋ํด ์์กดํ๊ณ ์์ง๋ง ๊ทธ๊ฒ์ ์ถ์์ฒด์๋ง ์์กดํ๊ณ ์์ด ๊ฒฐํจ๋๋ฅผ ๋ฎ์ถ๋ค.(์์ฑ์๋ฅผ ํตํด์๋ง ์์กด์ฑ ์ฃผ์ )
- NumberGenerator๋ฅผ ๊ฒ์ engin๋ด์์ ๊ตฌํํ๋ ค๊ณ ํ์์ผ๋ ํต์ฌ ๋น์ง๋์ค ๋ก์ง์ด ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(javafaker)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ง์์ ์ธ๋ถ dependency๊ฐ ์๋๋ก interface๋ก ๊ตฌํ → interface๋ก ๋ง๋ค๊ณ ํธ์คํธ ์ชฝ์์ ์ ๋ฌ๋ฐ์ ๊ตฌํ์ฒด๋ฅผ ์์ฑ
4. ํ๋ก์ ํธ ๊ตฌํ : ์ดํ๋ ์ผ์ด์ ๋ ์ด์ด
์์ค ์ฝ๋ : GitHub - youngjijang/prgrms-be-devcourse: ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค ๋ฐฑ์๋ ์ค์ต repo
GitHub - youngjijang/prgrms-be-devcourse: ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค ๋ฐฑ์๋ ์ค์ต repo
ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค ๋ฐฑ์๋ ์ค์ต repo. Contribute to youngjijang/prgrms-be-devcourse development by creating an account on GitHub.
github.com
'Back-end ๋ฐ๋ธ์ฝ์ค > week 01 - 02 TIL (java, DB)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 221025 - MySQL ์ฌ์ฉํ๊ธฐ (0) | 2022.10.25 |
---|---|
[TIL] 221024 - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์๊ฐ (0) | 2022.10.24 |
[TIL] 221020 - Java์ Collection (0) | 2022.10.21 |
[TIL] 221019 - Java์ Interface (0) | 2022.10.19 |
[TIL] 221018 - Java์ OOP (2) | 2022.10.18 |
๋๊ธ