project-slack.jpg


πŸ€– ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ ν”„λ‘œν•„ 뱃지 μžλ™ 생성 봇

1. 개발 λͺ©μ 


λ°±μ€€κ³Ό ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ ν”Œλž«νΌμ„ μ•Œκ³ λ¦¬μ¦˜ 문제 ν’€μ΄μ‹œ 자주 μ• μš©ν•˜κ³  μžˆλ‹€.

μ•Œκ³ λ¦¬μ¦˜ 풀이 기둝을 남기기 μœ„ν•΄ λ°±μ€€ ν—ˆλΈŒλΌλŠ” μ΅μŠ€ν…μ…˜μ„ μ‚¬μš©ν•΄μ„œ μžλ™μœΌλ‘œ κΉƒν—ˆλΈŒ λ ˆν¬μ§€ν† λ¦¬μ— μ—°λ™ν•˜μ—¬ 기둝으둜 남기고 μžˆλ‹€.

λ°±μ€€(Boj) ν”Œλž«νΌμ€ solved.acλΌλŠ” 곳을 톡해 μ‚¬μš©μžλ“€μ˜ λ°±μ€€ ν‹°μ–΄λ₯Ό λ§€κΈ°κ³ μžˆλ‹€. 이 데이터λ₯Ό ν™œμš©ν•΄μ„œ λ°±μ€€ ν”„λ‘œν•„ 뱃지λ₯Ό λ©‹μ§€κ²Œ λ§Œλ“œλŠ” mazassumnida ν”„λ‘œμ νŠΈμ—μ„œ μ œκ³΅ν•˜λŠ” ν”„λ‘œν•„ 뱃지 이미지λ₯Ό μ‚¬μš©ν•΄μ„œ κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ— μ‚¬μš©μ€‘μ΄λ‹€.

졜근 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ—μ„œλ„ μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό 풀어보고 μžˆλŠ”λ° β€œν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ ν”„λ‘œν•„ 뱃지 λ˜ν•œ λ©‹μ§€κ²Œ λ§Œλ“€μˆ˜ μ—†μ„κΉŒ?β€λž€ μƒκ°μœΌλ‘œ μ‹œμž‘ν•˜κ²Œλœ ν”„λ‘œμ νŠΈμ΄λ‹€.



μ•„λž˜μ˜ 두 레퍼런슀 ν”„λ‘œμ νŠΈλ₯Ό μ°Έκ³ ν•˜μ—¬ λ§Œλ“€μ—ˆλ‹€.



2. 주의 사항


  • λ°±μ€€ ν—ˆλΈŒ μ΅μŠ€ν…μ…˜μ— μ—°λ™λœ λ ˆν¬μ§€ν† λ¦¬ ν•„μš”.
  • κΉƒν—ˆλΈŒ PAT(Personal Access Token) ν•„μš”.

μ‹€μ‹œκ°„μœΌλ‘œ ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ—μ„œ 문제 풀이λ₯Ό μ™„λ£Œν•˜λ©΄ λ°±μ€€ ν—ˆλΈŒλ₯Ό 톡해 μ—°λ™λœ λ ˆν¬μ§€ν† λ¦¬μ— μžλ™μœΌλ‘œ μ»€λ°‹λ˜λŠ” κΈ°λŠ₯을 ν™œμš©ν•œ ν”„λ‘œμ νŠΈμ΄λ―€λ‘œ λ°±μ€€ ν—ˆλΈŒκ°€ λ°˜λ“œμ‹œ ν•„μš”ν•˜λ‹€. (λ°±μ€€ ν—ˆλΈŒ μ„€μΉ˜ 방법은 이 κ²Œμ‹œκΈ€μ—μ„œλŠ” μ„€λͺ…ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.)

λ˜ν•œ λ‹€λ₯Έ λ ˆν¬μ§€ν† λ¦¬ μ €μž₯μ†Œμ˜ Github Actions μ›Œν¬ν”Œλ‘œμš°λ₯Ό ν˜ΈμΆœν•΄μ•Όν•˜λ―€λ‘œ κΉƒν—ˆλΈŒ 토큰이 ν•„μš”ν•˜λ‹€. (λ‹€λ₯Έ μ €μž₯μ†Œλ₯Ό ν˜ΈμΆœν•  수 μžˆλŠ”μ§€ κΆŒν•œμ„ 확인해야 ν•˜λ―€λ‘œ PATκ°€ λ°˜λ“œμ‹œ ν•„μš”ν•˜λ‹€.)



3. μ„€μΉ˜ 방법


3-1. ν”„λ‘œμ νŠΈ 포크

3-2. μ•‘μ…˜ μ‹œν¬λ¦Ώ ν‚€ 등둝

  • PROGRAMMERS-BADGE ν”„λ‘œμ νŠΈμ—μ„œ κΉƒν—ˆλΈŒ μ•‘μ…˜μ— μ‚¬μš©λ  μ‹œν¬λ¦Ώ ν‚€λ₯Ό λ“±λ‘ν•©λ‹ˆλ‹€.

    secret_key

    • GH_PAT: GitHub Personal Access Token κ°’ μž…λ‹ˆλ‹€.

      ghp_.... 둜 μ‹œμž‘ν•˜κ³€ν•©λ‹ˆλ‹€.

    • GH_REPOSITORY: {Github 계정λͺ…}/{λ ˆν¬μ§€ν† λ¦¬λͺ…}

      μ˜ˆμ‹œλ‘œ μ €μ˜ κ²½μš°μ—” JH8459/PROGRAMMERS-BADGE μž…λ‹ˆλ‹€.

    • PROGRAMMERS_ID: ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 계정 IDμž…λ‹ˆλ‹€.

      ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 이메일 μ£Όμ†Œμ΄λ©° μ†Œμ…œ 둜그인으둜 μ‚¬μš©μ€‘μ΄μ‹œλ”λΌλ„ λ“±λ‘ν•΄μ£Όμ…”μ•Όν•©λ‹ˆλ‹€.

    • PROGRAMMERS_PW: ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 계정 PWμž…λ‹ˆλ‹€.


3-3. μ•‘μ…˜ ν™œμ„±ν™”

  • PROGRAMMERS-BADGE ν”„λ‘œμ νŠΈμ—μ„œ μ•‘μ…˜μ„ ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

    action_enable

    ν¬ν¬ν•œ λ ˆν¬μ§€ν† λ¦¬μ˜ μ•‘μ…˜μ€ 기본으둜 λΉ„ν™œμ„±ν™”λ˜μ–΄ μžˆμœΌλ―€λ‘œ ν•΄λ‹Ή λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ μ•‘μ…˜μ„ ν™œμ„±ν™”μ‹œν‚΅λ‹ˆλ‹€.


3-4. λ°±μ€€ν—ˆλΈŒ μ €μž₯μ†Œ μ•‘μ…˜ μ‹œν¬λ¦Ώ ν‚€ 등둝

  • λ°±μ€€ν—ˆλΈŒμ— μ—°λ™λœ λ ˆν¬μ§€ν† λ¦¬μ—μ„œ κΉƒν—ˆλΈŒ μ•‘μ…˜μ— μ‚¬μš©λ  μ‹œν¬λ¦Ώ ν‚€λ₯Ό λ“±λ‘ν•©λ‹ˆλ‹€.

    action_secret

    • GH_PAT: GitHub Personal Access Token κ°’ μž…λ‹ˆλ‹€.

      ghp_.... 둜 μ‹œμž‘ν•˜κ³€ν•©λ‹ˆλ‹€.


3-5. λ°±μ€€ν—ˆλΈŒ μ €μž₯μ†Œ μ•‘μ…˜ ν™œμ„±ν™”

  • λ°±μ€€ν—ˆλΈŒμ— μ—°λ™λœ λ ˆν¬μ§€ν† λ¦¬μ—μ„œ μ•‘μ…˜μ„ ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

    action_enable

    • set up a workflow yourself 클릭 ν›„ μ•„λž˜μ˜ dispatch_action.yml을 λ³΅μ‚¬ν•΄μ„œ λ„£μ–΄μ€λ‹ˆλ‹€.

      name: dispatch_action
      
      on:
       push:
         branches:
           - master
      
      jobs:
       dispatch:
         runs-on: ubuntu-latest
         steps:
           - name: Trigger repository dispatch
             uses: peter-evans/repository-dispatch@v1
             with:
               token: ${{ secrets.GH_PAT }}
               repository: {Github 계정λͺ…}/{λ ˆν¬μ§€ν† λ¦¬λͺ…}
               event-type: trigger-workflow

      repository: {Github 계정λͺ…}/{λ ˆν¬μ§€ν† λ¦¬λͺ…} μ˜ˆμ‹œλ‘œ μ €μ˜ κ²½μš°μ—” JH8459/PROGRAMMERS-BADGE μž…λ‹ˆλ‹€.


3-6. κ²°κ³Ό 확인

  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ—μ„œ 문제 풀이 ν›„ PROGRAMMERS-BADGE ν”„λ‘œμ νŠΈμ—μ„œ κ²°κ³Όλ¬Ό 확인

    • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 문제 풀이 ν›„ λ°±μ€€ ν—ˆλΈŒμ— μ—°λ™λœ λ ˆν¬μ§€ν† λ¦¬μ˜ μ•‘μ…˜ 둜그λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

    • PROGRAMMERS-BADGE ν”„λ‘œμ νŠΈμ—μ„œμ˜ μ•‘μ…˜ 둜그λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

    • μœ„ κ³Όμ •μ—μ„œ λ¬Έμ œκ°€ μ—†μ—ˆλ‹€λ©΄, PROGRAMMERS-BADGE ν”„λ‘œμ νŠΈμ—μ„œ static 폴더에 .svg 포맷의 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ λž­ν‚Ή 뱃지 결과물을 ν™•μΈν•©λ‹ˆλ‹€.

    • μ›ν•˜λŠ” λž­ν‚Ή 뱃지 μœ ν˜•μ„ 확인 ν›„ κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ— 링크λ₯Ό λΆ™ν˜€λ„£μŠ΅λ‹ˆλ‹€.

      https://raw.githubusercontent.com/{Github 계정λͺ…}/{λ ˆν¬μ§€ν† λ¦¬λͺ…}/master/static/result.svg



4. 결과물 미리 보기

κΈ°λ³Έν˜•

  • 0 레벨 πŸ‚

    0

  • 1 레벨 πŸ’

    1

  • 2 레벨 πŸ…

    2

  • 3 레벨 πŸ’š

    3

  • 4 레벨 πŸ’Ž

    4

  • 5 레벨 πŸ’

    5



MINI

0

1

2

3

4

5



πŸ€” Understanding

μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€μ΄μ— 동기뢀여도 되고 무엇보닀 Boj λ‘œκ³ μ™€ 결을 κ°™μ΄ν•˜κΈ° λ•Œλ¬Έμ— μ•„λž˜μ™€ 같이 어색함이 없이 κΉƒν—ˆλΈŒ ν”„λ‘œν•„μ—μ„œ λ…ΈμΆœλ  수 μžˆλ‹€.


profile


사싀 ν”„λ‘œν•„ 뱃지가 뭐가 μ€‘μš”ν•œκ°€ μ‹Άμ§€λ§Œ μƒκ°λ‚œ 김에 λ§Œλ“€μ–΄λ³Έ 토이 ν”„λ‘œμ νŠΈμ΄λ‹€.