Skip to content

πŸš€ [κΈ°λŠ₯κ°œμ„ ][λ¦¬νŒ©ν† λ§] Primitive/Wrapper νƒ€μž… 및 Boolean ν•„λ“œλͺ… 넀이밍 μ»¨λ²€μ…˜Β #366

@Chuseok22

Description

@Chuseok22

πŸ“ ν˜„μž¬ 문제점

  • 숫자 νƒ€μž… ν•„λ“œλ₯Ό Integer, Long λ“± 래퍼(wrapper)둜 μ„ μ–Έν•΄ λΆˆν•„μš”ν•œ μ˜€ν† λ°•μ‹± 및 null 체크 둜직이 λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
  • boolean ν•„λ“œλͺ…에 is 접두어λ₯Ό λΆ™μ—¬ μ„ μ–Έν•˜λ©΄ JavaBeans Introspector와 Lombok μ‚¬μš© μ‹œ getter 이름이 getIsXxx() ν˜•νƒœλ‘œ μƒμ„±λ˜μ–΄ ν˜Όλž€μ„ μ΄ˆλž˜ν•©λ‹ˆλ‹€.
  • μΌκ΄€λ˜μ§€ μ•Šμ€ 넀이밍 μ»¨λ²€μ…˜μœΌλ‘œ μ½”λ“œ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ΄ μ €ν•˜λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

πŸ› οΈ ν•΄κ²° λ°©μ•ˆ / μ œμ•ˆ κΈ°λŠ₯

  • 숫자 νƒ€μž…μ€ null ν—ˆμš©μ΄ λΆˆν•„μš”ν•œ 경우 primitive(int, long λ“±)둜 μ„ μ–Έν•˜κ³ , null ν‘œν˜„μ΄ ν•„μš”ν•œ κ²½μš°μ—λ§Œ 래퍼(Integer, Long)λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • Boolean νƒ€μž…μ€ primitive boolean을 기본으둜 μ‚¬μš©ν•˜κ³ , true/false μ™Έ null μƒνƒœκ°€ ν•„μš”ν•  λ•Œλ§Œ Boolean을 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • ν•„λ“œλͺ… 넀이밍은 JavaBeans μ»¨λ²€μ…˜μ— 맞좰 is 접두어 없이 camelCase둜 μž‘μ„±ν•©λ‹ˆλ‹€.(isFirstLogin β†’ firstLogin)
  • Lombok μ‚¬μš© μ‹œμ—λ„ μœ„ 방침에 따라 ν•„λ“œ μ„ μ–Έλ§Œ μˆ˜μ •ν•˜λ©΄, isXxx() / getXxx() getterκ°€ μžλ™ μƒμ„±λ˜λ„λ‘ μ μš©ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ: HopeAreaRequest.java λ¦¬νŒ©ν† λ§ μ „/ν›„

λ¦¬νŒ©ν† λ§ μ „

@ToString
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Builder
public class HopeAreaRequest {

  @NotNull(message = "μš°μ„ μˆœμœ„λ₯Ό μž…λ ₯ν•˜μ„Έμš”. 1 ~ 10 μ •μˆ˜")
  @Min(value = 1, message = "μˆœμœ„λŠ” 1λΆ€ν„° 10 μ‚¬μ΄μ˜ μ •μˆ˜λ§Œ μž…λ ₯ κ°€λŠ₯ν•©λ‹ˆλ‹€.")
  @Max(value = 10, message = "μˆœμœ„λŠ” 1λΆ€ν„° 10 μ‚¬μ΄μ˜ μ •μˆ˜λ§Œ μž…λ ₯ κ°€λŠ₯ν•©λ‹ˆλ‹€.")
  @Schema(defaultValue = "1")
  private Integer priority; // μˆœμœ„

  @NotNull(message = "희망 ꡬ역을 μž…λ ₯ν•˜μ„Έμš”.")
  @Schema(defaultValue = "Aꡬ역")
  private String location; // ꡬ역

  @NotNull(message = "희망 가격을 μž…λ ₯ν•˜μ„Έμš”.(원 λ‹¨μœ„)")
  @Min(value = 0, message = "희망 가격은 0원 이상이어야 ν•©λ‹ˆλ‹€.")
  @Schema(defaultValue = "150000")
  private Long price; // 가격
}

λ¦¬νŒ©ν† λ§ ν›„

@ToString
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Builder
public class HopeAreaRequest {

  // primitive int μ‚¬μš©, null 체크(@NotNull) 제거
  // κ°’ λˆ„λ½ μ‹œ κΈ°λ³Έκ°’ 0이 @Min(1) 검증에 κ±Έλ¦¬λ―€λ‘œ μΆ©λΆ„
  @Min(value = 1, message = "μˆœμœ„λŠ” 1λΆ€ν„° 10 μ‚¬μ΄μ˜ μ •μˆ˜λ§Œ μž…λ ₯ κ°€λŠ₯ν•©λ‹ˆλ‹€.")
  @Max(value = 10, message = "μˆœμœ„λŠ” 1λΆ€ν„° 10 μ‚¬μ΄μ˜ μ •μˆ˜λ§Œ μž…λ ₯ κ°€λŠ₯ν•©λ‹ˆλ‹€.")
  @Schema(defaultValue = "1")
  private int priority; // μˆœμœ„

  @NotBlank(message = "희망 ꡬ역을 μž…λ ₯ν•˜μ„Έμš”.")
  @Schema(defaultValue = "Aꡬ역")
  private String location; // ꡬ역

  // primitive long μ‚¬μš©, null 체크 제거
  @Min(value = 0, message = "희망 가격은 0원 이상이어야 ν•©λ‹ˆλ‹€.")
  @Schema(defaultValue = "150000")
  private long price; // 가격
}

πŸ™‹β€β™‚οΈ λ‹΄λ‹Ήμž

  • λ°±μ—”λ“œ: @Chuseok22
  • ν”„λ‘ νŠΈμ—”λ“œ:
  • λ””μžμΈ:

Metadata

Metadata

Assignees

No one assigned

    Labels

    μž‘μ—… μ „μž‘μ—… μ‹œμž‘ μ „ μ€€λΉ„μƒνƒœ

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions