[TIL-20260202] Kotlin data class, enum class

2026. 2. 2. 21:19·Today I Learned 🧐

 

πŸ€ To Do List

 

πŸ‘©πŸ»‍πŸ’» Today I Learned ...

 

 

Data Class

 

 

DTO(Data Transfer Object)

  • κ³„μΈ΅κ°„μ˜ 데이터λ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•œ 객체
  • 데이터(ν•„λ“œ), μƒμ„±μžμ™€ getter, equals, hashCode, toString λ“±μ˜ λ©”μ„œλ“œλ₯Ό κ°€μ§„λ‹€.
  • `Kotlin`μ—μ„œλŠ” `data` ν‚€μ›Œλ“œλ₯Ό λΆ™μ—¬μ£Όλ©΄, `equals, hashCode, toString` λ©”μ„œλ“œλ₯Ό μžλ™μœΌλ‘œ λ§Œλ“€μ–΄μ€€λ‹€.
    • `named argument`κΉŒμ§€ ν™œμš©ν•˜λ©΄, `builder pattern`을 μ“°λŠ” 것 같은 νš¨κ³Όκ°€ μžˆλ‹€.

 

 

Enum Class

 

    • λ‚΄λΆ€μ μœΌλ‘œ `Enum`을 상속 쀑이기 λ•Œλ¬Έμ—, 좔상적인 클래슀λ₯Ό 상속 받을 수 μ—†λ‹€.
      • `enum class 클래슀λͺ… : Enum<클래슀λͺ…>() `
      • `Kotlin`은 닀쀑 상속을 μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€. (ν΄λž˜μŠ€λŠ” ν•˜λ‚˜λ§Œ 상속 κ°€λŠ₯)
    • μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ν•  수 있으며, 각 μ½”λ“œκ°€ 싱글톀이닀. ex) `PROFILE_SETUP("ν”„λ‘œν•„ μ„€μ •")`
      • μΈν„°νŽ˜μ΄μŠ€λŠ” μ—¬λŸ¬ 개 κ΅¬ν˜„ κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— ν—ˆμš©λœλ‹€.

 

Whenκ³Ό Enum Class

private fun handleCountry(country: Country) {
    when(country) {
    Country.KOREA -> TODO()
    Country.AMERICA -> TODO()
}
}

 

 

`when`은 `Enum Class` ν˜Ήμ€ `Sealed Class`와 ν•¨κ»˜ μ‚¬μš©ν•  경우, λ”μš±λ” μ§„κ°€λ₯Ό λ°œνœ˜ν•œλ‹€κ³  ν•œλ‹€.

 

μ»΄νŒŒμΌλŸ¬κ°€ νŒŒλΌλ―Έν„°λ‘œ 받은 Enum Class의 λͺ¨λ“  νƒ€μž…μ„ μ•Œκ³  μžˆμ–΄,

λ‹€λ₯Έ νƒ€μž…μ— λŒ€ν•œ 둜직(èlse`)을 μž‘μ„±ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.

`Enum Class`에 λ³€ν™”κ°€ μžˆλ‹€λ©΄, `IDE`λ‹¨μ—μ„œ warnning을 μ£ΌλŠ” λ“±μ˜ ν–‰μœ„λ₯Ό 톡해 λ³€ν™”λ₯Ό 눈치챌 수 μžˆλ‹€. (`Java`λŠ” 이런 κΈ°λŠ₯이 λ”°λ‘œ μ—†μŒ.)

 

이 뢀뢄은 μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈμ—λ„ μ μš©μ„ 해봐야겠닀. πŸ’‘

 

 

 

 

 

 

 

 

 

 

 

 

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'Today I Learned 🧐' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[TIL-20260204] μ½”λ”© ν…ŒμŠ€νŠΈ - μž¬κ·€ ν•¨μˆ˜ (Recursive Function)  (0) 2026.02.04
[TIL-20260203] μ½”λ”© ν…ŒμŠ€νŠΈ - Linked List , 이진 탐색(Binary Search)  (0) 2026.02.03
[TIL-20260131] Docker 이미지 닀루기  (0) 2026.01.31
[TIL-20260129] Docker μ»¨ν…Œμ΄λ„ˆ 닀루기  (0) 2026.01.30
[TIL-20260128] Nginx Basic Auth, Github Actions둜 .htpasswd 생성  (0) 2026.01.28
'Today I Learned 🧐' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [TIL-20260204] μ½”λ”© ν…ŒμŠ€νŠΈ - μž¬κ·€ ν•¨μˆ˜ (Recursive Function)
  • [TIL-20260203] μ½”λ”© ν…ŒμŠ€νŠΈ - Linked List , 이진 탐색(Binary Search)
  • [TIL-20260131] Docker 이미지 닀루기
  • [TIL-20260129] Docker μ»¨ν…Œμ΄λ„ˆ 닀루기
ν•΄λ‹ˆ 🌱
ν•΄λ‹ˆ 🌱
기둝이 μžμ‚°μ΄λ‹€ ( •Μ€α΄—•́ )و✏️
  • ν•΄λ‹ˆ 🌱
    haeni.dev
    ν•΄λ‹ˆ 🌱
  • 링크

    • github
    • velog
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (25)
      • μš°μ‚¬κΈ° κ°œλ°œμΌμ§€ 🐰 (4)
      • Today I Learned 🧐 (19)
      • λΆ„λ…Έμ˜ 타이핑 둜그 πŸ”₯ (2)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    til
    springboot
    μ½”ν…Œ
    AWS
    μ½”λ”©ν…ŒμŠ€νŠΈ
    ci/cd
    개발
    IT
    λ°±μ—”λ“œ
    개발자
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.5
ν•΄λ‹ˆ 🌱
[TIL-20260202] Kotlin data class, enum class
μƒλ‹¨μœΌλ‘œ

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