본문 바로가기
기초 CS 정리

클린 코드 / 리팩토링 / 시큐어링

by 쿠리의일상 2023. 2. 14.
클린코드란 가독성이 높은 코드를 의미

 

가독성을 높이려면

  • 네이밍
  • 오류가 없어야
  • 중복이 없어야
  • 의존성을 최대한 줄여서
  • 클래스 혹은 메서드가 한가지 일만 처리해야 함
  • 주석 사용
  • 들여쓰기와 줄바꿈
  • 일관성 있고 간결한 패턴

얼마나 코드가 잘 읽히는 지, 코드가 지저분하지 않고 정리된 코드인지 나타내는 것이 클린코드이다.

 

단순하고 직접적이며 특정 목적을 달성하는 방법은 하나만 제공하고, 간단한 추상화를 고려하는 것이 비결

 

 

리팩토링이란, 프로그램의 외부 동작은 그대로 둔 채, 내부의 코드를 정리하면서 개선하는 것

 

코드의 가독성을 높이고 향후 이루어질 유지보수에 큰 도움이 되는 작업이 리팩토링으로 리팩토링 필요한 코드는?

  • 중복 코드 → 캐싱
  • 긴 메서드
  • 거대한 클래스
  • Switch문 등의 조건문이 복잡한 경우 → 단순화
  • 절차지향으로 구현한 코드

리팩토링은 성능을 최적화시키는 것이 아니라 코드를 신속하게 개발할 수 있게 만들고, 코드 품질을 좋게 만들어주는 것이다.

특히 객체 지향 특징을 살리려면 switch-case문은 오버라이드로 바꾸는 것이 좋다.

 

리팩토링 진행법 : 아키텍처 관점 → 디자인 패턴 적용 → 단계적으로 하위 기능에 대한 변경

의도하지 않은 기능 변경이나 버그 발생에 대비하여 회귀테스트 진행

코드 인스펙션(Code inspection) : 작성한 개발 소스 코드를 분석하여 개발 표준에 위배되었거나 잘못 작성된 부분을 수정하는 작업

  1. Planning
  2. Overview : 교육과 역할 정의
  3. Preparation : 인스펙션을 위한 인터뷰, 산출물, 도구 준비
  4. Meeting : 검토 회의로 각자 역할 맡아 임무 수행
  5. Rework : 발견한 결함을 수정하고 재검토가 필요한지 여부 결정
  6. Follow-up : 보고된 결함 및 이슈가 수정되었는지 확인하고 시정조치 이행

 

 

시큐어 코딩

안전한 소프트웨어 개발을 위해 소스코드 등에 존재할 수 있는 잠재적인 보안약점을 제거하는 것

  • SQL 인젝션 취약점으로 개인정보 유출
  • URL 파라미터 조작 개인정보 노출
  • 무작위 대입공격 기프트카드 정보 유출

'기초 CS 정리' 카테고리의 다른 글

웹서버와 WAS 차이  (0) 2023.02.17
Agile 애자일 과 스크럼  (0) 2023.02.15
마이크로 서비스 아키텍처 (MSA)  (0) 2023.02.13
데브옵스 DevOps  (0) 2023.02.12
Blocking/Non-Blocking 과 Synchronous/Asynchronous  (0) 2023.02.11