flipflop
99
2020-09-04 11:48:19
10
902

리팩토링중인데 갑자기 궁금한게 생겼습니다!


보통 클래스 하나에 다들 메소드를 몇개정도 넣으시나요?

메소드가 30개를 넘어가는순간 정신이 혼미해지면서 다른 클래스로 분리하고싶은 욕망이 생기는데, 다른분들은 어떤가 궁금해서요!

0
  • 댓글 10

  • 봄꾸
    1k
    2020-09-04 11:53:00

    다른 분들은 모르겠는데 저는 그런거 정해두고 하지 않습니다.

    분리하는게 구조상 맞다면 분리를 하고 그저 많다고 분리하는 거라면 분리 안할 것 같습니다.

  • 뀨엉뀨엉
    105
    2020-09-04 11:55:28

    분류에 맞게 나눠진 거라면 개수는 상관없을거 같아요.

  • homemadepasta
    66
    2020-09-04 12:35:13

    제대로 설계해서 모듈화가 잘 된 상태라면 메소드 갯수는 중요하지 않은 것 같습니다.

  • 힘내라마소
    1k
    2020-09-04 13:16:04

    개인적으로 한 클래스에 30개의 함수가 있다면 설계가 잘못됐다고 생각합니다.

    너무 많은 함수는 해당 클래스를 명확히 정의하지 못했다고 봐요.

    함수가 많다는 것은 기능이 많다는 것을 의미하는데 이는 곧 한 클래스가 가지고 있는 기능이 과하다는겁니다.

    좀 더 나누는게 맞다고 봐요.


    https://brunch.co.kr/@cg4jins/2


    카카오 헤어샵 개발 후기입니다.

    후반에 보면 클래스 하나에 함수 4개 정도로 하고 싶다고 나와있네요.


  • 엡실론
    1k
    2020-09-04 13:23:49

    단순히 갯수만 가지고 말하기 힘들긴 하지만, 30개나 되면 좀 더 나눌수 있지 않을까 생각해 볼만한 것 같네요. getter, setter 같은 함수나 단순 유틸리티성 함수 제외하고요.

  • 도각도각
    3k
    2020-09-04 13:36:10

    정해져있는 갯수가 있는건 아닙니다만, 30개면 적당히 나눠줄 필요는 있어보입니다.

  • 마르세유1
    1k
    2020-09-04 14:32:51

    클래스의 재사용성을 검토해보세요.

    굳이 재사용할 필요가없는 클래스를 나눌필요는 없다고 생각합니다.

    설계시 이런항목들을 구분하여 설계했어야 했지만, 설계단계가 지난 시점이시라면

    클래스를 나누는 작업은.. 사이드이팩트만 커질뿐이라 생각드네요..

  • 7이닝
    658
    2020-09-04 14:38:55

    갯수는 무의미 하죠.

    모델에 따라 기능을 나눠 클래스화 하는게 맞다고 생각합니다.


    기능 안에 세부 기능으로 빼고 싶다 라는 생각이 들면 그때 하는거죠.

    대략적으로 무의미하게 빼는게 아니라 세부 로직이 무거워지면?

  • imkh
    1k
    2020-09-04 15:49:07

    리펙토리 기술중에 메소드 안에 소스 긴게 더 문제가 되서 최대한 나눠라~~

    이런 얘기도 있습니다.

    많다고 문제가 되진 않습니다.

    하지만 다른 class를 둬서 나눌수 있다면(분명한 기준으로) 나누는게 일반적이겠지요...

  • flipflop
    99
    2020-09-04 16:13:20

    봄꾸 좋은 의견 감사합니다.

    뀨엉뀨엉 좋은 의견 감사합니다.

    homemadepasta 좋은 의견 감사합니다.


    세분 다 구조적으로 문제가 없다면 크게 상관 없다는 의견이시군요..! 이 부분도 어느정도 동의합니다. 하지만 메소드가 많아지니 여간 머리가 아프더라구요. 어쩌면 제가 구조를 잘못짜고, 모듈화가 덜 되어있기 때문에 이런 생각을 하는거라 생각합니다!


    힘내라마소 좋은 의견 감사합니다.

    엡실론 좋은 의견 감사합니다.

    도각도각 좋은 의견 감사합니다.


    우선 코드의 줄은 최대한 짧게, 10줄을 넘지 않도록 처리하다보니 많아지긴 했는데.. 음.. 확실히 문제긴 하군요. 분리하는것도 옳다고 봅니다!


    마르세유1 좋은 의견 감사합니다.

    7이닝 좋은 의견 감사합니다.


    모델에 따라 기능을 나누고 클래스화 하는게 음.. 정답이라고도 생각합니다..! 조금 더 나눠야겠군요. 재사용성을 증대시킬 만한 걸로요.


    imkh 좋은 의견 감사합니다.


    맞습니다 그런 글을 읽은 적이 있는것 같네요..!




  • 로그인을 하시면 댓글 을 등록할 수 있습니다.