본문 바로가기
Web Development

fetch() API, 모듈화의 장점

by Mr.코딩 2023. 7. 29.

이때 fetch() API를 사용하는 게 최선이라고 한다.

문법 구조는 아래와 같다.

 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Custom-made Request Form</title>
    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <div class="content">
      <div class="request">
        <header id="headerContainer"></header>
        <main></main>
        <article>
          <div class="design"></div>
          <nav class="detail-list"></nav>
        </article>
      </div>
      <footer></footer>
    </div>
    <aside></aside>
    <script>
      // Fetch API를 사용하여 header.html 파일 가져오기
      fetch('header.html')
        .then((response) => response.text()) // 가져온 파일을 텍스트로 변환
        .then((html) => {
          // 변환된 텍스트를 header 요소에 삽입
          const headerContainer = document.getElementById('headerContainer');
          headerContainer.innerHTML = html;
        })
        .catch((error) => {
          console.error('Error fetching header.html:', error);
        });
    </script>
  </body>
</html>

 

만약 header 파일을 가져온다면 

해당 위치에 <header id="headerContainer"></header>를 적고

 

script 문구를 아래와 같이 적는다.

 

    <script>
      // Fetch API를 사용하여 header.html 파일 가져오기
      fetch('header.html')
        .then((response) => response.text()) // 가져온 파일을 텍스트로 변환
        .then((html) => {
          // 변환된 텍스트를 header 요소에 삽입
          const headerContainer = document.getElementById('headerContainer');
          headerContainer.innerHTML = html;
        })
        .catch((error) => {
          console.error('Error fetching header.html:', error);
        });
    </script>

 

스타일 링크는  index.html에 하니? 아니면, 서브 문서인 header.html에 해야 하니?

 

chatGTP3.5

스타일 링크(stylesheet link)를 적용하는 일반적인 방법은 주로 `index.html` 파일에 작성하는 것이 좋습니다. `index.html` 파일은 웹 페이지의 진입점이며, 해당 웹 페이지에 사용되는 모든 서브 문서들을 연결하는 역할을 하기 때문입니다.

 

`header.html` 파일은 서브 문서로서 `index.html`에 삽입되는 것이기 때문에, `header.html` 파일 안에 스타일 링크를 넣는 것보다는 `index.html`에 스타일 링크를 작성하는 것이 더 일반적입니다. 이렇게 하면 모든 서브 문서가 `index.html`에 연결된 스타일 시트를 공유하게 됩니다.

 

만약 서로 다른 서브 문서마다 각각 다른 스타일 시트를 사용해야 할 경우에는 해당 서브 문서 내부에 스타일 링크를 추가하는 것도 가능합니다. 하지만 이 경우에는 스타일이 중복될 수 있고 유지보수가 어려워질 수 있으므로, 가능하면 `index.html`에서 모든 스타일 링크를 관리하는 것이 좋습니다.

 

따라서 보통은 스타일 링크는 `index.html`에 작성하는 것이 권장되며, 필요에 따라 특정 서브 문서에만 스타일을 적용해야 할 경우에만 해당 서브 문서에 스타일 링크를 작성하는 것이 좋습니다.


index 파일 따로 그 안에 포함될 header, main, article 파일 따로.....

이렇게 여러 문서에 나누어서 작성하는 것을 '모듈화'라고 말할 수 있나? 모듈화는 어떤 면에서 유리한가?

 

chatGTP3.5

네, 맞습니다. 여러 개의 파일로 나누어 작성하는 것을 '모듈화'라고 말할 수 있습니다. 모듈화는 소프트웨어 개발에서 사용되는 중요한 개념이며, 큰 시스템이나 프로젝트를 작은 모듈들로 분리하여 개발하는 방법을 의미합니다.

 

웹 개발에서도 모듈화는 매우 유용하며, 여러 개의 HTML, CSS, JavaScript 파일로 나누어 작성하여 각각의 파일이 특정 기능이나 영역을 담당하도록 구성하는 것이 일반적입니다. 예를 들어, 헤더, 메인 콘텐츠, 사이드바, 푸터 등의 요소들을 각각 별도의 파일로 작성한 뒤, 필요한 페이지에 가져와서 조합하면서 웹 페이지를 완성하는 방식입니다.

 

모듈화의 장점은 다음과 같습니다:

 

1. 코드 재사용: 각 모듈은 독립적으로 개발되므로 필요한 경우 다른 프로젝트에서도 재사용할 수 있습니다. 이는 개발 시간을 단축시키고 유지보수를 용이하게 합니다.

 

2. 가독성과 유지보수성: 코드를 작은 모듈로 분리하면 각 모듈은 명확하고 의미가 있게 작성될 가능성이 높습니다. 이로 인해 코드의 가독성과 유지보수성이 향상됩니다.

 

3. 협업: 여러 개발자가 동시에 작업할 때 각자 담당하는 모듈을 분리하여 작업할 수 있으므로 협업이 용이해집니다.

 

4. 로딩 속도 개선: 필요한 모듈만 로딩하여 사용할 수 있기 때문에 초기 로딩 속도가 개선됩니다.

 

5. 코드 관리: 각 모듈이 별도의 파일로 분리되어 있기 때문에 코드 관리가 용이합니다. 특정 모듈을 수정할 때 해당 파일만 수정하면 되기 때문에 전체 코드를 수정하는 것보다 쉽고 안전합니다.

 

모듈화를 적절하게 활용하면 웹 개발의 생산성을 높일 수 있으며, 코드의 유지보수와 확장성을 향상시킬 수 있습니다. 따라서 모듈화는 현대적인 웹 개발에서 매우 유용하고 중요한 개념입니다.


fetch() API는 언제부터 사용되기 시작했나?

 

chatGTP3.5

fetch() API는 2015년에 등장한 웹 브라우저의 JavaScript API입니다. 이 API는 XMLHttpRequest(XHR)을 대체하고 더 강력하고 유연한 기능을 제공하며, 비동기 네트워크 요청을 보다 간단하게 처리할 수 있도록 도와줍니다.

 

fetch() API는 Promise를 기반으로 동작하며, 네트워크 요청을 보내고 응답을 처리하는 방식이 XHR과 다르기 때문에 더 직관적이고 사용하기 쉽습니다. 또한 fetch() API는 CORS(Cross-Origin Resource Sharing)를 더 효율적으로 처리할 수 있도록 지원하며, Request와 Response 객체를 사용하여 요청과 응답을 다룰 수 있습니다.

 

fetch() API의 등장으로 비동기 네트워크 요청을 더 쉽게 처리할 수 있게 되었으며, 현대적인 웹 애플리케이션 개발에 많이 사용되고 있습니다. fetch() API는 ES6(ECMAScript 2015)에서 정식으로 포함되었으며, 이후 웹 브라우저에서 널리 지원되고 있습니다.


오늘날 대부분의 웹페이지는 fetch() API를 사용하고 있다고 말할 수 있나?

 

Bard

아니요, 오늘날 대부분의 웹페이지는 fetch() API를 사용하고 있다고 말할 수 없습니다. fetch() API는 2015년에 도입된 새로운 API이기 때문에, 아직 많은 웹페이지에서 사용되지 않고 있습니다.

하지만, fetch() API는 XMLHttpRequest API보다 사용하기 쉽고, 강력하기 때문에, 점점 더 많은 웹페이지에서 사용되고 있습니다. 따라서, 앞으로는 fetch() API를 사용하는 웹페이지가 더 많아질 것으로 예상됩니다.

 


여전히 1개의 파일에 코드를 작성한 경우가 더 많다는 거니?

 

 

Bard

네, 맞습니다. 오늘날 대부분의 웹페이지는 fetch() API를 사용하고 있지 않습니다. 따라서, 여전히 1개의 파일에 코드를 작성한 경우가 더 많습니다.

 

fetch() API는 2015년에 도입된 새로운 API이기 때문에, 아직 많은 웹페이지에서 사용되지 않고 있습니다. 또한, fetch() API는 XMLHttpRequest API보다 사용하기 쉽고, 강력하기 때문에, 점점 더 많은 웹페이지에서 사용되고 있습니다. 따라서, 앞으로는 fetch() API를 사용하는 웹페이지가 더 많아질 것으로 예상됩니다.

 

하지만, 아직까지는 fetch() API를 사용하지 않는 웹페이지가 더 많습니다. 따라서, 여전히 1개의 파일에 코드를 작성한 경우가 더 많습니다.


제일 쉽다는 html을 작성하는데도, 컨테이너 계층이 3개만 넘어가도 헷갈리는데, 어떻게 한 문서에 다 작성하고들 있냐?

 

Bard

HTML을 작성할 때 컨테이너 계층이 3개만 넘어가도 헷갈린다면, 다음과 같은 방법을 시도해 보세요.

* 컨테이너 계층의 이름을 의미 있게 지으세요. 컨테이너 계층의 기능이나 용도를 설명하는 이름을 지으세요.
* 컨테이너 계층을 시각적으로 구분하세요. 컨테이너 계층의 배경색 / 테두리 / 크기를 달리하세요.

컨테이너 계층을 줄이고, 이름을 의미 있게 지으며, 시각적으로 구분하면 HTML을 작성할 때 컨테이너 계층을 헷갈리지 않을 수 있습니다.