BuildSmith
빌드가 무엇을 했고 왜 그만큼 걸렸는지 알려 줍니다. 빌드할 때마다 상태 표시줄에 빌드 시간과 이전 빌드 대비 변화가 표시되고, 빌드 타임라인 창에는 모든 프로젝트가 타임라인에 표시됩니다 — 어떤 프로젝트가 병렬로 실행되었고, 어떤 프로젝트가 기다렸으며, 전체 시간을 결정한 임계 경로가 무엇인지.
무료 · Visual Studio 2022 및 2026 · UI 14개 언어 · 원격 분석 없음
BuildSmith를 쓰는 이유

시간이 어디에 쓰였는지
출력 창은 빌드에 1분 48초가 걸렸다고만 알려 줍니다. 타임라인은 어떤 프로젝트가 그 시간을 썼는지, 어떤 프로젝트가 나란히 실행되었는지, 전체 빌드가 어떤 프로젝트 체인을 기다려야 했는지 보여 줍니다.
같은 조건의 빌드와 비교
main의 Debug 빌드는 main의 이전 Debug 빌드와 비교됩니다 — 다시 빌드, Release 빌드, 다른 분기와는 비교하지 않습니다. 그래서 ▲ 4.1초에는 의미가 있습니다.
조용함
저절로 열리는 창도, 팝업도 없습니다. 빌드 후 상태 표시줄에 한 줄이 표시될 뿐입니다. 기록을 끄면 BuildSmith는 정말로 잠듭니다 — 빌드 이벤트조차 수신하지 않습니다.
조건 없는 무료
구독, ‘Pro’ 버전, 데이터 수집이 없고 출력 창이나 시작 시 메시지도 없습니다. 기록은 사용자의 컴퓨터에 남습니다. 부탁드리는 것은 단 하나, 어느 정도 사용해 보신 뒤 Marketplace에 평가를 남겨 주시는 것뿐입니다. Visual Studio 2022 및 2026, x64 및 ARM64에서 작동합니다.
기능
- 빌드할 때마다 상태 표시줄에 시간과 이전의 비교 가능한 빌드 대비 변화를 표시:
⏱ 1 min 48 s (▲ 4.1 s). - 빌드 타임라인 창: 시작 순서대로 프로젝트마다 막대 하나, 테두리로 표시된 임계 경로, 빗금으로 표시된 최신 프로젝트, 빨간색으로 표시된 실패한 프로젝트, 그리고 각 막대 옆에 이전 빌드 대비 변화.
- 최신 상태가 되지 않는 프로젝트: 솔루션 대부분이 최신 상태인데도 증분 빌드 때마다 빌드되는 프로젝트와 빌드당 드는 시간.
- 솔루션의 모든 빌드 기록(기본적으로 1주 보존): 검색, 날짜 범위, 달력, 그리고 어떤 빌드가 느렸는지 한눈에 보여 주는 막대.
- 레이블 — ‘수정 전’, ‘새 SDK’ 등 — 다섯 가지 색 중 하나 또는 원하는 색으로. 레이블이 있거나 보존으로 지정된 빌드는 오래되어도 삭제되지 않습니다.
- 빌드 2~10개 비교: 총 시간 추세와, 색으로 구분된 변화·스파크라인·임계 경로가 포함된 프로젝트 × 빌드 표 — 끌어오기 요청용 Markdown으로 복사할 수 있습니다.
- 제거하지 않고 끄기: 솔루션 하나에서만 또는 모든 곳에서. 기록은 그대로 남습니다.
빌드를 한눈에
빌드 › 빌드 타임라인을 엽니다(보기 › 다른 창과 SmithWorks 도구 모음에도 있습니다). 창에는 마지막 빌드 — 또는 기록에 있는 아무 빌드 — 가 표시되며, 위쪽에 요약, 아래쪽에 프로젝트마다 막대 하나가 있습니다.

상태 표시줄의 시간
빌드할 때마다 Visual Studio 상태 표시줄에 빌드 시간과 이전의 비교 가능한 빌드 대비 변화가 표시됩니다: ⏱ 1 min 48 s (▲ 4.1 s) — ▲는 느려짐, ▼는 빨라짐입니다. BuildSmith가 스스로 표시하는 것은 이것뿐이며, 설정에서 끌 수 있습니다.
비교 가능하다는 것은 빌드 종류(빌드 또는 다시 빌드), 구성, 플랫폼, Git 분기가 모두 같다는 뜻입니다. 그런 빌드가 아직 없으면 시간만 표시됩니다.
헤더
창 위쪽에는 표시된 빌드의 요약이 있습니다:
| 화면 표시 | 의미 |
|---|---|
| ✓ 1분 48초 이전 대비 ▲ 4.1초 | 결과(성공 또는 실패), 총 시간, 그리고 이전의 비교 가능한 빌드 대비 변화를 보여 주는 배지. 배지의 도구 설명에는 그 빌드가 얼마나 걸렸고 언제였는지 표시됩니다. |
| 프로젝트 14개 · 빌드됨 9 · 최신 5 · 실패 1 | 참여한 프로젝트 수, 실제로 빌드된 수, 최신 상태라 건너뛴 수, 실패한 수. |
| 임계 경로 1분 31초 · Debug · Any CPU · main | 임계 경로의 길이, 이어서 빌드의 구성, 플랫폼, Git 분기. |
| 빌드 선택기 | 솔루션의 기록된 빌드 중 아무것이나 고르면 타임라인이 그 빌드로 바뀝니다. |
| 🏷 ⏻ ⚙ | 🏷는 표시된 빌드에 레이블을 붙이고, ⏻는 기록을 켜거나 끄며, ⚙는 설정을 엽니다. |
막대
| 화면 표시 | 의미 |
|---|---|
| 파란색 막대 | 빌드된 프로젝트입니다. 시작 순서대로 프로젝트마다 한 행씩 표시됩니다. 막대는 빌드 시작 후 프로젝트가 실제로 시작된 위치에서 시작하고, 걸린 시간만큼 깁니다. 겹치는 막대는 병렬로 실행된 것이므로 빌드가 실제로 얼마나 병렬이었는지 알 수 있습니다. |
| 주황색 테두리 | 임계 경로: 각각 이전 프로젝트를 기다린, 전체 시간을 결정한 프로젝트 체인입니다. 이 중 하나를 빠르게 하면 빌드가 빨라집니다. 나머지 프로젝트는 그 옆에서 함께 실행되었습니다. |
| 빗금 친 짧은 막대 | 최신 상태: 바뀐 것이 없어 건너뛰었습니다. |
| 빨간색 막대 | 프로젝트 빌드에 실패했습니다. |
| ▲ 2.4초 | 각 막대 옆: 그 시간과, 눈에 띌 때는 이전의 비교 가능한 빌드에서 같은 프로젝트 대비 변화. |
막대 위에 마우스를 올리면 자세한 내용이 표시됩니다: 프로젝트에 걸린 시간, 빌드 시작 후 언제부터 언제까지였는지, 이전 빌드 대비 변화, 임계 경로에 있었는지 여부.
작업하는 동안 창을 열어 두어도 됩니다. 새 빌드가 끝날 때마다 저절로 그 빌드로 바뀝니다. 위쪽에 타임라인, 비교, 기록 탭이 있습니다.
최신 상태가 되지 않는 프로젝트
아무것도 바뀌지 않았는데도 빌드할 때마다 빌드되는 프로젝트가 있습니다. 매번 몇 초씩 들지만 아무도 알아차리지 못합니다. BuildSmith는 알아차립니다: 증분 빌드의 타임라인 위에 띠가 나타나 그런 프로젝트가 몇 개이고 빌드마다 얼마나 드는지 알려 줍니다. 띠를 펼치면 프로젝트 목록이 나오고, 타임라인의 해당 행에는 ⟳ 표시가 붙습니다.

규칙: 같은 구성과 분기의 최근 증분 빌드 3~5회 모두에서 빌드되었고, 그때 솔루션의 절반 이상이 최신 상태였던 프로젝트가 표시됩니다. 다시 빌드는 세지 않습니다 — 그때는 모든 것을 일부러 빌드하기 때문입니다.
흔한 원인:
- 출력 디렉터리로 복사: 항상 복사로 설정된 파일 — 새 버전이면 복사로 충분합니다.
- 프로젝트가 의존하는 파일을 건드리는 빌드 전 또는 빌드 후 단계.
- 소스가 바뀌지 않았는데도 빌드할 때마다 생성되는 코드.
이를 고치면 빌드할 때마다 그만큼 시간을 아낄 수 있습니다. 띠는 설정의 최신 상태가 되지 않는 프로젝트 표시에서 끌 수 있습니다.
기록
기록 탭에는 솔루션의 기록된 빌드가 최신순으로 날짜별로 묶여 표시됩니다. 각 행에는 시각, 빌드 종류, 구성과 분기, 레이블, 그리고 빌드 시간에 비례하는 막대가 있어 느린 빌드가 바로 눈에 띕니다.

빌드 찾기
검색 상자에 입력합니다 — 모든 단어가 레이블, 분기, 구성, 빌드 종류 중 하나에 있어야 합니다. 오늘, 어제와 오늘, 7일, 전체로 날짜를 좁히거나 달력에서 날짜를 고릅니다(날짜…). 레이블 있는 빌드만을 켜면 레이블을 붙인 빌드만 남습니다.
열기, 레이블, 보존, 삭제
빌드를 클릭하면(또는 Enter 키를 누르면) 타임라인에서 열립니다. 오른쪽 클릭하면 타임라인에서 열기, 레이블…, 보존(삭제 안 함), 삭제가 있습니다. Delete 키로 빌드를 삭제하며, 몇 초 동안 실행 취소할 수 있습니다. ⋯ 메뉴에서는 특정 날짜보다 오래된 빌드를 삭제하거나, 이 솔루션 또는 모든 솔루션의 기록을 지울 수 있습니다.
빌드를 선택해 비교하거나 여러 개를 한 번에 삭제할 수 있습니다. 레이블 있는 빌드 선택은 표시된 빌드 중 레이블이 있는 것을 모두 선택합니다 — ‘수정 전’과 ‘수정 후’를 비교하는 가장 빠른 방법입니다.
빌드 보존 기간
빌드는 이 컴퓨터의 %LocalAppData%\BuildSmith에만, 솔루션마다 하나의 기록으로 보관됩니다 — 보존 기간은 1일, 3일, 1주(기본값), 2주, 1개월 중에서 고릅니다. 오래된 빌드는 솔루션을 열거나 빌드가 끝날 때 삭제됩니다. 레이블이 있거나 보존으로 지정된 빌드는 아무리 오래되어도 남습니다.
레이블
헤더의 🏷(또는 기록 메뉴의 레이블…)로 빌드에 짧은 텍스트와 색을 붙입니다: 다섯 가지 색 중 하나, 또는 팔레트와 최근 색이 있는 작은 선택기에서 고른 원하는 색. 최근에 쓴 레이블은 클릭 한 번으로 다시 쓸 수 있어, 여러 빌드에 같은 레이블을 붙일 수 있습니다.
레이블이 있는 빌드는 오래되어도 삭제되지 않습니다(레이블이 있는 빌드 보존을 끄지 않는 한). 보존(삭제 안 함)은 레이블 없이 빌드를 고정합니다.
기록 저장
헤더의 ⏻로 빌드를 기록할지 고릅니다:
| 선택 | 동작 |
|---|---|
| 빌드 기록 저장 | 기본값: 모든 빌드의 시간을 재고 기록에 보관합니다. |
| 이 솔루션에서는 끄기 | 이 솔루션은 더 이상 기록되지 않고, 다른 솔루션은 계속 기록됩니다. 설정에 그런 솔루션 목록이 있으며 다시 기록을 고를 수 있습니다. |
| 모든 곳에서 끄기 | BuildSmith가 모든 솔루션에서 잠듭니다. |
잠든 BuildSmith는 정말로 아무것도 하지 않습니다: 빌드 이벤트를 구독하지 않고, 상태 표시줄에도 디스크에도 아무것도 쓰지 않습니다. 기록은 남아 있고, 창에는 빌드 기록 다시 시작이 표시됩니다.
빌드 비교
비교 탭은 빌드를 나란히 놓습니다: 수정이 효과가 있었는지, 업데이트 후 어떤 프로젝트가 느려졌는지, 한 주 동안 빌드 시간이 어떻게 변했는지.

빌드 고르기
기록에서 빌드 2~10개를 선택하고 ⇄ N개 비교를 누릅니다. 선택하지 않으면 표시된 빌드를 이전의 비교 가능한 빌드와 비교합니다. 빌드는 위쪽에 칩으로 표시되며, ✕로 비교에서 뺄 수 있습니다.
추세와 표
작은 차트에 각 빌드의 총 시간이 표시됩니다. 그 아래에는 프로젝트 × 빌드 표가 있습니다: 각 셀은 첫 번째 빌드 대비 변화에 따라 색이 칠해지며 — 따뜻한 색일수록 느리고, 녹색은 빠름 — 스파크라인, 변화, 그리고 프로젝트가 임계 경로에 있었던 곳에는 ●가 표시됩니다. 눈에 띄는 변화가 없는 프로젝트는 … 큰 변화가 없는 N개 더 보기로 접힙니다.
관심 있는 프로젝트만
프로젝트: …로 표를 필터링합니다: 모든 프로젝트(N), 크게 변경됨(N), 임계 경로(N), 선택한 프로젝트만. 검색 상자도 있습니다. 필터는 솔루션마다 기억되며, 추세는 필터링된 프로젝트의 시간 합계가 됩니다 — 솔루션 전체가 아니라 내 프로젝트의 추세입니다.
빌드별로 본 프로젝트 하나
프로젝트를 클릭하면 비교 중인 모든 빌드에서의 막대가 표시됩니다. 테두리가 있는 막대는 그 빌드에서 임계 경로에 있었다는 뜻입니다. ‹ 모든 프로젝트로 돌아갑니다.
Markdown으로 복사
⧉ 복사는 보이는 그대로의 표 — 같은 빌드, 같은 필터 — 를 Markdown 표로 클립보드에 넣습니다. 끌어오기 요청이나 채팅에 바로 쓸 수 있습니다. 프로젝트 하나 보기에서는 그 프로젝트를 복사합니다.
설정
도구 › 옵션 › SmithWorks › BuildSmith(또는 빌드 타임라인 창의 ⚙). 모든 옵션에 하는 일을 알려 주는 짧은 설명이 있습니다.
| 옵션 | 기본값 |
|---|---|
| 빌드 기록 저장 | 켜짐 |
| 기록하지 않는 솔루션: | 꺼진 솔루션이 없습니다. |
| 빌드 보존 기간: | 1주 |
| 레이블이 있는 빌드 보존 | 켜짐 |
| 상태 표시줄에 시간 표시 | 켜짐 |
| 최신 상태가 되지 않는 프로젝트 표시 | 켜짐 |
| Marketplace 평가 요청 | 켜짐 |
모든 기록 지우기(솔루션 N개, 크기)…는 모든 솔루션의 기록된 빌드를 삭제하며, 레이블이 있거나 보존으로 지정된 빌드를 남길지 묻습니다. 아래쪽에는 기본값으로 다시 설정, 설명서, Marketplace에서 평가, 피드백 보내기가 있습니다.
설정과 기록은 %LocalAppData%\BuildSmith에 저장됩니다.

자주 묻는 질문
BuildSmith가 데이터를 보내나요?
아니요. 빌드 시간은 Visual Studio의 빌드 이벤트에서 가져와 사용자의 컴퓨터 %LocalAppData%\BuildSmith에 보관됩니다. 네트워크 요청도, 원격 분석도 없습니다.
시간 옆에 변화가 표시되지 않는 이유는 무엇인가요?
아직 비교 가능한 빌드 — 종류(빌드 또는 다시 빌드), 구성, 플랫폼, 분기가 같은 빌드 — 가 없기 때문입니다. 한 번 더 빌드하면 변화가 표시됩니다.
임계 경로란 정확히 무엇인가요?
빌드가 기다려야 했던 프로젝트 체인입니다. 각 프로젝트는 이전 프로젝트가 끝난 뒤에야 시작되었습니다. 그 길이는 코어가 몇 개든 이 프로젝트들로 빌드할 수 있는 가장 짧은 시간입니다. 임계 경로 밖의 프로젝트를 빠르게 해도 빌드는 짧아지지 않습니다.
빌드 후에도 창이 비어 있습니다.
기록이 켜져 있는지(창의 ⏻, 설정의 빌드 기록 저장), 이 솔루션이 기록하지 않는 솔루션 목록에 없는지 확인하세요. Visual Studio 밖에서 시작한 빌드(명령줄의 dotnet build)는 기록되지 않습니다.
BuildSmith 때문에 빌드가 느려지나요?
아니요. Visual Studio가 어차피 알려 주는 각 프로젝트의 시작과 끝을 수신하고, 빌드 후에 작은 파일 하나를 쓸 뿐입니다. 빌드나 빌드 로깅은 바꾸지 않습니다.
기록이 디스크 공간을 얼마나 차지하나요?
아주 조금입니다. 빌드 하나는 프로젝트와 그 시간의 짧은 목록일 뿐입니다. 설정의 모든 기록 지우기 옆에 크기가 표시되며, 오래된 빌드는 선택한 기간이 지나면 저절로 삭제됩니다.
문제를 보고하거나 기능을 제안하려면 어디로 가야 하나요?
GitHub의 Feedback 리포지토리에 이슈를 등록하세요. 버그와 아이디어를 위한 양식이 있습니다(비공개 이름은 바꿔 주세요). Marketplace의 Q&A 탭을 이용할 수도 있습니다.
변경 내역
1.0.0
- 첫 릴리스: 상태 표시줄의 빌드 시간과 변화, 임계 경로가 표시되는 빌드 타임라인 창, 최신 상태가 되지 않는 프로젝트, 검색·날짜·레이블이 있는 기록, Markdown 복사가 가능한 최대 10개 빌드 비교, 솔루션별 기록 켜기/끄기, SmithWorks 도구 모음, 한 번만 하는 평가 요청.