์ธ๊ฐ„๊ด€๊ณ„์™€ ๋งˆ์Œ์ด ๋ถˆ์•ˆํ•  ๋•Œ ๋ณด๋ฉด ์ข‹์€ ๊ธ€
ยท
๋…์„œ
https://naver.me/xM8mdHkp [์ธ๊ฐ„๊ด€๊ณ„๋ฌธ์ œ] ‘๋‚ด๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์ฑ™๊ฒผ๊ฑด๋งŒ....’ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์›๋งํ•˜๋Š” ๋งˆ์Œ์ด ๋“ญ๋‹ˆ๋‹ค... ์–ด๋ ธ์„ ์ ๋ถ€ํ„ฐ ์‚ฌ๋ž‘์„ ๊ฐˆ๋งํ•˜๋ฉฐ ์ž๋ผ์„œ ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋ชฉ์  ์—†์ด ๋ฒ ํ’€๊ธฐ๋ฅผ ์ข‹์•„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์„ฑ์ ์ธ ์„ฑ๊ฒฉ์ด๋ผ ์‚ฌ๋žŒ์„ ์ข‹์•„ํ•˜๋ฉด์„œ๋„ ์‚ฌ๋žŒ์„ ์‚ฌ๊ท€๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๋‹ˆ ์œ ํ˜•์ ์œผ๋กœ๋„ ๋ฌดํ˜• contents.premium.naver.com https://post.naver.com/viewer/postView.naver?volumeNo=35534426&memberNo=41817687
Js, lastindexof ์™€ substring ์„ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ ํ™•์žฅ์ž ์ถ”์ถœํ•˜๊ธฐ
ยท
js
function getFileExtension(fileName) { let fileLegnth = fileName.length; // ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์˜ . ์˜ ์œ„์น˜ let lastDot = fileName.lastIndexOf('.'); // .์˜ ๋‹ค์Œ ์œ„์น˜๋ถ€ํ„ฐ ํŒŒ์ผ ์ด ๊ธธ์ด๊นŒ์ง€ let fileExtension = fileName.substring(lastDot + 1 , fileLegnth).toLowercase(); return fileExtension; } .lastIndexOf() ๋ฌธ์ž์—ด ์œ„์น˜๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. indexOf() ์™€ ๋ฐ˜๋Œ€๋กœ ๋’ค์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ฐพ์•„์คŒ .substring() ํŠน์ • ๋ฌธ์ž์—ด์„ ์ž˜๋ผ๋‚ด์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. substring(start, end) ์‹œ์ž‘์œ„์น˜์—์„œ ์ข…๋ฃŒ ์œ„์น˜๊นŒ์ง€ ๋ฌธ์ž์—ด์„ ์ž๋ฅธ๋‹ค. ..
๋น„์ „๊ณต์ž๋ฅผ ์œ„ํ•œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” IT์ง€์‹
ยท
๋…์„œ
๋น„์ „๊ณต์ž๋ฅผ ์œ„ํ•œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” IT์ง€์‹ ์ €์ž ์ตœ์›์˜ ์ถœํŒ ํ‹ฐ๋”๋ธ”์œ ์•„์ด์ง€ - ์ด๊ฑฐ ์™œ ์•ˆ ๋ผ์š” - ์ €๋ฒˆ์— ์–ด๋–ค ๋‹ด๋‹น์ž๋ถ„์€ ํ•ด์ฃผ์…จ๋Š”๋ฐ?! '์ด๊ฑด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜์…”์•ผ ํ•ด์š”~' '์ œ ์ชฝ ์ˆ˜์ •์ด ์•„๋‹ˆ๋ผ ์ด๊ฑด ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ์„ค์ •ํ•ด์ฃผ์…”์•ผ ํ•ด์š”~' ๋‚ด ํฌ์ง€์…˜์€ ๋‹น์—ฐํžˆ ๊ธฐํš ๋””์ž์ธ๊ณผ์˜ ํ˜‘์—…์ด ๋งŽ๋‹ค. ๋‘˜ ์‚ฌ์ด ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์—ญํ• ๋„ ํ•˜๋ฉฐ ๊ฐ€์žฅ ํฐ ์†Œํ†ต์€ [์•ˆ๋˜๋Š” ์ด์œ ] ๋งํ•ด์ฃผ๊ธฐ ์ผ๋‹จ ํ™”๋ฉด์— ๋ณด์ด๋Š” ์˜์—ญ์€ ๋‚ด ๋‹ด๋‹น์œผ๋กœ ์˜ค๋ฅ˜์‚ฌํ•ญ์ด๋‚˜ ๋ฌธ์˜์‚ฌํ•ญ๋„ ์ผ๋‹จ ๋“ค๊ณ  ์˜ค์ง€๋งŒ~~~ ...๊ทธ ์ˆ˜์ •์€ ์ €๋„ ํ•  ์ˆ˜ ์—†๋Š”๊ฑธ์š” (์˜ˆ๋ฅผ ๋“ค์–ด ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ์—…๋กœ๋“œ๋ผ๋˜๊ฐ€ ๋ฐฑ๋‹จ ์˜์—ญ) ๊ทธ๋ ‡๊ธฐ์— ์ฑ…์—์„œ ์•Œ๋ ค์ฃผ๋Š” ์ƒํ™ฉ์ด ๊ณต๊ฐ์ด ๋˜์—ˆ๋‹ค. ๊ฐœ๋ฐœ์„ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์–ด๋– ํ•œ ์ ์ด ์–ด๋ ค์šธ๊นŒ ํ˜‘์—… ๋‹ด๋‹น์ž๋“ค๊ณผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ํ•œ๋‹ค๋ฉด ์–ด๋–ค ๊ด€์ ์œผ๋กœ ๋ด์•ผ ํ• ๊นŒ ..
css ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ ๋ฐ˜์ „ ํšจ๊ณผ
ยท
html, css
โœ… ์ฐธ๊ณ  ํ…์ŠคํŠธ์™€ ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ์— ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ๋ฐ˜์ „๋˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์–ด ์ฐพ์•„๋ณด์•˜๋‹ค. ์›น ํŽ˜์ด์ง€์— ์ ์šฉํ•˜๋ฉด ์„ธ๋ จ๋œ ๋Š๋‚Œ์„ ์ฃผ๊ธฐ๋„ ํ•˜๋”๋ผ๊ตฌ์—ฌ ๐Ÿ“Œ css mix-blend-mode: difference; ๊ฐ„๋‹จํ•˜๊ฒŒ css๋กœ ๋ณด์—ฌ์งˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค. css ์†์„ฑ์ค‘ mix-blend-mode ๋ฅผ ์ด์šฉํ•œ ํšจ๊ณผ ํฌํ† ์ƒต์—์„œ ๋ ˆ์ด์–ด๋ฅผ ์ด์šฉํ•ด ์š”์†Œ๋“ค์„ ํšจ๊ณผ๋ฅผ ์ฃผ๋Š” ๊ฑฐ๋Š” ์—ญํ• ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๐Ÿ“Œ ์ฐธ๊ณ  ์ด์™ธ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์†์„ฑ์Šคํƒ€์ผ๋„ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ  https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode mix-blend-mode - CSS: Cascading Style Sheets | MDN The mix-blend-mode CSS property sets how an el..
4์›” ๋„์„œ๊ฒฐ์‚ฐ
ยท
๋…์„œ
์ง€์ ๋Œ€ํ™”๋ฅผ ์œ„ํ•œ ๋„“๊ณ  ์–•์€ ์ง€์‹ 1 ์ €์ž ์ฑ„์‚ฌ์žฅ ์•„๋ฌดํŠผ, ์ˆ  ์ €์ž ๊น€ํ˜ผ๋น„ ํŠธ๋กœํ”ผ์ปฌ ๋‚˜์ดํŠธ ์ €์ž ์กฐ์˜ˆ์€
ํ‹ฐ์Šคํ† ๋ฆฌ 400 ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ
ยท
์—๋Ÿฌ๋ชจ์Œ์ง‘
ํ‹ฐ์Šคํ† ๋ฆฌ ๋กœ๊ทธ์ธ์ด ์ข…์ข… ์•ˆ๋˜๊ณ  ํŽ˜์ด์ง€ ์ ‘์† ํ–ˆ์„ ๋•Œ 400์—๋Ÿฌ๊ฐ€ ๋‚  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์š”๋ฉฐ์น  ๊ณ„์† ํ‹ฐ์Šคํ† ๋ฆฌ ์ ‘์† ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ผ ์ฐพ์•„๋ณด๋‹ˆ cookie ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ผ๊ณ  ํ•œ๋‹ค. ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์œผ๋กœ โœ” ๋ธŒ๋ผ์šฐ์ € ์ธํ„ฐ๋„ท ์‚ฌ์šฉ๊ธฐ๋ก ์‚ญ์ œ ์ธํ„ฐ๋„ท ์‚ฌ์šฉ๊ธฐ๋ก ์‚ญ์ œ๋กœ ๋ชจ๋“  ์ฟ ํ‚ค๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ทธ๋Ÿฌ๋‚˜๊น”๋”ํ•˜๊ฒŒ ์ง€์šฐ๊ณ  ์‹œ์ž‘ํ•˜๋ฉด ์ข‹๊ธดํ•œ๋ฐ๋‚ด ์ธํ„ฐ๋„ท ์‚ฌ์šฉ๊ธฐ๋ก๊ณผ ํ•จ๊ป˜ ์ž๋™ ๋กœ๊ทธ์ธ๋“ค๋„ ํ’€๋ ค ๋‹ค์‹œ ๋ชจ๋“  ์‚ฌ์ดํŠธ์— ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ๋“ค์–ด๊ฐ€์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค. ๋ถˆํŽธํ•˜์—ฌ ์ฐพ์•„๋ณธ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋น ๋ฅด๊ฒŒ ํ‹ฐ์Šคํ† ๋ฆฌ ๊ด€๋ จ ๋‚ด์šฉ๋งŒ ์ง€์šฐ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. โœ” ํ‹ฐ์Šคํ† ๋ฆฌ ๊ด€๋ จ ๋‚ด์šฉ๋งŒ ์‚ญ์ œํ•˜๊ธฐ chrome://settings/content/all?searchSubpage=tistory ์œ„ ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€ ํ‹ฐ์Šคํ† ๋ฆฌ ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•ด์ฃผ๋ฉด ๋‹ค์‹œ ์›ํ™œํ•˜๊ฒŒ ํŽ˜์ด์ง€ ์ด์šฉ..
swiper ๋งˆ์šฐ์Šค ์˜ฌ๋ ธ์„ ๋•Œ ์Šฌ๋ผ์ด๋“œ ์ผ์‹œ์ •์ง€ autoplay stop
ยท
js
swiper ์Šฌ๋ผ์ด๋“œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์Šฌ๋ผ์ด๋“œ ๋™์ž‘์„ ์ผ์‹œ์ ์œผ๋กœ ์ •์ง€ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ See the Pen swiper 2 - autoplay stop on hover by jaeheekim (@jaehee) on CodePen. $('.swiper').hover(function() { swiper.autoplay.stop(); }, function(){ swiper.autoplay.start(); }); swiper.autoplay.stop() swiper.autoplay.start() ๋‘ ๊ฐœ ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๋งˆ์šฐ์Šค๊ฐ€ ์˜ฌ๋ ค์กŒ์„ ๋•Œ๋Š” ์Šฌ๋ผ์ด๋“œ stop() ๊ทธ ์™ธ๋Š” ๋‹ค์‹œ start๋กœ ์ ์šฉ๋˜๊ฒŒ๋” ํ•œ๋‹ค. ์ด๋•Œ ์Šฌ๋ผ์ด๋“œ ๋™์ž‘์ด ๋ฉˆ์ถœ ๋•Œ ๊ธฐ์ค€์€ ํ•˜๋‚˜ slider ๊ธฐ์ค€ ํ•˜๋‚˜์˜ ์Šฌ๋ผ์ด๋“œ ์ฒ˜์Œ๊ณผ ๋์ด ๋ชจ๋‘ ์‹œ์ž‘๊ณผ ..
์›นํŽ˜์ด์ง€ ์†๋„ ์ธก์ • ํ•ด๋ณด๊ณ  ๊ฐœ์„ ํ•˜์ž, ๊ตฌ๊ธ€ ์›นํŽ˜์ด์ง€ ์†๋„ ์ธก์ • ์ตœ์ ํ™”ํ•˜๊ธฐ
ยท
study
Intro ํŽ˜์ด์ง€ ๋ฆฌ๋‰ด์–ผ์„ ๋‹ด๋‹น์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ์˜คํ”ˆ ํ›„์—๋Š” ๊ตฌ๊ธ€ ์›นํŽ˜์ด์ง€ ์†๋„ ์ธก์ • ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์„ฑ๋Šฅ์„ ๊ฒ€์ฆํ•ด๋ณด์•˜๋‹ค. ๊ฒ€์ฆ ๊ฒฐ๊ณผ๋ฅผ ํ† ๋Œ€๋กœ ๊ฐœ์„ ์ด ํ•„์š”ํ•œ ์‚ฌํ•ญ๋“ค์„ ํŒŒ์•…๊ณผ ํ•ด๊ฒฐ ํ›„ ๊ธฐ๋ก Google Page Speed Insights ๋ฐ์Šคํฌํ†ฑ ๋ฐ ๋ชจ๋ฐ”์ผ์—์„œ ์›นํŽ˜์ด์ง€ ์‚ฌ์ดํŠธ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ ๐Ÿ“Œ ๋ฌธ์ œ์  ์ด๋ฏธ์ง€ ๋กœ๋“œ๊ฐ€ ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋˜์—ˆ๋‹ค. ํ˜„์žฌ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ด๋ฏธ์ง€๋Š” png ํŒŒ์ผํ˜•์‹์œผ๋กœ ํฌ๊ธฐ๋„ ๊ฝค ํฐ ํŽธ์ด์˜€๋‹ค. ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ ์†Œ์Šค๋“ค์ด ๋งŽ๋‹ค๋Š” ์ ๋„ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋‹ค. โœ” ๊ฐœ์„ ์‚ฌํ•ญ ์ฒดํฌํ•˜๊ธฐ ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด jpg, png ์ด๋ฏธ์ง€๋“ค์„ .webp ์ด๋ฏธ์ง€๋กœ ๊ต์ฒดํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. .webp๋ž€ ์ด๋ฏธ์ง€ ํ’ˆ์งˆ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๋‹ค๋ฅธ ํŒŒ์ผํ˜•์‹๊ณผ ๋น„๊ตํ•˜์—ฌ ๋” ๋‚ฎ์ถฐ์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์— ์ ๊ทน์ ..
๋ž˜๋‹ˆ
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (14 Page)