리팩터링: 코드 구조를 체계적으로 개선하여 효율적인 리팩터링
마틴 파울러 지음; 개앞맵시, 남기혁 옮김한빛미디어
( 출판일 : 2020-04-01 )
작성자 :
구○욱
작성일 : 2026-04-17
페이지수 : 550
상태 : 승인
리팩토링의 기법으로 함수추출, 변수인라인, 함수옮기기, 조건보로직 다형성구조로 만들기 등이 있다.
그런데 이 기능을 볼떄면
역시나 기호화이고, 조합성의 원리라고 생각이 들었다.
리팩토링의 목적은 무엇일까?
결과값은 동일하지만,
코드이해와 수정이 쉽게 만드는 구조라 한다.
그런데 여기서 '결과값'이 동일하다는 것과
'수정'과 '이해'는 무엇을 의미할까?
우연찮게 얻어걸린.
내부구조를 모르는 코드.
왜 이렇게 작동하는지 정확히 모르는 복잡한 코드가 존재할 수 있다.
어쩌면 머신러닝을 통해 나온 가중치모델이 그러한게 아닐까.
다만,그렇다 하더라도 어떠한 입력과 결과값이 특정 결과로 이어지는 패턴으로 인식할 수도 있다.
예를들어, 식물이 왜 꽃을 피우는지 몰라도 꽃봉오리를 보고 꽃을 예상하듯이 말이다.
그리고 그 원리를 파악했을때,
분자생물학의 가능성과도 연결된다고 본다.
전부 동일하다고 본다.
코드도 똑같다.
이 리팩토링은 일종의 지식체계를 쌓는 과정이라 본다.
그런데 이 리팩토링자체가 지식이라기 보다는
지식체계가 쌓일 수 있도록
그 구조를 형성한다고 본다.
결국 함수추출은 '의미화 및 템플릿'과정과 같고,
변수인라인은 '매개변수화'와 같다.
조건부로직 다형성(POLY)화는
조합성의 원리와 같다.
그런데 이 책에서는 그 의미화를 어떻게 해야하는지를 다루기보다는
그 의미화를 해야한다고 말하고,
그 예시를 보여줄 뿐이다.
ai가 코딩을 해준다.
하지만 내가 그것을 이해하지 못하는 것은
AI에게 의존적인 상황임을 드러낸다고 본다.
그리고 리팩토링을 보고,
요즘 AI가 뛰어난만큼 나는
나의 지식체게에 맞게
코드단위에서 내가 체계를 만들어줘야함을 느꼈다.
단순히 챗봇프로그램을 만들어달라고 요청할 수도 있다.
하지만 나는 챗봇을 여러 요소로 분해한뒤,
각 요소간의 연결방식을 정리하고,
각 연결방식과 기능들의 입출력값을 정리하고 분류한뒤
그 연결방식과 기능을작성하는 기본단위와
주석까지 제어한뒤에
명령을 내리는게 좋다고 본다.
그러했을때,
나는 정규표현식을 쓰든
그 코드자체를 보고
내가 함수단위로 출력할 수 있을것이다.
그러면 나는 AI를 리팩토링 하기쉬운 구조로만들고
그 구조가 곧 데이터가 되고
그 데이터를 바탕으로 코딩을 하게 만든다면
AI가 쌓는 코드들이 진정한 자산이 될 것이라 본다.
하지만 그저 AI가 만들어주길 바란다면
AI가 수백만, 수천만줄을 만들어준다해도
그것은 지식체계로 남지 않고
계속 AI에게 의존할 수밖에 없는 구조가 될것이다.\