Parent: #73
목적
Magic Exam Hall이 외부 픽셀 아트로 procedural sprite를 교체하기 위해 필요한 모든 이미지 자산을 한 곳에 정리한다. 팀원이 후보 팩을 평가하거나 외주를 맡기거나 직접 그릴 때 이 목록을 기준으로 매칭한다.
자산 파일은 PR #97 머지 후 unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/ 아래에 PR #97의 명명 규칙 (docs/SPRITE_GUIDE.md)대로 둔다. docs/CREDITS.md에 출처와 라이선스를 함께 기록한다.
권장 스펙 기본값: 32×32 픽셀, PPU 16, Filter Point, Wrap Clamp, Pivot Center, PNG. 반복 타일은 Wrap Repeat. 다른 해상도는 같은 PPU로 import만 맞추면 동작한다.
우선순위 표기
1. 환경 (Environment) — P0
가장 큰 화면 면적을 차지. 톤이 게임 인상의 절반 이상을 결정. 가장 먼저 교체 권장.
| 파일명 |
용도 |
권장 형태 |
비고 |
FloorTile.png |
모든 층 바닥 타일 (반복) |
32×32 seamless tile, 어두운 돌 톤 |
반복 시 이음새 안 보이게 |
WallTrim.png |
위·아래 벽 장식 (반복) |
32×32 horizontal-tileable trim, 돌 조각 디테일 |
위·아래 동일 sprite |
Rug.png |
중앙 카펫 (세로 반복) |
32×32 vertical-tileable pattern |
층별 색은 tint로 처리 |
Bookshelf.png |
양쪽 책장 (2개 인스턴스) |
32×32 정적, 책 색 변주 포함 |
|
Candle.png |
모서리 촛불 (2개 인스턴스) |
32×32 정적 또는 3-frame flicker |
애니메이션 있으면 더 좋음 |
2. 캐릭터 (Characters) — P0 / P1
| 파일명 |
용도 |
권장 형태 |
우선순위 |
Player.png |
입학생 마법사 (기본) |
32×32 정적 정면 |
P0 |
Mentor.png |
Exam Mentor NPC (idle) |
32×32 또는 48×48 정적 정면 |
P0 |
Player_WalkDown.png ~ 4종 |
4방향 걷기 애니메이션 |
32×32 4-frame sheet 또는 개별 |
P1 |
Player_Casting.png |
시전 자세 |
32×32 정적 또는 2-frame |
P1 |
Mentor_Speaking.png |
대사 중 (머리 위 룬 글로우) |
32×32 또는 head bob 2-frame |
P1 |
PR #71에서 mentor가 PixelArtFactory로 procedural 생성되어 있으므로 교체 우선도 높음.
3. Base Family 룬 (Goal targets) — P0
1층 인덱스 룬 + 5층 base 슬롯이 사용. PR #96 머지 후 enum에 추가됨.
| 파일명 |
family |
디자인 문서 §5 형태 |
FireRune.png |
Fire |
위로 솟은 닫힌 삼각형 |
WaterRune.png |
Water |
둥근 닫힌 루프 |
WindRune.png |
Wind |
평행한 열린 세 줄 |
EarthRune.png |
Earth |
아래가 넓은 사다리꼴 |
LifeRune.png |
Life |
줄기와 위로 갈라지는 두 가지 (Y자) |
각 룬은 화면 안에서 한 눈에 family가 읽혀야 함. 색은 sprite 자체에 넣지 말고 흰빛/회색으로 그려두면 코드의 family tint가 곱셈으로 적용됨 (선택, sprite 자체에 색 넣어도 동작).
4. Overlay operator 룬 — P1
현재 6종 모두 RuneCircle.png 한 장을 색만 바꿔서 공유. 각자 다른 모양으로 분리해야 2층 발견 경험이 살아남.
| 파일명 |
operator |
디자인 문서 §5 형태 |
RuneSteelBrace.png |
steel_brace |
열린 브레이스 (∨ 또는 ⌐ 형태) |
RuneElectricFork.png |
electric_fork |
갈라지는 번개 |
RuneIceBar.png |
ice_bar |
수평 막대 |
RuneSoulDot.png |
soul_dot |
작고 닫힌 점 |
RuneVoidCut.png |
void_cut |
짧은 대각 절단선 |
RuneMartialAxis.png |
martial_axis |
축선 결합 (void_cut 위에 수직선) |
enum 확장 필요: OverlaySteelBrace, OverlayElectricFork 등. 합의 후 진행.
RuneCircle.png (기존 fallback) 도 유지: combo 목표 (3층·4층) 가 계속 사용.
5. 시전 효과 (Pulses and Effects) — P0 / P1
| 파일명 |
용도 |
권장 형태 |
우선순위 |
Pulse.png |
시전 펄스, 위험 잔향 |
32×32 ring + cross, 알파 그라데이션 |
P0 |
PulseSuccess.png |
성공 burst |
32×32 expanding ring 또는 별 burst |
P1 |
PulseFail.png |
실패 흐릿한 파문 |
32×32 흐릿한 ripple |
P1 |
PulseGoalSatisfied.png |
층 목표 일부 만족 |
32×32 상승 burst |
P1 |
PulseFloorComplete.png |
층 완료 stinger |
32×32 또는 64×64 큰 burst |
P1 |
enum 확장 필요: PulseSuccess 등.
6. NPC 보조 시각 — P1
| 파일명 |
용도 |
권장 형태 |
MentorRuneGlow.png |
NPC 대사 중 머리 위 룬 |
16×16 작은 룬, 알파 글로우 |
MentorBubble.png |
대사 말풍선 배경 (9-slice 권장) |
가변, 9-slice border |
7. 노트와 Codex UI — P0 (아이콘) / P1 (codex)
| 파일명 |
용도 |
권장 형태 |
우선순위 |
IconNoteBook.png |
우상단 노트 책 아이콘 (기본) |
32×32 책 모양 |
P0 |
IconNoteBook_Pulse.png |
노트 갱신 시 펄스 상태 |
32×32 발광 버전 또는 별도 펄스 sprite |
P0 |
CodexBackground.png |
Codex 패널 배경 (9-slice 권장) |
가변, 9-slice |
P1 |
CodexTab_Dialogue.png |
"대사" 탭 아이콘 |
24×24 |
P1 |
CodexTab_FloorNotes.png |
"층별 노트" 탭 아이콘 |
24×24 |
P1 |
CodexTab_Discovery.png |
"발견" 탭 아이콘 |
24×24 |
P1 |
CodexDiscoverySlot.png |
발견 그리드 빈 슬롯 (실루엣) |
32×32 |
P1 |
8. HUD와 메뉴 — P0 (기본) / P1 (옵션)
| 파일명 |
용도 |
권장 형태 |
우선순위 |
HudPanelFrame.png |
HUD 좌상단 패널 배경 (9-slice) |
가변 9-slice |
P0 |
MagicNotePanelFrame.png |
좌하단 노트 패널 배경 (9-slice) |
가변 9-slice |
P0 |
EndingReportFrame.png |
중앙 엔딩 리포트 배경 (9-slice) |
가변 9-slice |
P0 |
MenuButton_Normal.png |
메뉴 버튼 기본 (9-slice) |
가변 9-slice |
P0 |
MenuButton_Hover.png |
메뉴 버튼 hover |
가변 9-slice |
P0 |
MenuButton_Pressed.png |
메뉴 버튼 pressed |
가변 9-slice |
P1 |
OptionsSliderTrack.png |
옵션 슬라이더 트랙 |
가변 |
P1 |
OptionsSliderHandle.png |
옵션 슬라이더 핸들 |
16×16 |
P1 |
OptionsToggle_Off.png |
토글 off |
24×24 |
P1 |
OptionsToggle_On.png |
토글 on |
24×24 |
P1 |
9. 타이틀 화면 — P0
| 파일명 |
용도 |
권장 형태 |
TitleLogo.png |
게임 로고 |
가변, 고해상도 (256×128 권장) |
TitleBackdrop.png |
마법탑 실루엣 배경 |
1280×800 또는 16:10 비율 |
TitlePressStart.png |
"아무 키나 눌러 시작" 텍스트 |
옵션, 텍스트로도 가능 |
10. 트랜지션 / 화면 효과 — P1
| 파일명 |
용도 |
권장 형태 |
Vignette_Hazard.png |
위험 접촉 시 가장자리 비네트 |
1024×1024 부드러운 적색 그라데이션 |
Vignette_Focus.png |
NPC 등장 시 가벼운 비네트 (선택) |
1024×1024 어두운 그라데이션 |
FadeOverlay_Black.png |
트랜지션 검정 페이드 |
1×1 검정 |
ClimaxOverlay_White.png |
5층 클라이맥스 화면 페이드 |
1×1 흰색 |
대부분 1×1 단색으로 충분. Unity에서 Image의 color로 처리 가능.
11. 1층 인덱스 룬 — P0
docs/GAME_DESIGN.md §9 1층 묘사 기준으로, base family와 별개로 "환경 안의 사물" 형태가 의도된 디자인. 가능하면 별도 sprite로 분리.
| 파일명 |
용도 |
권장 형태 |
IndexRune_Ember.png |
불씨 (fire 인덱스) |
32×32 작은 모닥불 또는 잿불 |
IndexRune_Puddle.png |
물웅덩이 (water 인덱스) |
32×32 작은 물 웅덩이 |
IndexRune_Vane.png |
바람개비 (wind 인덱스) |
32×32 또는 2-frame 회전 |
IndexRune_Pillar.png |
돌기둥 (earth 인덱스) |
32×32 작은 돌기둥 |
IndexRune_Vine.png |
마른 덩굴 (life 인덱스) |
32×32 시든 덩굴 |
현재는 family 룬 모양을 인덱스 룬 자리에 그대로 씀. 별도 분리하면 1층이 "마법 시험장 입구" 분위기가 훨씬 살아남.
enum 확장 필요. 합의 후 진행.
12. 2층 깨진 룬 / 벽화 — P1
| 파일명 |
용도 |
권장 형태 |
BrokenRune_Steel.png ~ Axis.png × 6 |
overlay 6종 자리의 깨진 룬 |
32×32 깨진 자국이 있는 룬 |
BrokenRune_Steel_Restored.png ~ × 6 |
복구 완료 상태 |
32×32 완전한 룬 + overlay 마크 |
Mural_OverlayHints.png |
벽화 (overlay 형태 단서) |
가변, 벽면 텍스처 |
총 13장. 또는 단일 sprite + 부분 마스킹으로 처리 가능.
13. 3층 다리 / 흐름 — P1
| 파일명 |
용도 |
권장 형태 |
BridgeGap_EmptySpan.png |
빈 공간 (다리 끊긴 부분) |
가변 |
BridgeSupport_Earth.png |
earth+brace 지지대 |
32×32 |
BridgePath_Ice.png |
water+ice 얼음 다리 |
가변 |
BridgeVine_Life.png |
life+dot 덩굴 고리 |
가변 |
BridgeWind_Axis.png |
wind+axis 발판 정렬 |
가변 |
현재 코드의 BridgeFlow reaction이 만들어내는 시각. 4가지 해결 방향이 시각적으로 구분되어야 발견 재미가 살아남.
14. 4층 위험 / 안전 지점 — P1
| 파일명 |
용도 |
권장 형태 |
Hazard_Crack.png |
균열 sprite (정적) |
32×32 |
Hazard_Crack_Anim.png |
균열 박동 (3-frame) |
32×32 × 3 |
Hazard_LightningCircuit.png |
번개 회로 |
32×32 또는 64×64 |
Hazard_LightningCircuit_Anim.png |
번개 회로 깜빡임 (3-frame) |
|
SafeZone_Pin.png |
안전 지점 파란 룬 |
32×32 |
Hazard_Stabilized.png |
안정화된 균열 (완료 상태) |
32×32 |
15. 5층 큰 마법진 — P0
| 파일명 |
용도 |
권장 형태 |
FinalSeal_Center.png |
가운데 큰 마법진 (깨진 상태) |
256×256 또는 큰 sprite |
FinalSeal_Restored.png |
모두 만족된 마법진 |
256×256 빛나는 버전 |
FinalSlot_Cleanse.png |
정화 슬롯 (흐릿/또렷 두 상태) |
64×64 또는 2 sprite |
FinalSlot_Stability.png |
안정 슬롯 |
64×64 |
FinalSlot_Connection.png |
연결 슬롯 |
64×64 |
FinalSlot_Focus.png |
집중 슬롯 |
64×64 |
FinalSlot_Flow.png |
흐름 슬롯 |
64×64 |
FinalSlot_Cut.png |
절단 슬롯 |
64×64 |
각 슬롯은 2 상태 (흐릿/또렷). 별도 sprite 또는 단일 sprite + alpha 동적 처리. M1 vertical slice는 슬롯 3개만 (정화·안정·연결) 우선.
16. 그리는 선 비주얼 — P0
#87 이슈와 같이 진행. sprite 형태로는 적음.
| 파일명 |
용도 |
권장 형태 |
StrokeSegment.png |
그리는 선 한 마디 |
8×8 또는 16×16 부드러운 원/점 |
StrokeEndpoint.png |
stroke 시작·끝 점 강조 |
8×8 |
Cursor_Default.png |
평소 마우스 커서 |
16×16 |
Cursor_Drawing.png |
우클릭 hold 중 룬 도트 커서 |
16×16 다이아몬드 |
StrokeSegment는 코드에서 family 색으로 곱셈 tint. sprite 자체는 흰빛 부드러운 원이 가장 범용.
17. 튜토리얼 ghost gesture — P0 (1층 8초 침묵 시)
| 파일명 |
용도 |
권장 형태 |
GhostTrace_Fire.png ~ Life.png × 5 |
모범 문양 흐릿한 미리보기 |
32×32 family 룬 형태의 50% 알파 |
GhostTrace_Animation_Frames.png |
0.8초 ghost gesture 프레임 시퀀스 |
32×32 × 8~12 frame |
또는 코드에서 stroke를 시간 따라 그리는 방식으로 처리 가능 (sprite 없이도 됨).
18. 컨텐츠 잠금 안내 — P0 (M1)
vertical slice에서 2·3·4층은 잠긴 문으로 표시.
| 파일명 |
용도 |
권장 형태 |
LockedDoor.png |
잠긴 문 sprite |
32×64 |
IconLock.png |
자물쇠 아이콘 |
24×24 |
19. 엔딩 리포트 카테고리 아이콘 — P1
| 파일명 |
용도 |
권장 형태 |
ReportIcon_BaseUse.png |
가장 많이 사용한 base |
24×24 |
ReportIcon_OverlayUse.png |
가장 많이 사용한 overlay |
24×24 |
ReportIcon_Combos.png |
발견한 조합 수 |
24×24 |
ReportIcon_Quality.png |
평균 품질 경향 |
24×24 |
ReportIcon_Stable.png |
가장 안정적인 문양 |
24×24 |
ReportIcon_Failed.png |
가장 많이 실패한 문양 |
24×24 |
ReportIcon_Note.png |
노트 대표 관찰문 |
24×24 |
ReportIcon_SelfRating.png |
자기 평가 |
24×24 |
20. 색약·접근성 — P1
§15 접근성 옵션 기준 색약 모드에서 패턴(점선·줄무늬)으로 위험·성공 구분.
| 파일명 |
용도 |
권장 형태 |
Pattern_Hazard.png |
위험 영역 위에 덧대는 줄무늬 패턴 |
32×32 반복 |
Pattern_Success.png |
성공 영역 위에 덧대는 점선 패턴 |
32×32 반복 |
요약 표
| 분류 |
P0 자산 수 |
P1 자산 수 |
| 환경 |
5 |
0 |
| 캐릭터 |
2 |
3 |
| Base family 룬 |
5 |
0 |
| Overlay 룬 |
0 |
6 |
| 시전 효과 |
1 |
4 |
| NPC 보조 |
0 |
2 |
| 노트/Codex UI |
2 |
5 |
| HUD/메뉴 |
5 |
5 |
| 타이틀 |
2 |
1 |
| 트랜지션 |
0 |
4 |
| 1층 인덱스 룬 |
5 |
0 |
| 2층 깨진 룬 |
0 |
13 |
| 3층 다리 |
0 |
5 |
| 4층 위험 |
0 |
6 |
| 5층 마법진 |
8 |
0 |
| 그리는 선 |
4 |
0 |
| Ghost gesture |
5 |
0 |
| 컨텐츠 잠금 |
2 |
0 |
| 리포트 아이콘 |
0 |
8 |
| 색약 패턴 |
0 |
2 |
| 합계 |
약 46 |
약 64 |
대부분 sprite는 32×32 작은 크기라 무료 팩에서 매칭 가능. UI 9-slice, 타이틀 배경, 마법진 등 일부는 자체 작업 또는 큰 sprite 팩 필요.
진행 안내
- 후보 팩을 받기 전에
docs/SPRITE_GUIDE.md의 라이선스 호환 표를 먼저 확인 (CC0·CC-BY 가능, CC-BY-NC 금지).
- 환경 5종 (P0 §1) 부터 교체하면 톤 결정이 빠름. 4시간 안에 분위기가 완전히 달라짐.
- 다음으로 캐릭터 2종 (Player, Mentor) + Base family 룬 5종 + 5층 마법진 8종이 vertical slice 시연 자리에서 가장 눈에 띔.
- 모든 PNG 추가 후
docs/CREDITS.md에 한 줄씩 출처를 남긴다.
- enum 확장이 필요한 신규 sprite kind는 별도 PR로 분리해 코드와 자산을 같이 머지한다.
추천 후보 출처
관련
Parent: #73
목적
Magic Exam Hall이 외부 픽셀 아트로 procedural sprite를 교체하기 위해 필요한 모든 이미지 자산을 한 곳에 정리한다. 팀원이 후보 팩을 평가하거나 외주를 맡기거나 직접 그릴 때 이 목록을 기준으로 매칭한다.자산 파일은 PR #97 머지 후
unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/아래에 PR #97의 명명 규칙 (docs/SPRITE_GUIDE.md)대로 둔다.docs/CREDITS.md에 출처와 라이선스를 함께 기록한다.권장 스펙 기본값: 32×32 픽셀, PPU 16, Filter Point, Wrap Clamp, Pivot Center, PNG. 반복 타일은 Wrap Repeat. 다른 해상도는 같은 PPU로 import만 맞추면 동작한다.
우선순위 표기
1. 환경 (Environment) — P0
가장 큰 화면 면적을 차지. 톤이 게임 인상의 절반 이상을 결정. 가장 먼저 교체 권장.
FloorTile.pngWallTrim.pngRug.pngBookshelf.pngCandle.png2. 캐릭터 (Characters) — P0 / P1
Player.pngMentor.pngPlayer_WalkDown.png~ 4종Player_Casting.pngMentor_Speaking.pngPR #71에서 mentor가 PixelArtFactory로 procedural 생성되어 있으므로 교체 우선도 높음.
3. Base Family 룬 (Goal targets) — P0
1층 인덱스 룬 + 5층 base 슬롯이 사용. PR #96 머지 후 enum에 추가됨.
FireRune.pngWaterRune.pngWindRune.pngEarthRune.pngLifeRune.png각 룬은 화면 안에서 한 눈에 family가 읽혀야 함. 색은 sprite 자체에 넣지 말고 흰빛/회색으로 그려두면 코드의 family tint가 곱셈으로 적용됨 (선택, sprite 자체에 색 넣어도 동작).
4. Overlay operator 룬 — P1
현재 6종 모두
RuneCircle.png한 장을 색만 바꿔서 공유. 각자 다른 모양으로 분리해야 2층 발견 경험이 살아남.RuneSteelBrace.pngRuneElectricFork.pngRuneIceBar.pngRuneSoulDot.pngRuneVoidCut.pngRuneMartialAxis.pngenum 확장 필요:
OverlaySteelBrace,OverlayElectricFork등. 합의 후 진행.RuneCircle.png(기존 fallback) 도 유지: combo 목표 (3층·4층) 가 계속 사용.5. 시전 효과 (Pulses and Effects) — P0 / P1
Pulse.pngPulseSuccess.pngPulseFail.pngPulseGoalSatisfied.pngPulseFloorComplete.pngenum 확장 필요:
PulseSuccess등.6. NPC 보조 시각 — P1
MentorRuneGlow.pngMentorBubble.png7. 노트와 Codex UI — P0 (아이콘) / P1 (codex)
IconNoteBook.pngIconNoteBook_Pulse.pngCodexBackground.pngCodexTab_Dialogue.pngCodexTab_FloorNotes.pngCodexTab_Discovery.pngCodexDiscoverySlot.png8. HUD와 메뉴 — P0 (기본) / P1 (옵션)
HudPanelFrame.pngMagicNotePanelFrame.pngEndingReportFrame.pngMenuButton_Normal.pngMenuButton_Hover.pngMenuButton_Pressed.pngOptionsSliderTrack.pngOptionsSliderHandle.pngOptionsToggle_Off.pngOptionsToggle_On.png9. 타이틀 화면 — P0
TitleLogo.pngTitleBackdrop.pngTitlePressStart.png10. 트랜지션 / 화면 효과 — P1
Vignette_Hazard.pngVignette_Focus.pngFadeOverlay_Black.pngClimaxOverlay_White.png대부분 1×1 단색으로 충분. Unity에서 Image의 color로 처리 가능.
11. 1층 인덱스 룬 — P0
docs/GAME_DESIGN.md§9 1층 묘사 기준으로, base family와 별개로 "환경 안의 사물" 형태가 의도된 디자인. 가능하면 별도 sprite로 분리.IndexRune_Ember.pngIndexRune_Puddle.pngIndexRune_Vane.pngIndexRune_Pillar.pngIndexRune_Vine.png현재는 family 룬 모양을 인덱스 룬 자리에 그대로 씀. 별도 분리하면 1층이 "마법 시험장 입구" 분위기가 훨씬 살아남.
enum 확장 필요. 합의 후 진행.
12. 2층 깨진 룬 / 벽화 — P1
BrokenRune_Steel.png~Axis.png× 6BrokenRune_Steel_Restored.png~ × 6Mural_OverlayHints.png총 13장. 또는 단일 sprite + 부분 마스킹으로 처리 가능.
13. 3층 다리 / 흐름 — P1
BridgeGap_EmptySpan.pngBridgeSupport_Earth.pngBridgePath_Ice.pngBridgeVine_Life.pngBridgeWind_Axis.png현재 코드의
BridgeFlowreaction이 만들어내는 시각. 4가지 해결 방향이 시각적으로 구분되어야 발견 재미가 살아남.14. 4층 위험 / 안전 지점 — P1
Hazard_Crack.pngHazard_Crack_Anim.pngHazard_LightningCircuit.pngHazard_LightningCircuit_Anim.pngSafeZone_Pin.pngHazard_Stabilized.png15. 5층 큰 마법진 — P0
FinalSeal_Center.pngFinalSeal_Restored.pngFinalSlot_Cleanse.pngFinalSlot_Stability.pngFinalSlot_Connection.pngFinalSlot_Focus.pngFinalSlot_Flow.pngFinalSlot_Cut.png각 슬롯은 2 상태 (흐릿/또렷). 별도 sprite 또는 단일 sprite + alpha 동적 처리. M1 vertical slice는 슬롯 3개만 (정화·안정·연결) 우선.
16. 그리는 선 비주얼 — P0
#87이슈와 같이 진행. sprite 형태로는 적음.StrokeSegment.pngStrokeEndpoint.pngCursor_Default.pngCursor_Drawing.pngStrokeSegment는 코드에서 family 색으로 곱셈 tint. sprite 자체는 흰빛 부드러운 원이 가장 범용.17. 튜토리얼 ghost gesture — P0 (1층 8초 침묵 시)
GhostTrace_Fire.png~Life.png× 5GhostTrace_Animation_Frames.png또는 코드에서 stroke를 시간 따라 그리는 방식으로 처리 가능 (sprite 없이도 됨).
18. 컨텐츠 잠금 안내 — P0 (M1)
vertical slice에서 2·3·4층은 잠긴 문으로 표시.
LockedDoor.pngIconLock.png19. 엔딩 리포트 카테고리 아이콘 — P1
ReportIcon_BaseUse.pngReportIcon_OverlayUse.pngReportIcon_Combos.pngReportIcon_Quality.pngReportIcon_Stable.pngReportIcon_Failed.pngReportIcon_Note.pngReportIcon_SelfRating.png20. 색약·접근성 — P1
§15 접근성 옵션 기준 색약 모드에서 패턴(점선·줄무늬)으로 위험·성공 구분.
Pattern_Hazard.pngPattern_Success.png요약 표
대부분 sprite는 32×32 작은 크기라 무료 팩에서 매칭 가능. UI 9-slice, 타이틀 배경, 마법진 등 일부는 자체 작업 또는 큰 sprite 팩 필요.
진행 안내
docs/SPRITE_GUIDE.md의 라이선스 호환 표를 먼저 확인 (CC0·CC-BY 가능, CC-BY-NC 금지).docs/CREDITS.md에 한 줄씩 출처를 남긴다.추천 후보 출처
관련