깃허브 내 오픈소스 코드 분석하는법 총 정리 - 순서대로만 따라하면 이해되는 오픈소스코드 분석

728x90

1. 배경지식을 갖출 것

정렬이라던가 검색같은데 특정 알고리즘을 사용했다면,

해당 알고리즘의 작동원리 이해하고 난 후 분석하는 것이 효율적이다.

 

만약 해당 지식이 없이 코드로만 이해하려고 한다면, 비효율적인 시간이 수반된다.

 

또한, 분석하려는 오픈소스의 도메인이 본인의 관심사에 부합해야한다.

관심도 없는 오픈소스를 분석하려면 재미가 없어서 고문이 아닐까...?

 

 

2. 큰 그림을 보자

각각의 파일 내 개별 함수부터 파악하기보다는, 먼저 튜토리얼의 문서 및 관련 md 를 먼저 살펴본다.

 

오픈소스이므로 소스트리를 막 만들어놓지는 않았기 때문에 (대부분 그럼),

소스트리의 구조와 문서를 비교해가며 소스코드의 큰 그림을 파악한다.

 

프로젝트 구조 파악이 우선!

왜 이 코드의 기능을 이렇게 설계했을까를 생각하며 파악하자.

 

 

3. 디버거 breakpoint 활용

큰 그림을 파악하고 소스코드를 실행시켰을 때

breakpoint 기능을 이용하여 step 단위로 실행하면서 각 변수의 변화 상태를 확인.

 

확인해서 소스코드의 실행순서 파악하기

 

 

4. 문서화

머리에만 담고 있으면 분명 기억이 휘발된다.

 

파일 내 주석으로 달고 찾아낸 사실을 문서로 만들자 (ppt, flowchart, 구성도, 마인드맵 등등)

 

그림 그리면서 구조 파악이 더 잘됨. 팩트

문서화 예시

 

 

5. 생각 정리

소스코드를 작성한 사람의 패턴을 보면서,

 

나라면 어떻게 짰을까?
이 코드를 어떻게 하면 개선할 수 있을까?

 

를 생각해보면서 내 방식의 코드대로 migration 해보자!

 

 


해당 방식 활용해서 관심있는 도메인 정리 중

 

1편

https://timmer.tistory.com/351

 

freqtrade 오픈소스 코드 분석해보기! 비트코인 투자 자동화 오픈소스 프로젝트

개요최근에 관심이 있는 분야이기도하고 회귀 분석 쪽으로도 접목시킬 수 있는 장점이 있어서오픈소스 컨트리뷰터 및 프로그램 개발을 위해 해당 오픈소스 분석 시작! 최근 정리한 오픈소스

timmer.tistory.com

 


 

코드 빠르게 찾기 팁

https://docs.github.com/ko/search-github/searching-on-github/searching-code

 

코드 (레거시) 검색 - GitHub Docs

코드 검색 API를 사용하는 경우에만 레거시 코드 검색 구문을 사용할 필요가 있습니다.

docs.github.com

 


 

Refs

https://development-crow.tistory.com/21

 

[IT 기술] 오픈소스 분석 방법과 개발자 공부 방법

[IT 기술] 오픈소스 분석 방법 안녕하세요. 개발자 개발 까마귀입니다. 오늘은 개발 초보자와 그리고 공부법을 모르는 주니어 개발자한테 추천드리는 글입니다. ㅎㅎ 이 글을 작성을 한 이유는 OK

development-crow.tistory.com

 

https://fishpoint.tistory.com/1097

 

소스코드 분석, 코드 리뷰 분석 방법 모아봤습니다.

소스코드 분석은 정말 어려운 일입니다. 그러니 오죽하면 분석보다 새로 짜는게 더 쉽다는 말이 나오기도 하고요. 그러나 소스를 본다는것은 새로운 철학을 만나는 것이라고 봅니다. 오래된 코

fishpoint.tistory.com

 

https://www.popit.kr/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98/

 

오픈소스: 코드 분석 어떻게 하나? | Popit

Hadoop이나 HBase 등과 같은 솔루션은 문서도 부족하지만 문서로만 설명할 수 없는 복잡한 내용으로 구성되어 있는 솔루션이 많습니다. 따라서 제대로 솔루션을 사용하거나 운영하기 위해서는 소

www.popit.kr

 

https://velog.io/@qksud14/jrdev-02

 

스타트업 신입 개발일지(02 : 소스 코드 분석하기)

제대로된 코드를 만들기 위해서는 제대로된 코드를 많이 읽어보면 된다.기존에 사용하는 라이브러리나 플러그인의 코드를 읽어라인상깊었던 소프트웨어 코드를 읽어라존경하는 사람이 만든

velog.io

 

 

 

728x90