JavaRush /Java Blog /Random-KO /GitHub 코드 검색: 더 많이 찾고 덜 검색하세요 - GitHub가 검색 엔진을 출시했습니다.
Roman Beekeeper
레벨 35

GitHub 코드 검색: 더 많이 찾고 덜 검색하세요 - GitHub가 검색 엔진을 출시했습니다.

Random-KO 그룹에 게시되었습니다
안녕하세요 여러분, 친애하는 친구 여러분! GitHub의 새로운 기능을 좋아하는 저는 곧 우리 모두가 GitHub 코드 베이스를 빠르고 효율적으로 검색할 수 있게 될 것이라는 사실에 매우 흥미를 느꼈습니다. 이는 특히 도구를 사용하는 정교한 방법을 찾아야 하는 경우 매우 편리할 수 있습니다. “GitHub 코드 검색: 더 많이 찾고 덜 검색하세요” - GitHub가 검색 엔진을 출시했습니다 - 1이는 특히 GitHub의 미래 경쟁자가 러시아에서 열렸다는 사실과 공감합니다. 따라서 GitHub는 의심할 여지 없이 시장의 선두주자라는 사실에도 불구하고 그들의 영예에 안주해서는 안 됩니다. 우리는 계속해서 발전해야 합니다. 그렇지 않으면 한 시간도 안 되어 경쟁자들이 따라잡고 휩쓸어버릴 것입니다. 그리고 그렇게 믿기지 않는 것처럼 보이지 마십시오. 예를 들어, 아직도 Nokia 휴대폰을 사용하는 사람은 얼마나 됩니까? 그들이 전화를 만들었다는 걸 누가 알겠어요? 한때 그들은 도달할 수 없는 확실한 시장 리더였습니다... 그러나 이제 그들은 통계 오류 영역 어딘가에 나타납니다.

첫 인상

GitHub는 코드와 GitHub에 게시된 수십억 줄의 코드를 검색, 탐색 및 분석할 수 있는 프로젝트를 만들었습니다. 검색은 확장 가능하고 빠르며 정확하다는 점에 유의하는 것이 중요합니다. 코드 검색을 위해 특별히 처음부터 만들어졌습니다. 내비게이션은 설정 없이 10가지 주요 프로그래밍 언어에서 작동합니다(향후 목록이 늘어나길 바랍니다). 정규식을 사용하여 검색할 수 있는데, 이는 매우 좋습니다. 다른 필터도 사용할 수 있습니다.
  • 조직별;
  • 프로그래밍 언어로;
  • 특정 소유자에 의해;
  • 파일 확장자로;
  • 정규식으로.
목록은 이미 인상적입니다! 검색 엔진은 검색이 필요한 경계를 명확하게 정의할 수 있는 복잡한 검색 쿼리를 만들 수 있는 기회를 제공하는 것으로 나타났습니다. 엔진의 두 번째 중요한 부분은 코드 탐색입니다. 😳 개발 환경은 무엇에 편리하며 사람들은 왜 이에 돈을 지불합니까? 그것들은 우리의 삶을 더 쉽게 만들어주기 때문에 코드를 탐색하는 데 도움이 되어 코드 개발 및 읽기 속도가 빨라집니다. 이제 GitHub는 이 멋진 기능을 제공합니다. 이건 굉장해. 예, 현재 GitHub에 탐색과 유사한 기능이 이미 있다는 것을 알고 있지만 기능은 여전히 ​​매우 짧고 조잡합니다. 즉, 개발 환경 없이도 특정 메소드가 어디서 사용되었는지, 어디서 정의되었는지 검색할 수 있습니다. 정말 훌륭해요. GitHub 당신은 나를 행복하게 만듭니다. 클래스에서 가져오기 탐색도 가능합니다. 이는 GitHub에서 특정 라이브러리를 찾고 연구할 때 발생하는 많은 문제를 해결합니다. 이제 이 프로세스는 여러 번 가속화되었습니다. 그리고 그것은 모두 무료입니다. 정말 훌륭해요. 그에게 수요가 있을까요? 나는 확신한다!

검색에 대해 더 자세히 이야기합시다

살펴보고 자신을 찾으려고 노력하는 것은 매우 흥미롭습니다. 그들이 말하는 것처럼 편리합니까? 현재 이 기능은 공개적으로 제공되지 않으며 링크를 사용하여 대기자 목록에 자신을 추가할 수 있습니다 . 우리는 거기에 모든 요점을 기입하고 질문은 간단하므로 여기서는 설명하지 않겠습니다. 결과적으로 우리는 대기자 명단에 추가되어 계속 진행됩니다. 결과적으로 대답은 이렇습니다. “GitHub 코드 검색: 더 많이 찾고 덜 검색하세요” - GitHub가 검색 엔진을 출시했습니다 - 2기다리기만 하면 됩니다. 추가되는 대로 꼭 다 보여드리겠습니다. 지체하지 말고 나중에 알아내고 즐겁게 사용할 수 있도록 자신을 추가하세요.) 그리고 물론 새 도구를 바로 시험해 볼 수 없다는 것은 안타까운 일이므로 해당 문서를 분석하고 설명하겠습니다. 이 도구를 작업에 어떻게 사용할 수 있는지 자세히 알아보세요. 이제 검색에 대해. 내가 작성 중인 라이브러리 에 적합한 클래스와 구성을 사용할 것입니다 . 이렇게 하면 나에게도 더 명확하고 쉬워질 것이며, 여러분에게도 더 쉬워지기를 바랍니다.

기본 검색

ImageComparison은 파일 이름과 내용을 쿼리로 정확하게 검색하는 가장 간단한 검색입니다. 여기서는 모든 것이 매우 단순 해 보입니다. 클래스 이름, 선언된 위치, 사용된 위치를 명확하게 찾고 싶다면 이러한 검색이 도움이 될 것입니다. 공백으로 구분된 여러 단어를 입력하면 결과는 모두 별도로 검색됩니다: Image Comparison . 즉, ImageComparison 모두에 대한 파일과 코드를 찾습니다 . 공백이 포함된 문자열을 검색하려면 따옴표만 사용하면 됩니다. 예: "ImageComparison 비교 = new ImageComparison()" 그러면 검색이 전체 문자열과 일치합니다. 탈출을 위해 항상 "\"를 사용합니다. 지금까지는 모든 것이 직관적이어서 그렇게 되는 경우가 많습니다. 또한 이 기본 검색에 필터를 추가할 수 있습니다. 그러므로 각각에 대해 이야기합시다. 이는 이미 생성한 필터에 대한 논리적 "AND"입니다.

저장소별로 필터링

기본 필터가 준비되면 검색 범위를 좁힐 수 있으며 특정 저장소별로 검색할 수 있어 매우 편리합니다. 클래스가 어느 폴더에 있는지 찾을 필요 없이 다음과 같이 작성하면 됩니다.
저장소:romankh3/image-comparison ImageComparisonResult
repo:${user_name}/${repo_name} 을 지정해야 하는 위치입니다 . OR을 추가하여 여러 저장소를 검색할 수도 있습니다.
repo:romankh3/image-comparison OR repo:romankh3/usage-image-comparison ImageComparisonResult
GitHub에 명시된 바와 같이 현재 이름이 정규식으로 지정된 저장소에서는 검색을 지원하지 않습니다... 이는 해당 기능을 추가할 계획이며 프로젝트가 선언된 수준에서 멈추지 않을 것임을 의미합니다. 기능을 더욱 발전시켜 나갈 것입니다.

조직별로 필터링

조직 또는 사용자별 검색은 저장소별 검색과 정확히 동일한 방식으로 수행됩니다. 키워드만 repo 가 아닌 org 입니다 .
org:romankh3 이미지비교
그런 다음 검색은 사용자/조직의 모든 저장소를 통해 진행됩니다.

프로그래밍 언어로 필터링

특정 프로그래밍 언어로 된 파일 검색을 지정할 수도 있습니다. 여기서 구성은 저장소 및 조직과 동일하며 키워드만 언어 입니다 .
언어:java 이미지비교
저장소와 마찬가지로 OR 키워드를 사용하여 한 번에 여러 언어로 검색을 지원합니다.
언어:java 또는 언어:ruby ImageComparison
GitHub에서 지원하는 전체 언어 목록은 여기에서 확인할 수 있습니다 . BrainFuck이 있는지 궁금합니다. 😂

파일 경로로 필터링

프로젝트의 각 파일에는 고유한 경로가 있으며 필터를 추가하여 검색할 수도 있습니다. 예를 들어 ImageComparisonResult 파일이 있으며 경로는 다음과 같습니다.
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
따라서 경로가 src/main/java/com/github/romankh3/image 로 시작하는 모든 클래스를 찾으려면 다음이 필요합니다.
경로:src/main/java/com/github/romankh3/image
테스트 클래스가 검색 결과에서 제외되는 것을 원하지 않는 경우에 유용할 수 있습니다. 또는 그 반대로 테스트만 수행합니다. 이렇게 하면 검색이 더욱 유연해집니다. 정규식을 사용하여 파일 경로별 필터를 지정할 수 있습니다. 예를 들어, 우리는 다음을 찾아야 합니다.
경로:src/*/*.js

부울 연산

물론 모든 필터 구축의 정점은 부울 연산을 사용하여 이 문제를 결합하는 것입니다. 이를 위해 AND, OR, AND NOT이 있습니다. 내 생각엔 이 정도면 충분할 것 같아. 예를 들어, 특정 사용자/조직을 위한 Java 또는 Kotlin 프로덕션의 코드인 복잡한 검색 쿼리를 만들어 보겠습니다.
repo:romankh3 AND (언어:java OR 언어:kotlin) AND NOT 경로:*/test/*
그리고 제가 말씀드리는 것은 정말 놀라운 일입니다. 검색 요청은 매우 간단하고, 빠르고, 간결하고 명확하게 작성되어 검색하고 읽는 데 문제가 없습니다.

작은 휴양지

우리의 기쁨은 아직 식지 않았지만 2018년으로 돌아가서 뭔가를 기억하고 싶습니다... Microsoft가 GitHub를 인수한다는 사실을 모두가 알았을 때 모두가 프로젝트가 묻힐 것이라고 생각했다는 것을 기억하십니까? 그의 운명이 제2의 스카이프의 길이라는 것? 모두가 어떻게 프로젝트를 GitLab으로 옮기기 시작했나요? 하지만 솔직히 말해서, 이 과대광고로 인해 나는 뭔가를 만들고 고통을 겪었습니다. 하지만 솔직히 말해서 나는 프로젝트를 옮긴 곳을 다시는 방문하지 않았습니다. 그리고 왠지 그러고 싶지 않아요. 그리고 왜? 이에 대한 생각도 있습니다. GitHub를 Bill Gates에 판매한 후 프로젝트에 무료로 개인 저장소를 보유하는 기능이 추가되었고 CI/CD 프로세스를 위해 GitHub Actions가 출시되었다는 점을 상기시켜 드리겠습니다. 이제는 강력한 검색 엔진이기도 합니다. 이것은 프로젝트를 가라앉히려는 의도처럼 들리지 않습니다. 마이크로소프트가 이익에 대해 세금을 내고 싶지 않았고 연말까지 90억 달러가 넘는 금액을 성공적으로 구매한 것과 비슷합니다. 😁 그리고 결국 그들은 이 프로젝트를 개발하기로 결정했습니다. 그리고 오픈 소스 개발자에게 이곳은 코드를 저장하기에 좋은 장소라는 것은 사실입니다. GitHub를 떠나지 않고도 제품을 완전히 개발할 수 있습니다.

마지막에

글을 한번에 썼습니다. 나는 말과 감정이 간헐천처럼 흐르는 것을 정말 좋아합니다. 이것이 기술을 발전시키는 원동력입니다. 그래서 우리는 계속해서 맥박을 파악하고 상황을 놓지 않습니다. 나는 우리 각자가 그것을 사용하는 법을 배워야 한다고 확신합니다. GitHub에 아직 가입하지 않은 사람이라면 가입할 것을 적극 권장합니다. 그것은 가치. 언제나 그렇듯이 친구 여러분, 제가 모든 공개 활동을 통합하는 전보 채널을 구독하는 것을 잊지 마세요 . 여기에 게시하는 기사 외에도 일반적인 개발 및 IT 세계에서 관심 있는 주제를 다루는 짧은 게시물을 작성합니다. 벌써 구독자가 800명이 넘었어요! 그리고 물론 기사에 대한 모든 데모 프로젝트를 게시하고 라이브러리를 업데이트하며 오픈 소스 조직을 개발하는 내 GitHub 계정입니다 . 그게 다입니다. 읽어주셔서 감사합니다. 작별 인사는 하지 마세요 👌
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION