좋은 소프트웨어 설계는 처음부터 기능을 다 만들기보다 요그사항 전의서에 목적 사용자 시나리오 기능 비기능 요구사항 제약조건을 명확히 정리하고 이를 바탕으로 유스케이스 시퀀스 클래스 다이어그램 등으로 구조와 흐름을 시각화해 구현전에 오류를 줄이는 것이 핵심입니다 또한 기능을 모듈 단위로 잘게 나누고 인터페이스를 머저 정의하면 각 부분을 독립적으로 개발할 수 있어 유지수와 확장이 쉬워집니다 마지막으로 변경을 고려한 유연한 구조와 테스트 계획까지 함께 설계하면 실제 구현 난이도가 크게 낮아집니다