티스토리 뷰

프로그래밍

리버스 엔지니어링

과정 2017. 10. 28. 14:05

http://www.lifehacker.jp/2013/10/131020leaning_code.html



 코딩을 배우는 최선의 방법 중 하나는 기존의 코드를 「리버스 엔지니어링」하는 것입니다. 코딩 트레이닝 기업인 「Treehouse」가 코드를 분석하는 방법을 소개했습니다. 




Nick Pettit 씨는 Treehouse 블로그를 통해 브라우저에서 3D 프로그래밍 학습사례로써 Javascript「Three.js」를 한 줄 씩 테스트하는 방법을 해설했습니다. 


"


var light = new THREE.PointLight(0xffffff);

light.position.set(-100,200,100);

scene.add(light);



프로그래밍 경험자라면 위 코드가 무엇을 의미하는지 아실겁니다. 모르는 부분이 있다면 다음의 방식으로 테스트해봅시다. 


코드를 한 줄 씩 삭제하고 그 줄이 목표에 필수적인 부분인가 조사하기(각 줄을 순서대로 조사하기)

코드를 1줄 씩 삭제하고 각 줄의 역할을 파악하기. 예측할만한 줄이라도 시험삼아 삭제하고 기대한 결과가 발생하는지를 확인하기

변수나 인수 값을 바꿔보고 기대한 동작을 하는지 조사하기

줄을 바꿔서 배치하여 코드에서「문제가 발생」하는지 또한 연산 순서에 어떤 중요성이 있는가를 조사하기

한 줄 씩 테스트하면서 머리 속에 시뮬레이션 모델을 구축합니다. 또한 지금까지의 가정에서 틀렸던 부분은 수시로 수정합시다. 이윽고 프로그램의 전체 이미지가 떠오를 것입니다. "




요점은 한 번에 한 곳만을 「파괴」하면서 결과를 확인하고 코드의 각 부분의 관련성을 이해하는 것입니다. 


독학 프로그래머라면 기존의 코드를 「리버스 엔지니어링」하는 가치를 잘 알 것입니다. 그러나 「Treehouse」가지적한 것 처럼 이 방법은 잘 활용되고 있지 않습니다. 오픈소스코드덕분에 누군가가 만든 코드를 배울 수 있는 환경은 갖춰진 상태입니다. 꼭 활용해 보시길.

출처:다른 사람이 작성한 코드를「파괴」하면서 프로그래밍을 배우는 방법:리버스 엔지니어링

댓글