ํ•œ ์ฃผ ํšŒ๊ณ  : 4์›” ๋„ท์งธ์ฃผ
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2022. 5. 1. 19:46

4์›” 25์ผ ~ 5์›” 1์ผ ํ•œ ์ฃผ ํšŒ๊ณ  ํ•™์Šตํ•œ ๊ฒƒ JS ํ”„๋กœ๋ฏธ์Šค์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ์ด๋ฒคํŠธ ์ „ํŒŒ์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. Canvas API๋ฅผ ์ ‘ํ–ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””๋ฅผ ํ†ตํ•ด leetCode๋ฅผ ํ•˜๋ฃจ์— 4๋ฌธ์ œ์”ฉ ํ’€์–ด๋ณด๊ณ  ์žˆ๋‹ค. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ๋‹ค. ๋Š๋‚€์  ์Šคํ„ฐ๋””๋ฅผ ํ†ตํ•ด ๊ณต๋ถ€์‹œ๊ฐ„์„ ๋งŽ์ด ๋Š˜๋ฆฌ๊ณ  ์žˆ๋‹ค. ์‰ฝ์ง€ ์•Š์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜! ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋“ค์„ ์ ‘ํ•ด๋ณด๊ณ  ์žˆ๋‹ค. 1์ผ 1ํฌ์ŠคํŒ…์„ ๋˜๋„๋ก ์˜๋ฏธ์žˆ๊ฒŒ ํ•ด๋ณด๋ ค ํ•˜๊ณ ์žˆ๋Š”๋ฐ ์‰ฝ์ง€ ์•Š๋‹ค. ๋ณด์™„ํ•  ์  ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„ํ•˜๊ธฐ ์ด๊ฒƒ์ €๊ฒƒ ํ•ด๋ณด๋ฉฐ DOM ์กฐ์ž‘์„ ๋งŽ์ด ํ•ด๋ณด๊ธฐ 1์ผ 1ํฌ์ŠคํŒ… ๋‚ด์šฉ ๋ณด์™„ํ•˜๊ธฐ

ํ•œ ์ฃผ ํšŒ๊ณ  : 4์›” ์…‹์งธ์ฃผ
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2022. 4. 24. 20:11

4์›” 18์ผ ~ 24์ผ ํ•œ ์ฃผ ํšŒ๊ณ  4์›” ์…‹์งธ์ฃผ๋ฅผ ๋Œ์•„๋ณด๋Š” ํ•œ ์ฃผ ํšŒ๊ณ . ํ•™์Šตํ•œ ๊ฒƒ JS ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋กœ DOM์„ ์กฐ์ž‘ํ•ด๋ณด์•˜๋‹ค. ๋น„๋™๊ธฐ ํ†ต์‹ ์˜ ๋ฐฉ๋ฒ•์ค‘ fetch API๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜ leetCode๋ฅผ ํ•œ๋‘๋ฌธ์ œ์”ฉ ํ’€์–ด๋ณด๊ณ  ์žˆ๋‹ค ๋ฐฐ์—ด์˜ ์—ฌ๋Ÿฌ ํƒ€์ž… ๋ฌธ์ œ๋“ค์„ ํ’€์–ด๋ณด๊ณ  ์žˆ๋‹ค. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ๋ณต์Šตํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ๊ทธ ์™ธ ๊นƒํ—ˆ๋ธŒ ๋ฆฌ๋“œ๋ฏธ๋ฅผ ๊พธ๋ฉฐ ๋ณด์•˜๋‹ค. var์™€ let, const ์— ๋Œ€ํ•ด์„œ. ๋Š๋‚€์  SASS๊ฐ€ ํŽธํ•ด์ง€๊ณ  ์žˆ๋‹ค. (๊ฐˆ๊ธธ์ด ๋ฉ€์ง€๋งŒ) ์ด๋ฒˆ ์ฃผ๋Š” ์ง์ ‘ ๋ญ”๊ฐ€ ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๋งŽ์ด ๊ฐ€์ง€๋‹ค๋ณด๋‹ˆ ๊ฐ•์˜๋ฅผ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ๋“ฃ์ง€ ๋ชปํ•œ๋“ฏ ํ•˜๋‹ค. ์‰ฌ์šด ๋‹จ๊ณ„์ด์ง€๋งŒ ์‰ฝ์ง€ ์•Š์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜~ ์ •๋ง ๋‹ค์–‘ํ•œ ํ’€์ด๋ฒ•์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํฌ๋ ˆ์ŠคํŠธ ๊ธฐ๋กํ•˜๋‹ค๊ฐ€ ๊นŒ๋จน์€ ๋‚ ์ด ๋งŽ์•˜๋‹ค. ๋ณด์™„ํ•  ์  ๊ณต๋ถ€ ํŒจํ„ด ์ •์ฐฉํ•˜..

ํ•œ ์ฃผ ํšŒ๊ณ  : 4์›” ๋‘˜์งธ์ฃผ
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2022. 4. 18. 23:21

4์›” 11์ผ ~ 18์ผ ํ•œ ์ฃผ ํšŒ๊ณ  ์–ด์ œ(17์ผ) ์˜ฌ๋ ธ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ๊นœ๋นกํ•ด์„œ ์˜ค๋Š˜ ์˜ฌ๋ฆฌ๋Š” ํ•œ ์ฃผ ํšŒ๊ณ . ํ•™์Šตํ•œ ๊ฒƒ HTML/CSS Grid์— ๋Œ€ํ•œ ๊ฒƒ. ๋‹ค๋งŒ ์—ฐ์Šต์ด ๋” ํ•„์š”ํ•˜๋‹ค. ๋„ค์ด๋ฒ„์˜ ์ฃผ๋ฌธํŽ˜์ด์ง€๋ฅผ ํด๋ก ์ฝ”๋”ฉ ํ•ด๋ณด๋ฉฐ Sass๋ฅผ ์ ‘ํ•ด๋ณด๊ณ  ์žˆ๋‹ค. Sass๋กœ css๋ฅผ ๋งŒ๋“ค์–ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ชผ๊ฐœ๋ณธ๋‹ค๊ฑฐ๋‚˜, flex์— ์ข€ ๋” ์ต์ˆ™ํ•ด ์ง€๊ณ  ์žˆ๋‹ค. JS ๋ฐฐ์—ด์˜ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์จ๋ณด๊ณ  ์žˆ๋‹ค. ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋”ฅ๋‹ค์ด๋ธŒ๋ฅผ ์กฐ๊ธˆ์”ฉ ์ฝ๊ณ ์žˆ๋‹ค. ํ˜„์žฌ๋Š” ํ•จ์ˆ˜ ์ฑ•ํ„ฐ. ์ž๋ฃŒ๊ตฌ์กฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ๊ธฐ์ดˆ์ ์ธ ๋ฌธ์ œ๋“ค์„ ์กฐ๊ธˆ์”ฉ ํ’€์–ด๋‚˜๊ฐ€๊ณ  ์žˆ๋‹ค. ๋Š๋‚€์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์˜ˆ์ƒํ–ˆ์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต๋‹ค. ๊ณต๋ถ€์‹œ๊ฐ„์€ 6์‹œ๊ฐ„ ๋‚ด์™ธ์ธ๋ฐ ์ข€ ๋” ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋ด์•ผ๊ฒ ๋‹ค. ๊ธ€์„ ์“ฐ๋Š” ๊ฒƒ์ด๋“ , ์ฝ”๋”ฉ์„ ํ•˜๋“  ๋‚ด ๋ฐฉ์‹๋Œ€๋กœ ํ•ด๊ฐ€๋Š” ..

๋ธ”๋กœ๊ทธ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ •๋ฆฌํ•˜๋ฉฐ
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2022. 4. 16. 00:35

๋ธ”๋กœ๊ทธ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ •๋ฆฌํ•˜๋ฉฐ ๋งŽ์ง€๋Š” ์•Š์•˜์ง€๋งŒ, 100์—ฌ๊ฐœ๊ฐ€ ๋„˜๋Š” ๊ธฐ๋ก์šฉ ํฌ์ŠคํŒ…์„ ๊ทธ๊ฐ„ ํ•ด์™”์—ˆ๋‹ค. ์ž‘๋…„๊ณผ ์˜ฌ์ดˆ๋ฅผ ๊ฑฐ์ณ์„œ ์ผ๋ จ์˜ ์‚ฌ๊ฑด๋“ค์„ ๊ฒช์œผ๋ฉฐ ์ด๋Ÿฐ ์ €๋Ÿฐ ์ƒ๊ฐ์ด ๋งŽ์•˜๋‹ค. ๊ทธ๊ฐ„์˜ ์ƒ๊ฐ๋“ค์„ ๊ตฌ๊ตฌ์ ˆ์ ˆ ๋Š˜์–ด๋†“์„ ์ˆ˜๋Š” ์—†์ง€๋งŒ, ๊ฒฐ๋ก ์€ '์•„๋ฌด๋ž˜๋„ ์žฌ์ •๋น„ํ•˜๋Š”๊ฒŒ ์ข‹๊ฒ ๋‹ค'์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๋ช‡๋ช‡ ํฌ์ŠคํŒ…๋งŒ ๋‚จ๊ธฐ๊ณ  ๋ชจ๋‘ ๋น„๊ณต๊ฐœ๋กœ ๋Œ๋ ธ๋‹ค. ์•ž์œผ๋กœ์˜ ๊ณ„ํš ์‚ฌ์‹ค ๊ทธ๊ฐ„ ๋Œ€๋ถ€๋ถ„์˜ ํฌ์ŠคํŒ…๋“ค์€ ๋ฐฐ์šด ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๋‚˜์—ดํ•˜๋Š” ์‹์ด๋ผ ์‹œ๊ฐ„๊ณผ ์ •์„ฑ์„ ๋“ค์˜€๋‹ค๊ณ  ํ•  ์ˆœ ์—†๊ฒ ๋‹ค. ์•ž์œผ๋กœ๋Š” ๊ธ€์“ฐ๋Š” ์—ญ๋Ÿ‰๋„ ๊ธธ๋Ÿฌ๋ณผ๊ฒธ, ์ข€ ๋” ์ •์„ฑ๋“ค์ธ ๊ธ€๋กœ ์ ์–ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ฌผ๋ก  ์•„์ง ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•˜๋‹ˆ ๋ถ€์กฑํ•œ ๊ฒƒ์ด ๋‹น์—ฐํ•˜๋‹ค! ์™„๋ฒฝํ•˜์ง€๋Š” ๋ชปํ•˜๋”๋ผ๋„ ์†Œ์ค‘ํ•œ ๊ธฐ๋ก์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ์“ธ ์ƒ๊ฐ์ด๋‹ค. ํšŒ๊ณ ๋ก๋„ ์งฌ์งฌํžˆ ์จ๋ด์•ผ๊ฒ ๋‹ค. ๋ฌด์–ธ๊ฐ€ ์“ฐ๋Š” ํ–‰์œ„๋ฅผ ์ข‹์•„ํ•˜๋Š” ๋งŒํผ, ๊พธ์ค€ํžˆ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ!

[JSTL] ftm ํƒœ๊ทธ๋กœ ๊ธˆ์•ก ์‰ผํ‘œ ํ‘œ์‹œ
๐Ÿ“˜ Retrospect/Personal Projects 2021. 9. 27. 17:54

ํ• ์ธ๊ธˆ์•ก์ด ์ ์šฉ๋œ ๊ฐ€๊ฒฉ์„ JSP์—์„œ ์‰ผํ‘œํ‘œ์‹œํ•˜์—ฌ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ฒ€์ƒ‰ ์ค‘ JSTL์˜ fmt ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ์ˆซ์žํƒ€์ž…์— ๋Œ€ํ•œ ์กฐ์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. fmt:formatNumber ์ด ํƒœ๊ทธ๋Š” ์ˆซ์ž๊ฐ’์„ ์ˆซ์ž, ํ†ตํ™”, ํผ์„ผํŠธ๋กœ ๋ฐ”๊พผ๋‹ค. ์ ์šฉ ์ฝ”๋“œ ${l.lec_price - (l.lec_price* l.lec_sale)}์› ๐Ÿ“ƒ ์ฐธ๊ณ  https://treasurebear.tistory.com/43 JSTL ๊ธˆ์•ก ํ‘œ์‹œ(์„ธ์ž๋ฆฌ๋งˆ๋‹ค ์‰ผํ‘œ) jsp๋กœ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๊ณ  ์žˆ๋Š”๋ฐ, ๊ธˆ์•ก์„ ํ‘œ์‹œํ•ด์•ผ ๋˜์„œ ์„ธ์ž๋ฆฌ๋งˆ๋‹ค ์‰ผํ‘œ(, comma)๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  ์‹ถ์—ˆ๋‹ค. 1,000,000์› ์ด๋ ‡๊ฒŒ! ๊ทธ๋ž˜์„œ tld๋กœ ๋งŒ๋“ค๊นŒ.. script๋กœ ๋งŒ๋“ค๊นŒ.. ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€, ์ฐพ์•„๋ณด๋‹ˆ jstl์—์„œ ๊ธฐ๋Šฅ์„ ์ œ treasurebear.tistory.com

[JS] ์นด์นด์˜ค ์ขŒํ‘œ>์ฃผ์†Œ๋ณ€ํ™˜ API ์‚ฌ์šฉ
๐Ÿ“˜ Retrospect/Personal Projects 2021. 9. 27. 17:30

HTML5์—์„œ ์ œ๊ณตํ•˜๋Š” geolocation API๋ฅผ ํ†ตํ•ด ์œ„์น˜ ๊ฒ€์ƒ‰์„ ํ—ˆ์šฉํ•˜๋ฉด ํ˜„์žฌ ์ขŒํ‘œ๋ฅผ ์–ป์–ด๋‚ธ๋‹ค. function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { let lon = position.coords.latitude; //์œ„๋„ let lat = position.coords.longitude; //๊ฒฝ๋„ toAddress(lon,lat); }, function(error) { console.error(error); }, { enableHighAccuracy: false, maximumAge: 0, timeout: Infinity }); } } ์—ฌ๊ธฐ์„œ ์–ป..

[JS] URL ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ•˜๊ธฐ
๐Ÿ“˜ Retrospect/Personal Projects 2021. 9. 15. 17:29

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ํ˜„์žฌ ํŽ˜์ด์ง€์˜ URL์„ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. function clipBoard(){ let dummy = document.createElement("input"); const url = location.href; document.body.appendChild(dummy); dummy.value = url; dummy.select(); document.execCommand("copy"); alert("URL์„ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค."); document.body.removeChild(dummy); } ํ•จ์ˆ˜ ์‹คํ–‰์‹œ ์ž„์‹œ๋กœ URL์„ ๋‹ด๋Š” input์„ ์ƒ์„ฑํ•˜๊ณ  ๋ณต์‚ฌ ํ›„ ์‚ญ์ œํ•œ๋‹ค. document.execCommand("copy"); ํด๋ฆฝ๋ณด๋“œ ๋ณต์‚ฌ์˜ ํ•ต..

[JS] ํ˜„์žฌ ํŽ˜์ด์ง€ ํŒจ์Šค ์•Œ์•„๋‚ด๊ธฐ
๐Ÿ“˜ Retrospect/Personal Projects 2021. 9. 8. 15:39

์ปจํŠธ๋กค๋Ÿฌ์˜ url, ์ฆ‰ ์›น์‚ฌ์ดํŠธ์—์„œ ํ˜„์žฌ ํŽ˜์ด์ง€์˜ ํŒจ์Šค๋ฅผ ์•Œ์•„๋‚ด๊ณ  ์‹ถ์—ˆ๋‹ค. let currentPathName = window.location.pathname; window.location.pathname ์„ ํ†ตํ•ด ์Šฌ๋Ÿฌ์‹œ๋ฅผ ํฌํ•จํ•œ ๋’ท๋ถ€๋ถ„ url์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜๋Š” ํ˜„์žฌ ์ž‘์„ฑ์ค‘์ธ ํฌ์ŠคํŠธ์˜ ํŒจ์Šค.

[JS] localStorage ๋กœ ํžˆ์Šคํ† ๋ฆฌ ๋‚จ๊ธฐ๊ธฐ
๐Ÿ“˜ Retrospect/Personal Projects 2021. 9. 8. 15:38

localStorage ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋ธŒ๋ผ์šฐ์ € ๋‚ด์— ํ‚ค-๊ฐ’์„ ์Œ์œผ๋กœ ํ•˜์—ฌ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค์‹œ ๋‹ซํžŒ ๋’ค ๋‹ค์‹œ ์‹คํ–‰๋˜์–ด๋„ ๊ฐ’์ด ์œ ์ง€๋œ๋‹ค. ํ‚ค-๊ฐ’์€ ํ•ญ์ƒ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•œ๋‹ค. ๋˜ ๋„๋ฉ”์ธ์ด๋‚˜ ํฌํŠธ, ํ”„๋กœํ† ์ฝœ์ด ๊ฐ™๋‹ค๋ฉด ๋™์ผํ•œ ๋ชจ๋“  ์ฐฝ์—์„œ ๊ณต์œ ๋œ๋‹ค. ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์˜ ๊ธธ์ด ํ˜„์žฌ ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค. const localLength = localStorage.length; localStorage.setItem ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค. localStorage.setItem(keyword); ํ‚ค ๊ฐ’ ์ „์ฒด ์•Œ๊ธฐ for๋ฌธ์„ ํ†ตํ•ด ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค์— ์ ‘๊ทผํ•˜์—ฌ localStorage.getItem(key) ๋ฅผ ํ†ตํ•ด ํ‚ค์˜ ๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. for (let i = 0; i