• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

유틸성코드

22.10.05 07:39 작성 조회수 1.07k

1

안녕하세요!!

강의를듣다가 "유틸성 코드" 라는 말이나와서 좀 이해가 안가 질문드립니다!

유틸성 뜻을 잘 몰라서 검색을 해보니 [Utile은 '유용한, 도움이 되는, 쓸모 있는'을 뜻] 라는 뜻이더라구요.

그럼 유틸성 코드는 유용한 코드??? 라는 생각이들면서 무슨말이지...? 라는 생각이 들더라구요 ㅠㅠ

  1. 유틸성 코드란?

  2. 유틸성 코드의 쓰는 이유

  3. 가시성을 부여한다, 설정한다가 무슨말인지

(가시성 : 보이는게 확실하게 구별되는 개념으로 알고있습니다)

감사합니다 ㅠㅠ!

답변 1

답변을 작성해보세요.

2

안녕하세요 민코님!!! 😊 크으~ 좋은 질문이십니다!!

질문 주신 내용 하나하나 답변 드려 볼게요!!

 

[1. 유틸성 코드란]

유틸성 코드의 명확한 정의가 존재하지는 않습니다! 약간 어떤 느낌으로 이해해 주시면 되나면요! 코드의 크기가 작고, 애플리케이션 비즈니스와는 관련이 적으며, 굉장히 일반적인 기능을 담당하는 코드 라고 생각해주시면 되어요!

저도 그나마 구글링을 잠깐 해보니 "A piece of code can be called a utility if it seems too small to be considered as a separate application, and too general-purpose to be considered as part of a particular program. A database program would not be a utility, for example, but a function which performed a single operation on a list could be." 라는 문구를 발견할 수 있었습니다 ㅎㅎㅎ...

 

[2. 유틸성 코드를 쓰는 이유]

예를 들어, 2의 배수이거나 5의 배수인 수를 확인하는 코드로 표현해보면 num % 2 == 0 && num % 5 == 0 이 될겁니다!

그런데 이 코드가 여기저기 굉장히 많이 쓰이고 있다고 해볼게요~ if (num % 2 == 0 && num % 5 == 0) 가 여기저기 널려 있는거죠! 그렇다면 이 경우에 코드를 함수화 할 수 있습니다!

fun canBeDividedByTwoOrFive(num: Int): Boolean {
  return num % 2 == 0 && num % 5 == 0
}

 

자 그런데~ 2의 배수이거나 5의 배수인지 확인하던 작업들은 여전히 많은 상태로, 3의 배수이거나 7의배수인지 / 2의 배수이거나 5의 배수이거나 11의 배수인지와 같은 작업들이 늘어났다고 생각해볼게요! 그러면 아예 함수를 다음과 같이 작성할 수 있을거에요!

fun canBeDividedByAnyNumber(targetNum: Int, dividedNums: List<Int>): Boolean {
  return dividedNums.any { num -> num % targetNum == 0 }
}
// 이름은 급하게 지었어요!
// Int에 대한 확장함수로 만들어 targetNum을 파라미터에서 제거할 수도 있습니다 ㅎㅎㅎ

이렇게 되면 모든 곳에서 이 함수를 활용할 수 있겠죠

이러한 코드를 유틸성 코드라고 합니다!!

 

[3. 가시성을 부여하다가 무슨 의미인가]

가시성을 부여한다는 것은 11강에서 설명드렸던 '접근 지시어'를 제어한다는 의미랑 동일합니다!

함수에 대해서 private / internal / public 등을 결정하는 것이지요~

 

제 답변이 도움이 될 수 있으면 좋겠네요 ㅎㅎㅎㅎ

혹시 또 궁금한 점 있으시면 편하게 말씀해주세요~!! 감사합니다!!! 🙏