훈스비
개발잡부
훈스비
전체 방문자
오늘
어제
  • 분류 전체보기 (35)
    • 스터디 (29)
      • 데이터 분석 (4)
      • SQL (4)
      • Python (1)
      • JavaScript (1)
      • Spark (1)
      • DevOps (7)
      • 기타 (8)
      • 검색 엔진 (3)
    • 나의 이야기 (4)
      • 회사 생활 (3)
    • 사이드 프로젝트 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Docker
  • elasticsearch
  • flask
  • GCP
  • github copilot
  • helm
  • java
  • jupyterhub
  • k8s
  • Kubernetes
  • leetcode
  • linux
  • ncp
  • Ray
  • ReplicaSet
  • spark
  • spring
  • sql
  • udemy
  • Virtualization
  • vm
  • vsCode
  • vue
  • 개발원칙
  • 검색엔진
  • 데이터 분석
  • 랭킹
  • 백엔드
  • 사이드프로젝트
  • 유사도 정규화

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
훈스비

개발잡부

스터디/Python

[파이썬 클린코드] #1 클린 코드의 중요성

2022. 1. 26. 14:55

클린 코드란?

  1. 품질 좋은 소프트웨어를 개발하고
  2. 견고하고 유지보구가 쉬운 시스템을 만들고
  3. 기술 부채를 회피하는 것

코드를 포매팅하고 구조화하여도 클린 코드의 요건을 충족시켰다고 말할 수 없다.

클린코드는 그 이상의 유지보수성이나 소프트웨어 품질에 관한 것을 말한다.

 

클린 코드의 중요성

  • 민첩한 개발과 지속적인 배포 가능
    • 프로젝트를 일정하게 예측 가능한 속도로 지속적으로 배포하려고 한다면 유지보수가 가능한 좋은 코드를 갖는 것이 필수적임
    • 그렇지 않으면 새로운 기능을 추가할 때마다 리팩토링을 하고 기술 부채를 해결하기 위해 멈춰야 한다.

 

프로젝트 코딩 스타일 가이드 준수

  • 코딩 가이드라인은 품질 표준을 지키기 위한 최소한의 요구사항
  • 좋은 코드 레이아웃에서 가장 필요한 특성은 일관성
    • 코드가 일관되게 구조화되어 있으면 가독성이 높아진다.
    • 프로젝트의 모든 멤버가 표준화된 구조를 사용한다면 다른 사람에게 훨씬 익숙한 코드를 작성하게 될 것이다.
    • 익숙한 코드는 다른 멤버에게 패턴을 파악하고 오류를 감지하기 쉽게 만든다.
    • e.g. Perception in Chess(1973)
      • 다양한 레벨(초급자, 중급자, 마스터)에게 말의 위치를 기억하도록 하는 실험
      • 말의 위치가 무작위일 때는 레벨 별로 큰 차이가 없는 단순 암기 문제였다.
      • 말의 위치가 실제 게임에서 발생할 수 있는 논리적 순서(일관성과 패턴)를 따랐을 때는 레벨이 높을수록 다른 선수들을 압도했다.
      • 소프트웨어에서도 구조화된 패턴을 가진 코드라면 전문가일수록 훨씬 빠르게 이해할 수 있을 것이다.
    • PEP-8을 준수하였을 때의 이점
      • 검색 효율성(Grepability) : 코드에서 토큰을 grep(검색 명령어) 할 수 있기 쉽게 한다.
        •  
        • $ grep -nr "location=" >> 키워드 인자에 값을 할당할 때는 띄어쓰기를 사용하지 않음 $ grep -nr "location =" >> 변수에 값을 할당할 때는 띄어쓰기를 사용함
      • 일관성 : 코드 레이아웃, 문서화, 작명 규칙 등 일정한 포맷을 가지고 가독성을 높인다.
      • 코드 품질 : 코드를 구조화하여 살펴보면 한 눈에 코드를 이해하고 버그와 실수를 쉽게 찾을 수 있다.
저작자표시 비영리 변경금지 (새창열림)

    티스토리툴바