> 웹 프론트엔드 > JS 튜토리얼 > 코드 줄 아래에 메타태그 스크래핑 API 구축

코드 줄 아래에 메타태그 스크래핑 API 구축

DDD
풀어 주다: 2024-10-21 16:33:02
원래의
503명이 탐색했습니다.

Whatsapp이나 Telegram과 같은 메시지 앱을 통해 내가 보내는 링크의 미리보기를 어떻게 볼 수 있는지 궁금한 적이 있나요?

Building a Meta Tags Scraping API in Under Lines of Code

Building a Meta Tags Scraping API in Under Lines of Code


Whatsapp 및 Telegram URL 미리보기

이 게시물에서는 URL을 받아들이고 이에 대한 메타 태그를 검색하는 스크래핑 API를 Deno로 구축하여 거의 모든 웹사이트에서 제목, 설명, 이미지 등과 같은 필드를 얻을 수 있습니다.

예:

curl https://metatags.deno.dev/api/meta?url=https://dev.to
로그인 후 복사
로그인 후 복사
로그인 후 복사

이 결과를 제공합니다

{
  "last-updated": "2024-10-15 15:10:02 UTC",
  "user-signed-in": "false",
  "head-cached-at": "1719685934",
  "environment": "production",
  "description": "A constructive and inclusive social network for software developers. With you every step of your journey.",
  "keywords": "software development, engineering, rails, javascript, ruby",
  "og:type": "website",
  "og:url": "https://dev.to/",
  "og:title": "DEV Community",
  "og:image": "https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lvvnvil0m75nw7yi6iz.jpg",
  "og:description": "A constructive and inclusive social network for software developers. With you every step of your journey.",
  "og:site_name": "DEV Community",
  "twitter:site": "@thepracticaldev",
  "twitter:title": "DEV Community",
  "twitter:description": "A constructive and inclusive social network for software developers. With you every step of your journey.",
  "twitter:image:src": "https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lvvnvil0m75nw7yi6iz.jpg",
  "twitter:card": "summary_large_image",
  "viewport": "width=device-width, initial-scale=1.0, viewport-fit=cover",
  "apple-mobile-web-app-title": "dev.to",
  "application-name": "dev.to",
  "theme-color": "#000000",
  "forem:name": "DEV Community",
  "forem:logo": "https://media.dev.to/cdn-cgi/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png",
  "forem:domain": "dev.to",
  "title": "DEV Community"
}
로그인 후 복사
로그인 후 복사

정말 멋지지 않나요?

메타 태그와 왜 필요한가요?

메타 태그는 검색 엔진과 다른 클라이언트에 페이지에 대한 추가 정보를 제공하는 데 사용되는 HTML 요소입니다.
이러한 태그에는 일반적으로 정보 유형을 정의하는 이름 또는 속성 속성과 해당 정보의 값이 포함된 콘텐츠 속성이 포함됩니다. 다음은 두 개의 메타 태그의 예입니다.

<meta name="description" content="The <meta> HTML element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.">
<meta property="og:image" content="https://developer.mozilla.org/mdn-social-share.cd6c4a5a.png">
로그인 후 복사
로그인 후 복사

첫 번째 태그는 페이지에 대한 설명을 제공하고, 두 번째 태그는 페이지가 소셜 미디어에 공유될 때 표시할 이미지를 정의하는 오픈 그래프 태그입니다.

메타 태그를 실제로 적용하는 방법 중 하나는 북마크 관리자를 구축하는 것입니다. 각 북마크의 제목, 설명, 이미지를 수동으로 추가하는 대신 메타 태그를 사용하여 북마크된 URL에서 이 정보를 자동으로 스크랩할 수 있습니다.

오픈 그래프

오픈 그래프는 원래 웹페이지 내 메타데이터 사용을 표준화하여 페이지 콘텐츠를 표시하기 위해 Facebook에서 만든 인터넷 프로토콜로, 소셜 네트워크에서 풍부한 링크 미리 보기를 생성하는 데 도움이 됩니다.
자세한 내용은 여기를 참조하세요.

왜 데노인가?

  1. Deno에는 보안 기본값이 있습니다. 즉, 파일, 네트워크 및 환경 액세스에 대한 명시적인 권한이 필요하므로 보안 취약점의 위험이 줄어듭니다.
  2. Deno는 웹 표준을 기반으로 구축되었으며 ES 모듈을 사용하고 독점 API 대신 웹 플랫폼 API(예: 가져오기)를 사용하는 것을 목표로 하여 Deno 코드를 브라우저에서 작성하는 코드와 매우 유사하게 만들지만 여전히 일부 사양이 있습니다. 브라우저와의 편차.
  3. Deno에는 TypeScript 지원이 내장되어 있어 빌드 단계 없이 TypeScript 코드를 작성할 수 있습니다.
  4. Deno에는 HTTP 서버, 파일 시스템 작업 등과 같은 일반적인 작업을 위한 모듈이 포함된 표준 라이브러리가 함께 제공됩니다.
  5. Deno는 Linter, Formatter 및 Test Runner를 제공하므로 타사 패키지나 도구에 의존하지 않고 플랫폼을 사용할 수 있으므로 Javascript 개발을 위한 올인원 도구가 됩니다.
  6. Deno는 전 세계적으로 분산된 서버리스 JavaScript/Typescript 애플리케이션을 위한 확장 가능한 플랫폼인 Deno Deploy를 제공하여 대기 시간을 최소화하고 가동 시간을 최대화합니다.

우리가 구축 중인 API는 메타 태그를 가져오고 구문 분석하는 기능과 HTTP 요청에 응답하는 API 서버라는 두 부분으로 구성됩니다.

메타 태그 가져오기

Deno Deploy로 이동하여 로그인하는 것부터 시작하겠습니다.
로그인 후 "새 놀이터"를 클릭하세요
Building a Meta Tags Scraping API in Under Lines of Code
이것이 우리에게 Hello World 시작점을 제공할 것입니다.
이제 URL을 허용하고 Fetch API를 사용하여 요청된 URL의 HTML을 가져온 다음 이를 HTML 구문 분석용 패키지(deno-dom)에 전달하는 getMetaTags라는 함수를 추가하겠습니다.
프로젝트에 deno-dom을 추가하려면 jsr 패키지 관리자를 사용할 수 있습니다:

curl https://metatags.deno.dev/api/meta?url=https://dev.to
로그인 후 복사
로그인 후 복사
로그인 후 복사

이제 Fetch API를 사용하여 HTML을 텍스트로 가져옵니다.

{
  "last-updated": "2024-10-15 15:10:02 UTC",
  "user-signed-in": "false",
  "head-cached-at": "1719685934",
  "environment": "production",
  "description": "A constructive and inclusive social network for software developers. With you every step of your journey.",
  "keywords": "software development, engineering, rails, javascript, ruby",
  "og:type": "website",
  "og:url": "https://dev.to/",
  "og:title": "DEV Community",
  "og:image": "https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lvvnvil0m75nw7yi6iz.jpg",
  "og:description": "A constructive and inclusive social network for software developers. With you every step of your journey.",
  "og:site_name": "DEV Community",
  "twitter:site": "@thepracticaldev",
  "twitter:title": "DEV Community",
  "twitter:description": "A constructive and inclusive social network for software developers. With you every step of your journey.",
  "twitter:image:src": "https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lvvnvil0m75nw7yi6iz.jpg",
  "twitter:card": "summary_large_image",
  "viewport": "width=device-width, initial-scale=1.0, viewport-fit=cover",
  "apple-mobile-web-app-title": "dev.to",
  "application-name": "dev.to",
  "theme-color": "#000000",
  "forem:name": "DEV Community",
  "forem:logo": "https://media.dev.to/cdn-cgi/image/width=512,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png",
  "forem:domain": "dev.to",
  "title": "DEV Community"
}
로그인 후 복사
로그인 후 복사

HTML을 가져온 후 deno-dom을 사용하여 구문 분석한 다음 querySelectorAll과 같은 표준 DOM 함수를 사용하여 모든 메타 HTML 요소를 가져오고 이를 반복한 다음 getAttribute를 사용하여 각 항목의 이름, 속성 및 콘텐츠를 가져올 수 있습니다. 해당 태그 중:

<meta name="description" content="The <meta> HTML element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.">
<meta property="og:image" content="https://developer.mozilla.org/mdn-social-share.cd6c4a5a.png">
로그인 후 복사
로그인 후 복사

마지막으로 API의 필드로 추가하려면 페이지 요소를 사용하세요.<br> </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">import { DOMParser, Element } from "jsr:@b-fuze/deno-dom"; </pre><div class="contentsignin">로그인 후 복사</div></div> <p>정확히는 메타 태그는 아니지만 유용한 필드라고 생각하므로 어쨌든 API의 일부가 될 것입니다. :)</p> <p>최종 getMetaTags 함수는 다음과 같습니다.<br> </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> const headers = new Headers(); headers.set("accept", "text/html,application/xhtml+xml,application/xml"); const res = await fetch(url, { headers }); const html = await res.text(); </pre><div class="contentsignin">로그인 후 복사</div></div> <h2> 서버 </h2> <p>단순화를 위해 저는 단순한 Deno.serve() 호출인 Deno에 내장된 http 서버를 사용하기로 결정했습니다.<br> deno는 웹 표준을 기반으로 구축되었기 때문에 Fetch API에 내장된 Response 개체를 사용하여 요청에 응답할 수 있습니다.<br> </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">curl https://metatags.deno.dev/api/meta?url=https://dev.to </pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <p>우리 서버는 요청 URL을 구문 분석하고 /api/meta 경로에 대한 GET 요청을 받았는지 확인한 후 우리가 만든 getMetaTags 함수를 호출한 다음 메타 태그를 응답 본문으로 반환합니다.</p> <p>또한 두 개의 헤더를 추가합니다. 첫 번째는 클라이언트가 응답에서 받는 데이터 종류를 아는 데 필요한 Content-Type이며, 우리의 경우 JSON 응답입니다.</p> <p>두 번째 헤더는 API가 특정 출처의 요청을 수락할 수 있도록 하는 Access-Control-Allow-Origin입니다. 이 경우에는 모든 출처를 허용하기 위해 "*"를 선택했지만 다음의 요청만 수락하도록 변경하고 싶을 수도 있습니다. 프런트엔드의 출처입니다.<br> CORS 헤더는 브라우저의 요청에만 영향을 미칩니다. 즉, 브라우저는 헤더에 지정된 원본에 따라 요청을 차단하지만 서버에서 API를 직접 호출하는 것은 여전히 ​​가능합니다. 여기에서 CORS에 대해 자세히 알아보세요.</p> <p>이제 "저장 및 배포"를 클릭할 수 있습니다<br> <img src="https://img.php.cn/upload/article/000/000/000/172949959089268.jpg" alt="Building a Meta Tags Scraping API in Under Lines of Code"><br> 그런 다음 deno 배포가 플레이그라운드에 코드를 배포할 때까지 기다립니다.<br> <img src="https://img.php.cn/upload/article/000/000/000/172949959198494.jpg" alt="Building a Meta Tags Scraping API in Under Lines of Code"><br> 오른쪽 상단에 있는 URL은 플레이그라운드의 URL입니다. 이를 복사하고 /api/meta?url=https://dev.to를 추가하여 실제로 작동하는지 확인하세요. URL은 https://metatags.deno.dev와 유사해야 합니다. /api/meta?url=https://dev.to<br> 이제 dev.to의 메타 태그로 응답하는 API를 볼 수 있습니다!<br> <img src="https://img.php.cn/upload/article/000/000/000/172949959294656.jpg" alt="Building a Meta Tags Scraping API in Under Lines of Code"></p> <h2> 전개 </h2> <p>Deno 배포 플레이그라운드를 사용한다는 것은 귀하의 코드가 기술적으로 이미 배포되었으며 공개되어 누구나 액세스할 수 있음을 의미합니다.<br> 우리가 구축하고 있는 것과 같은 간단한 API의 경우 단일 파일 플레이그라운드로 충분할 수 있지만 대부분의 경우 프로젝트를 더 확장하고 싶습니다. 이를 위해 Deno 배포의 Github 내보내기를 사용하여 적절한 코드 저장소를 만들 수 있습니다. 새로운 코드 푸시 시 자동 빌드를 지원하는 API:<br> <img src="https://img.php.cn/upload/article/000/000/000/172949959428755.jpg" alt="Building a Meta Tags Scraping API in Under Lines of Code"><br> 또는 놀이터 설정에서:<br> <img src="https://img.php.cn/upload/article/000/000/000/172949959544011.jpg" alt="Building a Meta Tags Scraping API in Under Lines of Code"></p> <h2> 주의사항 </h2> <p>이 게시물에 제시된 스크래핑 방법은 서버에서 반환된 html 파일에 메타 태그가 있는 웹사이트에서만 작동합니다. 즉, 서버에서 렌더링되거나 사전 렌더링된 사이트가 적절한 결과를 반환할 가능성이 더 높으며, 단일 페이지 앱도 가능한 한 작동할 수 있습니다. 메타 태그는 런타임이 아닌 빌드 시간에 설정되기 때문입니다.</p> <h2> 결론 </h2> <p>우리는 Deno를 사용하여 API를 구축하고 배포하는 것이 얼마나 빠르고 간단한지 시연했으며, 메타 태그를 살펴보고, Fetch API, DOM 파서 및 Deno의 내장 서버를 사용하여 API를 구축하는 방법을 설명했습니다. 40줄 미만의 코드로 메타태그 스크래핑 API를 제공합니다.</p> <p>이 게시물에 구축된 프로젝트를 보려면 Deno 배포 플레이그라운드를 확인하세요. (오른쪽 URL 표시줄에 /api/meta?url=https://dev.to를 추가해야 볼 수 있습니다.) 예시 응답) 또는 이 github 저장소.</p> <hr> <h2> 다음에는 무엇을 만들 것인가? </h2> <p>이 게시물이 여러분이 메타 태그와 Deno의 힘을 탐구하는 데 영감을 주었기를 바랍니다! 자신만의 API 버전을 구축하거나 북마크 관리자와 같은 프로젝트에 통합해 보세요. </p> <p>막히거나 질문이 있거나 자신이 만든 것을 자랑하고 싶으신가요? 아래에 댓글을 달거나 Twitter/X에서 저와 연결하세요. 여러분의 의견을 듣고 싶습니다! </p> <p>여기에서 40줄 미만의 코드로 반응 상태 관리 라이브러리를 구축하는 방법에 대한 이전 게시물을 확인하세요.</p> <p>위 내용은 코드 줄 아래에 메타태그 스크래핑 API 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!</p> </div> </div> <div style="height: 25px;"> <div style="display: inline-flex;float: right; color:#333333;">원천:dev.to</div> </div> <div class="wzconOtherwz"> <a href="https://www.php.cn/ko/faq/1796638584.html" title="jQuery/JavaScript에서 밀리초를 읽을 수 있는 날짜로 변환하는 방법은 무엇입니까?"> <span>이전 기사:jQuery/JavaScript에서 밀리초를 읽을 수 있는 날짜로 변환하는 방법은 무엇입니까?</span> </a> <a href="https://www.php.cn/ko/faq/1796638593.html" title="지루한 금융: 멋진 기록 보관 - 모든 오픈 소스 기여자를 모집합니다"> <span>다음 기사:지루한 금융: 멋진 기록 보관 - 모든 오픈 소스 기여자를 모집합니다</span> </a> </div> <div class="wzconShengming"> <div class="bzsmdiv">본 웹사이트의 성명</div> <div>본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.</div> </div> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="2507867629"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class="wzconZzwz"> <div class="wzconZzwztitle">저자별 최신 기사</div> <ul> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701557.html">Go에서 알 수 없는 Protobuf 메시지를 어떻게 비정렬화할 수 있나요?</a> </div> <div>2024-11-30 09:21:13</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701556.html">부트스트랩을 사용하여 스크롤 시 애니메이션/축소되는 Navbar를 어떻게 만들 수 있습니까?</a> </div> <div>2024-11-30 09:20:11</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701555.html">Java의 `instanceof` 연산자는 객체 유형을 어떻게 결정합니까?</a> </div> <div>2024-11-30 09:19:09</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701554.html">Java에서 CPU, 메모리 및 디스크 사용량을 어떻게 모니터링할 수 있습니까?</a> </div> <div>2024-11-30 09:18:10</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701553.html">MySQL에서 두 날짜 사이의 데이터를 선택할 때 상한 날짜를 포함하는 방법은 무엇입니까?</a> </div> <div>2024-11-30 09:16:10</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701552.html">C 11의 `std::벡터::resize()`와 Boost.Container의 `resize()`는 초기화되지 않은 요소를 어떻게 처리합니까?</a> </div> <div>2024-11-30 09:15:14</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701551.html">PHP: Dates의 지옥에서 탈출하는 실용적인 방법</a> </div> <div>2024-11-30 09:14:19</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701550.html">React에서 HTML 문자열을 JSX로 안전하게 렌더링하는 방법은 무엇입니까?</a> </div> <div>2024-11-30 09:13:10</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701549.html">배열을 Go 구조체에 매핑할 때 JSON 역마샬링이 실패하는 이유는 무엇입니까?</a> </div> <div>2024-11-30 09:12:17</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ko/faq/1796701548.html">Go에서 `map[string]string`을 마샬링할 때 `json.Marshal`이 언제 실패합니까?</a> </div> <div>2024-11-30 09:11:13</div> </li> </ul> </div> <div class="wzconZzwz"> <div class="wzconZzwztitle">최신 이슈</div> <div class="wdsyContent"> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ko/wenda/176411.html" target="_blank" title="function_exists()는 사용자 정의 함수를 결정할 수 없습니다." class="wdcdcTitle">function_exists()는 사용자 정의 함수를 결정할 수 없습니다.</a> <a href="https://www.php.cn/ko/wenda/176411.html" class="wdcdcCons">기능 테스트() {                                                                                ...</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> 에서 2024-04-29 11:01:01</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>3</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>2042</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ko/wenda/176410.html" target="_blank" title="Chrome 모바일 버전을 표시하는 방법" class="wdcdcTitle">Chrome 모바일 버전을 표시하는 방법</a> <a href="https://www.php.cn/ko/wenda/176410.html" class="wdcdcCons">안녕하세요 선생님, Chrome을 모바일 버전으로 어떻게 변경하나요?</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> 에서 2024-04-23 00:22:19</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>11</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>2202</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ko/wenda/176407.html" target="_blank" title="자식 창이 부모 창을 작동하지만 출력이 응답하지 않습니다." class="wdcdcTitle">자식 창이 부모 창을 작동하지만 출력이 응답하지 않습니다.</a> <a href="https://www.php.cn/ko/wenda/176407.html" class="wdcdcCons">처음 두 문장은 실행 가능하지만 마지막 문장은 구현할 수 없습니다.</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> 에서 2024-04-19 15:37:47</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>1</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1858</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ko/wenda/176406.html" target="_blank" title="상위 창에 출력이 없습니다." class="wdcdcTitle">상위 창에 출력이 없습니다.</a> <a href="https://www.php.cn/ko/wenda/176406.html" class="wdcdcCons">document.onclick = function(){ window.opener.document.write('나는 자식 창의 출력입니다.');</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> 에서 2024-04-18 23:52:34</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>1</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1746</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ko/wenda/176405.html" target="_blank" title="CSS 마인드맵 코스웨어는 어디에 있나요?" class="wdcdcTitle">CSS 마인드맵 코스웨어는 어디에 있나요?</a> <a href="https://www.php.cn/ko/wenda/176405.html" class="wdcdcCons">코스웨어</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> 에서 2024-04-16 10:10:18</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>0</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1766</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> </div> </div> <div class="wzconZt" > <div class="wzczt-title"> <div>관련 주제</div> <a href="https://www.php.cn/ko/faq/zt" target="_blank">더> </a> </div> <div class="wzcttlist"> <ul> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/javazserverle"><img src="https://img.php.cn/upload/subject/202407/22/2024072212100280086.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Java에서 Serverlet의 역할" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/javazserverle" class="title-a-spanl" title="Java에서 Serverlet의 역할"><span>Java에서 Serverlet의 역할</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/pythondqexcel"><img src="https://img.php.cn/upload/subject/202407/22/2024072212161013074.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Python에서 Excel의 열을 읽는 방법" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/pythondqexcel" class="title-a-spanl" title="Python에서 Excel의 열을 읽는 방법"><span>Python에서 Excel의 열을 읽는 방법</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/sjksthbdqbssm"><img src="https://img.php.cn/upload/subject/202407/22/2024072214165193405.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="데이터베이스 뷰와 테이블의 차이점은 무엇입니까" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/sjksthbdqbssm" class="title-a-spanl" title="데이터베이스 뷰와 테이블의 차이점은 무엇입니까"><span>데이터베이스 뷰와 테이블의 차이점은 무엇입니까</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/basebqdzy"><img src="https://img.php.cn/upload/subject/202407/22/2024072212243422139.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="기본 태그의 역할" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/basebqdzy" class="title-a-spanl" title="기본 태그의 역할"><span>기본 태그의 역할</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/c-tutorial"><img src="https://img.php.cn/upload/subject/000/000/083/66d958c926853851.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="C# 튜토리얼" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/c-tutorial" class="title-a-spanl" title="C# 튜토리얼"><span>C# 튜토리얼</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/dezenderyfynx"><img src="https://img.php.cn/upload/subject/202407/22/2024072213574157940.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Dezender의 용도는 무엇인가요?" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/dezenderyfynx" class="title-a-spanl" title="Dezender의 용도는 무엇인가요?"><span>Dezender의 용도는 무엇인가요?</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/ltdnrhgxdyj"><img src="https://img.php.cn/upload/subject/202407/22/2024072213281166202.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="두 컴퓨터 간에 프린터를 공유하는 방법" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/ltdnrhgxdyj" class="title-a-spanl" title="두 컴퓨터 간에 프린터를 공유하는 방법"><span>두 컴퓨터 간에 프린터를 공유하는 방법</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ko/faq/UpdatePaneldy"><img src="https://img.php.cn/upload/subject/202407/22/2024072214025194677.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="UpdatePanel 사용" /> </a> <a target="_blank" href="https://www.php.cn/ko/faq/UpdatePaneldy" class="title-a-spanl" title="UpdatePanel 사용"><span>UpdatePanel 사용</span> </a> </li> </ul> </div> </div> </div> </div> <div class="phpwzright"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5902227090019525" data-ad-slot="3653428331" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class="wzrOne"> <div class="wzroTitle">인기 추천</div> <div class="wzroList"> <ul> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="js는 무슨 뜻인가요?" href="https://www.php.cn/ko/faq/482163.html">js는 무슨 뜻인가요?</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="js에서 문자열을 배열로 변환하는 방법은 무엇입니까?" href="https://www.php.cn/ko/faq/461802.html">js에서 문자열을 배열로 변환하는 방법은 무엇입니까?</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="자바스크립트를 사용하여 페이지를 새로 고치는 방법" href="https://www.php.cn/ko/faq/473330.html">자바스크립트를 사용하여 페이지를 새로 고치는 방법</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="sqrt 함수를 사용하는 방법" href="https://www.php.cn/ko/faq/415276.html">sqrt 함수를 사용하는 방법</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="js 배열에서 항목을 삭제하는 방법" href="https://www.php.cn/ko/faq/475790.html">js 배열에서 항목을 삭제하는 방법</a> </div> </li> </ul> </div> </div> <script src="https://sw.php.cn/hezuo/cac1399ab368127f9b113b14eb3316d0.js" type="text/javascript"></script> <div class="wzrThree"> <div class="wzrthree-title"> <div>인기 튜토리얼</div> <a target="_blank" href="https://www.php.cn/ko/course.html">더> </a> </div> <div class="wzrthreelist swiper2"> <div class="wzrthreeTab swiper-wrapper"> <div class="check tabdiv swiper-slide" data-id="one">관련 튜토리얼 <div></div></div> <div class="tabdiv swiper-slide" data-id="two">인기 추천<div></div></div> <div class="tabdiv swiper-slide" data-id="three">최신 강좌<div></div></div> </div> <ul class="one"> <li> <a target="_blank" href="https://www.php.cn/ko/course/812.html" title="최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)"/> </a> <div class="wzrthree-right"> <a target="_blank" title="최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)" href="https://www.php.cn/ko/course/812.html">최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)</a> <div class="wzrthreerb"> <div>1421159 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/74.html" title="PHP 입문 튜토리얼 1: 일주일 안에 PHP 배우기" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/6253d1e28ef5c345.png" alt="PHP 입문 튜토리얼 1: 일주일 안에 PHP 배우기"/> </a> <div class="wzrthree-right"> <a target="_blank" title="PHP 입문 튜토리얼 1: 일주일 안에 PHP 배우기" href="https://www.php.cn/ko/course/74.html">PHP 입문 튜토리얼 1: 일주일 안에 PHP 배우기</a> <div class="wzrthreerb"> <div>4264806 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="74"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/286.html" title="JAVA 초보자용 비디오 튜토리얼" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 초보자용 비디오 튜토리얼"/> </a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 초보자용 비디오 튜토리얼" href="https://www.php.cn/ko/course/286.html">JAVA 초보자용 비디오 튜토리얼</a> <div class="wzrthreerb"> <div>2515491 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/504.html" title="Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a67ce3a6655.png" alt="Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼" href="https://www.php.cn/ko/course/504.html">Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼</a> <div class="wzrthreerb"> <div>506146 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="504"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/2.html" title="PHP 제로 기반 입문 튜토리얼" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/6253de27bc161468.png" alt="PHP 제로 기반 입문 튜토리얼"/> </a> <div class="wzrthree-right"> <a target="_blank" title="PHP 제로 기반 입문 튜토리얼" href="https://www.php.cn/ko/course/2.html">PHP 제로 기반 입문 튜토리얼</a> <div class="wzrthreerb"> <div>861249 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="2"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> <ul class="two" style="display: none;"> <li> <a target="_blank" href="https://www.php.cn/ko/course/812.html" title="최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)"/> </a> <div class="wzrthree-right"> <a target="_blank" title="최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)" href="https://www.php.cn/ko/course/812.html">최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)</a> <div class="wzrthreerb"> <div >1421159 학습 시간</div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/286.html" title="JAVA 초보자용 비디오 튜토리얼" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 초보자용 비디오 튜토리얼"/> </a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 초보자용 비디오 튜토리얼" href="https://www.php.cn/ko/course/286.html">JAVA 초보자용 비디오 튜토리얼</a> <div class="wzrthreerb"> <div >2515491 학습 시간</div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/504.html" title="Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a67ce3a6655.png" alt="Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼" href="https://www.php.cn/ko/course/504.html">Little Turtle의 Python 학습에 대한 제로 기반 소개 비디오 튜토리얼</a> <div class="wzrthreerb"> <div >506146 학습 시간</div> <div class="courseICollection" data-id="504"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/901.html" title="웹 프론트 엔드 개발에 대한 빠른 소개" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/64be28a53a4f6310.png" alt="웹 프론트 엔드 개발에 대한 빠른 소개"/> </a> <div class="wzrthree-right"> <a target="_blank" title="웹 프론트 엔드 개발에 대한 빠른 소개" href="https://www.php.cn/ko/course/901.html">웹 프론트 엔드 개발에 대한 빠른 소개</a> <div class="wzrthreerb"> <div >215610 학습 시간</div> <div class="courseICollection" data-id="901"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/234.html" title="PS 비디오 튜토리얼을 처음부터 마스터하세요" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62611f57ed0d4840.jpg" alt="PS 비디오 튜토리얼을 처음부터 마스터하세요"/> </a> <div class="wzrthree-right"> <a target="_blank" title="PS 비디오 튜토리얼을 처음부터 마스터하세요" href="https://www.php.cn/ko/course/234.html">PS 비디오 튜토리얼을 처음부터 마스터하세요</a> <div class="wzrthreerb"> <div >885882 학습 시간</div> <div class="courseICollection" data-id="234"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> <ul class="three" style="display: none;"> <li> <a target="_blank" href="https://www.php.cn/ko/course/1648.html" title="[웹 프런트엔드] Node.js 빠른 시작" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/662b5d34ba7c0227.png" alt="[웹 프런트엔드] Node.js 빠른 시작"/> </a> <div class="wzrthree-right"> <a target="_blank" title="[웹 프런트엔드] Node.js 빠른 시작" href="https://www.php.cn/ko/course/1648.html">[웹 프런트엔드] Node.js 빠른 시작</a> <div class="wzrthreerb"> <div >7193 학습 시간</div> <div class="courseICollection" data-id="1648"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/1647.html" title="해외 웹 개발 풀스택 강좌 총집합" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/6628cc96e310c937.png" alt="해외 웹 개발 풀스택 강좌 총집합"/> </a> <div class="wzrthree-right"> <a target="_blank" title="해외 웹 개발 풀스택 강좌 총집합" href="https://www.php.cn/ko/course/1647.html">해외 웹 개발 풀스택 강좌 총집합</a> <div class="wzrthreerb"> <div >5577 학습 시간</div> <div class="courseICollection" data-id="1647"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/1646.html" title="Go 언어 실습 GraphQL" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/662221173504a436.png" alt="Go 언어 실습 GraphQL"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Go 언어 실습 GraphQL" href="https://www.php.cn/ko/course/1646.html">Go 언어 실습 GraphQL</a> <div class="wzrthreerb"> <div >4695 학습 시간</div> <div class="courseICollection" data-id="1646"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/1645.html" title="550W 팬 마스터가 JavaScript를 처음부터 차근차근 학습합니다" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/662077e163124646.png" alt="550W 팬 마스터가 JavaScript를 처음부터 차근차근 학습합니다"/> </a> <div class="wzrthree-right"> <a target="_blank" title="550W 팬 마스터가 JavaScript를 처음부터 차근차근 학습합니다" href="https://www.php.cn/ko/course/1645.html">550W 팬 마스터가 JavaScript를 처음부터 차근차근 학습합니다</a> <div class="wzrthreerb"> <div >671 학습 시간</div> <div class="courseICollection" data-id="1645"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ko/course/1644.html" title="기초 지식이 전혀 없는 초보자도 6시간 만에 시작할 수 있는 파이썬 마스터 모쉬" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/6616418ca80b8916.png" alt="기초 지식이 전혀 없는 초보자도 6시간 만에 시작할 수 있는 파이썬 마스터 모쉬"/> </a> <div class="wzrthree-right"> <a target="_blank" title="기초 지식이 전혀 없는 초보자도 6시간 만에 시작할 수 있는 파이썬 마스터 모쉬" href="https://www.php.cn/ko/course/1644.html">기초 지식이 전혀 없는 초보자도 6시간 만에 시작할 수 있는 파이썬 마스터 모쉬</a> <div class="wzrthreerb"> <div >23725 학습 시간</div> <div class="courseICollection" data-id="1644"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> </div> <script> var mySwiper = new Swiper('.swiper2', { autoplay: false,//可选选项,自动滑动 slidesPerView : 'auto', }) $('.wzrthreeTab>div').click(function(e){ $('.wzrthreeTab>div').removeClass('check') $(this).addClass('check') $('.wzrthreelist>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> <div class="wzrFour"> <div class="wzrfour-title"> <div>최신 다운로드</div> <a href="https://www.php.cn/ko/xiazai">더> </a> </div> <script> $(document).ready(function(){ var sjyx_banSwiper = new Swiper(".sjyx_banSwiperwz",{ speed:1000, autoplay:{ delay:3500, disableOnInteraction: false, }, pagination:{ el:'.sjyx_banSwiperwz .swiper-pagination', clickable :false, }, loop:true }) }) </script> <div class="wzrfourList swiper3"> <div class="wzrfourlTab swiper-wrapper"> <div class="check swiper-slide" data-id="onef">웹 효과 <div></div></div> <div class="swiper-slide" data-id="twof">웹사이트 소스 코드<div></div></div> <div class="swiper-slide" data-id="threef">웹사이트 자료<div></div></div> <div class="swiper-slide" data-id="fourf">프론트엔드 템플릿<div></div></div> </div> <ul class="onef"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery 기업 메시지 양식 연락처 코드" href="https://www.php.cn/ko/toolset/js-special-effects/8071">[양식 버튼] jQuery 기업 메시지 양식 연락처 코드</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5 MP3 뮤직 박스 재생 효과" href="https://www.php.cn/ko/toolset/js-special-effects/8070">[플레이어 특수 효과] HTML5 MP3 뮤직 박스 재생 효과</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5 멋진 입자 애니메이션 탐색 메뉴 특수 효과" href="https://www.php.cn/ko/toolset/js-special-effects/8069">[메뉴 탐색] HTML5 멋진 입자 애니메이션 탐색 메뉴 특수 효과</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery 시각적 양식 드래그 앤 드롭 편집 코드" href="https://www.php.cn/ko/toolset/js-special-effects/8068">[양식 버튼] jQuery 시각적 양식 드래그 앤 드롭 편집 코드</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="VUE.JS 모방 Kugou 음악 플레이어 코드" href="https://www.php.cn/ko/toolset/js-special-effects/8067">[플레이어 특수 효과] VUE.JS 모방 Kugou 음악 플레이어 코드</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="클래식 HTML5 푸시 박스 게임" href="https://www.php.cn/ko/toolset/js-special-effects/8066">[HTML5 특수 효과] 클래식 HTML5 푸시 박스 게임</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="이미지 효과를 추가하거나 줄이기 위해 jQuery 스크롤" href="https://www.php.cn/ko/toolset/js-special-effects/8065">[그림 특수 효과] 이미지 효과를 추가하거나 줄이기 위해 jQuery 스크롤</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="CSS3 개인 앨범 커버 호버 확대/축소 효과" href="https://www.php.cn/ko/toolset/js-special-effects/8064">[사진 앨범 효과] CSS3 개인 앨범 커버 호버 확대/축소 효과</a> </div> </li> </ul> <ul class="twof" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8328" title="가정 장식 청소 및 수리 서비스 회사 웹사이트 템플릿" target="_blank">[프런트엔드 템플릿] 가정 장식 청소 및 수리 서비스 회사 웹사이트 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8327" title="신선한 색상의 개인 이력서 가이드 페이지 템플릿" target="_blank">[프런트엔드 템플릿] 신선한 색상의 개인 이력서 가이드 페이지 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8326" title="디자이너 크리에이티브 작업 이력서 웹 템플릿" target="_blank">[프런트엔드 템플릿] 디자이너 크리에이티브 작업 이력서 웹 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8325" title="현대 엔지니어링 건설 회사 웹사이트 템플릿" target="_blank">[프런트엔드 템플릿] 현대 엔지니어링 건설 회사 웹사이트 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8324" title="교육 서비스 기관을 위한 반응형 HTML5 템플릿" target="_blank">[프런트엔드 템플릿] 교육 서비스 기관을 위한 반응형 HTML5 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8323" title="온라인 전자책 쇼핑몰 웹사이트 템플릿" target="_blank">[프런트엔드 템플릿] 온라인 전자책 쇼핑몰 웹사이트 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8322" title="IT 기술로 인터넷 회사 웹 사이트 템플릿을 해결합니다." target="_blank">[프런트엔드 템플릿] IT 기술로 인터넷 회사 웹 사이트 템플릿을 해결합니다.</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8321" title="보라색 스타일 외환 거래 서비스 웹 사이트 템플릿" target="_blank">[프런트엔드 템플릿] 보라색 스타일 외환 거래 서비스 웹 사이트 템플릿</a> </div> </li> </ul> <ul class="threef" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3078" target="_blank" title="귀여운 여름 요소 벡터 자료(EPS+PNG)">[PNG 소재] 귀여운 여름 요소 벡터 자료(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3077" target="_blank" title="4개의 빨간색 2023 졸업 배지 벡터 자료(AI+EPS+PNG)">[PNG 소재] 4개의 빨간색 2023 졸업 배지 벡터 자료(AI+EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3076" target="_blank" title="노래하는 새와 꽃 디자인 봄 배너 벡터 자료로 가득 찬 카트(AI+EPS)">[배너 그림] 노래하는 새와 꽃 디자인 봄 배너 벡터 자료로 가득 찬 카트(AI+EPS)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3075" target="_blank" title="황금 졸업 모자 벡터 자료(EPS+PNG)">[PNG 소재] 황금 졸업 모자 벡터 자료(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3074" target="_blank" title="흑백 스타일 산 아이콘 벡터 자료(EPS+PNG)">[PNG 소재] 흑백 스타일 산 아이콘 벡터 자료(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3073" target="_blank" title="다양한 색상의 망토와 포즈를 갖춘 슈퍼히어로 실루엣 벡터 자료(EPS+PNG)">[PNG 소재] 다양한 색상의 망토와 포즈를 갖춘 슈퍼히어로 실루엣 벡터 자료(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3072" target="_blank" title="플랫 스타일 식목일 배너 벡터 자료(AI+EPS)">[배너 그림] 플랫 스타일 식목일 배너 벡터 자료(AI+EPS)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-materials/3071" target="_blank" title="9개의 만화 스타일의 폭발적인 채팅 거품 벡터 자료(EPS+PNG)">[PNG 소재] 9개의 만화 스타일의 폭발적인 채팅 거품 벡터 자료(EPS+PNG)</a> </div> </li> </ul> <ul class="fourf" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8328" target="_blank" title="가정 장식 청소 및 수리 서비스 회사 웹사이트 템플릿">[프런트엔드 템플릿] 가정 장식 청소 및 수리 서비스 회사 웹사이트 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8327" target="_blank" title="신선한 색상의 개인 이력서 가이드 페이지 템플릿">[프런트엔드 템플릿] 신선한 색상의 개인 이력서 가이드 페이지 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8326" target="_blank" title="디자이너 크리에이티브 작업 이력서 웹 템플릿">[프런트엔드 템플릿] 디자이너 크리에이티브 작업 이력서 웹 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8325" target="_blank" title="현대 엔지니어링 건설 회사 웹사이트 템플릿">[프런트엔드 템플릿] 현대 엔지니어링 건설 회사 웹사이트 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8324" target="_blank" title="교육 서비스 기관을 위한 반응형 HTML5 템플릿">[프런트엔드 템플릿] 교육 서비스 기관을 위한 반응형 HTML5 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8323" target="_blank" title="온라인 전자책 쇼핑몰 웹사이트 템플릿">[프런트엔드 템플릿] 온라인 전자책 쇼핑몰 웹사이트 템플릿</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8322" target="_blank" title="IT 기술로 인터넷 회사 웹 사이트 템플릿을 해결합니다.">[프런트엔드 템플릿] IT 기술로 인터넷 회사 웹 사이트 템플릿을 해결합니다.</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ko/toolset/website-source-code/8321" target="_blank" title="보라색 스타일 외환 거래 서비스 웹 사이트 템플릿">[프런트엔드 템플릿] 보라색 스타일 외환 거래 서비스 웹 사이트 템플릿</a> </div> </li> </ul> </div> <script> var mySwiper = new Swiper('.swiper3', { autoplay: false,//可选选项,自动滑动 slidesPerView : 'auto', }) $('.wzrfourlTab>div').click(function(e){ $('.wzrfourlTab>div').removeClass('check') $(this).addClass('check') $('.wzrfourList>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> </div> </div> <footer> <div class="footer"> <div class="footertop"> <img src="/static/imghw/logo.png" alt=""> <p>공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!</p> </div> <div class="footermid"> <a href="https://www.php.cn/ko/about/us.html">회사 소개</a> <a href="https://www.php.cn/ko/about/disclaimer.html">부인 성명</a> <a href="https://www.php.cn/ko/update/article_0_1.html">Sitemap</a> </div> <div class="footerbottom"> <p> © php.cn All rights reserved </p> </div> </div> </footer> <input type="hidden" id="verifycode" value="/captcha.html"> <script>layui.use(['element', 'carousel'], function () {var element = layui.element;$ = layui.jquery;var carousel = layui.carousel;carousel.render({elem: '#test1', width: '100%', height: '330px', arrow: 'always'});$.getScript('/static/js/jquery.lazyload.min.js', function () {$("img").lazyload({placeholder: "/static/images/load.jpg", effect: "fadeIn", threshold: 200, skip_invisible: false});});});</script> <script src="/static/js/common_new.js"></script> <script type="text/javascript" src="/static/js/jquery.cookie.js?1732931582"></script> <script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script> <link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all'/> <script type='text/javascript' src='/static/js/viewer.min.js?1'></script> <script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script> <script type="text/javascript" src="/static/js/global.min.js?5.5.53"></script> </body> </html>