클린코드란 가독성이 높은 코드를 의미
가독성을 높이려면
- 네이밍
- 오류가 없어야
- 중복이 없어야
- 의존성을 최대한 줄여서
- 클래스 혹은 메서드가 한가지 일만 처리해야 함
- 주석 사용
- 들여쓰기와 줄바꿈
- 일관성 있고 간결한 패턴
얼마나 코드가 잘 읽히는 지, 코드가 지저분하지 않고 정리된 코드인지 나타내는 것이 클린코드이다.
단순하고 직접적이며 특정 목적을 달성하는 방법은 하나만 제공하고, 간단한 추상화를 고려하는 것이 비결
리팩토링이란, 프로그램의 외부 동작은 그대로 둔 채, 내부의 코드를 정리하면서 개선하는 것
코드의 가독성을 높이고 향후 이루어질 유지보수에 큰 도움이 되는 작업이 리팩토링으로 리팩토링 필요한 코드는?
- 중복 코드 → 캐싱
- 긴 메서드
- 거대한 클래스
- Switch문 등의 조건문이 복잡한 경우 → 단순화
- 절차지향으로 구현한 코드
리팩토링은 성능을 최적화시키는 것이 아니라 코드를 신속하게 개발할 수 있게 만들고, 코드 품질을 좋게 만들어주는 것이다.
특히 객체 지향 특징을 살리려면 switch-case문은 오버라이드로 바꾸는 것이 좋다.
리팩토링 진행법 : 아키텍처 관점 → 디자인 패턴 적용 → 단계적으로 하위 기능에 대한 변경
의도하지 않은 기능 변경이나 버그 발생에 대비하여 회귀테스트 진행
코드 인스펙션(Code inspection) : 작성한 개발 소스 코드를 분석하여 개발 표준에 위배되었거나 잘못 작성된 부분을 수정하는 작업
- Planning
- Overview : 교육과 역할 정의
- Preparation : 인스펙션을 위한 인터뷰, 산출물, 도구 준비
- Meeting : 검토 회의로 각자 역할 맡아 임무 수행
- Rework : 발견한 결함을 수정하고 재검토가 필요한지 여부 결정
- 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 |