JHB의 프로그래밍 삽질기

소스코드 해독을 위한 팁 본문

PROGRAMMING/Essay

소스코드 해독을 위한 팁

jhbaek 2019.05.10 21:47

처음보는 프로젝트의 소스 코드 해독을 위한 팁
모든 이에게 적용된다고 보긴 힘들다. 누구는 탑다운이 편하고 누구는 바텀업이 편하기 때문이다.

  1. Unit Test가 있다면 핵심 기능을 하는 TC를 따라가면 해독이 매우 용이하다.
  2. 핵심 클래스의 생성자가 어느 클래스로부터 생성되는지 찾는다. A와 B 클래스가 핵심 클래스라고 한다면, 이 클래스의 생성이 어디서 이루어지는지 (new A, new B 로 검색) 확인하면 객체간의 Dependency 관계가 어느정도 눈에 파악된다. 팁으로, 탑다운이 아닌 바텀업으로 소스를 보고자 할때 가장 유용한 기능은 Find Usage 기능이다.
  3. 행위의 Trigger가 되는 Method를 찾는다. Command패턴의 경우 Execute를 Override한 메소드를 살펴보면 되고, 그 외에는 실제로 핵심 Task를 수행하는 메소드가 실행되는 위치를 찾는다.
  4. Prepare 및 Initialize Sequence를 살펴보면 필요한 객체가 무엇인지 파악하기 쉽다. 하지만 웬만한 경우 Init Sequence를 가독하는데 엄청난 시간이 필요하다.
  5. 당연한 얘기지만 디버깅이 가능한 환경이라면, 적재 적소에 BreakPoint 걸고 Debug 모드로 디버깅하면서 콜스택을 확인하면 매우 좋다.
  6. Handler 등을 통해 쓰레드를 벗어나는 코드의 경우 메세지를 보내는 쪽과 받는쪽 메소드가 무엇인지 안 후 (프레임워크 별로 다 다르다) 해당 코드에 브레이크포인트 걸고 보는게 좋다.
  7. PlugIn 을 적극 활용하자. UML을 그려주는 플러그인이 있으면 적극적으로 쓰자. (각 언어별로 제대로 되는 녀석을 찾기가 힘들긴 하다ㅜ) Android Studio(IntelliJ)의 경우 Sequence Diagram을 그려주는 Sequence Diagram Plugin을 설치하여 depth를 1로 하여, create 되는 객체를 조사하는 것 만으로도 아주 훌륭하다.

 

0 Comments
댓글쓰기 폼