라벨이 인생인 게시물 표시

ReSharper의 치명적인 버그 (코드 클린업 관련, 매우 심각한 문제임)

최신기술을 맹신하다가 프로젝트 한 개가 통채로 날아가게 된 사건 바로 오늘 있던 일입니다. 최근 두 달간 3년 가까이 진행되어온 프로젝트의 마무리 및 약간의 보수 작업을 해왔습니다. 핵심 라이브러리를 다른 라이브러리로 대체하는 작업이었죠. 기존 프로젝트가 여러 사람이 달라붙어서 작업한다는 전제가 없었기 때문에, 주석도 완벽하지 않고 프로젝트 구조 파악도 어려워 기존 라이브러리를 사용하는 클래스들을 수정하는 것이 아닌, 기존 클래스명에 특정 접두사를 붙여 다른 네임스페이스에 새로운 라이브러리를 사용해 같은 프로세스를 진행하는 클래스를 만들게 되었습니다. 이를 위해, 우선 기존 클래스의 본문을 복사해 접두사가 붙은 새로운 클래스의 본문에 붙여넣고 , 기존 라이브러리에서 새로운 라이브러리로 대체되는 부분만 수정 하는 작업을 진행했죠. 물론, 기존 라이브러리에서 지원하지 않거나 새로운 라이브러리에서 지원하지 않는 부분은 추가/제거 작업을 병행했습니다. 숨겨진 양날검: ReSharper Code Cleanup 그런데 이렇게 하고 보니 코드가 영 보기 좋지 않았습니다. 처음부터 클래스를 작성했으면 모를까, 이미 붙여넣어진 수천줄의 코드에서 뺄 부분을 빼고 추가할 부분을 추가하고 수정할 부분을 수정하다 보니 개행도 엉망진창, 들여쓰기도 엉망진창, 급했던 부분에선 띄어쓰기도 엉망진창인 상태 가 되었습니다. 하지만 이러면 어떠하고 저러면 어떠하리, 저에겐 사랑스런 ReSharper가 있었고, 여기엔 VS 기본 코드 클린업과는 비교도 되지 않는 강력한 클린업 기능이 있습니다. 단순 줄 정리, 들여쓰기 정리는 물론, auto property로 만들 수 있는 프로퍼티는 auto property로 자동으로 만들어주고, 람다 메서드로 만들 수 있는 부분은 람다 메서드로 만들어주고, 읽기 전용으로 만들 수 있는 필드는 읽기 전용으로, 오토 프로퍼티 중 get만 사용할 수 있는 프로퍼티는 get만 남기고, String, Boolean등을 자동...