코드 리팩토링 기법의 전력 효율성 분석 109 Analysis of Energy Efficiency for Code Refactoring Techniques Jae-jin Park Doohwan Kim †† Jang Eui Hong †† ABSTRACT Code refactoring focuses on enhancing the maintainability of software to extend its lifetime. However as software applications were varied and the range of its usage becomes broaden, there are some efforts to improve software qualities like performance or reliability as well as maintainability using code refactoring techniques. Recently, as low-energy software has become one of critical issues in mobile environment, developing energy efficient software through code refactoring becomes an important one. Therefore this paper has its goal to investigate whether the existing refactoring techniques can support energy efficient software generation or not. That is to say, the existing code refactoring techniques can cause the minus of energy efficiency because they did not considered the energy consumption in their refactoring process. This paper experiments and analyzes to check whether the M. Fowler’s code refactoring techniques can support the energy efficient software generation or not. Our research result can give to software developer some informations about energy-efficient refactoring techniques, and can support the development of software that has high maintainability and good energy efficiency. Keywords : Code Refactoring, Software Quality, Energy Consumption 코드 리팩토링 기법의 전력 효율성 분석 박 재 진 김 두 환 †† 홍 장 의 ††† 코드 리팩토링은 소프트웨어의 수명을 연장하기 위한 목적을 가지고, 유지보수성을 증진하는데 초점이 있다. 그러나 최근 소프트웨어의 유용성이 높아지고 활용 범위가 방대해지면서, 성능 및 신뢰성 등의 다양한 품질 속성을 코드 리팩토링을 통해 향상시키고자 하는 노력이 있었다. 최근 스마트 폰과 같은 모바일 기기에서 저전력 소프트웨어의 중요성이 강조됨에 따라, 전력 효율성을 보장하는 코드 리팩토링 기 법들도 필요하게 되었다. 본 연구에서는 코드 리팩토링이 소모 전력의 절감 효과를 가져 올 수 있는지를 확인하고자 하였다. 즉 기존에 제 시되었던 코드 리팩토링 기법들이 소모 전력에 대한 충분한 고려가 이루어지지 못했기 때문에 코드의 유지보수성은 향상시키지만, 전력 효 율성이 감소하는 결과를 초래할 수 있다는 것이다. 따라서 본 연구에서는 M. Fowler가 개발한 코드 리팩토링 기법들을 대상으로 전력 효 율성을 분석한다. 제시된 연구 결과를 통해 개발자들은 어떠한 리팩토링 기법이 전력 효율성을 제공하는지 판단할 수 있으며, 이를 통해 유 지보수성이 높은 전력 효율적인 소프트웨어를 개발할 수 있을 것이다. 키워드 : 코드 리팩토링, 소프트웨어 품질, 소모 전력 KIPS Tr. Software and Data Eng. Vol.3, No.3 pp.109~118 pISSN: 2287-5905 1. 서 최근 모바일 기기와 같은 임베디드 시스템들은 일반적인 시스템에 비해 한정적인 배터리를 사용하는 특징이 존재한 이 논문은 정부(미래창조과학부)의 재원으로 한국연구재단-차세대정보컴 퓨팅기술개발사업(2012-0006426)과 기초연구사업(2011-0010396)의 지원을 받아 수행된 것임. 정 회 원 : 충북대학교 컴퓨터과학과 석사과정 ††준 회 원 : 충북대학교 컴퓨터과학과 박사과정 †††종신회원 : 충북대학교 소프트웨어학과 교수 논문접수 : 2013년 12월 12일 수 정 일 : 1차 2014년 1월 21일 심사완료 : 2014년 1월 21일 * Corresponding Author : Jang Eui Hong(jehong@chungbuk.ac.kr) 다[1]. 따라서 보다 긴 시간동안 서비스를 받기 위해서는 전 력을 효율적으로 사용해야 한다. 이러한 전력 소모 절감을 위하여 저전력 하드웨어 개발과 더불어 소프트웨어 전력 분 석에 대한 중요성이 강조되고 있다[2, 3]. 또한 스마트폰과 태블릿 PC의 보급으로 전력 효율성이 더욱 중요한 이슈가 되고 있다[4-6]. 코드 리팩토링은 보통 소프트웨어의 유지보수성을 향상시 키기 위해 사용하는 기법이며, 최근 성능과 안전성과 같은 다양한 품질 속성을 향상시키기 위해 활용되는 특징을 갖고 있다[7, 8]. 최근 이슈가 되고 있는 전력 효율성은 코드 리팩 토링에서도 고려되어야 한다. 예를 들어 개발자가 저전력 http://dx.doi.org/10.3745/KTSDE.2014.3.3.109