소프트웨어 개발 단계 중 구현 단계는 시스템의 설계 명세서를 바탕으로 모듈 단위의 코딩과 디버깅 및 단위 테스트가 이루어지는 단계다. 코딩은 구현의 주요 활동 중 하나일 뿐 구현 전체를 가리키는 이름이 아니고, 디버깅과 단위 테스트까지 아우르는 포괄적인 단계명이 구현이다.
구현의 대상이 되는 모듈은 프로그램을 작은 부분으로 분할한 단위다. 모듈화의 장점은 오류가 발생했을 때 해당 모듈만 수정하면 되므로 오류의 파급 효과가 줄어드는 것이고, 완성된 모듈을 다른 프로그램에서도 재사용할 수 있어 개발 효율이 높아지는 것이며, 전체를 관리하기 쉬워지는 것이다. 각 모듈의 기능을 명확히 정의해 인터페이스를 단순하고 명확하게 만드는 것도 장점이므로, 모듈화가 인터페이스를 복잡하게 만든다는 설명은 장점이 아니다.
코드를 작성할 때는 클린 코드 원칙을 따른다. 클린 코드는 다른 사람이 쉽게 읽고 이해할 수 있으며 유지보수가 용이한 코드다. 단순하고 명료하게 작성하고, 다른 모듈에 미치는 영향을 최소화해 결합도를 낮추고, 누구든 쉽게 이해할 수 있게 쓴다. 중복이 최대화된 코드는 수정 시 여러 곳을 고쳐야 하고 오류 위험이 커지므로 클린 코드의 원칙과 정반대다.
예제
시험에서는 '설계 명세서를 바탕으로 코딩과 디버깅 및 단위 테스트가 이루어지는 단계는?'이라는 문제의 답으로 구현을 고른다. '소프트웨어 모듈화의 장점이 아닌 것은?'에서는 '인터페이스가 복잡해진다'가 오답 보기다. '클린 코드 작성 원칙으로 거리가 먼 것은?'의 답은 중복이 최대화된 코드 작성이다.
대표 기출 3문항
다음 중 클린 코드 작성원칙으로 거리가 먼 것은?
누구든지 쉽게 이해하는 코드 작성
중복이 최대화된 코드 작성
다른 모듈에 미치는 영향 최소화
단순, 명료한 코드 작성
정답과 해설 보기
정답 ② · 클린 코드 작성 원칙에 해당하지 않는 것을 찾는 문제이다. 클린 코드의 원칙에는 누구나 쉽게 이해하고 수정할 수 있는 가독성 있는 코드 작성, 중복 최소화, 다른 모듈에 미치는 영향 최소화, 단순하고 명료한 작성 등이 있다.
클린 코드는 가독성과 유지보수성을 위해 중복을 제거하고 단순 명료하게 작성하는 것을 원칙으로 한다.
소프트웨어 모듈화의 장점이 아닌 것은?
오류의 파급 효과를 최소화한다.
기능의 분리가 가능하여 인터페이스가 복잡하다.
모듈의 재사용 가능으로 개발과 유지보수가 용이하다.
프로그램의 효율적인 관리가 가능하다.
정답과 해설 보기
정답 ② · 소프트웨어 모듈화의 장점이 아닌 것을 고르는 문제이다. 모듈화는 시스템을 기능 단위로 분리함으로써 오류 발생 시 파급 효과를 최소화하고, 모듈의 재사용을 통해 개발과 유지보수를 용이하게 하며, 프로그램 전체를 효율적으로 관리할 수 있게 한다.
모듈화는 기능 분리를 통해 인터페이스를 단순화하고 관리성을 높이는 것이 목적이므로, 인터페이스가 복잡해진다는 설명은 장점이 아니다.
시스템의 설계 명세서를 바탕으로 모듈 단위의 코딩과 디버깅 및 단위 테스트가 이루어지는 소프트웨어 개발 단계는?
코딩
구현
테스트
프로그램 설계
정답과 해설 보기
정답 ② · 설계 명세서를 기반으로 코딩과 디버깅, 단위 테스트까지 수행하는 개발 단계를 묻는 문제이다. 구현 단계는 설계 명세서를 실제 프로그램 코드로 변환하는 단계로, 코딩과 디버깅, 단위 테스트를 포괄하는 상위 개념이다.
설계 명세서를 바탕으로 코딩, 디버깅, 단위 테스트를 모두 수행하는 포괄적인 단계는 구현 단계이다.