본문 바로가기
(Pilot) 탑기공/소프트웨어 개발

[탑기공] 리팩토링(Refactoring), 코드스멜(Code Smell)

by 두음달인 2023. 3. 5.
반응형


멘토링
블로그를 통해서 여러 번 강조한 것 같은데,
기술사 공부에 있어서 탑싯(TOPCIT)은 필독서라고 생각합니다. 
꼭 시간내서서 정독 해보시길 권해 드립니다. 

가) 리팩토링 개념

 

① 리팩토링 개요

 

외부에서 보는 프로그램 동작은 변경하지 않고 프로그램 내부 구조를 개선하는  것
즉, 소프트웨어의 외부적 기능은 수정하지 않고 내부적 구조 및 관계를 단순화하여
소프트웨어의 유지보수성을 향상해 품질을 높이는 활동

 

리팩토링 수행 이유

  • 오류발견과 디버깅 용이
  • 소프트웨어 요구사항 변경에 효과적 대응 가능
  • 복잡한 코드의 단순화 및 소스코드 가독성 향상
  • 프로그램 생산성 및 품질 향상

② 리팩토링 수행 절차

 

나) 코드스멜(Code Smell) 개념

 

코드스멜의 개념

읽기 어렵거나 중복된 로직을 가진 프로그램처럼
개발자가 이해하거나 유지보수하기 어려워 리팩토링의 대상이 되는 코드

 

② 코드스멜의 종류

 

다) 대표적인 리팩토링 기법

 

기출문제

 

(관리 129-2-6)
객체지향의 기법 중에는 리팩토링(Refactoring)과 디자인패턴(Design Pattern)이 있다.
두 기법을 각각 정의하고 공통점과 차이점에 대하여 설명하시오.

 

(관리 127-3-2)
리팩토링(Refectoring)에 대한 아래의 사항을 설명하시오.

가. 정의, 목적, 리팩토링 순서, 리팩토링 주요기법
나. 코드스멜(Code Smell)의 정의와 특징
다. 코드스멜의 종류를 3개 이상 기술하고 각각의 리팩토링 방법

 

(관리 119-4-2)
정보시스템 운영 및 유지보수 관점에서 소프트웨어 공학의 리팩토링(Refactoring) 기법을 활용한 3R(Reverse-Engineering, Re-Engineering, Re-use)에 대하여 설명하시오.

 

(응용 129-1-7)
소프트웨어 리팩토링(Refactoring)

 

참고 자료

 

탑싯 에센스 - 소프트웨어 개발

반응형

댓글