반응형
회사에서 프로젝트를 진행하다 보면 자주 사용하게 되는 반복적인 변환을 많이 하게 되는 경우가 있다.
그럴 경우 공통 util로 빼서 관리하면 형식이 수정될때 한번에 수정하기도 편하고 코드량 자체도 줄어들 수 있어.. 기록용으로 남겨본다.
공통 모듈 코드
현재 회사에서는 날짜랑 금액을 나타낼때 해당 util을 사용했었다
object ConvertToStringUtil {
// timestamp를 특정 날짜 형식으로 표현
fun Int.toStringDate(): String {
val dateTime = LocalDateTime.ofEpochSecond(this.toLong(), 0, ZoneOffset.of("+9"))
return dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd").withLocale(Locale.KOREA))
}
// LocalDateTime을 특정 날짜 형식으로 표현
fun LocalDateTime.toStringDate(pattern: String): String {
return this.format(DateTimeFormatter.ofPattern(pattern).withLocale(Locale.KOREA))
}
// 금액표현할때 쓰는 util.. 1000 -> 1,000
fun Long.toStringFormatPrice(): String {
val decimalFormat = DecimalFormat("#,###")
return decimalFormat.format(this)
}
}
이렇게 자주쓰는 변환의 경우 자료형의 확장 함수(Extension Function) 로 만들어서 util로 선언해두면 쓰기 쉽다! 아래 사용예시를 보자
알림톡을 발송할때 결제금액(amount)를 가격표시(,)를 붙여줘야할때 util이 없다면 일일이 변환하는 코드를 작성해줘야 하지만 이런식으로 long형의 함수처럼 만들어둬서 간단한 코드로 가격표시 형식을 통일할 수 있다.
import kr.test.api.util.ConvertToStringUtil.toStringFormatPrice
...
alimtalkService.sendAlimtalk(
PublishAlimtalkMessage(
templateCode = templateCode,
phoneNumber = client.phone,
templateParameter = SendPaymentResultTemplate(
고객명 = client.name,
결제명 = paymentName,
결제일 = paymentTime,
결제금액 = "${amount.toStringFormatPrice()}원",
),
)
)
서비스를 구현하다 보면 이런식으로 해당 서비스에서 자주 사용하는 변환식들이 생겨나는대 util로 빼면 훨씬 빠르고 간단하게 코드를 작성할 수 있다.
반응형
'Back-end' 카테고리의 다른 글
| AWS CloudWatch 경보 Slack으로 전송하기 (0) | 2024.01.09 |
|---|---|
| 서킷 브레이커[CirCuit Breaker] 패턴이란? (0) | 2023.04.09 |
| [SpringBoot] 프로젝트 리소스 파일 가져오기 (0) | 2022.11.29 |
| 자바 직렬화(Serializable) (0) | 2022.10.04 |
| HTTP Method & Patch 등장에 따른 Dispatcher Servlet의 변화 (0) | 2022.08.02 |