# 깨진 링크 확인 및 수정 방법

**URL:** https://meta.discourse.org/t/how-check-and-fix-broken-links/255338
**Category:** Support
**Created:** [2월 16, 2023, 9:19오전 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338 "2023-02-16T09:19:33Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![kevin0425](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@kevin0425](https://meta.discourse.org/u/kevin0425)
#### Post date: [2월 16, 2023, 9:19오전 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/1 "2023-02-16T09:19:34Z")

</div>

깨진 링크를 식별하고 동시에 수정하는 방법이 있을까요?

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2월 16, 2023, 10:53오전 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/2 "2023-02-16T10:53:05Z")

</div>

케빈, 안녕하세요 👋

맥락상 "깨진 링크(broken link)"를 어떻게 정의하시나요?

아래 중 어떤 것을 말씀하시는 건가요?

- 사용자 게시글에 있는 링크?

- 내부 링크?

- 외부 링크?

- 더 이상 존재하지 않는 리소스로 연결되는 링크 (404)?

- 이전에 가리키던 리소스와 다른 리소스로 연결되는 링크?

링크가 일시적으로 “깨진” 상태(예: 어떤 이유로든 대상이 일시적으로 다운된 경우)인지 어떻게 알 수 있을까요? 링크는 몇 분, 몇 시간, 며칠, 또는 몇 주 동안 죽어 있다가 다시 살아날 수 있습니다.  
삭제될 수도 있고, 변경되거나 업데이트될 수도 있으며, 관련성이 있거나 없을 수도 있습니다. 어떤 상태인지 어떻게 알 수 있을까요?

깨진 링크 수정이란 무엇을 의미하나요?

- 링크 제거?

- 다른 URL로 교체?

- 깨진 링크를 관련성 있고 정상 작동하는 링크로 교체하는 방법을 어떻게 알 수 있을까요?

어쨌든 커스텀 스크립트가 필요합니다. 이러한 내장 기능은 존재하지 않습니다. 🙂

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2월 16, 2023, 1:21오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/3 "2023-02-16T13:21:02Z")

</div>

내 일이 아니긴 하지만, 일반적으로 웹 전반에서 깨진 링크란 404가 반환되는 링크를 의미하며, 내부 링크든 외부 링크든 마찬가지입니다(물론 내부 링크의 경우 종종 더 심각한 상황이 되곤 하죠).

그리고 수정 방법은 다음과 같은 것들 중 하나일 수 있습니다.

> [@Canapin](#):
>
> 깨진 링크를 관련성이 있는 정상 작동하는 링크로 대체하는 방법을 어떻게 알 수 있을까요?

404 목록을 받아서 URL을 수정하거나 `<a>` 태그를 제거하는 것일까요? 제가 사용하는 다른 모든 플랫폼에서 꽤 일반적인 방식입니다,

---

<div class="post-metadata">

### Author: ![kevin0425](https://avatars.discourse-cdn.com/v4/letter/k/c57346/32.png) [@kevin0425](https://meta.discourse.org/u/kevin0425)
#### Post date: [2월 16, 2023, 1:39오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/4 "2023-02-16T13:39:37Z")

</div>

깨진 링크를 확인하고 수정하는 데 사용할 수 있는 도구를 추천해 주실 수 있나요?

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2월 16, 2023, 1:40오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/5 "2023-02-16T13:40:26Z")

</div>

가장 일반적인 방법이라는 데 동의하지만, 일시적인 404 오류 같은 문제점이 생길 수 있습니다.

> [@Jagster](#):
>
> 답변하는 건 제 일이 아닙니다

여기 오래 계셨으니, 모든 사람의 의견이 소중하게 여겨진다는 걸 아실 거예요 😄

(참고로 제 일도 사람들이 의견을 낼 수 있게 해주는 거긴 합니다)

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2월 16, 2023, 1:48오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/6 "2023-02-16T13:48:42Z")

</div>

> [@Canapin](#):
>
> temporary 404s 같은 경우

이런 것들은 사용되면 안 됩니다. 먼저 302 리다이렉트를 통해 상황이 설명되고 언제 일시적인 상태가 끝나는지 알려주는 (범용) URL로 연결해야 합니다. 그리고 일시적인 상태가 끝나면 200, 301 또는 410으로 변경되어야 합니다.

하지만 게시물에서 일시적인 404를 유발하는 링크를 사용하는 경우는 유명한 엣지 케이스입니다. 가장 흔한 경우는 실제로 수정해야 하는 외부 죽은 링크(dead links)입니다.

좋은 소식은 이런 링크가 꽤 드물게 열리리라 생각합니다.

> [@Canapin](#):
>
> You’ve been here long enough to know that everyone’s opinion is valued 😄

네 😉 글쎄요, 저는 일종의 OP(게시자)를 대신해서 답변을 하고 있다고 말한 건데, 그건 좀 예의가 아닌 행동이었네요.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [2월 16, 2023, 1:54오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/7 "2023-02-16T13:54:12Z")

</div>

> [@Jagster](#):
>
> 답변하는 것은 제 일이 아니지만, 일반적으로 웹 환경에서 깨진 링크란 404 오류가 반환되는 링크를 의미합니다. 내부 링크든 외부 링크든 마찬가지입니다(물론 내부 링크인 경우가 훨씬 더 심각한 상황이기는 합니다).
> 
> 그리고 수정 방법은 그중 하나를 적용하는 것입니다.

저의 경우, 깨진 링크는 클라이언트가 도메인을 ".ai"에서 ".com"으로 약간 변경하면서 발생했습니다. 포럼 내 모든 메시지 링크가 깨진 것이었고, 아마도 더 쉬운 해결책이 있었을 가능성이 높습니다. 하지만 저는 단순히 많은 게시물을 수동으로 편집하여 .ai를 .com으로 변경했습니다. 또한 게시물에 업로드된 이미지 문제를 해결하기 위해 HTML 재구성을 사용해야 했습니다. 꽤 번거로운 일이었습니다.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2월 16, 2023, 1:58오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/8 "2023-02-16T13:58:23Z")

</div>

rails 콘솔을 통해 검색 및 대체를 할 수 있죠?

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [2월 16, 2023, 2:10오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/9 "2023-02-16T14:10:14Z")

</div>

가능성은 높지만, 저는 디스커스에 대해 아직 많이 모르는 부분이 많습니다. 더 알아보고 학습해야 할 것 같습니다. 그런 조치가 게시물에 업로드된 이미지 문제를 해결할 수 있을까요? 폴더 게시물에 있는 이모지에도 영향을 미치는 것 같았습니다. 솔직히 말해서, 이전에 같은 문제가 발생했을 때 사이트를 리브랜딩하면서 제 의견을 물어봤어야 했는데 그러지 않았습니다. 제 생각에는 3년 넘게 .ai 도메인으로 잘 운영되고 있는 사이트에서 .ai를 .com으로 바꿀 필요나 실질적인 이점이 없었다고 봅니다.

게다가 앱을 설치한 사용자의 경우에도 문제가 발생했고, 원래 URL을 통해 사이트에 접근하는 다른 사용자들에게도 동일한 문제가 생겼습니다.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2월 16, 2023, 5:12오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/10 "2023-02-16T17:12:39Z")

</div>

Discourse에는 해당 기능이 없으며, “깨진 링크”(404로 가정)를 감지하려면 사용자 정의 스크립트가 필요합니다.

---

<div class="post-metadata">

### Author: ![ked](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ked/32/64837_2.png) [@ked](https://meta.discourse.org/u/ked)
#### Post date: [2월 17, 2023, 12:27오전 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/11 "2023-02-17T00:27:01Z")

</div>

개인적으로 대형 사이트의 소유자 중 일부는 최소한 404 오류를 확인하고 식별하는 첫 단계를 수행할 수 있는 도구/스크립트/플러그인에 관심이 있을 것 같습니다. 가격이 합리적인 수준이라면, 저도 기꺼이 비용을 지불하고 지원할 의향이 있습니다.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2월 17, 2023, 12:48오전 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/12 "2023-02-17T00:48:35Z")

</div>

가장 먼저 떠오르는 해결책은 게시물 내용을 반복해서 처리하는 레일 스크립트입니다. 링크를 찾아서 요청을 보내고 상태 코드를 확인한 후, 필요한 작업(삭제, 교체 등)을 수행하면 됩니다. 삭제하거나 교체하는 작업은 다시 베이킹(rebake)이 필요할 수 있으며, 로그를 남기는 것도 가능합니다. 🙂

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2월 17, 2023, 8:35오전 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/13 "2023-02-17T08:35:27Z")

</div>

WordPress와 Discourse를 비교하는 것은 기술과 아이디어가 너무 달라서 사실상 무의미합니다. 하지만 WordPress에서는 아웃바운드 링크를 호출하는 무료 플러그인을 사용하는 것이 매우 간단한 작업입니다. 이 플러그인은 응답이 `200 OK`가 아닌 경우, 최소한 4xx 상태 코드를 반환한 링크를 정리하고 목록을 만들어 이메일로 관리자에게 통보합니다.

Discourse와 같은 앱에서는 이것이 가능한지 저는 잘 모르겠습니다. 그런 기능이 필요한지도… 모르겠습니다. 이제 아무도 신경 쓰지 않고, _좋은 링크는 절대 죽지 않는다_는 말이 _모든 링크가 좀비가 될 것이다_로 바뀌었기 때문입니다. 위키피디아에는 죽은 링크가 가득하고, 아무도 신경 쓰지 않습니다. 위키피디아도, 편집자들도요.

우리는 플래그라는 것을 가지고 있습니다. 사용자에게 알리는 일을 외부로 위탁하고, 플래그를 정보 전달 방식으로 활용할 수 있도록 교육할 수 있습니다 — 하지만 쉽지 않을 것이라 확신합니다.

솔직히 말하자면, 게시된 후 한 번도 사용되지 않는 링크를 수정하기 시작할 의사가 있는 관리자/모더레이터는 매우 적습니다. 따라서 '링크 테스터’는 있으면 좋은 기능이지만, 실제로 유용한 도구일까요? 제 가장 큰 WordPress 사이트에는 수없이 많은 죽은 아웃바운드 링크가 있습니다. 이 링크들은 수정되어야 하고, 제가 필요로 한다면 수정하겠지만, 그렇지 않다면… 저는 단순히 시간이 부족합니다 (또는 의지가… ).

---

<div class="post-metadata">

### Author: ![krystal](https://avatars.discourse-cdn.com/v4/letter/k/f08c70/32.png) [@krystal](https://meta.discourse.org/u/krystal)
#### Post date: [6월 1, 2023, 8:29오후 UTC](https://meta.discourse.org/t/how-check-and-fix-broken-links/255338/14 "2023-06-01T20:29:29Z")

</div>

깨진 링크 검사 도구가 있으면 좋겠습니다! 저희 Discourse 인스턴스는 공개되어 있지 않아서 일반적인 도구를 사용할 수 없습니다. 이 도구는 지원 포럼 및 지식 베이스처럼 사용되므로, 시간이 지나면 다른 곳에托管된 문서로 연결되는 링크가 깨지는 문제를 마주할 수 있을 것으로 예상됩니다.
