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
πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”

ordinal λ©”μ„œλ“œ λŒ€μ‹  μΈμŠ€ν„΄μŠ€ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ35)]

ordinal λ©”μ„œλ“œ λŒ€μ‹  μΈμŠ€ν„΄μŠ€ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ35)]
πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”

ordinal λ©”μ„œλ“œ λŒ€μ‹  μΈμŠ€ν„΄μŠ€ ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ35)]

2023. 7. 1. 21:07

  λŒ€λΆ€λΆ„μ˜ μ—΄κ±° νƒ€μž… μƒμˆ˜λŠ” μžμ—°μŠ€λŸ½κ²Œ ν•˜λ‚˜μ˜ μ •μˆ«κ°’μ— λŒ€μ‘λœλ‹€. 그리고 λͺ¨λ“  μ—΄κ±° νƒ€μž…μ€ ν•΄λ‹Ή μƒμˆ˜κ°€ κ·Έ μ—΄κ±° νƒ€μž…μ—μ„œ λͺ‡ 번째 μœ„μΉ˜μΈμ§€λ₯Ό λ°˜ν™˜ν•˜λŠ” ordinalμ΄λΌλŠ” λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•œλ‹€.

  κ·Έλž˜μ„œ μ—΄κ±° νƒ€μž… μƒμˆ˜μ™€ μ—°κ²°λœ μ •μˆ«κ°’μ΄ ν•„μš”ν•˜λ‹€λ©΄ ordinal λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ˜μ§€ μ•Šμ„κΉŒλΌλŠ” 생각을 ν•  수 μžˆλ‹€.

  κ²°λ‘ λΆ€ν„° λ§ν•˜μžλ©΄ κ·Έλ ‡κ²Œ μ‚¬μš©ν•˜λ©΄ μ•ˆ λœλ‹€.

  'μ™œ κ·Έλ ‡κ²Œ μ‚¬μš©ν•˜λ©΄ μ•ˆ λ˜λŠ”μ§€'와 '그러면 μ–Έμ œ ordinal을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€'에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

 

πŸ“™ 1. μ—΄κ±° νƒ€μž… μƒμˆ˜μ™€ μ—°κ²°λœ μ •μˆ«κ°’μ„ μ–»κΈ° μœ„ν•΄ ordinal λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆ λ˜λŠ” μ΄μœ 

public enum Ensemble {
    SOLO, DUET, TRIO, QUARTET, QUINTET,
    SEXTET, SEPTET, OCTET, NONET, DECTET;

    public int numberOfMusicians() {
        return ordinal() + 1;
    }
}

  μœ„μ˜ μ½”λ“œλŠ” ν•©μ£Όλ‹¨μ˜ μ’…λ₯˜λ₯Ό μ—°μ£Όμžκ°€ 1λͺ…인 μ†”λ‘œ(solo)λΆ€ν„° 10λͺ…인 λ””ν…νŠΈ(dectet)κΉŒμ§€ μ •μ˜ν•œ μ—΄κ±° νƒ€μž…μ΄λ‹€. λ™μž‘μ€ ν•˜μ§€λ§Œ μœ μ§€λ³΄μˆ˜ν•˜κΈ°κ°€ λ”μ°ν•œ μ½”λ“œμ΄λ‹€.

  κ·Έ μ΄μœ λŠ” μ•„λž˜μ™€ κ°™λ‹€.

  1. μƒμˆ˜ μ„ μ–Έ μˆœμ„œλ₯Ό λ°”κΎΈλŠ” μˆœκ°„ numberOfMusiciansκ°€ μ˜€λ™μž‘ν•œλ‹€.
  2. 이미 μ‚¬μš© 쀑인 μ •μˆ˜μ™€ κ°’이 κ°™μ€ μƒμˆ˜λŠ” μΆ”κ°€ν•  λ°©λ²•이 μ—†λ‹€.
    8쀑주(octet) μƒμˆ˜κ°€ μ΄λ―Έ μžˆμœΌλ‹ˆ λ˜‘같이 8λͺ…이 μ—°μ£Όν•˜λŠ” λ³΅4쀑주(double quartet)λŠ” μΆ”κ°€ν•  μˆ˜ μ—†λ‹€.
  3. 값을 μ€‘간에 λΉ„μ›Œλ‘˜ μˆ˜ μ—†λ‹€.
    12λͺ…이 μ—°μ£Όν•˜λŠ” 3쀑 4쀑주(triple quartet)λ₯Ό μΆ”κ°€ν•˜λ €λ©΄ 11λͺ…μœΌλ‘œ κ΅¬μ„±λœ ν•©μ£Όλ‹¨μ„ μΆ”κ°€ν•΄μ•Ό ν•œλ‹€. (그런데 11λͺ…μœΌλ‘œ κ΅¬μ„±λœ ν•©μ£Όλ‹¨μ΄ μ—†κΈ° λ•Œλ¬Έμ— λ”λ―Έ(dummy) μƒμˆ˜λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€...)

  κ·Έλž˜μ„œ μ—΄κ±° νƒ€μž… μƒμˆ˜μ— μ—°κ²°λœ 값은 ordinal λ©”μ„œλ“œλ‘œ μ–»μ§€ 말고, μΈμŠ€ν„΄μŠ€ ν•„λ“œμ— μ €μž₯ν•˜λ„λ‘ ν•˜μž. πŸ“’

public enum Ensemble {
    SOLO(1), DUET(2), TRIO(3), QUARTET(4), QUINTET(5),
    SEXTET(6), SEPTET(7), OCTET(8), DOUBLE_QUARTET(8),
    NONET(9), DECTET(10), TRIPLE_QUARTET(12);

    private final int numberOfMusicians;

    Ensemble(int numberOfMusicians) {
        this.numberOfMusicians = numberOfMusicians;
    }

    public int numberOfMusicians() {
        return numberOfMusicians;
    }
}

 

 

πŸ“™ 2. κ·ΈλŸ¬λ©΄ μ–Έμ œ ordinal λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 걸까?

  그러면 μ–Έμ œ ordinal을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” κ²ƒμΌκΉŒ? Enum의 API λ¬Έμ„œλ₯Ό λ³΄λ©΄ ordinal에 λŒ€ν•΄ μ•„λž˜μ™€ κ°™μ΄ μž‘μ„±λ˜μ–΄ μžˆλ‹€.

λŒ€λΆ€λΆ„ ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” 이 λ©”μ„œλ“œλ₯Ό μ“Έ 일이 μ—†λ‹€.
이 λ©”μ„œλ“œλŠ” EnumSetκ³Ό EnumMap κ°™μ΄ μ—΄κ±° νƒ€μž… κΈ°λ°˜μ˜ λ²”μš© μžλ£Œκ΅¬μ‘°μ— μ“Έ λͺ©μ μœΌλ‘œ μ„€κ³„λ˜μ—ˆλ‹€.

  λ”°λΌμ„œ, 이런 μš©λ„κ°€ μ•„λ‹ˆλΌλ©΄ ordinal λ©”μ„œλ“œλŠ” μ ˆλŒ€ μ‚¬μš©ν•˜μ§€ 말자. πŸ“’

 

ν•΄λ‹Ή 글은 Joshua Bloch λ‹˜μ˜ 'Effective Java 3/E'λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

'πŸ“‚ JAVA > μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

ordinal 인덱싱 λŒ€μ‹  EnumMap을 μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ37)]  (0) 2023.07.02
λΉ„νŠΈ ν•„λ“œ λŒ€μ‹  EnumSet을 μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ36)]  (1) 2023.07.01
int μƒμˆ˜ λŒ€μ‹  μ—΄κ±° νƒ€μž…μ„ μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ34)] - (2)  (0) 2023.07.01
int μƒμˆ˜ λŒ€μ‹  μ—΄κ±° νƒ€μž…μ„ μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ34)] - (1)  (0) 2023.07.01
νƒ€μž… μ•ˆμ „ 이쒅 μ»¨ν…Œμ΄λ„ˆλ₯Ό κ³ λ €ν•˜λΌ - [5μž₯. μ œλ„€λ¦­(μ•„μ΄ν…œ33)]  (1) 2023.06.10
  • πŸ“™ 1. μ—΄κ±° νƒ€μž… μƒμˆ˜μ™€ μ—°κ²°λœ μ •μˆ«κ°’μ„ μ–»κΈ° μœ„ν•΄ ordinal λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆ λ˜λŠ” μ΄μœ 
  • πŸ“™ 2. κ·ΈλŸ¬λ©΄ μ–Έμ œ ordinal λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 걸까?
'πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • ordinal 인덱싱 λŒ€μ‹  EnumMap을 μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ37)]
  • λΉ„νŠΈ ν•„λ“œ λŒ€μ‹  EnumSet을 μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ36)]
  • int μƒμˆ˜ λŒ€μ‹  μ—΄κ±° νƒ€μž…μ„ μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ34)] - (2)
  • int μƒμˆ˜ λŒ€μ‹  μ—΄κ±° νƒ€μž…μ„ μ‚¬μš©ν•˜λΌ - [6μž₯. μ—΄κ±° νƒ€μž…κ³Ό μ• λ„ˆν…Œμ΄μ…˜(μ•„μ΄ν…œ34)] - (1)
Amenable
Amenable
CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.