남이 작성한 소스 분석하고 수정할 때 어떻게 하시나요~?

sungeuns의 이미지

이걸 여기다 올려도 될지 모르겠지만,

이번에 오픈소스 활용하고 수정해서 프로젝트를 하는데요, 참 어렵네요~

익숙치 않은 자바로된 소스가 엄청나게 많다보니 중요한 부분만 분석한다고 하는데도 쉽지가 않네요 ㅠ

이클립스에 프로젝트 불러오는데 프로젝트 파일이 없는거라 설정해주느냐고 삽질도 엄청하고,

또 개발환경이 다르니 터미널에서 말고 이클립스에서 실행하면 에러나면서 죽고 ㅠ

참 쉽지않네요;; 역시 남이 만든 소스 분석은 어려운 것 같네요~

저는 분석할 때 실행한번 해보고, 실행파일 분석한담에 메인 부분 분석하면서 어떤 구조인가 감을 잡아가는데 이게 프로젝트가 커서 쉽지가 않아요

다른 고수분들은 어떻게 하시나요~? UML 툴 사용해서 쉽게 만든다음에 쓰시는지, 아니면 어떠한 노하우가 있으신지 궁금합니다~

shint의 이미지

디버깅을 하면서 브레이크 포인트로 하나하나 찍어봅니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

kgcrom의 이미지

함수 내부는 보지않고, 데이터가 어떻게 흘러가는지만 우선 봅니다.

흘러가고있는 지금 이 시간에 충실하자.

marantz의 이미지

윈도그 쓰는 이유중 하나이죠.

Too Many Sceret is in your heart.
We must break it and don't forget it.
Until no more secret remains in your soul

sungeuns의 이미지

라이센스를 안사줘서 그냥 불법으로 쓰긴 싫어서 안쓰고 있는데

혹시 소스인사이트 같은 오픈소스툴 없을까요~?

pak2536의 이미지

흐름을 추적합니다.

솔직히 한번에 숲을 볼려는건 정력 낭비

kyiimn의 이미지

윗분들 말씀데로 데이터 흐름과 기본적인 구조만 이해하고 있다면.

굳이 소스 분석을 하지 않아도 사용하는데는 크게 문제가 없어보이네요.

sungeuns의 이미지

기능도 추가하고 바꿀게 있어서 소스 분석을 해야 하는데 쉽지않네요 ㅠ

jeongheumjo의 이미지

책이 없을 때는 문서를 먼저 읽어봅니다. ^^;

책도 문서도 없는 코드라면 대략 난감 __;

sungeuns의 이미지

어째야 하죠;;ㅋ

wodnrrns의 이미지

전 오픈소스 (ffmpeg, x264, etc) 프로젝트 볼때 전체 함수 콜 구조부터 대략적으로 엑셀로 정리하고
각각 하는 일들을 정리 한 후에 (대충 이름보면 알긴 하지만 확실히 해놓지 않으면 손이 또한번 가요)
수정해야 할 부분들을 수정합니다.
물론 시간이 많다면 파라미터들이나 프로토타입들도 함께 정리하면 좋지만 생각보다 양이많고
define시켜놓은것들이나 class형태일 경우 이름가지고 자료형 알기가 힘들기 때문에 전 그냥
원형이나 함수명 또는 클레스명만 가지고 그림그려두고 합니다
(개인적인 방법입니다. 추천해 드리는 방법은 아니지만 막막하시다면 한번 정리 해 보심이..)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.