[iOS 사전캠프] 아티클 스터디: 개발자를 위한 정보 검색 팁

DoyleHWorks·2024년 10월 14일
0

아티클: 개발자를 위한 정보 검색 팁

[아티클 요약]

개발자를 위한 정보 검색 팁

  • 검색을 잘 하기 위해서는 꾸준한 연습을 통해 좋은 습관들을 길러야 한다.
  1. 나는 검색을 잘 하는걸까

    • 검색을 잘하는 사람에 대한 (글쓴이의 주관적인) 기준들:
      • 코딩 중단 후 검색해서 다시 돌아오는 시간이 대체로 1분 미만
      • 검색으로 안 정보가 “새로운 지식 학습”보다는 “이미 알던 정보를 다시 떠오르게” 한 경우가 많음
      • 검색 행위가 자연스러워 “코딩하다가 막혔다”는 느낌이 들지 않을 때가 많음
  2. 구글에서 검색하기

    • 기술 문서를 검색할 때는 구글이 월등하게 뛰어나다.
  3. 영문으로 검색하기

    • IT 정보의 대부분은 영어다.
    • 정보가 한국어로 바뀌어 전파되는 데에는 시간 지연이 있다.
    • 잦은 오역이 있다.
    • 한국어 사용자보다 영어 사용자가 훨씬 많다.
  4. 검색 엔진의 기능을 잘 쓰기

    • Tools의 Any Time 대신 검색 기간 이용하기
    • 정확한 문장은 큰따옴표 이용하기
      • 에러 메시지의 핵심 부분을 복사해 이용하면 동일한 문제를 찾기 쉬움
    • 특정 사이트 내에서 검색할 때는 예시: “site:python.org”
    • 논리 연산자 등 검색에 사용할 수 있는 다양한 문법 익히기
    • 크롬 확장 기능을 사용하면 마우스에 손이 가는 걸 줄일 수 있다.
      • https://github.com/infokiller/web-search-navigator
        • Cmd+TabCmd+L (편집기에서 브라우저로 전환하고 주소창으로 포커스 옮기기)
        • 검색어 입력 후 Enter
        • JK로 내비게이션하다가 적절한 문서가 있으면 Cmd+Enter (새 탭으로 열기)
        • Ctrl+TabShift+Ctrl+Tab 으로 브라우저 탭 전환
        • SpaceShift-Space로 페이징하며 읽기
        • 불필요한 탭은 Cmd+W로 닫기
  5. 검색 키워드 잘 넣기

    4.1. 적절한 범위의 검색 결과 얻어내기

    • 검색어와 검색 문법을 통해 적절하게 범위를 제한해야 한다.
    • 특정 언어 관련 문제를 검색할 때는 그 언어를 포함시키는 게 좋지만, 반대로 제한하지 않는 게 좋은 경우도 있다.
      • 다른 언어로 된 풀이를 보더라도 쉽게 옮길 수 있는 경우 등
    • 풀고자 하는 문제를 정확히 기술하는 키워드를 포함시키면 좋다.

    4.2. 정확한 키워드 알아내는 방법

    • 항상 권위 있는 교과서나 공식 문서를 읽으며 정확한 용어를 눈에 담도록 노력해야 한다. (원서 읽기 숙련 필수)
    • 해당되는 키워드를 찾기 위해 검색해도 좋다 - 예: multiset이란 용어를 알아내기 위해 set allwoing multiple elements 검색하기
    • 평소에 문제를 대할 때 문제의 풀이에서 그치지 않고 제대로 된 이해가 이루어져있는지 파고 들면 좋다. (이 과정에서 용어 숙지하게 됨)
  6. 검색 결과 중 클릭할 문서 잘 찾기

    • 검색 결과에서 적절한 문서를 cmd/ctrl + click으로 여러 개 (보통 2~4개) 열어놓고 읽으면 편하다.

    5.1. 분야별로 신뢰할 수 있는 사이트가 어디인지 파악하기

    5.2. 정보 가치가 낮은 사이트 파악하기

    • 정보 가치가 낮거나, 잘못된 정보가 많거나, 오래된 정보가 많은 사이트들은 피하는 게 좋다.

    5.3. 정보의 시의성을 따져보기

    • 해결하고자 하는 문제의 맥락에 비추어 시의성이 적절한지 판단할 필요가 있다.
    • 대략적인 휴리스틱:
      • 라이브러리, 프레임워크 (수개월)
      • 각종 표준, 프로그래밍 언어, 운영체제 (수개월~수년)
      • 각종 프로세스, 설계 방법론 등 소프트웨어 공학에서 다루는 주제들 (수년~수십년)
      • 알고리즘, 자료구조, 프로그래밍 언어론, 운영체제론 등 주로 전산학에서 다루는 주제들 (수십년)

    5.4. 검색어 바꿔보기

    • 첫 번째 페이지에서 마음에 드는 문서가 없다면 키워드를 바꾸는 걸 추천한다.
    • 검색 결과 하단에 있는 “Searches related to…” 부분을 참고해도 좋다.
  7. 문서 잘 읽기

    6.1. 찜해놓기

    • 문제 해결과 관계 없이 좋은 문서라면, 일단 개인 위키, 브라우저 북마크, 노션 등 어디든 저장해두기

    6.2. 코멘트 읽기

    • 본문에는 없는 중요한 대화가 오가는 경우가 상당히 많다.

    6.3. 버전 확인하기

    • 라이브러리나 운영체제 등은 버전에 따라 적절한 답변이 다르다 - 예시:
      • 파이썬(버전 2 vs 버전 3)
      • 라이브러리의 Semver 사용 유무 확인 → 사용한다면 호환되는 버전인지 확인
      • 리눅스 도커 설치: 어떤 배포판의 어떤 버전인지에 따라 조금씩 차이가 있음

    6.4. stackoverflow.com 잘 읽기

    • 보통 답변을 먼저 읽고 맥락이 다른 것 같으면 질문을 살핌
    • 채택된 답변이 없거나 있어도 투표 수가 너무 적은 경우, 채택되지 않은 답변에 투표 수가 더 많은 경우, 채택된 답변이 지나치게 오래된 경우는 다른 답변들도 함께 읽는게 좋음
    • 답변의 코멘트도 반드시 읽음
    • 내용이 의심스러울 때는 답변을 한 사람이 누구인지 살펴보면 좋음 - 분야별로 권위 있는 사람이 다는 경우도 제법 있음
      • 예: d3js - Mike Bostock, Alloy Analyzer - Daniel Jackson
      • 평판 점수(reputation score)를 확인해도 좋음
      • 자주 사용하는 라이브러리는 주요 기여자를 확인해서 조금씩 알아갈 수 있음
      • https://github.com/trending 을 주기적으로 구경하는 것도 좋음
    • 질문에 답변이 없고 투표수도 낮다면 보통 질문이 안 좋다는 뜻이며, 애초에 키워드가 안 좋았을 수 있음

    6.5. 다른 문서와 비교하기

    • 확인한 정보에 확신이 들지 않으면, 열어둔 다른 탭을 읽어보고, 그래도 확신이 안 들면 키워드를 바꾼다.

    6.6. 원하는 결과가 잘 안나오면…

    • 5~10분 이상 찾았는데도 모르겠다면 전반적인 이해도 부족일 가능성이 있다.
    • 공식 가이드라인, 공식 레퍼런스, 좋은 교과서, 논문, 위키백과 등을 찾아 읽으며 맥락을 파악하는 게 좋다.
    • 이러한 상황에 마주칠 가능성을 낮출수록 좋으며, 어떤 라이브러리나 프레임워크를 이용하기 전에 반드시 공식 사이트에서 제공하는 기본 문서(레퍼런스 제외)를 꼼꼼하게 읽어두어야 한다.
      • Getting Started: 아주 짧게 요약한 안내 문서입니다. 꼼꼼하게 읽으세요.
      • User Guides: 좀 더 긴 안내 문서입니다. 꼼꼼하게 읽으세요.
      • Tutorials: 좀 더 친절하고 “따라하기” 방식으로 익히기 좋은 형태로 정리된 안내 문서입니다. 어느 정도 익숙한 분야라면 대충 훑어보면서 주의할 점이 없는지 정도만 살펴보면 좋습니다. 익숙하지 않은 분야라면 훑어 읽지 말고 직접 코드를 입력하며 착실히 따라해보면 좋습니다.
      • Examples: 다양한 활용 예시. 대충 훑어 읽으며 주의할 점이 없는지 살피면 좋습니다. 당면한 문제에 부합하는 예시가 있으면 꼼꼼하게 봅니다.
      • References: 보통은 미리 읽지 않습니다. 단어 사전처럼 모르는 게 있거나 정확한 내용이 알고 싶으면 해당 부분만 찾아서 읽습니다.
    • 사실 이게 가장 중요한 습관이고, 상당수의 문제는 “Getting Started”나 “User Guides”를 꼼꼼하게 읽으면 미리 피할 수 있다.
  8. 구글 이외의 사이트에서 검색하기

    • 구글보다 다른 사이트에서 검색을 하는 편이 나은 경우도 때때로 있다.
    • 어떤 CSS 기능이 얼마나 다양한 브라우저에서 지원되는지 궁금한 경우: caniuse.com 에서 검색
    • 라이브러리 업데이트 후 오류가 난다면 깃헙에서 해당 라이브러리에 등록된 이슈를 검색하는 게 좋다.
      • 특히 workaround에 대한 논의를 볼 수 있어서 유익하다.
  9. 언제 검색을 할까

    8.1. 검색을 안하면 개발을 못하는 개발자, 검색을 안하며 개발하는 개발자

    • 검색을 하는 것을 부끄러운 일이 아니며, 오히려 검색을 하지 않고 개발하면 오래된 기술에 갇힐 가능성이 크다.
    • 따로 시간을 할애해 공부하는 게 어렵다면, 업무와 공부를 자연스럽게 병행할 방법을 마련하는 게 좋다.

    8.2. 지식의 감가상각과 잔존가치

    • 어떤 지식은 가치가 빠르게 줄어들고 어떤 지식은 더 오래간다.
    • 오래가는 지식을 쌓으려는 노력, 빠르게 변하는 지식을 갱신하려는 노력을 병행해야 한다.

    8.3. 당면한 문제가 없어도 그냥 검색하기

    • 일상에서도 문득 스친 생각을 검색하듯이, 코드에 대해서도 습관적으로 검색하는 게 잦을수록 좋다.

    8.4. 우연한 발견, 계획적 수집

    • 업무 중에서 공부를 하기 위한 습관 세 가지
      • 문제에 당면해 검색하기
      • 더 나은 방법이 있나 검색하기
      • 갑자기 궁금해져서 검색하기
    • 원칙적으로 정보를 놓칠 수 없도록 만드는 것도 중요하다.
      • RSS 리더(예: feedly.com)나 각종 메일링 리스트 등을 활용하면 좋다.

[인사이트]

  • 하루라도 빨리 유용한 문서들을 저장해둘 한 가지 공간을 마련해둬야 할 것 같다. (옵시디언이든, 노션이든..)
  • 해당 글에서 시의성의 중요성에 대해서 논하고 있는데, 2020년 글이라 그런지 2022년에 나온 ChatGPT 내용이 없다는 게 재밌다.
  • 업무와 공부를 병행하는 게 개인적인 특성상 중요하다는 생각이 들었다. 평소에 피부에 와닿는 목적이 없으면 공부가 어려운 성격이기 때문.
profile
Reciprocity lies in knowing enough

0개의 댓글