인프런 커뮤니티 질문&답변

코스모스님의 프로필 이미지
코스모스

작성한 질문수

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

16강. 코틀린에서 다양한 함수를 다루는 방법

안녕하세요~^^

작성

·

303

1

13:35 초 확장 함수는 자바 코드가 있는 상황에서.....등장했다..

라고 말씀해 주셨는데요, 보통 Util 성 클래스라 해야 할까요,

예를 들어 String 을 받아 하이픈(-)을 휴대폰 양식에 맞게 붙여 준다거나..그 외 util 성 클래스는 어떻게 사용 중이신가요?

확장 함수 또는 중위 함수를 사용하면 편할듯한데,

다른 좋은 방법이 있을까 해서 문의드립니다!

그리고 혹시..확장함수, 중위함수로 util 을 만약에 구성중이고 쓰신다면, 해당 함수에 inline 키워드를 사용중인지도 궁금합니다..

말씀해 주신것처럼 실무관점에서 보면 고려해야할 부분이 많겠지만, util 성 코드는 대부분 그렇게 긴 코드가 아닌거 같아서 inline 키워드를 모두 붙이면 어떨까 생각도 했습니다..

(설명은 매우 좋았으나, 왠지 자바 코드가 있는 상황에서 코틀린 코드로 추가 기능 개발을 하기 위해 등장했다 하여, 좋은 설계의 함수인건 알겠으나, 코틀린이 의도한 방식의 코드 사용인지 햇갈려서요)

답변 2

1

코스모스님의 프로필 이미지
코스모스
질문자

좋은말씀 감사합니다.

강의가 좋아, 다음강의(library app)도 구매하여 듣고있습니다.

좋은 코드에대한 갈망이 심하네용..혼자 공부하는거보다 선후배 개발자분들의 아름다운 코드를보면서 적용해보고싶은데, 현재상황이 그런 상황이 아닌지라..ㅎㅎ 갈증을 해소하기위해 강의 구입하였는데 좋은강의네요 감사합니다.

최태현님의 프로필 이미지
최태현
지식공유자

아이고~~~ 감사합니다 ㅎㅎㅎ 좋은 코드를 다채롭게 보여드리기엔 작은 프로젝트이지만 한 줄을 작성하더라도 적절한 근거와 함께 작성하려고 노력했습니다!! ☺️ 차후에는 더 복잡한 요구사항을 가진 애플리케이션을 다루며 클린한 코드, 클린한 구조를 보여드릴 수 있도록 해보려고요!! 감사합니다~!! 🙏 다음 강의도 보시다가 질문 있으시면 편하게 남겨주세요!!! ☺️

코스모스님의 프로필 이미지
코스모스
질문자

네 감사합니다.

개인적인 생각으로는 어렵고 가격이 좀 나가더라도, 좋은 퀄리티의 코드, 실무에 적용이 바로 가능한 코드였으면 하는 개인적인 바람이 있습니다.

다음 강의 나오면 구매 약속 드립니다.

ps.댓글은 안해주셔도 괜찮습니다. 즐거운 주말 보내세요.

존경을 담아 선생님께.

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요! 인진님!!! 크으~~ 좋은 질문이십니다 ㅎㅎㅎㅎ

우선 저는 util 성 클래스들을 2가지 경우를 혼용해서 많이 사용하고 있습니다!

  1. Java에서 유틸 함수를 만드는 것처럼 DateUtils.kt 와 같은 코틀린 파일에 유틸 기능을 가진 일반function 을 여러개 두기

  2. 1번방법과 비슷하게 한 파일에 확장함수를 여러개 두기

     

확장함수와 일반 함수 모두 적절히 섞어 사용하는 것 같고 기준이 크게 있지는 않습니다 ㅎㅎㅎ 개인적으로 저는 둘 모두 편하더라고요~!!!

 

다음으로 모든 유틸성 함수에 inline을 붙여주는 것에 대해서는, 솔직히 말씀드려 크게 상관없을 것 같긴합니다! 다만 IntelliJ에서 이런 경고를 보내주긴 해요!! "Expected performance impact from inlining is insignificant. Inlining works best for functions with parameters of functional types"

그리고 저는 개인적으로 함수를 받지 않으면 inline을 잘 붙이지 않는데요! 그 이유는 성능적인 개선이 미미하기도 하고, 컴파일 단계에서 함수를 그 자리에 대체하는 것이 미미하게 더 느리지 않을까~~ (완전 저의 추정입니다!) 하는 생각이 있어서 입니다~ 하핫~ 😊😊😊

 

마지막으로 확장함수에 대해 코틀린이 의도한 방식인지 헷갈리시다고 말씀해주셨는데요! 인진님께서도 아시다시피, 저 역시 확장함수의 탄생 배경을 말씀드렸던 것이고, 반드시 확장함수를 이렇게만 사용해는 아닙니다!! 관련해서 Kotlin의 공식 Coding Convention에 있는 Extension Function 부분의 주소를 첨부드립니다!! 한 번 봐보셔도 좋을 것 같아요 ㅎㅎㅎㅎ

 

좋은 질문 남겨주셔서, 감사드립니다~!!! 더 궁금하신 점 있으시면 편하게 말씀해주세요!!! 😊

행복한 주말 되세요~!! 🙏🙇

코스모스님의 프로필 이미지
코스모스

작성한 질문수

질문하기