ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코딩 규칙 정하기 하루 전
    JAVA 2024. 12. 18. 00:50
    • 코딩 규칙 정하기에 앞서 코딩 규칙이 필요한 이유을 작성해본다.

    코딩을 잘한다는 것은?

    • 개발이라는 행위는 대부분 특정 조직에서 이윤을 만드는 것이 목적이다. (세상의 문제를 해결한다고는 하지만, 대부분이 돈이 되는 문제를 해결한다)
    • 회사 입장에서 개발의 목표는 짧은 리드타임, 큰 경제적 가치 창출이 전부다. (https://yeoon.tistory.com/178)
    • 경영자 입장에서 개발 관련해 해야할 일은 너무 쉽다. 분기별 인건비만 잘 관리하면 된다. 
      • 개발에서 이윤 아웃풋을 만들기 위한 투입 리소스는 100% "인간"이다.(서버비, 운영비 제외)
      • 경영자 입장에서 개발을 잘하는 사람은 기간, 예산에 맞춰 적시에 업무를 완수하는 사람이다.
    • 회사 입장에서 코딩을 잘하는 개발자는 요구사항을 짧은 기간 내에 완수하는 사람이다.  

    코딩을 잘하기 위해서는?

    • 짧은 기간 안에 개발하려면 어떤 것이 필요할까?
      • 개발범위, 인력, 시간 여러가지 있겠지만, 이번 글에서 이야기하고 싶은 것은 코드의 생산성 관리이다. 

    삼성 SDS - 클린코드

    • 위 그래프 처럼 코드의 생산성은 시간이 갈 수록 저하된다.

     

    코드 생산성은 왜 저하 될까? 

    • 코딩의 행위는 읽기와 쓰기로 되어 있다.

    책 - 프로그래머의 뇌

    • 오래된 프로젝트는 절대적으로 읽어야할 코드의 양이 많다. (= 레거시)
    • 위의 읽기 쓰기 60/40의 비율은 실무에서 빈번하게 95/5가 되기도 한다. 

    왜 코드 읽는 시간이 오래걸리는 걸까

    • 뇌가 처리할 수 있는 정보는 한계가 있는데, 소프트웨어의 복잡도는 뇌의 처리 용량을 아득히 초과하기 때문이다.

    책 - 프로그래머의 뇌

     

    코드 생산성을 유지하는 방법

    • 코드의 생산성을 유지하기 위해, 뇌의 부하를 줄이기 위해 리팩터링이라는 행위로 코드의 가독성을 높인다. 
    • 도대체 리팩터링에서 어떤 행위를 해야 코드의 가독성이 늘어나는 걸까?
    • 광범위한 주제이기에 각설하고 리팩터링 중 하나인 코딩 규칙, 코딩 스타일을 이야기하고 싶다. 

    코드 규칙, 스타일 가이드

    • 지속 가능한 (생산성 높은) 코드를 만들기 위해서는 일관된 코딩 규칙이 필요하다.
    • 코드의 format은 가독성에 큰 영향을 주는데, 맨 처음 잡으면 유지보수가 불가능하다.

    책 - 클린코드 96p

    • 한 대학 연구에서는 30년된 프로젝트 코드 78개의 코드를 분석했는데, 30년 전에 작성한 코드 방식을 현재까지 계속 사용하고 있다는 결과가 나왔다.

    책 - 프로그래머의 뇌
    책 - 좋은코드, 나쁜 코드

     

    책 - 구글 개발자는 이렇게 일한다.

     

    책 - 구글 개발자는 이렇게 일한다.

    결론

    일관된 코드 스타일을 가진 프로젝트는 가독성이 좋고, 생산성에서 경쟁력을 가진다.

    Java나 Kotlin 같은 언어에도 기본적으로 권장하는 코딩 규칙이 있다.  

    - 자바 공식 코딩 컨벤션 : https://www.oracle.com/java/technologies/javase/codeconventions-contents.html

    - 코틀린 공식 코딩 컨벤션 : https://kotlinlang.org/docs/coding-conventions.html#class-layout

     

    팀 코드 스타일을 정해서 다같이 따르자

    - 인텔리제이 Google Style 적용하기 -  https://yeoon.tistory.com/116

    - 코드 스타일이 중요한 이유?  https://yozm.wishket.com/magazine/detail/2499/

    - Java 포멧팅 자동화 - https://yeoon.tistory.com/151 

     

    반응형

    'JAVA' 카테고리의 다른 글

    [java] CompletableFuture 문법  (4) 2024.01.31
Designed by Tistory.