아머두어라두
51
2021-03-27 18:11:12
17
1836

경력2년차) 코드가 더럽다, 이해를 못하겠다, 왜 이렇게 짰냐?


안녕하세요


현재 솔루션 업체 경력 2년차 주니어 개발자인데요!


선배님들한테 자주 듣는 소리가 있습니다..


"코드가 더럽다, 이해를 못하겠다, 왜 이렇게 짰냐?"


이런 말인데요 ㅠㅠ


사실 의도한대로 작동만 해도 참 다행이라고 여기고 빠르게 진행하는걸 코딩을 잘한다고 생각해왔는데요.


"남들이 잘 이해할 수 있도록, 확장성 있게, 무결하게, 깔끔하게.. 이런식으로 코딩을 하는게 진짜로 잘하는게 아닐까?" 라는 생각을 경력 2년차가 되어서야 진지하게 생각하기 시작했습니다.


이런 코드 품질(?) 실력을 키우기 위해선 어떤 노력을 해야 할까요..?


2
  • 댓글 17

  • pooq
    7k
    2021-03-27 18:15:56

    잘난 선배님들의 코드를 보고 공부하면되겠네요.

  • rey
    367
    2021-03-27 18:18:05

    DRY, SOLID, YAGNI, KISS 같은 용어들을 다 들어보고 잘 지키고 있는데도 그렇게 말하면 다른 잘 만든 오픈소스 프로젝트를 한번 보세요. 잘 만든 소스들을 보면 주석이 없어도 마치 소설처럼 술술 읽힙니다.

  • 캐티
    1k
    2021-03-27 18:21:53

    깔끔. 실력. 효율. 부질없는 소리일꺼빈다. 소스코드 보호를 위해서 오히려 난독화를 하는 경우도 있고 프로그램 패킹기법으로 고도에 방어체계를 쓰기도 하는쩌여.

    고수라면 그런거에 관련하지 않을꺼빈다. 어차피 구현 설계도가 중요하는쩌여. 그렇게 이해를 잘 하고 싶으면 필요한 사람이 설계도면을 만들어야 하빈다.

    -9
  • fender
    21k
    2021-03-27 18:29:48

    캐티 // 난독화는 주로 빌드할 때 적용해서 배포하는 것이지 난독화 한 소스로 개발하진 않습니다.

    난독화를 하니 소스 가독성이 중요하지 않다면 어차피 최종 결과는 기계어일테니 자바스크립트고 자바고 다 갖다 버리고 모두 어셈블리를 배워서 개발하자는 이야기도 유효할 것입니다.

  • dev_og
    628
    2021-03-27 18:31:31

    사수말이 조금 공격적이긴 한데,

    그런 생각이 들게 되었다면 좋은 방향으로 가는건 맞는 것 같습니다.

  • defult
    9k
    2021-03-27 18:39:30

    사내 코드에 적용된 디자인패턴을 공부하세요.


    만약에 사내 코드 구성에 맞춘게 더럽다는 소리 들으면 그건 이직 고려하는게 낫고요.

  • Mambo
    5k
    2021-03-27 19:13:32

    개발팀에서 쓰는 정적분석도구가 없다면 Sonarlint로 간단하게 돌려보세요

    https://rules.sonarsource.com/java

    이클립스나 인텔리제이에서 쓸수 있게 플러그인 지원합니다.

  • 황금바벨
    38
    2021-03-27 19:20:21

    유닛테스트를 고려하면 나아지는 경향이 있습니다. 개인적인 경험.

  • 장독깨기
    1k
    2021-03-27 19:38:30 작성 2021-03-27 19:39:34 수정됨

    ㅎㅎ 너무 신경 쓰지 마세요..

    실력 없는 선임들이 지적할게 없으면 저런 소리 곧 잘 합니다.ㅋ

    소스 코드는 주석 잘 달고 줄 잘 맞추고, 가급적 중복 코드 제거하고 그 정도 하면 됩니다.

    기능 잘 돌아가고 특히, 예외 처리 잘 해두는게 잘 하는 겁니다.

    클래스를 유연하고 확장성있게 디자인 하면 좋은데요,

    이건 꾸준히 공부를 하면서 생각을 좀 해야겠죠..


    -1
  • ㅅㅅㅇㅎ
    83
    2021-03-27 20:14:30 작성 2021-03-27 20:16:13 수정됨

    저도 한때 복잡한 코드로 어려운 기능 구현하는게 실력이라고 생각했죠.

    그러나 가독성 좋게 하는 것도 아주 필요한 실력이라고 생각합니다.


    저 같은 경우는 절대 if문 바로 밑에 if문 쓰지 않고 복잡한 data strcuture 인 경우 지역변수에 담아놓고 처리합니다.




  • 천사와악마
    841
    2021-03-27 20:17:34

    여기저기서 구글링해서 붙여다 넣은 소스면 일관성이 없으니 더럽다 표현 할 수 있습니다

    사람마다 체취가 다르듯 개발자마다 코드 냄새가 달라요

    그냥 붙여넣지말고 소화시켜 내 냄새가 나게 만드세요


    코드 퀄리티는 끊임없이 만들어보고 다듬어보고 경험에 기반해야 나오는 거니 시간이 필요합니다

    당장은 어려운 일이에요 :)

  • 헬스쟁이
    177
    2021-03-27 20:40:35

    기능 구현에는 문제없으시니 리팩토링 책을 읽어보시는 것은 어떨까요?


    https://book.naver.com/bookdb/book_detail.nhn?bid=7047630


  • salsal
    734
    2021-03-27 21:02:37

    좋은책 많이 읽어보세요

  • 마우니
    769
    2021-03-27 22:13:33

    꼭 보면 코드도 못짜는 놈들이 입만 살아서 시부렁 거리는 거죠.

  • 프리스톼터
    529
    2021-03-27 23:03:08

    제 사수가 for, if else를 최대한 쓰지말고 반복적인 코딩 하지말고 일반화를 신경쓰며 개발하라는 말을 잘 이해 못했는데 요즘은 그말이 조금씩 이해 가네요.

  • Dive_Drink_Develope
    5k
    2021-03-29 16:25:45

    여기서 신경안써도 된다는 분들은

    코드가 돌아만 가면 된다는건가?

  • 열공하자
    1k
    2021-03-30 18:01:09 작성 2021-03-30 18:02:03 수정됨

    본인 코드 리팩토링 해야겠다 시기가 드는 연차이십니다.

    생각이 안들면 하셔야 됩니다. 리팩토링 해도 더럽다고 지적도 받곤 했죠.

    신입때부터 2년차 3년차 때까지만 해도 

    "이직 할때 내가 짠 소스 챙겨서 다음프로젝트에 써먹고 해야지 이건 엄청 잘짠거야"

    하고 생각했는데요.

    5년차 쯤 됐나 파일업로드가 필요해서 예전에 소스 짰었지 하고 봤는데 오우 쉣..

    누가 봐도 멀 개발했는지 보이는 소스가 제일 좋다고 생각합니다.

    사수 말은 공격적이긴 해도 틀리진 않은것 같습니다.


    PS : 리팩토링을 하며 소스를 간결화 시키다 보면

    자신도 모르게 객체 지향 프로그래밍을 하게 됩니다.


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