-
Notifications
You must be signed in to change notification settings - Fork 0
1. 교정 유지보수
SonarCloud는 정적 코드 분석 도구로, 코드의 품질을 종합적으로 측정하고 개선하는 데 사용됩니다.
이 도구는 코드의 취약점, 버그, 코드 중복, 코드 표준 준수 여부 등을 분석하여 개발자에게 피드백을 제공합니다.
SonarCloud는 클라우드 기반 서비스로, 다양한 프로그래밍 언어와 빌드 도구를 지원하며, CI/CD 파이프라인에 통합하여 지속적인 코드 품질 관리를 가능하게 합니다.
아래 이미지는 SonarCloud에서 초기 분석한 결과입니다.
- Security 이슈: 6개
- Security Hotspot: 2개
- Reliability 이슈: 47개
- Maintainability 이슈: 106개
- Test Coverage: 0%
이 결과는 코드베이스에 보안 취약점, 신뢰성 문제, 유지보수성 문제 등이 존재하며, 테스트 커버리지가 전혀 없다는 것을 나타냅니다. 이러한 문제들은 코드의 안정성, 보안성, 유지보수성을 저하시킬 수 있으므로, 이를 개선하기 위한 조치가 필요합니다.
SonarCloud에서 제공하는 피드백을 활용하여 코드 품질을 개선하기 위해 다음과 같은 방법을 사용할 수 있습니다:
- 코드 리팩토링: 코드 중복을 제거하고, 코드 복잡도를 줄이며, 가독성을 향상시킵니다.
- 보안 이슈 해결: 발견된 보안 취약점을 분석하고 수정하여 보안성을 강화합니다.
- 코드 표준 준수: 코드 표준을 준수하여 일관된 코드 스타일과 품질을 유지합니다.
- 테스트 커버리지 향상: 단위 테스트, 통합 테스트 등을 추가하여 테스트 커버리지를 높입니다. 이는 코드의 안정성을 높이고, 새로운 변경 사항이 기존 기능에 미치는 영향을 최소화합니다.
SonarCloud를 이용하여 교정 유지보수를 진행한 결과, 코드 품질이 크게 개선되었습니다. 구체적인 결과는 다음과 같습니다:
- Security 이슈: 6개 -> 1개
- Reliability 이슈: 47개 -> 9개
- Maintainability 이슈: 106개 -> 22개
- Test Coverage: 0% -> 23.7%
Overall
기준
위 결과들은 교정 유지보수를 통해 코드 품질이 전반적으로 개선된 것을 보여줍니다.
- Security 이슈의 경우, 6개에서 1개로 크게 감소하여 보안성이 향상되었습니다.
- Reliability 이슈는 47개에서 9개로 줄어들어 코드의 신뢰성이 높아졌습니다.
- Maintainability 이슈는 106개에서 22개로 감소하여 코드의 유지보수성이 크게 개선되었습니다.
- Test Coverage는 0%에서 23.7%로 증가하여 테스트 커버리지가 향상되었고, 이는 코드의 품질과 안정성을 높이는 중요한 요소입니다.
결론적으로, SonarCloud를 활용한 교정 유지보수는 코드 품질을 효과적으로 개선할 수 있는 강력한 도구임을 확인할 수 있었습니다. 이러한 지속적인 코드 품질 관리와 개선 활동을 통해, 개발자는 보다 안정적이고 신뢰할 수 있는 소프트웨어를 제공할 수 있습니다.
SOLID 원칙은 객체지향 설계의 다섯 가지 기본 원칙을 의미합니다. 이 원칙들은 소프트웨어의 유지보수성, 확장성, 재사용성을 높이기 위해 사용됩니다.
-
단일 책임 원칙: 클래스는 단 하나의 책임을 가져야 합니다.
- 메일 조회 및 전송 기능을 분리
- 메일함 관리 기능을 별도의 클래스로 분리
- 기존 메일 조회 클래스에서 메일 리스트를 렌더링 하는 부분을 JSTL을 사용하여 렌더링하도록 변경
- 개방-폐쇄 원칙: 확장에는 열려 있고, 수정에는 닫혀 있어야 합니다.
-
리스코프 치환 원칙: 자식 클래스는 부모 클래스에서 가능한 행위를 수행할 수 있어야 합니다.
-
Mailbox
클래스와MailboxManager
클래스의 관계를 검토하여 LSP를 준수하는지 확인
-
- 인터페이스 분리 원칙: 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 됩니다.
- 의존 역전 원칙: 고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 합니다.
Copyright © 2024 동의대학교 객체지향설계 유지보수 팀. All rights reserved.