포스트

[TIL] 2026-05-31 — GitHub.io 블로그 전면 개편 · 팀플 기획(협동+마피아)

[TIL] 2026-05-31 — GitHub.io 블로그 전면 개편 · 팀플 기획(협동+마피아)

2026-05-31 GitHub.io 블로그 전면 개편 — 카테고리 주제화·알고리즘 발행 파이프라인·노션식 사이드바 + 팀플 기획(협동+마피아)

목차


오늘 한 일 요약

  1. 카테고리를 날짜축 → 주제축으로 개편_posts frontmatter의 categories에서 월 버킷(2026-05)을 제거. 날짜 탐색은 Chirpy의 Archives 탭에 일임하고, 카테고리는 CS 면접 준비 / 알고리즘 / TIL 등 주제만 남김. tools/migrate-to-posts.ps1 §1 수정 + _posts 재생성.
  2. 태그 통제 어휘 도입_data/tag_vocab.yml에 canonical 태그 + 별칭(예: 운영체제→os, 언리얼→ue5) 정의. tools/tag-vocab.ps1(YAML 의존성 없는 파서)·tools/normalize-tags.ps1(정규화 lint) 신설. 배포 워크플로우에 -Strict lint 추가로 미등록 태그 유입 차단. (Notion 이관 잔재 293개 태그는 클린 빌드로 자연 정리)
  3. 강의노트·구현계획 카테고리 제거Unreal C++/강의 노트, 스크럼 회고/구현계획 포스트 10개 삭제 + migrate 섹션 제거. 발행 카테고리를 TIL·CS·알고리즘으로 한정.
  4. 알고리즘 작업물 발행 파이프라인 구축CodeKata/(프로그래머스)·100zun/(플랫폼 자동판별) cpp를 포스트로 발행. CodeKata 8개의 몰린 git 날짜를 빈 평일로 재배치. 4·5월 빈 활동 평일 12일에 프로그래머스 Lv.1 풀이를 새로 작성해 발행. 100zun에 섞여 LeetCode로 오분류돼 있던 백준 8문제 자동 교정.
  5. 카테고리 UI 노션화 — 카테고리 페이지(_layouts/categories.html)와 왼쪽 사이드바(_includes/sidebar.html)에 접이식 트리 추가. 기본 펼침, 폴더 아이콘 제거, 이름 한 줄 표시.
  6. 팀플 기획 정리 — 강동욱 튜터님이 채팅으로 제안한 “Chained Together” 협동+마피아 게임 아이디어를 기획 노트로 정리.

오늘은 언리얼이 아니라 블로그 인프라(Jekyll Chirpy) 작업 위주. 커밋 8개 + 배포 8회 전부 정상.


작업 환경

  • 저장소: C:\GitHub\Bootcamp-TIL (= GoldBoll.github.io)
  • 테마: jekyll-theme-chirpy 7.5.0 / Ruby 3.3 / GitHub Pages Actions 배포
  • 도구: tools/migrate-to-posts.ps1(원본 → _posts 변환), 신규 tag-vocab.ps1·normalize-tags.ps1

1. 카테고리 개편 — 날짜(월) → 주제 기반

기존엔 TIL 포스트가 categories: ["TIL", "2026-05"]처럼 을 하위 카테고리로 달고 있었다. 이건 날짜축이라 “주제별 보기”가 안 된다. 날짜 탐색은 Chirpy Archives 탭이 이미 담당하므로 카테고리에서 월을 제거하고 주제만 남겼다.

  • migrate-to-posts.ps1 §1: -Categories @("TIL", $ym)@("TIL")
  • _posts 88개 재생성 — diff는 카테고리 줄 + render_with_liquid: false 일관 적용뿐

2. 태그 통제 어휘 + CI lint

Notion 이관 잔재로 태그가 난립(라이브에 293개)했었다. 통제 어휘로 가드레일을 세웠다.

  • _data/tag_vocab.yml — canonical 태그 + 별칭 매핑
  • tools/tag-vocab.ps1powershell-yaml 모듈 없이 vocab을 파싱/정규화하는 공용 로더
  • tools/normalize-tags.ps1_posts 태그 정규화. -Apply(실제 치환)/-Strict(미등록 시 exit 1, CI용)
  • .github/workflows/pages-deploy.yml — 빌드 전 normalize-tags.ps1 -Strict 단계 추가
  • 교훈: Join-Path $Root "_data\tag_vocab.yml"\는 리눅스 PowerShell Core에서 안 먹는다 → Join-Path $Root "_data" "tag_vocab.yml"로 크로스플랫폼화

3. 강의노트·구현계획 카테고리 제거

블로그에는 팀프로젝트·개인 R&D·알고리즘 같은 결과물 위주로 노출하기로. 강의 노트(언리얼 마스터)·구현계획은 카테고리에서 제외.

  • migrate §3·§4(언리얼 마스터·구현계획) 삭제 → 재실행해도 재생성 안 됨
  • 기존 포스트 10개(ue-master 2 + plan 8) 삭제
  • 앞으로 팀프로젝트/개인 R&D 글은 일일 TIL에서 part 마커(cat="..." 형태의 HTML 주석)로 떼어내 발행하는 방식으로 운용 예정

4. 알고리즘 작업물 발행 파이프라인

CodeingTest/CodingTest/ 아래 cpp 풀이들을 블로그에 카테고리별로 발행.

  • 소스→카테고리: CodeKata/알고리즘/프로그래머스, 100zun/→제목 첫 줄의 플랫폼 키워드로 자동 판별(프로그래머스/백준/LeetCode)
  • 제목/출처: cpp 첫 주석에서 제목·URL 추출, 코드블록으로 본문 구성
  • CodeKata 날짜 재배치: 01~08이 git 일괄 커밋(2026-03-05)으로 한 날에 몰려 있던 걸 직전 빈 평일(02-23~03-05)에 하루 1개씩 분배 (kataDates 매핑)
  • 4·5월 빈 평일 12문제 신규 풀이 발행 — 프로그래머스 Lv.1 (서울에서 김서방 찾기·가운데 글자·행렬 덧셈·3진법 뒤집기·삼총사·크기가 작은 부분문자열·숫자 문자열과 영단어·문자열 정렬·콜라 문제·명예의 전당·과일 장수·모의고사)
  • 버그 2건 수정: ① 100zun에 섞인 백준 8문제가 LeetCode로 오분류 → 플랫폼 자동판별로 교정. ② CodeKata 제목 추출이 빈 주석(//)·주석처리된 코드(// #include)를 제목으로 잡던 문제 → CodeKata는 CodeKata NN 고정, Get-CodeTitle은 빈 주석·URL·주석코드 스킵하도록 강화

5. 카테고리 UI — 노션식 접이식 트리(페이지·사이드바)

노션 좌측 사이드바처럼 카테고리를 바로 펼쳐보고 싶다는 요구.

  • 카테고리 페이지(_layouts/categories.html): 카드 헤더 행 전체를 collapse 토글 버튼화
  • 왼쪽 사이드바(_includes/sidebar.html): “카테고리” 항목에 2단 접이식 트리 삽입. 기본 펼침, 글 수 표시
  • 삽질 기록(레이아웃):
    • overflow-wrap: anywhere + flex min-width:0 → 좁은 폭에서 글자가 한 자씩 세로로 쪼개짐
    • 이어서 text-overflow: ellipsis → 이름이 0폭으로 사라짐
    • 최종: 테마 .nav-link 대신 전용 .cat-link 클래스 + word-break: keep-all, 폴더 아이콘 제거, 들여쓰기 축소로 해결
  • 교훈: 테마의 기존 컴포넌트 클래스(.nav-link)를 그대로 재사용하면 그 스타일(라운드 박스·우측 치우침)에 끌려간다. 트리는 전용 클래스로 분리하는 게 깔끔.

6. 팀플 기획 — 강동욱 튜터님 협동+마피아 게임 제안

(상세: scrum/팀플_기획_Chained-Together_협동마피아.md)

  • 튜터님이 “Chained Together” 게임을 보고 8조에 협동 게임 제작 제안 (리소스·퀄리티 부담 낮음)
  • 컨셉: 협력 클리어 + 어몽어스식 배신자 1명(미션 실패가 목적). 마지막에 지목당하면 배신자 패배
  • 보상: 클리어+배신자 색출 → 최대 / 실패해도 배신자 색출 → 소정
  • 다음: “Chained Together” 직접 확인 후 8조 기획 회의 안건으로

오늘 배운 것 정리

  • 분류 축을 분리하라 — 날짜(언제)와 주제(무엇)는 다른 축이다. Chirpy는 날짜=Archives, 주제=Categories로 이미 분리돼 있는데 카테고리에 월을 끼워 넣어 축이 섞였던 것. 도구가 주는 축을 존중하면 분류가 단순해진다.
  • 가드레일은 단일 출처 + CI에서 — 태그 난립은 “허용 목록(vocab) + 자동 정규화 + CI 차단” 3단으로 막는다. 사람 규율에 기대지 않는다.
  • 메타데이터는 콘텐츠 가까이 — cpp 첫 주석 한 줄(// 플랫폼 제목)로 카테고리·제목·출처가 자동 결정되게 하면, 별도 설정 파일 없이 글 작성만으로 분류가 끝난다.
  • PowerShell 크로스플랫폼 — 로컬(Windows)에선 \ 경로가 되지만 CI(Linux PowerShell Core)에선 깨진다. Join-Path는 인자를 나눠 주자.
  • 테마 커스텀은 전용 클래스로 — 기존 컴포넌트 클래스 재사용은 그 스타일을 떠안는다. 새 UI는 전용 클래스로 분리해야 의도대로 통제된다.
  • CSS 줄바꿈 함정 — 좁은 flex 컨테이너에서 overflow-wrap:anywhere는 글자 단위 줄바꿈을, min-width:0 + ellipsis는 0폭 소실을 일으킨다. 짧은 라벨은 word-break:keep-all로 단어 단위 줄바꿈이 안전.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.