애플리케이션테스트케이스설계
소스코드 최적화 이해
- 읽기 쉽고 변경 및 추가가 쉬운 클린 코드를 작성하는 것으로, 소스 코드 품질을 위해 기본적으로 지킬 원칙과 기준을 정의
나쁜 코드
- 다른 개발자가 로직을 이해하기 어렵게 작성된 코드
- 대표적인 사례로 처리 로직의제어가 정제되지 않고 서로 얽혀 잇는 스파게티 코드, 변수나 메소드에 대한 이름 정의를 알 수 없는 코드, 동일한 처리 로직이 중복되게 작성된 코드
- 문제점
- 스파게티 코드의 경우 잦은 오류가 발생할 가능성이 있음
- 소스 코드 이해가 안 되어 계속 덧 붙이기 할 경우 코드 복잡도 증가
클린 코드 Clean
- 잘 작성되어 가독성이 높고 단순하며 의존성을 줄이고, 종복을 최소하하여 깔끔하게 잘 정리된 코드
- 효과성
- 중복 코드 제거로 애플리케이션의 설계 개선
- 가독성이 높으므로 애플리케이션의 기능에 대해 쉽게 이해 가능
- 버그를 찾기 쉬워지며, 프로그래밍 속도가 빨라짐
클린 코드 작성 원칙
- 가독성
- 이해하기 쉬운 용어
- 들여쓰기 기능
- 단순성
- 한번에 한 가지 처리 수행
- 클래스 / 메소드 / 함수를 최소 단위로 분리
- 의존성
- 영향도를 최소화
- 코드의 변경이 다른 부분에 영향이 없게 작성
- 중복성
- 중복된 코드를 제거
- 공통된 코드를 제거
- 추상화
- 클래스 / 메소드 / 함수에 대해 동일한 수준으로 추상화
- 상세 내용은 하위 클래스 / 메소드 / 함수에서 구현
소스코드 최적화 기법
- 클래스 분할 배치 기법
- 클래스는 하나의 역할, 책임만 수행할 수 있도록 응집도를 높이고 크기를 작게 작성
- 느슨한 결합 기법
- 클래스의 자료구조, 메소드를 추상화 할 수 있는 인터페이스 클래스를 이용하여 클래스 간의 의존성을 최소화
- 코딩 형식 기법
- 줄바꿈으로 개념을 구분하고 종속함수를 사용
- 호출하는 함수를 먼저 배치하고 호출되는 함수는 나중에 배치
- 변수 선언 위치를 지역 변수는 각 함수 맨 처음에 위치
- 주석문 사용을 습관화
소스코드 품질분석 도구의 개념
- 소스 코드에 대한 코딩 스타일, 설정된 코딩 표준, 코드의 복잡도, 코드 내에 존재하는 메모리 누수 현황, 스레드의 결함 등을 발견하기 위하여 사용하는 분석 도구
- 정적 분석 도구
- 동적 분석 도구