Amenable
Amenable's Blog
Amenable
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (189)
    • ๐Ÿ“‚ JAVA (87)
      • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” (65)
      • ์ฃผ์š” ๊ฐœ๋… (22)
    • ๐Ÿ“‚ ๊ฐœ๋ฐœ ์„œ์  (22)
      • ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ (1)
      • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด (2)
      • ํด๋ฆฐ ์ฝ”๋“œ (8)
      • ํ•จ๊ป˜ ์ž๋ผ๊ธฐ (1)
      • ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” HTTP&Network Basic (10)
    • ๐Ÿ“‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€์ด (0)
    • ๐Ÿ“‚ ๋„คํŠธ์›Œํฌ (14)
      • ๊ฐœ๋… (6)
      • ์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 1%์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ (8)
    • ๐Ÿ“‚ ์Šคํ”„๋ง (13)
      • ๊ธฐ๋ณธ ๊ฐœ๋… (13)
    • ๐Ÿ“‚ WEB (5)
    • ๐Ÿ“‚ ์ž๋ฃŒ๊ตฌ์กฐ (12)
      • ๊ฐœ๋… (2)
      • ์ •๋ ฌ (8)
      • ํŠธ๋ฆฌ (2)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
      • ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ (2)
      • ์ตœ๋‹จ ๊ฒฝ๋กœ (2)
      • ๋ฌธ์ž์—ด (2)
      • ETC (4)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด (4)
      • BOJ_๋ฐฑ์ค€ (4)
    • ๐Ÿ“‚ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (3)
    • ๐Ÿ“‚ DevOps (2)
      • ๋ฐฐํฌ (2)
    • ๐Ÿ“‚ ํ›„๊ธฐ (8)
      • ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค) (4)
      • 2023๋…„ (3)
      • 2024๋…„ (1)
    • ๐Ÿ“‚ ํšŒ๊ณ  (1)
      • 2023๋…„ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿš€ GitHub

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Amenable
๐Ÿ“‚ ํ›„๊ธฐ/์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค)

ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ(๋กœ๋˜ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค

ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ(๋กœ๋˜ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
๐Ÿ“‚ ํ›„๊ธฐ/์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค)

ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ(๋กœ๋˜ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค

2022. 11. 24. 16:32

1. ๐Ÿ“ƒ ๋ฏธ์…˜ ์„ค๋ช…

  3์ฃผ ์ฐจ์˜ ๋ฏธ์…˜์€ '๋กœ๋˜ ๊ฒŒ์ž„'์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋กœ๋˜ ๊ฒŒ์ž„์˜ ๊ธฐ๋ณธ์ ์ธ ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

- ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ ์ˆซ์ž ๋ฒ”์œ„๋Š” 1~45๊นŒ์ง€์ด๋‹ค.
- 1๊ฐœ์˜ ๋กœ๋˜๋ฅผ ๋ฐœํ–‰ํ•  ๋•Œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” 6๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋ฝ‘๋Š”๋‹ค. (๋กœ๋˜ 1์žฅ์˜ ๊ฐ€๊ฒฉ์€ 1,000์›์ด๋‹ค.)
- ๋‹น์ฒจ ๋ฒˆํ˜ธ ์ถ”์ฒจ ์‹œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ˆซ์ž 6๊ฐœ์™€ ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ 1๊ฐœ๋ฅผ ๋ฝ‘๋Š”๋‹ค.
- ๋‹น์ฒจ์€ 1๋“ฑ๋ถ€ํ„ฐ 5๋“ฑ๊นŒ์ง€ ์žˆ๋‹ค.
  - 1๋“ฑ: 6๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 2,000,000,000์›
  - 2๋“ฑ: 5๊ฐœ ๋ฒˆํ˜ธ + ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ ์ผ์น˜ / 30,000,000์›
  - 3๋“ฑ: 5๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 1,500,000์›
  - 4๋“ฑ: 4๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 50,000์›
  - 5๋“ฑ: 3๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 5,000์›

- ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋งคํ•œ ๋กœ๋˜ ๋ฒˆํ˜ธ์™€ ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋‹น์ฒจ ๋‚ด์—ญ ๋ฐ ์ˆ˜์ต๋ฅ ์„ ์ถœ๋ ฅํ•˜๊ณ  ๋กœ๋˜ ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•œ๋‹ค.

  ์ถ”๊ฐ€๋œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์„œ๋“œ)์˜ ๊ธธ์ด๊ฐ€ 15๋ผ์ธ์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
  2. else ์˜ˆ์•ฝ์–ด๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
  3. Java Enum์„ ์ ์šฉํ•œ๋‹ค.

 

2. ๐Ÿ“ข ๊ณตํ†ต ํ”ผ๋“œ๋ฐฑ

1) ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•œ๋‹ค.

  ์ •์ƒ์ ์ธ ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ˜„ ํ•œ๋А ๊ฒƒ๋ณด๋‹ค ์˜ˆ์™ธ ์ƒํ™ฉ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๊ฒƒ์ด ๋” ์–ด๋ ต๋‹ค. ์˜ˆ์™ธ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ธ๋‹ค. ์ด๋ฒˆ ๊ณผ์ œ์˜ ์˜ˆ์™ธ ์ƒํ™ฉ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ๋‹ค.

  • ๋กœ๋˜ ๊ตฌ์ž… ๊ธˆ์•ก์— 1000 ์ดํ•˜์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ
  • ๋‹น์ฒจ ๋ฒˆํ˜ธ์— ์ค‘๋ณต๋œ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ
  • ๋‹น์ฒจ ๋ฒˆํ˜ธ์— 1 ~ 45 ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ
  • ๋‹น์ฒจ ๋ฒˆํ˜ธ์™€ ์ค‘๋ณต๋œ ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ

2) ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI ๋กœ์ง์„ ๋ถ„๋ฆฌํ•œ๋‹ค.

  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI ๋กœ์ง์„ ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ด๋‹นํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. ๋‹จ์ผ ์ฑ…์ž„์˜ ์›์น™์—๋„ ์œ„๋ฐฐ๋œ๋‹ค.

public class Lotto{
    private List<Integer> numbers;
    
    // ๋กœ๋˜ ์ˆซ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
    public boolean contains(int number){
        ...
    }
    
    // UI ๋กœ์ง
    private void print(){
        ...
    }
}

  ํ˜„์žฌ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณด๊ธฐ ์œ„ํ•œ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€ ์„ฑ๊ฒฉ์ด ๊ฐ•ํ•˜๋‹ค๋ฉด toString()์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•œ๋‹ค.

  View์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ผ๋ฉด  getter ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

 

3) ์—ฐ๊ด€์„ฑ์ด ์žˆ๋Š” ์ƒ์ˆ˜๋Š” static final ๋Œ€์‹  enum์„ ํ™œ์šฉํ•œ๋‹ค.

public enum Rank{
    FIRST(6, 2_000_000_000),
    SECOND(5, 30_000_000),
    THIRD(5, 1_500_000),
    FOURTH(4, 50_000),
    FIFTH(3, 5_000),
    MISS(0, 0);
    
    private int countOfMatch;
    private int winningMoney;
    
    private Rank(int countOfMatch, int winningMoney){
        this.countOfMatch = countOfMatch;
        this.winningMoney = winningMoney;
    }
}

 

4) final ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ’์˜ ๋ณ€๊ฒฝ์„ ๋ง‰๋Š”๋‹ค.

  ์ตœ๊ทผ์— ๋“ฑ์žฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค์€ ๊ธฐ๋ณธ์ด ๋ถˆ๋ณ€ ๊ฐ’์ด๋‹ค. ์ž๋ฐ”๋Š” final ํ‚ค์›Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด ๊ฐ’์˜ ๋ณ€๊ฒฝ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.

public class Money{
    private final int amount;
    
    public Money(int amount){
        ...
    }
}

 

5) ๊ฐ์ฒด์˜ ์ƒํƒœ ์ ‘๊ทผ์„ ์ œํ•œํ•œ๋‹ค

  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์ ‘๊ทผ ์ œ์–ด์ž๋Š” private๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.

public class WinningLotto{
    private Lotto lotto;
    private Integer bonusNumber;
    
    public WinningLotto(Lotto lotto, Integer bonusNumber){
        this.lotto = lotto;
        this.bonusNumber = bonusNumber;
    }
}

 

6) ๊ฐ์ฒด๋Š” ๊ฐ์ฒด์Šค๋Ÿฝ๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค.

  Lotto ํด๋ž˜์Šค๋Š” numbers๋ฅผ ์ƒํƒœ ๊ฐ’์œผ๋กœ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๊ฐ์ฒด๋Š” ๋กœ์ง์— ๋Œ€ํ•œ ๊ตฌํ˜„์€ ํ•˜๋‚˜๋„ ์—†๊ณ , numbers์— ๋Œ€ํ•œ getter ๋ฉ”์„œ๋“œ๋งŒ์„ ๊ฐ€์ง„๋‹ค.

public class Lotto{
    private final List<Integer> numbers;
    
    public Lotto(List<Integer> numbers){
        this.numbers = numbers;
    }
    
    public int getNumbers(){
        return numbers;
    }
}

public class LottoGame{
    public void play(){
        Lotto lotto = new Lotto(...);
        
        // ์ˆซ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
        lotto.getNumbers().contains(number);
        
        // ๋‹น์ฒจ ๋ฒˆํ˜ธ์™€ ๋ช‡ ๊ฐœ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
        lotto.getNumbers().stream()...
    }
}

Lotto์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด์ง€(get) ๋ง๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋˜์ง€๋„๋ก ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊ฟ” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด๊ฐ€ ์ผํ•˜๋„๋ก ํ•œ๋‹ค.

public class Lotto{
    private final List<Integer> numbers;
    
    public boolean contains(int number){
        // ์ˆซ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
        ...
    }
    
    public int matchCount(Lotto other){
        // ๋‹น์ฒจ ๋ฒˆํ˜ธ์™€ ๋ช‡ ๊ฐœ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
        ...
    }
}

public class LottoGame{
    public void play(){
        Lotto lotto = new Lotto(...);
        lotto.contains(number);
        lotto.matchCount(...);
    }
}

 

7) ํ•„๋“œ(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)์˜ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•œ๋‹ค.

  ํ•„๋“œ(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)์˜ ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ฒƒ์€ ๊ฐ์ฒด์˜ ๋ณต์žก๋„๋ฅผ ๋†’์ด๊ณ , ๋ฒ„๊ทธ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ํ•„๋“œ์— ์ค‘๋ณต์ด ์žˆ๊ฑฐ๋‚˜, ๋ถˆํ•„์š”ํ•œ ํ•„๋“œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•ด ํ•„๋“œ์˜ ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•œ๋‹ค.

  ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ์ƒ๊ธˆ ๋ฐ ์ˆ˜์ต๋ฅ ์„ ๊ตฌํ•˜๋Š” ๋‹ค์Œ ๊ฐ์ฒด๋ฅผ ๋ณด์ž.

public class LottoResult{
    private Map<Rank, Integer> result = new HashMap<>();
    private double profitRate;
    private int totalPrize;
}

  ์œ„ ๊ฐ์ฒด์˜ profitRate์™€ totalPrize๋Š” ๋“ฑ์ˆ˜ ๋ณ„ ๋‹น์ฒจ ๋‚ด์—ญ(result)๋งŒ ์žˆ์–ด๋„ ๋ชจ๋‘ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ ๊ฐ์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ ํ•„๋“œ๋งŒ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

public class LottoResult{
    private Map<Rank, Integer> result = new HashMap<>();
    public double calculateProfitRate(){ ... }
    public int calculateTotalPrize(){ ... }
}

 

8) ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋„ ์ฝ”๋“œ๋‹ค

  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋„ ์ฝ”๋“œ์ด๋ฏ€๋กœ ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ†ตํ•ด ๊ฐœ์„ ํ•ด๋‚˜๊ฐ€์•ผ ํ•œ๋‹ค. ํŠนํžˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹จ์ˆœํžˆ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’๋งŒ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

@DisplayNmae("์ฒœ์› ๋ฏธ๋งŒ์˜ ๊ธˆ์•ก์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ")
@ValueSource(strings = {"999", "0", "-123"})
@ParameterizedTest
void underLottoPrice(Integer input){
    assertThatThrownBy(() -> new Money(input))
                .isInstanceof(IllegalArgumentException.class);
}

 

9) ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ๋Š” ๊ตฌํ˜„ ์ฝ”๋“œ์—์„œ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

  ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ํŽธ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ ์ฝ”๋“œ์— ๊ตฌํ˜„ํ•˜์ง€ ๋งˆ๋ผ. ์•„๋ž˜์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๋กœ์ง์„ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

  • ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ

 

10) ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ์ฝ”๋“œ๋ฅผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

  ์•„๋ž˜ ์ฝ”๋“œ๋Š” Random ๋•Œ๋ฌธ์— Lotto์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ํž˜๋“ค๋‹ค. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ฆฌํŒฉํ„ฐ๋ง ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?

public class Lotto{
    private List<Integer> numbers;
    
    public Lotto(){
        this.numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6);
    }
}

-----------------------------------------

public class LottoMachine{
    public void execut(){
        Lotto lotto = new Lotto();
    }
}

  ์˜ฌ๋ฐ”๋ฅธ ๋กœ๋˜ ๋ฒˆํ˜ธ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์„ ํด๋ž˜์Šค ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์‹œ๋„๋ฅผ ํ•ด๋ณธ๋‹ค.

public class Lotto{
    private List<Integer> numbers;
    
    public Lotto(List<Integer> numbers){
        this.numbers = numbers;
    }
}

-----------------------------------------

public class LottoMachine{
    public void execute(){
        List<Integer> numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6);
        Lotto lotto = new Lotto(numbers);
    }
}

  ์ด์ฒ˜๋Ÿผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„์€ ๋ถ„๋ฆฌํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•œ๋‹ค. ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋‚จ์€ LottoMachine์„ ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ ๋ฏผํ•ด๋ณธ๋‹ค.

 

11) private ํ•จ์ˆ˜๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํด๋ž˜์Šค(๊ฐ์ฒด) ๋ถ„๋ฆฌ๋ฅผ ๊ณ ๋ คํ•œ๋‹ค.

  ๊ฐ€๋…์„ฑ์˜ ์ด์œ ๋งŒ์œผ๋กœ ๋ถ„๋ฆฌํ•œ private ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ public์œผ๋กœ๋„ ๊ฒ€์ฆ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์—ฌ๊ฒจ์งˆ ์ˆ˜ ์žˆ๋‹ค. public ํ•จ์ˆ˜๊ฐ€ private ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„์— ํฌํ•จ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€๋…์„ฑ ์ด์ƒ์˜ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒฝ์šฐ, ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ํƒ€์ด๋ฐ์ด ์•„๋‹Œ์ง€ ๊ณ ๋ฏผํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

3. ๐Ÿ’Š ๋ฐฐ์šด ์  & ๋А๋‚€ ์ 

  1. ์œ„์˜ ๊ณตํ†ต ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ๋Š”  ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐœ์„ ํ•ด์•ผ ํ•  ์ ์ด ์•„์ฃผ ๋งŽ๋‹ค. ํŠนํžˆ ํด๋ž˜์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ž˜ ๋ถ„๋ฆฌํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ํ•™์Šต์ด ํ•„์š”ํ•˜๋‹ค.
  2. ์ด์ „๊นŒ์ง€๋Š” enum์„ ๋‹จ์ˆœ ์—ด๊ฑฐํ•˜๋Š” ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด์„œ enum์„ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

 

'๐Ÿ“‚ ํ›„๊ธฐ > ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํ”„๋ฆฌ์ฝ”์Šค 4์ฃผ์ฐจ(๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค  (0) 2022.11.24
ํ”„๋ฆฌ์ฝ”์Šค 2์ฃผ์ฐจ(์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค  (0) 2022.11.24
ํ”„๋ฆฌ์ฝ”์Šค 1์ฃผ์ฐจ(์˜จ๋ณด๋”ฉ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค  (0) 2022.11.24
  • 1. ๐Ÿ“ƒ ๋ฏธ์…˜ ์„ค๋ช…
  • 2. ๐Ÿ“ข ๊ณตํ†ต ํ”ผ๋“œ๋ฐฑ
  • 3. ๐Ÿ’Š ๋ฐฐ์šด ์  & ๋А๋‚€ ์ 
'๐Ÿ“‚ ํ›„๊ธฐ/์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํ”„๋ฆฌ์ฝ”์Šค 4์ฃผ์ฐจ(๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
  • ํ”„๋ฆฌ์ฝ”์Šค 2์ฃผ์ฐจ(์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
  • ํ”„๋ฆฌ์ฝ”์Šค 1์ฃผ์ฐจ(์˜จ๋ณด๋”ฉ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
Amenable
Amenable
CS, ์ž๋ฐ”, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์Šคํ”„๋ง, ์Šคํ”„๋ง ๋ถ€ํŠธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.