CodeGym /Java Blog /무작위의 /사람들의 코드를 읽어야 하는 이유와 올바른 방법
John Squirrels
레벨 41
San Francisco

사람들의 코드를 읽어야 하는 이유와 올바른 방법

무작위의 그룹에 게시되었습니다
좋은 작가가 되려면 문법을 아는 것만으로는 충분하지 않습니다. 또한 이 문법이 눈에 띄는 텍스트를 만드는 데 어떻게 사용되는지 보여주는 책을 많이 읽어야 합니다. 마찬가지로 훌륭한 프로그래머가 되려면 단순히 Java를 배우는 것만으로는 충분하지 않습니다. 또한 다른 프로그래머가 작성한 양질의 코드 샘플을 많이 읽어야 하며 가장 중요한 것은 샘플을 이해하고 배우는 것입니다. 실제로 고품질 코드 예제에 대한 노출은 새로운 기술을 얼마나 빠르고 효과적으로 배울 수 있는지에 영향을 미치는 핵심 요소 중 하나입니다. 사람들의 코드를 읽어야 하는 이유와 올바른 방법 - 1

타인의 코드 읽기의 중요성

" 나는 남의 코드를 읽는 것을 싫어한다.그들은 프로젝트의 어떤 부분이 어떻게 작동하는지에 대한 이해를 제공하고 그것이 어떻게 수행되는지에 대한 유용한 통찰력을 제공할 것입니다. 이것은 차례로 지식을 크게 향상시키고 결국 자신의 스타일을 개발하는 데 도움이 될 것입니다.

코드를 파헤치는 방법

다른 사람의 코드에 뛰어들 때 개발자가 아니라 고고학자-조사자처럼 느껴질 수 있습니다. 마음대로 사용할 수 있는 "삽"이 많기 때문에 문제가 없습니다. 요즘에는 코드를 훨씬 쉽게 이해하는 데 도움이 되는 많은 메타데이터에 액세스할 수 있습니다. 예를 들어 Git을 사용하여 코드를 읽고 복사하고 붙여넣을 때 도움을 받을 수 있습니다. 그러나 일부 핵심 사항은 초기에 코드를 더 잘 이해하는 데 도움이 될 수 있습니다. 우선 다음과 같은 질문을 해야 합니다.
  • 코드에 생소해 보이는 것이 있습니까? 그렇다면 해당 "빈 공간"을 검토하고 용도를 ​​이해했는지 확인하십시오.
  • 코드에 불필요한 것이 있습니까? 특히 대규모 코드베이스에 대해 이야기하는 경우 데드 코드도 존재합니다.
  • 코드에 종속성이 있습니까? 때로는 더 많은 코드를 복사/붙여넣기하여 해당 종속성을 제거하는 것이 좋습니다.
  • 붙여넣기 후 발생한 오류가 있습니까?
또 다른 권장 사항은 코드가 수행하는 작업을 찾고 해당 작업을 역으로 추적하는 것 입니다 . 예를 들어 보고 있는 코드가 영화 제목 목록이 있는 파일을 생성한다는 것을 알고 있는 경우 해당 코드가 해당 파일을 생성하는 특정 줄을 알아내십시오. 다음으로 한 단계 뒤로 이동하여 코드가 해당 파일에 정보를 배치하는 방법을 찾습니다. 그런 다음 데이터의 출처를 이해하기 위해 한 단계 더 뒤로 이동합니다. 아이디어가 있습니다. 상기 코드 조각은 "액션 체인"이라고 할 수 있습니다. 다음과 같은 것들에 대한 훌륭한 통찰력을 제공할 수 있습니다.
  • 코드 본문이 실제로 구축되는 방식
  • 코딩 스타일;
  • 코드를 작성한 프로그래머가 문제를 해결하는 방법.
마찬가지로 다음 4단계 프로세스를 시도하여 작업 중인 코드에 대해 자세히 알아볼 수 있습니다.
  • 코드를 실행하고 결과를 탐색합니다. 코드를 실행하면 코드를 더 잘 이해하는 데 필요한 필수 정보를 얻을 수 있습니다.

  • 주요 기능과 시작점을 찾으십시오.

  • 코드의 메커니즘을 완전히 이해 하려면 디버거( 여기에서 가장 효율적인 Java 디버깅 도구를 찾을 수 있음 )로 코드를 실행하십시오. 그렇게 함으로써 읽고 있는 코드의 내부 기능에 대한 심층 분석을 얻을 수 있습니다.

  • 코드의 서로 다른 요소 간의 연결에 대한 마인드맵을 작성합니다. 모든 디버거가 요소 간의 연결을 보여주므로 서로 다른 기능을 상호 연결하고 서로 상호 작용하는 방식을 이해할 수 있습니다.

앞서 언급한 방식으로 코드를 조사하면 결국 특정 코드(및 각 부분이 어떻게 연결되어 있는지)를 점점 더 많이 이해하게 될 것입니다. 당연히 코드에 대해 더 많이 알수록 전체 코드베이스를 더 많이 이해하게 됩니다. 즉, 고품질 코드 예제를 탐색하고 사용하면 시간이 지남에 따라 다른 모든 코드를 더 쉽게 읽고 이해할 수 있습니다.

캐치가 무엇입니까?

다른 프로그래머의 코드를 읽고 이해하는 것이 무슨 의미가 있는지 여전히 궁금할 수 있습니다. 실제로 기성품 모듈이 "내부적으로" 작동하는 방식을 이해하고 새로운 것을 배울 수 있는 좋은 기회입니다. 그리고 당신의 뇌가 이론을 읽고 연습하는 것 외에 다른 방식으로 정보를 처리할 준비가 되었다고 느끼신다면, 아마도 많은 추가 노력 없이 Java 기술을 연마할 적기일 것입니다.

다른 사람의 코드 사용에 따른 기타 "부수" 효과: 자신감 향상

일부 OSS(모든 사람이 쉽게 사용할 수 있는 오픈 소스 소프트웨어)의 소스 코드를 읽었지만 아무것도 이해하지 못하더라도 걱정하지 마십시오. 특히 방금 배우는 경우에는 완전히 괜찮습니다. 아직 준비가 되지 않았다는 의미일 수 있습니다. 그러나 코드를 이해할 수 있었다면 Java 개발자로서 확실히 자신감을 갖게 될 것입니다. 일부 실제 프로젝트, 소프트웨어 프로그램 또는 앱이 어떻게 작동하는지 정확히 파악할 수 있다면 분명히 이미 프로그래밍에 대해 많이 알고 있는 것입니다. 따라서 학습 과정을 중단할 방법이 없습니다. 즉, CodeGym에서는 처음에 너무 무거운 무게를 들어 올리는 것을 권장하지 않습니다. 큰 응용 프로그램이나 운영 체제를 파고들지 마십시오. 이 경험은 영감을 주기보다는 상당히 실망스러울 수 있습니다. 대신에,"도움말" 섹션 에서는 다른 학생의 코드를 읽고 힌트를 주거나 경험을 통해 배울 수 있습니다. 또한 동료가 동일한 작업을 어떻게 해결하는지 확인할 수 있습니다. 당신의 마음을 사로잡을 수 있는 또 다른 자원은 다른 프로그래머가 작성한 코드가 일반적으로 상당히 구조화되고 형식이 지정되며 이미 주석이 달린 StackOverflow 커뮤니티입니다. 점차적으로 동료의 고품질(그러나 지나치게 복잡하지 않은) 코드를 읽는 습관은 완전히 새로운 수준의 프로그래밍을 제공합니다.

또 뭔데?

코드를 정기적으로 읽으면 나중에 프로젝트에서 코드를 사용하고 결국 특정 요구 사항에 맞게 코드를 수정하고 익숙해질 수 있습니다. 물론 라이센스를 통해 수정할 수 있는 오픈 소스 소프트웨어 코드에 대해 이야기하는 경우입니다. 이러한 코드는 처음부터 프로젝트를 생성하는 데 많은 시간을 절약하고 새로운 수준의 프로그래밍을 제공합니다. 보시다시피 코드를 읽고, 복사하고, 붙여넣으면 기술을 향상하고 상당한 시간을 절약할 수 있습니다. 그리고 그 여분의 시간은 올바른 문제를 해결하고 속도를 높이는 데 도움이 될 것입니다. 사실 때로는 이미 존재하는 코드를 복사하여 붙여넣는 것이 최선의 행동 과정이지만 라이선스 조건과 복사하려는 코드에 완전히 몰입해야 한다는 점을 항상 기억하십시오. 깃허브 , 깃랩 ,FreeCodeCamp 또는 SourceForge 는 다른 개발자의 코드를 엿볼 수 있는 최고의 무료 오픈 리소스입니다.

결론

어떤 프로그래머도 새 코드 작성의 일부로 이전 코드를 읽지 않고는 할 수 없습니다. 프로그래밍 시간이 길어질수록 더 다양한 코드를 볼 수 있고 코드를 이해하기가 더 쉬워집니다. 코드 샘플을 읽기가 더 쉬울 때 새 샘플을 작성하기가 더 쉽다는 점을 기억하십시오. 한마디로 다른 사람의 코드를 더 빠르고 효과적으로 이해할 수 있는 능력을 얻게 되는 환상적인 자기 영속적인 주기입니다. 이를 통해 자신의 코딩에서도 긍정적인 이득을 볼 수 있습니다. 따라서 더 적은 일시 중지와 더 많은 진행을 거친다면 이미 존재하는 코드를 읽고, 이해하고, 수정하는 것을 소홀히 하지 마십시오!
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION