북한에서 소프트웨어(SW)들의 내부 구조를 바꾸는 연구를 진행하고 있는 것으로 알려졌다.

12월 18일 대북 소식통에 따르면 김일성종합대학이 발행한 학보 정보과학 2021년 제67권  제3호에 ‘쏘프트웨어의 재분해를 위한 코드결함의 식별방법’이라는 논문이 게재됐다.

논문의 영문 제목을 보면 재분해는 Refactoring, 코드결함은 Code Smell을 뜻한다.

논문은 소프트웨어(SW) 재분해를 효율적으로 진행하기 위해 코드에 내재돼 있는 결함(Bad Smell)의 종류 뿐 아니라 그것의 원인으로 되는 SW의 실체들과 그 포괄적 범위들을 정확히 반영해 코드결함 식별 방법을 정량적으로, 논리적으로 정식화해야 한다고 주장했다.

논문은 선행연구에서는 코드결함을 측정량에 기초해 식별하고 오류 예측을 위해 코드결함 식별 원리를 논리적으로 정식화했다고 설명했다. 그러나 SW 재분해와 관련된 요구 그리고 코드결함으로 되는 코드 부분을 정확하게 반영하지 않았다고 지적했다.

이에 논문은 매 코드결함들을 SW의 실체들과 여러 측정량들과의 연관 속에서 논리적으로 정식화해 코드에 내재돼 있는 결함들의 종류와 그 결함이 있는 코드 부분을 정확히 식별하는 방법을 제안했다고 밝혔다.

논문에서 지칭한 SW 재분해는 코드 리팩토링을 뜻한다. 리팩토링은 SW 기능, 동작, 외부 화면 등을 그대로 두고 내부 구조와 알고리즘 등을 바꾸는 것이다. 리팩토링을 하는 이유는 SW의 성능을 높이고 유지보수를 쉽게 하며 오류와 취약점을 줄이려는 것이다.

북한 논문에서 언급한 코드결함 즉 코드스멜(code smell)은 리팩토링과 밀접한 관련이 있다. 코드스멜은 SW 코드에서 문제를 일으킬 가능성이 있는 소스 코드를 뜻한다. 리팩토링을 위해 코드스멜을 찾아내고 그것을 수정해야하는 것이다.

북한 논문은 코드스멜 종류로 God Class, Feature Envy, Inappropriate Intimacy, Data class, Brain Method, Shotgun Surgery, Dispersed Coupling, Message Chains, Long Method, Large Class, Long Parameter List 등을 설명했다.

논문은 결론에서 코드결함들을 SW의 실체들과 여러 측정량들과의 관계 속에서 논리적으로 정식화해 코드에 내재하는 코드결함의 종류와 그 결함이 있는 코드부분을 정확히 식별할 수 있게 했다고 밝혔다.

북한 연구진들이 코드스멜을 식별, 확인하는 방법을 연구한 만큼 이를 SW 리팩토링에 활용할 것으로 보인다.

강진규 기자  maddog@nkeconomy.com

* 독자님들의 뉴스레터 신청(<-여기를 눌러 주세요)이 NK경제에 큰 힘이 됩니다. 많은 신청 부탁드립니다.

 

저작권자 © NK경제 무단전재 및 재배포 금지