[ブートキャンプの課題]Day 03-ネットワークローミングとLRUキャッシュ
この文章はBoost Campの挑戦中に学んだことをまとめた.
使用ライブラリ Axios:ブラウザおよびノード環境で使用するためのPromiseベースのHTTPクライアント、サイトのHTMLをインポートするためのライブラリ . Cheerio:Axiosの結果は、受信データから必要なデータを抽出するためのライブラリ である.
ソースコード コンソールI/O
キャッシュを置換する方法は、オペレーティングシステムのカリキュラムで一般的なページ置換アルゴリズムと同じキャッシュ置換アルゴリズムを使用します.
キャッシュ置換アルゴリズムは、キャッシュに空き領域がない場合、新しいコンテンツがメインメモリからキャッシュにコピーされると、既存のコンテンツをキャッシュから削除し、キャッシュから削除するブロックの内容を決定する必要があります.
典型的なアルゴリズムはFIFO、OPT、LRU、LFUおよびMFUであるが、最も理想的なアルゴリズムはOPTアルゴリズムである.
しかし、OPTアルゴリズムは、将来発生することを予測し、最長時間使用できないページを置き換えることができるため、実装不可能な方法である.
したがって,OPTよりもLRUの方が多く,効果も少ない.
最長未使用ページの交換方法
1.Webスクロール
npm init -y
npm install axios --save
npm install cheerio --save
const axios = require("axios");
const cheerio = require("cheerio");
const getHtml = async (keyword) => {
try {
return await axios.get(keyword); // URL의 html을 가져옴
} catch (error) {
console.error(error);
}
};
const parsing = async (keyword) => {
const html = await getHtml(keyword); // html 변수에 html이 담겨있음
const $ = cheerio.load(html.data);
const $data = $(".total_wrap"); // class가 g인 태그들을 data에 담는다.
let list = [];
$data.each((index, elem) => {
cnt = index+1;
list.push({
title: "결과"+ cnt + ".제목: "+$(elem).find("div.total_tit").text(),
link: "결과"+ cnt + ".링크: "+$(elem).find(".thumb").attr('href'),
content: "결과"+ cnt + ".미리보기: "+$(elem).find(".api_txt_lines.dsc_txt").text(),
})
});
console.log(list);
}
parsing("https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=apple")
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function(line) {
input = line;
// 비동기적인 함수를 사용하려면 이 사이에 사용해야한다.(입력을 대기함)
rl.close(); // 삭제시 무한으로 입력을 받는다.
}).on('close', function() {
console.log(input)
process.exit();
})
2.キャッシュの交換方法
キャッシュを置換する方法は、オペレーティングシステムのカリキュラムで一般的なページ置換アルゴリズムと同じキャッシュ置換アルゴリズムを使用します.
キャッシュ置換アルゴリズムは、キャッシュに空き領域がない場合、新しいコンテンツがメインメモリからキャッシュにコピーされると、既存のコンテンツをキャッシュから削除し、キャッシュから削除するブロックの内容を決定する必要があります.
典型的なアルゴリズムはFIFO、OPT、LRU、LFUおよびMFUであるが、最も理想的なアルゴリズムはOPTアルゴリズムである.
しかし、OPTアルゴリズムは、将来発生することを予測し、最長時間使用できないページを置き換えることができるため、実装不可能な方法である.
したがって,OPTよりもLRUの方が多く,効果も少ない.
LRU(Least Recently Used)
Reference
この問題について([ブートキャンプの課題]Day 03-ネットワークローミングとLRUキャッシュ), 我々は、より多くの情報をここで見つけました https://velog.io/@soosungp33/부스트캠프-챌린지-Day03-웹-크롤링과-LRU-캐시テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol