728x90
1. 클린코딩
💡 코드를 작성하는 의도와 목적이 명확하며 가독성이 높은 코드
- 특징
- 명확한 네이밍
- 오류, 중복 없음
- 의존성 최대한 감소
- 클래스 혹은 메소드가 한 가지 일만 처리해아함
- 규칙
- Naming : 변수, 클래스, 메소드에 의도가 분명한 이름 사용
- Comment : 주석은 반드시 달 이유가 있는 경우에만 작성
- Aesthetics (꾸미기): 규칙적인 들여쓰기와 줄바꿈, 불규칙한 중복 코드 제거
- Making Control flow easy to read (흐름제거 만들기)
- 비교 시 왼쪽에 변수, 오른쪽에 상수
- 조건문 내에는 긍정문
- if/else 를 사용하며, 삼항 연산자는 매우 간단한 경우만
- do/while 루프의 사용은 가급적 삼가
- Function : 함수는 가급적 작게, 한번에 하나의 작업만 수행할 수 있게
2. 리팩토링
💡 프로그램의 외부 종작은 그대로 둔 채, 내부의 코드를 정리하면서 개선하는 것
- 종류
- 메소드 정리 : 그룹으로 묶을 수 있는 코드, 수식을 메소드로 변경
- 객체 간의 기능 이동 : 메소드 기능에 따른 위치 변경, 클래스 기능을 명확히 구분
- 데이터 구성 : 캡슐화 기법을 적용해 데이터 접근 관리
- 조건문 단순화 : 조건 논리를 단순하고 명확하게 작성
- 메소드 호출 단순화 : 메소드 이름이나 목적이 맞지 않을 때 변경
- 클래스 및 메소드 일반화 : 동일 기능 메소드가 여러 개면 수퍼클래스로 이동
- 방법
- 아키텍처 관점 시작 → 디자인 패턴 적용 → 단계적으로 하위 기능에 대한 변경
- 의도하지 않은 기능 변경이나 버그 발생 대비해 회귀테스트 진행
- 이클립스와 같은 IDE 도구로 이용
3. 시큐어코딩
💡 소프트웨어 개발 단계에서 보안 약점을 제거함으로써 소프트웨어의 취약점과 해킹의 위험성을 줄여주는 방어적 프로그래밍 기법
- 유형
- 입력 데이터 검증 및 표현 : SQL 삽입 등
- 보안 기능 : 부적절한 인가 허용 등
- 시간 및 상태 : 경쟁 조건 , 제어문을 사용하지 않는 재귀함수 등
- 에러 처리 : 오류상황 대응 부재 등
- 코드 오류 : NULL 포인터 역참조 등
- 캡슐화 : 제거되지 않고 남아있는 디버거 코드 등
- API 오용 : DNS 조회에 의존한 보안 결정 등
728x90
'CS' 카테고리의 다른 글
[CS / SW] 애자일 방법론 (0) | 2023.10.24 |
---|---|
[CS / SW] TDD (Test Driven Development) (0) | 2023.10.19 |
[CS / OS] 파일시스템 (0) | 2023.10.10 |
[CS / OS] 메모리 (0) | 2023.10.10 |
[CS / OS] 페이지 교체 알고리즘 (0) | 2023.10.10 |