[소프트웨어개발] 코드 최적화

thingzoo·2024년 2월 5일
0
post-thumbnail

코드 최적화

주어진 코드를 변경하지 않으면서 실행속도를 개선하거나 메모리 사용을 최소화하는 과정

코드 스멜(Code Smell)

  • 코드의 문제점을 나타내는 지표
  • 구체적인 버그가 아니지만, 개선이 필요한 코드의 징후

스파게티 코드(Spaghetti Code)

  • 읽기 어렵고 유지보수가 힘든 복잡한 코드

외계인 코드(Alien Code)

(20.6)

  • 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램 코드

리팩토링(Refactoring)

  • 코드의 외부 동작을 변경하지 않으면서 내부구조를 개선하는 방법
  • 목적: 가독성, 유지보수성 향상
  • 리팩토링의 코드스멜: 읽기 어려운/복잡한/중복되는 코드

클린코드(Clean Code)

  • 명확하고, 읽기 쉬운 코드를 작성하는 원칙과 기법에 기반한 코드
  • 특징: 의존성 최소화, 가독성 향상, 중복 최소화

클린코드 구현방법

  • 클래스명, 메서드명, 변수명은 명사를 사용하며 의미있는 이름으로 작성
  • 불필요한 주석을 제거하고 의도를 명확히 기술한 주석을 작성
  • 리팩토링을 통해 점진적인 개선을 통해 코드의 복잡도를 낮춤

클린코드 작성원칙

(20.8)

  • 가독성
    • 누구든지 코드를 쉽게 읽을 수 있도록 작성
    • 코드 작성 시 이해하기 쉬운 용어 사용
  • 단순성
    • 코드는 가급적 기능별로 간단하게 작성
    • 한 번에 한 가지 처리
    • 클래스/메서드/함수 등을 최소단위로 분리
  • 의존성 배제
    • 코드가 다른 모듈에 미치는 영향 최소화
    • 코드 변경 시 다른부분에 영향이 없도록 작성
  • 중복성 최소화
    • 코드의 중복을 최소화
    • 중복된 코드는 삭제하고 공통된 코드 사용
  • 추상화
    • 상위객체는 간랴가게 기능적 특성을 나타내고
    • 상세내용은 하위객체에서 구현
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글