안녕하세요 아즈라엘 입니다.


현재 제가 프로젝트 막바지에 있는데 현 소스를 보면 아주 창피합니다. 

여러분들은 리페토링 하십니까? 


전 아래와 같이 일한답니다.


1. 여기저기 Activity 클래스 안에 같은 내용의 method 들이 아주 많이 존재한다.

    --> 일단 테스트 코드를 만들고 적용해야 했지만 한개의 액티비티안에서 기능을 추가하고 돌려본다음 괜찮다 싶어 다른곳에도 

          copy & paste 를 하였습니다.

          결국 파라미터 하나 고치기 위해서 여러 Activity.java 파일을 돌아다니며 고쳐야 하는 번거로움과

          코드라인이 길어져서 폭이 늘어나 스크롤을 자주 해야 하며 한눈에 들어오지도 않아 가독성도 떨어지는 ....



2. 귀찮아서 변수명을 대충 만들었습니다. 

    --> 일단 temp 로 시작하여 이래 쓰고 저래 쓰고 하다가 그 코드가 그대로 굳어 버렸습니다. 

          나중에 temp 가 temp 가 아닌 겪이 되었고 이로 인해 코드의 가독성은 더더욱 ....

          path1 , path2 는 실제 데이터가 바인딩 되어야 알 수 있는 이름이 되어 버렸습니다. 

          변수명을 작문하는게 너무 어렵네요.. 영단어 기역이 가물해서 인터넷으로 사전 뒤지다 

          대충 대충 만든게 한두개가 아닙니다. 


3. method 에 넘겨줄 인자값을 귀찮아서 전역변수 처리 하였습니다. 

    --> method 에서 주고 받고 사용되어야 할 인자값들이 여기저기 써야 한다는 이유로 

         전역변수로 처리 하였습니다. 처음엔 아주 편했지만 시간이 지날 수록 전역변수를 초기화 해서 사용해야 되고

         이로 인해서 다른쪽 메서드(기능)에 문제를 주어 또다른 전역변수가 만들어지는 꼴이 되었습니다. 

         method가 프로젝트와 디펜던시가 강하게 늘러 붙게 되어 모쥴화 시키는데도 문제가 많습니다.


4. 주석이 하나도 없습니다. 

    --> 가끔 있습니다. 인터넷에서 복사해 왔을때 기역하기 쉽게 url 정도는 주석으로 한 경우도 있긴합니다. 

         원래는 참고자료로서 doc폴더를 만들고 프로젝트에 같이 넣어야 하고 코드는 기능으로서만 완벽하게 구현해야 하지만

         늘 언급하듯이 귀찮고 시간이 부족하여 일단 코드부터 때려 넣고 어떻게든 굴러게가 만들었기에 ..

         나중에 어떻게 만들었는지도 모르고 주석을 달기에 구구절절한 이유가 많아 힘들어 졌습니다. 


5. 리펙토링을 해야 합니다. 

    --> 여러이유로 리펙토링을 해야 합니다. 가독성이 뛰어나게 변수명과 메서드명을 만들어야 하고 , 불필요한 변수는 제거해야 하며 

         한개의 메서드에서 여러기능을 하고 있다면 쪼개어 한개의 기능을 완벽하게 구현하도록 만들어야 햡니다. 

          빌드엔 문제가 없지만 논리적으로 어긋난 오류를 찾아야 하고 어플의 라이프 사이클 (타임)에 맞게 알맞은 위치에서 

          초기화 하고 사용되는지도 체크해야 되고 마지막으로 성능개선이 되도록 유닛테스트도 해야 되겠지요..



하지만... 리펙토링을 안합니다. 왜냐하면 


i.  멀쩡히 잘 굴러가는 소스 건들여서 문제를 일으키기 싫다


ii.  리펙토링 하는 시간에 다른 프로젝트를 하는게 더 쉽다 (회사에서 공자왈 맹자왈 할 시간을 안준다)


iii.  지겨운 소스 다시 보고 싶지가 않다


iv. 해봤어야 알쥐.. 리펙토링은 단어만 알고 지적세계수준이 아주 높은  고명하신 사람만이 하는 것이라 생각하여 

     나와같은 천민은 그딴거 몰라도 된다고 생각한다.


v  귀찮다 (코드 짜는것도 귀찮아서 이따구로 만들었는데 리펙토링을 어케 하냐~)


vi  나만 볼거다.. (자체 난독화 한거다 남들은 보지마라..)




마지막으로 

http://blog.daum.net/_blog/BlogTypeView.do?blogid=0Idyj&articleno=2759562&categoryId=368588&regdt=20080312112552#ajax_history_home