header-img
Info :
Document 44
0519 ์ˆ˜์—… ํŒ์„œ ๋‚ด์šฉ
2023.05.19
1. createReactApp ๋ง๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ• ์˜ˆ์‹œ ์ฝ”๋“œ ํ•˜๋‚˜ ์ž‘์„ฑ --------- 1. History API๊ฐ€ ๋ญ”๋ฐ - history API : ๋ธŒ๋ผ์šฐ์ €์˜ ์„ธ์…˜ ๊ธฐ๋ก์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด - ๋’ค๋กœ ๊ฐ€๊ธฐ, ์•ž์œผ๋กœ ๊ฐ€๊ธฐ, ํŽ˜์ด์ง€ ์ด๋™ ๋“ฑ์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ - history ๋ž€ ์„ธ์…˜ ๊ธฐ๋ก(ํŽ˜์ด์ง€ ๋ฐฉ๋ฌธ ๊ธฐ๋ก)์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ - history.back() : ๋’ค๋กœ๊ฐ€๊ธฐ - history.forward() : ์•ž์œผ๋กœ ๊ฐ€๊ธฐ - history.go() : ์„ธ์…˜ ๊ธฐ๋ก ๋‚ด ํŽ˜์ด์ง€๋กœ ์ด๋™ // chrome ์ผœ์„œ ํ™•์ธ ์‹œ์ผœ์ฃผ๊ธฐ 2. BrowserRouter ์š”์†Œ์˜ ๊ธฐ๋Šฅ, History API์™€์˜ ๊ด€๋ จ์„ฑ 3. Route ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋ฐ์ดํ„ฐ ํ˜•์‹ 4. export ..
0518 ์ˆ˜์—… ํŒ์„œ ๋‚ด์šฉ
2023.05.19
๋ฆฌ์•กํŠธ์˜ ํŠน์ง• 3๊ฐ€์ง€ 1. ์„ ์–ธํ˜•(Declarative) : ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด html, css, js๋กœ ๋‚˜๋ˆ ์„œ ์ ๊ธฐ ๋ณด๋‹ค๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ JSX๋ฅผ ํ™œ์šฉํ•œ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€ํ–ฅ const name = 'yoonhyewon' const element = Hello,{name} 2. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ (Component-Based) - ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ฝ”๋“œ๋ฅผ ๋ฌถ์–ด๋‘” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœํ•จ 3. ๋ฒ”์šฉ์„ฑ (Learn Once, Write Anywhere) - js ํ”„๋กœ์ ํŠธ ์–ด๋””์—๋“  ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉ ๊ฐ€๋Šฅ - facebook ์—์„œ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์–ด ์•ˆ์ •์ ์ด๋ฉฐ, ์œ ๋ช…ํ•˜๊ณ , ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ๋„ ๊ฐ€๋Šฅํ•จ - 2020๋…„ ๊ธฐ์ค€ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  - ..
517 ์ˆ˜์—… ํŒ์„œ ๋‚ด์šฉ
2023.05.18
[], {}, () ๋Œ€๊ด„ํ˜ธ [] 1. list ๋‚˜์—ด ํ˜น์€ list ์ธ๋ฑ์Šค ์ง€์ • ex) list[0], list[1] ์ค‘๊ด„ํ˜ธ {} 1. dictionary ๋งŒ๋“ค๋•Œ {'key':'value'} 2. style tag ์ง€์ • ์‹œ 3. ํŠน์ • function์— ๋Œ€ํ•ด ์ •์˜ ํ•  ๋•Œ function test(){} ํ˜•์‹์ด ๋˜๊ฒ ์ฃ .. 4. for / if ๋“ฑ์˜ ๋ฌธ๋ฒ• ์ƒ ํ•„์š”ํ•  ๋•Œ ์†Œ๊ด„ํ˜ธ () 1. for๋‚˜ if ๊ฐ™์€ ๋ฌธ๋ฒ•์— ์กฐ๊ฑด ์‹ ๋„ฃ์„ ๋•Œ JSON (Javascript Object Notation) ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” "๊ฒฝ๋Ÿ‰" Data ๊ตํ™˜ ํ˜•์‹ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ javascript์—์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‘œํ˜„์‹์„ ์˜๋ฏธ -- ์‚ฌ๋žŒ ๊ธฐ๊ณ„ ๋ชจ๋‘ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ์šฉ๋Ÿ‰์ด ์ž‘์•„์„œ ๋ฐ์ดํ„ฐ ์ „์†ก์— ๋งŽ์ด ์“ฐ์ด..
516 ๊ฐ•์˜ ํŒ์„œ ๋‚ด์šฉ (callback/promise)
2023.05.16
// settimeout : ์‹คํ–‰ํ•  ํ•จ์ˆ˜, ์ดˆ(๋ฐ€๋ฆฌ์„ธ์ปจ ๋‹จ์œ„) [callback] ์ฝœ๋ฐฑํ•จ์ˆ˜ : ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹ค๋ฅธ ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ์ค€ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ๋ฐ›์€ ํ•จ์ˆ˜๋Š” ์ผ๋‹จ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋จผ์ € ๋„˜๊ฒจ๋ฐ›์•„๋‘” ์ƒํƒœ์—์„œ ์ผ์ • ์‹œ์ (๋•Œ)๊ฐ€ ๋˜๋ฉด ๋‚˜์ค‘์— ํ˜ธ์ถœ(call back)ํ•œ๋‹ค๋Š” ์˜๋ฏธ // ์ฝœ๋ฐฑํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  1. ๋ณ€์ˆ˜์˜ ์œ ํšจ๋ฒ”์œ„ (scope) 2. ๋™๊ธฐ/๋น„๋™๊ธฐ(synchronous/Asynchronous) -> ์ด๋Ÿฐ ๊ฑธ ์œ„ํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•๋ก ์ ์ธ ๋ถ€๋ถ„ ์œ ์šฉํ•œ๋ฐ.. ๋‚ด๊ฐ€ a~z๊นŒ์ง€ console ์ฐ๋Š” ํ–‰์œ„๋ฅผ ์ œ์–ดํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ง„๋‹ค.. -> Callback Hell -- ์ž‘์„ฑ์ž ์ž…์žฅ์—์„œ๋Š” ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์•ˆ๋  ์ˆ˜๋„ ์žˆ์œผ๋‚˜ ์ด๊ฑธ ์ถ”ํ›„์— ๋ˆ„๊ตฐ๊ฐ€ ์œ ์ง€๋ณด์ˆ˜ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด? hell ์ด๋‹ค...
[javascript] Async/Sync ๋™๊ธฐ ๋น„๋™๊ธฐ BasicChaining ๊ตฌํ˜„ (+Promise ๊ตฌํ˜„)
2023.05.16
'part-2/02_promiseConstructor.js' ํŒŒ์ผ์„ ๊ตฌํ˜„ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค. callback์ด๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜(parameter) ๋Œ€์‹ , Promise์˜ resolve, reject ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์„ธ์š”. part-2/03_basicChaining.js์€, ์•ž์„œ ์ž‘์„ฑํ•œ getDataFromFilePromise๋ฅผ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. fs ๋ชจ๋“ˆ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. getDataFromFilePromise๋ฅผ ์ด์šฉํ•ด, 'files/user1.json' ํŒŒ์ผ๊ณผ 'files/user2.json' ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๋‘ ํŒŒ์ผ์„ ํ•ฉ์ณ์„œ ์ตœ์ข…์ ์œผ๋กœ ๋‘ ๊ฐ์ฒด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ๋•Œ, user1Path ๋ฐ user2Path๋ฅผ ์ด์šฉํ•˜์„ธ์š”. then์ด ์–ด๋–ค ..
515 ์ˆ˜์—… ํŒ์„œ ๋‚ด์šฉ ๋ฉ”๋ชจ 1
2023.05.15
1. each // [ for-each ] // 1. collection(๋ฐฐ์—ด ํ˜น์€ ๊ฐ์ฒด)๊ณผ ํ•จ์ˆ˜ iteratee(๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…)๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌ๋ฐ›์•„ (iteratee๋Š” ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜์ด๋ฏ€๋กœ callback ํ•จ์ˆ˜) // 2. collection์˜ ๋ฐ์ดํ„ฐ(element ๋˜๋Š” property)๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ // 3. iteratee์— ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. _.each = function (collection, iteratee) { // TODO: ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. if (Array.isArray(collection)) { for (let idx = 0; idx ์ธ์ž๊ฐ€ ์ง์ˆ˜ํŒ๋ณ„ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ์ง€์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ ๊ฐ’์„ true ๋กœ ๋ฑ‰์–ด ์ค„๊ฑฐ์ž„ if (์ง์ˆ˜ํŒ๋ณ„(์ง์ˆ˜ํŒ๋ณ„ ์ธ์ž๊ฐ’..
230512 ์งˆ๋ฌธ ๋‹ต๋ณ€ ์ค€๋น„
2023.05.15
[ ES5 ] function BbangFrame(zearyo1, zearyo2){ this.base = zearyo1; this.main = zearyo2; } var creambbang = new BbangFrame('๋ฐ€๊ฐ€๋ฃจ', 'ํฌ๋ฆผ') console.log(creambbang) var strawberrybbang = new BbangFrame('์Œ€๊ฐ€๋ฃจ','๋”ธ๊ธฐ') console.log(strawberrybbang) [ ES6 ] class BbangFrame2{ constructor(zearyo1,zearyo2){ this.base = zearyo1; this.main = zearyo2; } } let patbbang = new BbangFrame2('๋ฐ€๊ฐ€๋ฃจ','ํŒฅx2') console.log(p..
[Javascript] ๋‚ด์žฅ ๊ณ ์ฐจ ํ•จ์ˆ˜
2023.05.03
1. filter : ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ - ๋ชจ๋“  ๋ฐฐ์—ด์˜ ์š”์†Œ ์ค‘์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ๋ฉ”์„œ๋“œ - filter ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ ์˜ˆ์‹œ // ํ•จ์ˆ˜ ํ‘œํ˜„์‹ const isEven = function (num) { return num%2 === 0; } let arr = [1,2,3,4]; // '์ง์ˆ˜'๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์กฐ๊ฑด์œผ๋กœ์„œ filter ๋ฉ”์„œ๋“œ์˜ ์ „๋‹ฌ์ธ์ž๋กœ ์ „๋‹ฌ๋œ๋‹ค. let output = arr.filter(isEven); console.log(output); // ->> [2,4] const isLteFive = function (str) { // Lte = less than equal return str.length > ['hello', 'code', 'happy'] - filter ํ™œ์šฉ ..
[Javascript] ๊ณ ์ฐจํ•จ์ˆ˜
2023.05.03
๊ณ ์ฐจํ•จ์ˆ˜ Higher order function - ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž(argument)๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ ์ฝœ๋ฐฑํ•จ์ˆ˜ callback function - ๋‹ค๋ฅธ ํ•จ์ˆ˜(caller)์˜ ์ „๋‹ฌ์ธ์ž(argument)๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜ - ์–ด๋–ค ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์„œ, ๋‹ต์‹  ์ „ํ™”๋ฅผ ๋œปํ•˜๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜๋ผ๋Š” ์ด๋ฆ„์ด ๋ถ™ํ˜€์ง ์ปค๋ง ํ•จ์ˆ˜ - ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ - ๋”ฐ๋กœ ์ปค๋ง ํ•จ์ˆ˜๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š”, ๊ณ ์ฐจ ํ•จ์ˆ˜๋ผ๋Š” ์šฉ์–ด๋ฅผ 'ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž๋กœ ๋ฐ›๋Š” ํ•จ์ˆ˜'์—๋งŒ ํ•œ์ •ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•จ - ๊ณ ์ฐจ ํ•จ์ˆ˜๊ฐ€ ์ปค๋ง ํ•จ์ˆ˜๋ฅผ ํฌํ•จ 'ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜'์™€ 'ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž๋กœ ๋ฐ›๋Š” ํ•จ์ˆ˜' ๋ชจ๋‘, ๊ณ ์ฐจ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉ 1. ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š” ๊ฒฝ์šฐ function double(num) { re..
list_img
[๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ] 15์žฅ. ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ์„ค๊ณ„
2023.04.13
1๋‹จ๊ณ„. ๋ฌธ์ œ ์ดํ•ด ๋ฐ ์„ค๊ณ„ ๋ฒ”์œ„ ํ™•์ • ๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ ํŒŒ์ผ ์ถ”๊ฐ€. ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ์•ˆ์œผ๋กœ drag-and-drop ๊ฐ€๋Šฅํ•˜๋„๋ก ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ์—ฌ๋Ÿฌ ๋‹จ๋ง์— ํŒŒ์ผ ๋™๊ธฐํ™”. ํ•œ ๋‹จ๋ง์—์„œ ํŒŒ์ผ ์ถ”๊ฐ€ ์‹œ ๋‹ค๋ฅธ ๋‹จ๋ง์—๋„ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™” ํŒŒ์ผ ๊ฐฑ์‹  ์ด๋ ฅ ์กฐํšŒ(revision history) ํŒŒ์ผ ๊ณต์œ  ํŒŒ์ผ์ด ํŽธ์ง‘๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜๊ฑฐ๋‚˜ ์ƒˆ๋กญ๊ฒŒ ๊ณต์œ ๋˜์—ˆ์„ ๋•Œ ์•Œ๋ฆผ ํ‘œ์‹œ ๋น„๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ ์•ˆ์ •์„ฑ: ์ €์žฅ์†Œ ์‹œ์Šคํ…œ์—์„œ ์•ˆ์ •์„ฑ์€ ๋งค์šฐ ์ค‘์š”. ๋ฐ์ดํ„ฐ ์†์‹ค ๋ฐœ์ƒํ•˜๋ฉด ์•ˆ๋จ ๋น ๋ฅธ ๋™๊ธฐํ™” ์†๋„ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ: ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ๋ถˆํŽธ ์ดˆ๋ž˜ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ: ์•„์ฃผ ๋งŽ์€ ์–‘์˜ ํŠธ๋ž˜ํ”ฝ๋„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ ๋†’์€ ๊ฐ€์šฉ์„ฑ: ์ผ๋ถ€ ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜, ๋А๋ ค์ง€๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ ์ผ๋ถ€๊ฐ€ ๋Š๊ฒจ๋„ ์‹œ์Šคํ…œ์€ ๊ณ„์† ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ ๊ฐœ๋žต..
list_img
[๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์„ค๊ณ„ ์‹œ์Šคํ…œ ๊ธฐ์ดˆ] 14์žฅ. ์œ ํŠœ๋ธŒ ์„ค๊ณ„
2023.04.13
1๋‹จ๊ณ„. ๋ฌธ์ œ ์ดํ•ด ๋ฐ ์„ค๊ณ„ ๋ฒ”์œ„ ํ™•์ • ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š” ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค ์„ค๊ณ„์— ์ดˆ์ ์„ ๋งž์ถœ ์˜ˆ์ • ๋น ๋ฅธ ๋น„๋””์˜ค ์—…๋กœ๋“œ ์›ํ™œํ•œ ๋น„๋””์˜ค ์žฌ์ƒ ์žฌ์ƒ ํ’ˆ์งˆ ์„ ํƒ ๊ธฐ๋Šฅ ๋‚ฎ์€ ์ธํ”„๋ผ ๋น„์šฉ infrastructure cost ๋†’์€ ๊ฐ€์šฉ์„ฑ๊ณผ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ, ๊ทธ๋ฆฌ๊ณ  ์•ˆ์ •์„ฑ ์ง€์› ํด๋ผ์ด์–ธํŠธ: ๋ชจ๋ฐ”์ผ ์•ฑ, ์›น ๋ธŒ๋ผ์šฐ์ €, ๊ทธ๋ฆฌ๊ณ  ์Šค๋งˆํŠธ TV ๊ฐœ๋žต์  ๊ทœ๋ชจ ์ถ”์ • ์ผ๊ฐ„ ๋Šฅ๋™ ์‚ฌ์šฉ์žDAU ์ˆ˜๋Š” 5๋ฐฑ๋งŒ(5million) ํ•œ ์‚ฌ์šฉ์ž๋Š” ํ•˜๋ฃจ์— ํ‰๊ท  5๊ฐœ์˜ ๋น„๋””์˜ค ์‹œ์ฒญ 10%์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋ฃจ์— 1๋น„๋””์˜ค ์—…๋กœ๋“œ ๋น„๋””์˜ค ํ‰๊ท  ํฌ๊ธฐ๋Š” 300MB ๋น„๋””์˜ค ์ €์žฅ์„ ์œ„ํ•ด ๋งค์ผ ์ƒˆ๋กœ ์š”๊ตฌ๋˜๋Š” ์ €์žฅ ์šฉ๋Ÿ‰ : 150TB CDN ๋น„์šฉ ํด๋ผ์šฐ๋“œ CDN์„ ํ†ตํ•ด ๋น„๋””์˜ค๋ฅผ ์„œ๋น„์Šคํ•  ๊ฒฝ์šฐ CDN์—์„œ ๋‚˜๊ฐ€๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์— ๋”ฐ๋ผ ๊ณผ๊ธˆ ์•„๋งˆ์กด์˜ ํด๋ผ์šฐ๋“œํ”„๋ก ํŠธC..
list_img
[๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ] 13์žฅ. ๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ์„ค๊ณ„
2023.04.13
๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ (autocomplete, typehead, search-as-you-type, incremental search)์— ๊ด€ํ•œ ์ด์•ผ๊ธฐ. 1๋‹จ๊ณ„. ๋ฌธ์ œ ์ดํ•ด ๋ฐ ์„ค๊ณ„ ๋ฒ”์œ„ ํ™•์ • ์š”๊ตฌ์‚ฌํ•ญ ๋น ๋ฅธ ์‘๋‹ต์†๋„ : ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•จ์— ๋”ฐ๋ผ ์ž๋™์™„์„ฑ ๊ฒ€์ƒ‰์–ด๋„ ์ถฉ๋ถ„ํžˆ ๋นจ๋ฆฌ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•จ ํŽ˜์ด์Šค๋ถ ๊ณต์‹ ๋ฌธ์„œ ๊ธฐ์ค€ ์‹œ์Šคํ…œ ์‘๋‹ต์†๋„๋Š” 100๋ฐ€๋ฆฌ์ดˆ ์ด๋‚ด์—ฌ์•ผ ํ•œ๋‹ค ์—ฐ๊ด€์„ฑ ์ •๋ ฌ : ์‹œ์Šคํ…œ์˜ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋Š” ์ธ๊ธฐ๋„(popularity) ๋“ฑ์˜ ์ˆœ์œ„ ๋ชจ๋ธ(ranking model)์— ์˜ํ•ด ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทœ๋ชจ ํ™•์žฅ์„ฑ : ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. ๊ณ ๊ฐ€์šฉ์„ฑ : ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜, ๋А๋ ค์ง€๊ฑฐ๋‚˜, ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ์‹œ์Šคํ…œ์€ ์ง€์† ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ ๊ฐœ๋žต์  ๊ทœ๋ชจ ์ถ”์ • ..