냉이국
55
2021-01-14 20:06:23
8
881

코드 최적화? 리팩토링?에 대해 조언좀 부탁드립니다


안녕하세요

업무를 하다가 고민이 생겨 조언을 구하고자 글을 씁니다.

저는 작년에 입사하여 겨우 기어다니고 있는 신입 개발자입니다. 처음 들어간 프로젝트가 중간중간 여러 사람 손을 타기도 하고 해서인지 곳곳에 누더기 코드가 보입니다

마음 같아서는 뜯어 고치고 싶지만 차마 능력이 부족하여 조금씩 틈틈히 리팩토링을 하고 있습니다


예를들어 간단하게 구조를 바꾼다거나 알아보기 쉽게 코드를 수정하곤 합니다

그리고 에디터에서 순환복잡도에 대해서 경고를 해주길래 불필요해 보이는 조건문을 제거하거나 겹치는 작업들은 따로 메소드를 만들기도 했습니다


그런데 문득 잘 하고 있는것인가? 그리고 내가 했던 것들이 과연 의미가 있을까 하는 생각이 들었습니다

겹치는 작업들을 빼놓은 메소드는 기껏해야 한 사이클당 두세번 정도 쓰이는데 굳이 새로운 메소드를 만들 필요가 있을까 싶기도 하고 

뭔가 눈앞에 있는것들을 처리하기에 급급한 코딩을 하는거 같다는 생각이 듭니다


여기 계신 선배 개발자분들은 어떤식으로 하셨었나요?? 추천하실만한 책이나 그런게 있을까요?

1
  • 댓글 8

  • 돈까스
    5k
    2021-01-14 20:10:23

    잘하고 계시네요.

    추천할 책은 역시 단연 마틴 파울러의 리팩터링 2판 이죠.

    작년 초에 오랫만에 2판이 나왔습니다.

    리팩링 으로 검색하세요. 자동으로 바꿔주는 사이트도 있습니다만, 아닌데는 리팩토링으로 하면 검색 안됩니다.

  • 팩토리큐브
    439
    2021-01-14 20:16:39

    위에서 말씀하신 리팩터링책 좋습니다.

    1판이 자바기반으로 오래전에 나왔었고,(대청이 최초 인쇄 -> 한빛)

    2판이 최근에 나오면서 스크립트 기준으로 설명하였습니다.

  • 한가
    607
    2021-01-14 20:16:45

    리팩토링 - 마틴파울러

    바이블인것 같습니다

  • Frudy
    6k
    2021-01-14 20:47:51

    의미있는거 맞다고 생각해요.

    아래 제 의견을 듣고 생각해보시어요.


    1. 잘하는 사람

    (1) 처음부터 리팩토링이 필요없는 완벽한 코드를 작성한다

    (2) 퇴근한다


    2. 못하는사람

    (1) 코드를 작성한다

    (2) 버그가 생긴다

    (3) 코드를 수정한다

    (4) 중복코드가 생긴다

    (5) 코드를 수정한다

    (6) 이하 반복


    퇴근을 일찍하려면 처음부터 코드를 잘 작성해야합니다.


    퇴근뿐만이 아니에요.

    일찍 퇴근한다는 것은 곧 자기개발시간을 더 많이 확보할 수 있다는 뜻이 되기 때문에,


    코드 못짜는 사람은 야근하는만큼 자기개발도 많이 못하지만

    코드 잘짜는사람은 야근도 덜하는만큼 자기개발도 많이할 수 있게되서


    결과적으로 기술력에서차이가 나게 될거라고 생각합니다.


    물론 

    1. 기능이 돌아가고

    2. 버그가 없으며

    3. 성능에 문제가 없다는 생각에 귀찮다고 넘어가는 날도 있겠지만,

    저는 제가 개발기간을 맞추는 선에서 최대한 깔끔하게 코드 짜려고 노력했으면 좋겠습니다.


    그런데 제 주변에서는 왜 자꾸

    리팩토링을 불필요한일 쓰잘데기없는일로 치부하는지 ㅡㅡ; 부들부들

  • 냉이국
    55
    2021-01-14 21:03:40 작성 2021-01-14 21:04:13 수정됨

    답글 달아주신 분들 감사합니다.

    일단 책부터 주문했습니다.


    책도 보면서 계속해서 고민해봐야 될 것 같습니다.

    저도 언젠가 잘하는 사람이 되고 싶네요 ㅎㅎ


    좋은밤 되세요~ 감사합니다~

  • 엡실론
    1k
    2021-01-15 02:29:28

    마틴 파울러의 리팩토링에도 언급되어 있었던 것 같은데,

    리팩토링 하는 건 좋은데 그에 앞서서 충분한 테스트 코드가 갖춰져 있는지를 살펴 봐야 합니다.

    툴이 자동으로 해주는 단순한 메소드 추출같은 거야 큰 문제 없겠지만, 조금만 복잡해져도 어떤 버그를 새로 만들어 낼지 모르는 일입니다. 개발자에게 가장 중요한건 버그 없이 올바르게 동작하는 코드이고, 리팩토링은 그걸 보조해 주는 도구일 뿐이니, 리팩토링하다가 새로 버그를 만들어 내는 일은 최대한 피해야 합니다.

  • aki2re
    34
    2021-01-15 10:54:44

    좋은 자세입니다.

    다만 내 소스야 문제가 없다지만 

    협업 시 남의 소스까지 리팩토링은 위험합니다. 

    마음에 들지 않아도 그냥 두시는편이 좋아요.


  • 초보개발자입니당
    899
    2021-01-15 17:29:46
    리팩토링 좋긴한데.. 남의 코드를 맘대로 고치는건 좋지않아요 책임도 다 나에게로 쏠리고 그 코드가 어떤식으로 동작하는지 알려면 테스트코드 주석이 잘되어있지 않는 이상 디버깅 하고 기획자랑 이야기도 해봐야할거에요.. 시간 엄청 듭니다.. 리팩토링은 보통 팀단위로 기간을 두고하는게 좋아요..
  • 로그인을 하시면 댓글 을 등록할 수 있습니다.