리팩토링 대작전 – 3. 효용

상당히 귀찮은 작업이었지만 효용도 만만찮았다. 여기서는 리팩토링으로 얻어진 장점들을 논해보려 한다. 분석 편의성 일단 디버그/프로파일링 시에 필요한 분석이 매우 편해졌다. 무료 툴들의 경우는 으레 함수 단위로 분석을 해주는데, 이렇게 한 가지 일만 하게 되면 함수만 알려줘도 어떤 부분이 문제가 되는지 알 수 있기 때문이다. 또한 디버그의 경우에도 스택에 올라간 함수들 이름만 따서 줄글로 이으면 뭘 […]

리팩토링 대작전 – 2. 부수고 또 부수고

시작하자마자 부수고 또 부수었다. 기존 코드를 ‘한 가지만 하는’ 함수로 나누다 보니 객체가 자연스레 생겼다. 그 객체 수가 불어나며 그를 묶어낼 패키지도 자연스레 정의되었다. 이 시기 ‘델파이 프로그래밍 언어‘가 나의 친구였다. C 프로그래밍 언어를 읽어보면서, 각 언어의 레퍼런스로 창시자가 내놓은 일명 ‘XX 프로그래밍 언어’가 정말 좋음을 이 때 깨달았다. 그래서 산 책인데, 이를 통해 10년 […]

1% 개발, 99% 유지보수 – 5. 에필로그

그 후로 나는 군대에 당첨되었고, 그러고도 많은 일이 있었고, 남아있는 수많은 일을 뒤로 하고 국방의 의무를 수행하기 위해 떠났다. 어느새 나래온 툴은 처음의 앳된 모습에서 점점 자신을 꾸밀 줄 아는 모습으로 변해갔으며, 내가 만든 다른 유틸리티들의 든든한 토대가 되어 더티 테스트 툴의, 그리고 수명 테스트 툴이 뿌리를 박을 수 있도록 도와주었다. 오늘도 수많은 프로그램들이 그 […]

1% 개발, 99% 유지보수 – 4. 인텔 드라이버발 위기

이 글이 다루는 시기: 2013년 5월 = 첫 버전 공개로부터 9개월차 이후로 나래온 툴은 그런대로 잘 나갔다. 그러나 나래온 툴의 앞날에 대형 사건이 몰려오고 있었으니… 나래온 툴의 전성기가 언제였나? 하면 딱 고를 수는 없지만, 나래온 툴의 위기가 언제였나? 하면 딱 고를 수 있는 때가 하나 있다. 총체적 난국. 극복하지 못했다면 나래온 툴은 거기서 끝났을 것이다. […]

1% 개발, 99% 유지보수 – 3. 수동 트림

이 글이 다루는 시기: 2012년 10월 ~ 2013년 1월 = 첫 버전 공개로부터 2개월 ~ 5개월까지 트림이라는 기능이 있다. 해당 위치의 자료가 더 이상 필요가 없게 될 경우 마크하는 기능인데, 이 기능이 왜 필요한지는 이 글을 보면 좋다. 이처럼 GC를 위해서는 빈 공간이 필요한데, SSD 입장에서는 어떤 공간이 빈 공간인지 모른다는 문제가 있다. 따라서 운영체제에서 […]

1% 개발, 99% 유지보수 – 2. Passthrough 자체 구현

이 글이 다루는 시기: 2012년 10월 ~ 12월 = 첫 버전 공개로부터 2개월 ~ 4개월까지 원래 나래온 툴의 HDDInfo를 대체하기 전까지만 해도 나는 별 특색 없는 학생 1이었고, 나래온 툴도 코어는 타인의 라이브러리를 썼을 뿐인 평범한 프로그램이었다. 스토리지 유틸리티 프로그래머라는 입지가 앞으로 얼마나 도움이 될지는 모르겠으나, 나에게 이런 특색을 부여하고 나래온 툴이 나름 시장에서 이름을 […]

1% 개발, 99% 유지보수 – 1. 초기의 버그들

이 글이 다루는 시기: 2012년 8월 ~ 10월 = 첫 버전 공개로부터 2개월까지 군 생활에 바쁘다 보니, 이번 글도 또 기억이 아슬아슬해질 즈음에 쓰게 되었다. 이번 글은 초기의 버그들에 대해서 다루려고 한다. 조합이 문제가 되는 경우가 많은 현재와 달리(즉 n가지 조건이 모두 갖추어져야 재현이 가능한 버그), 초기에는 프로그램 자체가 잘못 만들어져 나오는 버그가 많았다. 고백하자면 […]

리팩토링 대작전 – 1. 문제점 파악

제일 먼저 해야 할 일은 문제점을 파악하는 일이다. 문제점을 파악하면서 새로운 구조를 생각해보기로 했다. 나래온 툴의 근본적인 문제는 기능 자체에 대해서는 많은 고심 끝에 만들어진 것들이지만 내부는 별 생각 없이 만들었다는 점이다. 프로그램이 오래 갈 것에 대해서 손톱만큼도 생각을 해 보지 않은 것이 설계에 묻어난다. 물론 개발이 계속 진행되면서 모듈화가 지속적으로 이루어졌지만, 그러지 못한 부분들도 […]

나래온 툴을 만든 선택들 – 8. 첫 버전이 나오기까지, 에필로그

배포, 그 지옥의 시작. 피할 수 없는 책임이 지워집니다. – 임도형, 유지보수를 고려한 SW 개발 기적은 일어나지 않았다. 첫 버전의 반응은 미지근했다. 예상했던 반응이였다. 그러나 예상치 못했던 게 있었다. 버그였다. 첫 버전의 댓글은 수많은 버그들로 뒤덮였다. 그 얘기들은 여기서 다루기는 너무 길기에 천천히 올리도록 하려 한다. 지난번 프로젝트에서도 겪었던 내용이지만, 프로젝트는 절대로 배포로 끝나지 않는다. 유지보수의 […]