๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€166

[TS] Generic & Types by Inference ์ œ๋„ค๋ฆญ(Generic)์ด๋ž€ ํƒ€์ž…์— ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ• ํƒ€์ž…์„ ๋งˆ์น˜ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ํ•œ ๊ฐ€์ง€ ํƒ€์ž…๋ณด๋‹ค ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํƒ€์ž…์—์„œ ๋™์ž‘ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋จ ํƒ€์ž…์— ์ƒ๊ด€์—†์ด ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋„ค๋ฆญ์ด๋ผ๊ณ  ํ•จ // ์ œ๋„ˆ๋ฆญ X function identity(arg: any): any { return arg; } // ์ œ๋„ˆ๋ฆญ O function identity(arg: T): T { return arg; } T : ํƒ€์ž… ๋ณ€์ˆ˜ ์œ ์ €๊ฐ€ ์ค€ ์ธ์ˆ˜์˜ ํƒ€์ž…์„ ์ถ”๋ก ํ•˜์—ฌ ๋‚˜์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ T๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉ ํƒ€์ž… ์ •๋ณด๋ฅผ ํ•จ์ˆ˜์˜ ํ•œ์ชฝ์—์„œ ๋‹ค๋ฅธ ํ•œ์ชฝ์œผ๋กœ ์šด๋ฐ˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ any vs. generic any : ์‹ค์ œ๋กœ ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜๋  ๋•Œ ํƒ€์ž…์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์žƒ์Œ. number ํƒ€์ž…์„ ๋„˜๊ฒจ๋„.. 2023. 2. 10.
[HTML] input ์ž๋™์™„์„ฑ ๋„๊ธฐ (autocomplete = 'off') input field์— ์ž๊พธ ์ž๋™์™„์„ฑ ์ฐฝ์ด ์ƒ๊ธฐ๊ณ  ์•„๋ฌด๋ฆฌ ์‹œํฌ๋ฆฟ์ฐฝ์œผ๋กœ ๋„์›Œ๋„ ์—†์–ด์ง€์ง€ ์•Š์•˜๋‹ค. ์‚ฌ์‹ค ๋‚œ ๊ทธ๋ƒฅ ์Œ~ ํ•˜๊ณ  ๋„˜์–ด๊ฐ”๋Š”๋ฐ, ํŒ€์› ๋ถ„์ด ์—†์• ๋‹ฌ๋ผ๊ณ .. ํ•˜์…”์„œ... ์ฐพ์•„๋ณด์•˜๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๊ทธ๋ƒฅ input ํƒœ๊ทธ ์•ˆ์— autocomplete์„ off๋กœ ๊บผ์ฃผ๋ฉด ๋œ๋‹ค. ์˜ ์”ธํ”Œ. HTML attribute: autocomplete - HTML: HyperText Markup Language | MDN The HTML autocomplete attribute lets web developers specify what if any permission the user agent has to provide automated assistance in filling out form field valu.. 2023. 2. 1.
๋ธŒ๋ผ์šฐ์ €์˜ ๋™์ž‘๊ณผ์ • ์ถœ์ฒ˜ : https://yozm.wishket.com/magazine/detail/1338/ 2023. 1. 27.
[JS] ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ 1. ๊ฒ€์ƒ‰์— ๊ฑธ๋ฆด ๋ชฉ๋ก์„ ๋ฐฐ์—ด์— ๋‹ด๋Š”๋‹ค. const colorList = [ '๋นจ๊ฐ•', '์ฃผํ™ฉ', '๋…ธ๋ž‘', '์ดˆ๋ก', 'ํŒŒ๋ž‘' ]; 2. ๊ฒ€์ƒ‰์ฐฝ์„ input ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ด ๋•Œ ๊ฒ€์ƒ‰์ฐฝ์— ์ž…๋ ฅ๋˜๋Š” ๊ธ€์ž๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋ฏ€๋กœ, onChange ์ด๋ฒคํŠธ๋กœ ๋ฐ›์•„์ค€๋‹ค. ์ž…๋ ฅ๋œ ๊ฐ’์„ search ๋ณ€์ˆ˜์— ๋ฐ›์•„์ค€๋‹ค. const [search, setSearch] = useState(""); const onChange = (e) => { setSearch(e.target.value); }; 3. ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘˜ ๊ฒ€์ƒ‰ ๋ชฉ๋ก ๋ฐฐ์—ด์—์„œ ์ฐพ๋Š”๋‹ค. const filterList = colorList.filter((c) => { c = c.toString(); return c.replace(" ", "").includes(.. 2023. 1. 11.
๋ฐฐํฌ ๋ฐ ์šด์˜ ๋น„์šฉ ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•˜๋Š”๋ฐ, ํ† ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฐ๊ตฌ ๊ณผ์ œ ๋А๋‚Œ..? ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋น„๋‚˜ ํ–ฅํ›„ ์œ ์ง€๋ณด์ˆ˜ ๋“ฑ๊นŒ์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ ๋น„๊ฐœ๋ฐœ์ž ๋ถ„๋“ค๋„ ํ•จ๊ป˜ ์ฐธ์—ฌํ•˜๊ณ  ์žˆ์–ด ์ด์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ ์ง€์‹์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— (๋ฌผ๋ก  ๋‚˜๋„ ๋ถ€์กฑํ•˜์ง€๋งŒ...) ๋‚˜๋„ ๊ณต๋ถ€ํ•  ๊ฒธ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์•˜๋‹ค. ๋‚˜ ๋˜ํ•œ ์ œ๋Œ€๋กœ ์•Œ์•„๋ณธ ๊ฒƒ์€ ์ฒ˜์Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋‚ด ๋ธ”๋กœ๊ทธ ์ฝ๋Š” ์‚ฌ๋žŒ ์—†์„ ๊ฒƒ ๊ฐ™๊ธด ํ•˜์ง€๋งŒ ํ˜น์‹œ ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ์ง€์ ํ•ด์ฃผ์‹ญ์‚ฌ... ์‚ฌ์ดํŠธ ๊ตฌ์กฐ ๋จผ์ € ์šฐ๋ฆฌ ํŒ€์ด ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ์„œ๋น„์Šค๋Š” ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ : ๋„คํŠธ์›Œํฌ ์žฅ์น˜์—์„œ ์ผ์ • ์‹œ๊ฐ„ ๋‚ด์— ํ๋ฅด๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘ ์„œ๋ฒ„ : ์›น ์š”์ฒญ ์ฒ˜๋ฆฌ DB : ํšŒ์› ๋ฐ์ดํ„ฐ.. 2023. 1. 10.
[React] MVC ์•„ํ‚คํ…์ฒ˜, ๋ฆฌ์•กํŠธ์˜ ํŠน์ง• 2023. 1. 5.
๋งํฌ ๊ณต์œ  ์‹œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ธ๋„ค์ผ ์„ค์ •ํ•˜๊ธฐ (meta ํƒœ๊ทธ) ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋˜ ์ค‘, SNS๋กœ ๋งํฌ ๊ณต์œ  ์‹œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ™”๋ฉด์„ ๊พธ๋ฏธ๊ณ  ์‹ถ๋‹ค๋Š” ๊ธฐํš์ž์˜ ์˜๊ฒฌ์„ ๋ฐ›์•„ ์ด๋ฅผ ๋ฐ˜์˜ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์€ ํฌ๊ฒŒ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1. ์ธ๋„ค์ผ ์ด๋ฏธ์ง€ 2. ์ธ๋„ค์ผ ์ œ๋ชฉ 3. ์ธ๋„ค์ผ ์„ค๋ช… 4. ์ธ๋„ค์ผ ๋งํฌ ์ด๊ฒƒ๋“ค์€ html ํŒŒ์ผ์˜ ์ž˜ ์ ์šฉ๋˜์—ˆ๋Š” ์ง€๋Š” ํŽ˜์ด์Šค๋ถ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณต์œ  ๋””๋ฒ„๊ฑฐ๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๊ฑธ ํ™•์ธํ•˜๋ ค๋ฉด ์ผ๋‹จ ๋ฐฐํฌ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. (๋‹น์—ฐํ•œ ์ด์•ผ๊ธฐ... localhost:3000 ์ด ๋ ๋ฆฌ๊ฐ€ ์—†์œผ๋‹ˆ๊นŒ) https://developers.facebook.com/tools/debug/ ๊ณต์œ  ๋””๋ฒ„๊ฑฐ - Meta for Developers ๊ณต์œ  ๋””๋ฒ„๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Facebook์— ๊ณต์œ ๋  ๋•Œ ์ฝ˜ํ…์ธ ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋ชจ์Šต์„ ๋ฏธ๋ฆฌ ๋ณด๊ฑฐ๋‚˜ ์˜คํ”ˆ ๊ทธ๋ž˜ํ”„ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .. 2023. 1. 4.
[jQuery] jQuery ๊ธฐ์ดˆ ์ธํ„ฐ๋„ท์— ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ๊ฒ€์ƒ‰ํ•  ๋•Œ๋งˆ๋‹ค jQuery๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„์„œ jQuery๋ฅผ ๋ฐฐ์›Œ์•ผ ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ๋งŒ ํ•˜๋˜ ์ค‘, ์ธํ”„๋Ÿฐ์—์„œ ์‹ ๋…„๋งž์ด ์ด๋ฒคํŠธ๋กœ ๋ฌด๋ฃŒ ๊ฐ•์˜๋ฅผ ์ œ๊ณตํ•ด์„œ ํ˜ธ๋‹ค๋‹ฅ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค. jQuery๋ž€ ํด๋ผ์ด์–ธํŠธ ์ธก ํŽ˜์ด์ง€ ์ œ์ž‘์„ ์†์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ๊ฐ€๋Šฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ณด๋‹ค ์งง์€ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ ๊ฐ€๋Šฅ jQuery ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋‹ค์šด ๋ฐ›๊ธฐ CDN ๋ฐฉ์‹ " target="_blank" rel="noopener">https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"> ํŒŒ์ผ ์ง์ ‘ ๋‹ค์šด ๋ฐ›์•„ ์—ฐ๊ฒฐ ๋…ธ๋“œ ์ฐพ๊ธฐ var $๋ณ€์ˆ˜ ์ด๋ฆ„ = $('CSS ์„ ํƒ์ž') $( ) : ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•จ. ์„ ํƒ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ์ฐพ์•„์ฃผ๋Š” .. 2023. 1. 4.
์›น ์„œ๋ฒ„ & WAS ์›น ์„œ๋ฒ„ ํ•˜๋Š” ์ผ ์ •์  ์ปจํ…์ธ  ์ œ๊ณต : ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌ ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฐ›์•„ ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌ ๋™์  ์ปจํ…์ธ  ์ œ๊ณต ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด WAS์—๊ฒŒ ์š”์ฒญ ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ : ํƒ€์›Œํ˜•, ๋ž™ ๋งˆ์šดํŠธํ˜• ์„œ๋ฒ„ ์•ˆ์˜ OS : Linux, Windows Server, UNIX Linux : ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์กฐ๊ธˆ ์–ด๋ ต์ง€๋งŒ, ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ ์ ˆ์•ฝ, ์•ˆ์ •์„ฑ ํ–ฅ์ƒ๊ณผ ๋”๋ถˆ์–ด ๋น„์šฉ๋„ ์ €๋ ดํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ Window Server : ๋งŽ์€ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํฌํ•จํ•ด ๋น„์šฉ์ด ์–ด๋А์ •๋„ ์†Œ์š”๋  ์ˆ˜ ์žˆ์Œ ์›น ์„œ๋ฒ„๋Š” ๊ธฐ๋Šฅ์ด ํ•œ์ •๋˜๊ณ  ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ๊ณผ ๋น„์šฉ์ด๋ผ๋Š” ๊ด€์ ์—์„œ Linux๋ฅผ ์„ ํ˜ธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Š˜๊ณ  .. 2023. 1. 2.