[TIL] JS Callback, Promise, Fetch, Axios

2025-02-06 TIL

📝 TIL (Today I Learned)
🔗 원본 이슈: #12
📅 작성일: 2025-02-06
🔄 최종 수정: 2025년 02월 07일


🍀 새롭게 배운 것

  • JavaScript 비동기 처리
    • Callback
    • Promise, async, await
  • JavaScript 네트워크 요청
    • Fetch, Axios

🍎 오늘의 문제 상황

  • GitHub Actions를 사용하여 TIL 목록을 자동으로 업데이트하는 작업을 진행했지만, 매번 전체 TIL 리스트가 중보 추가되는 문제가 발생했다.

원인 분석

  • gh issue list 명령어를 실행할 때마다 최신 TIL 10개를 가져와 덮어쓰기 때문에 기존 목록과 중복된 항목이 계속 추가됨
  • sort -u로 중복을 제거하려 했지만 이미 있는 내용과 비교하는 기능이 없었음
    • awk를 사용한 TIL리스트 추출 방식이 정확하지 않아 비교 대상이 제대로 생성되지 않았을 수도 있음

해결 과정

  • awk대신 sed를 사용하여 TIL List 이후 목록을 정확히 가져옴
  • grep -Fxvf를 사용하여 기존 리스트에 없는 새로운 TIL만 추출
  • 새로운 TIL이 있는 경우 sed로 기존 TIL 리스트 완전 삭제 후 새로운 TIL을 포함한 리스트 모두 새로 추가
  • 새로 추가된 TIL이 없는 경우 커밋 만들지 않은 코드 추가

🦄 느낀 점

  • gh issue list가 GitHub의 REST API를 활용하는 방식으로, JS의 fetch나 axios와 유사한 원리로 작동한다고 한다.
  • 스크립트 언어는 처음 봤고, 잘 몰랐었는데 뜯어보니가 작동 방식은 비슷했다.
  • 단순히 자동화를 하는것이 아니라 데이터를 관리하고 처리하는 것이 내가 원하는 기능을 구현한는데 더 중요한 것 같다.

🐬 참고 자료