user-img
Language 91
thumbnail
[Java] HashMap์—์„œ Custom Class๋ฅผ Key๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ๊ทธ๋ฆผ์œผ๋กœ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ
0. ์•Œ์•„๋ณผ ๊ฒƒ1. Hash Map ์ด๋ž€? ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐKEY๋ฅผ ํ™œ์šฉํ•ด HashMap์— VALUE์„ ์ €์žฅ, ์‚ญ์ œ, ์กฐํšŒ ํ•˜๋Š”๋ฐ ํ‰๊ท  O(1)์˜ ์‹œ๊ฐ„์ด ๋“ ๋‹ค. ์Œ์„ ENTRY๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.KEY ๊ฐ’์€ ์ค‘๋ณต๋  ์ˆ˜ ์—†๊ณ , VALUE ๊ฐ’์€ KEY ๊ฐ’์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์ค‘๋ณต์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.2. HashMap ๋‚ด๋ถ€ ๊ตฌ์กฐHashMap์€ ํฌ๊ฒŒ HASH ํ•จ์ˆ˜์™€ Hash Bucket์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.Hash Bucket์€ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์žฅ์†Œ๋กœ Array๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.Hash ํ•จ์ˆ˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์— ์ €์žฅ๋  ์ž…๋ ฅ ๊ฐ’ ๋งˆ๋‹ค์˜ Hash ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ•ด๋‹น Hash ๊ฐ’์€ Hash Bucket์˜ Index์ด๋‹ค. ๋”ฐ๋ผ์„œ Hash ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ ๊ฐ’์ด ์ €์žฅ๋  ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉํ–ฅํ‚ค ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.์ด์ œ ์‹ค์ œ..
2024.12.31
Language/Java
thumbnail
[Java] JSON ์ง๋ ฌํ™”์˜ ๋ชจ๋“ ๊ฒƒ
1. JSON ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ๐Ÿ’ก(1) ์ •์˜JSON์ด๋ž€ JavaScript Object Notation์˜ ์•ฝ์ž๋กœ Javascript ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตํ™˜ ์–‘์‹์ด๋‹ค.JS ๊ฐ์ฒด์˜ ํ˜•ํƒœ : javascript ๊ฐ์ฒด๋Š” (key: value) ํ˜•ํƒœ์˜ ๊ฐ’๋“ค์ด ๋‚˜์—ด๋œ ๊ตฌ์กฐ์ด๋‹ค. java์—์„œ HashMap๊ณผ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. js์—์„œ๋Š” ๋”ฐ๋กœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํƒ€์ž… ์„ ์–ธ์ด ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด ๋ฌธ๋ฒ•์ด ๋น„๊ต์  ๊ฐ„ํŽธํ•˜๋‹ค.(2) ํŠน์ง•a. ์–ธ์–ด ๋…๋ฆฝ์ ์ธ ์–‘์‹์ด๋‹ค.๋ถ„๋ช… JS ๊ฐ์ฒด ํ˜•ํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์–‘์‹์ด์ง€๋งŒ, javascript ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Œ€๋‹ค์ˆ˜์˜ ์–ธ์–ด, ๊ทธ ์–ธ์–ด ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.b. ์ƒํƒœ๋ฅผ ๊ตํ™˜ํ•œ๋‹ค.JSON์„ ํ†ตํ•ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ž€ ํŠน์ • ๊ฐ์ฒด ํ˜น์€ ๊ฐ’๋“ค์˜ ์ƒํƒœ์ด๋‹ค. ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•˜..
2024.11.05
Language/Java
thumbnail
JAVA์—์„œ์˜ ๊ฐ์ฒด ์ง๋ ฌํ™” ๋น„๊ต (Byte Stream ์ง๋ ฌํ™” vs JSON ์ง๋ ฌํ™”)
0. ์•Œ์•„๋ณผ ๋‚ด์šฉJava์˜ ๊ฐ์ฒด ์ง๋ ฌํ™”์—๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.์ฒซ ๋ฒˆ์งธ๋กœ, Serializable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ Byte Stream ์ง๋ ฌํ™”ํ•˜๋Š” ๊ฒƒ ์ด๋‹ค.๋‘ ๋ฒˆ์งธ๋กœ, RESTful API Sever๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•ด ๊ฐ์ฒด๋ฅผ JSON ์ง๋ ฌํ™”ํ•˜๋Š” ๊ฒƒ ์ด๋‹ค.๋‘ ๊ฐ€์ง€์˜ ์ฐจ์ด์ ์€ ์–ด๋ ดํ’‹์ด ์•Œ์ง€๋งŒ, ์ œ๋Œ€๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ธฐ์–ตํ•˜์ง€ ์•Š์•˜๋”๋‹ˆ, ๋‘ ๋ฐฉ๋ฒ•์˜ ๊ตฌํ˜„ ๋ฐฉ์‹๊ณผ ํ™œ์šฉ๋ฒ•์ด ์„œ๋กœ ๋’ค์ฃฝ๋ฐ•์ฃฝ ์„ž์—ฌ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ์˜ ์ง๋ ฌํ™”์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ์•Œ์•„๋ณด๊ณ , ๊ทธ ์ฐจ์ด์ ์„ ๊ตฌ๋ถ„ํ•˜๋ ค ํ•œ๋‹ค.์—ฌ๊ธฐ์„œ๋Š” ๋จผ์ € ๋‘ ์ง๋ ฌํ™”์˜ ์˜๋ฏธ๋งŒ ๊ฐ„๋žตํžˆ ์•Œ์•„๋ณด๊ณ  ์ฐจ์ด์  ์„ค๋ช…์— ๋” ์ง‘์ค‘ํ•˜๊ฒ ๋‹ค.๋งŒ์•ฝ ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„์€ ๊ฐ ํ•ญ๋ชฉ ๋ณ„ ๋” ์•Œ์•„๋ณด๊ธฐ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.๋‹ค์Œ๊ณผ ๊ฐ™์€ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ..
2024.11.04
Language/Java
thumbnail
java TreeMap์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!
(1) ์ •์˜Red-black Tree๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ Key ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋˜๋Š” Map์ด๋‹ค.์ •๋ ฌ ๊ธฐ์ค€์€ default๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์ด๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Comparator๋ฅผ ๋„ฃ์œผ๋ฉด, ๊ฐœ๋ฐœ์ž ์ž…๋ง›์— ๋”ฐ๋ผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. TreeMap map = new TreeMap((o1,o2) -> (return o1.score - o2.score)); Red-black Tree ๋ž€? ์ด์ง„ํƒ์ƒ‰์„ ๋ณด์™„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•œ Tree ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ์ด์ง„ํƒ์ƒ‰์€ ์ผ๋ฐ˜์ ์œผ๋กœ O(logN)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์„œ, ์ผ์žํ˜• Tree๊ฐ€ ๋‚˜์˜ฌ ๊ฒฝ์šฐ(ex- ๊ณ„์† ์ž‘์€ ๊ฐ’์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ž…๋ ฅ ๋“ฑ) O(n)์ด๋ผ๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋“ ๋‹ค. ์ด์— ๋น„ํ•ด Red-black Tree๋Š” ๋ถ€๋ชจ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํฐ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ, ์ž‘์€..
2024.07.18
Language/Java
Enum์— ๋Œ€ํ•˜์—ฌ
Enum์€ ์—ด๊ฑฐํ˜•์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (์˜์–ด๋กœ๋Š” enumerated type์ด๋ผ ํ•˜๊ณ  ์ด๊ฒƒ์˜ ์ค„์ž„๋ง์ด๋‹ค.) Enum์€ ‘์š”์†Œ’ ํ˜น์€ ‘๋ฉค๋ฒ„’ ๋ผ ๋ถˆ๋ฆฌ๋Š” ๋ช…๋ช…๋œ ๊ฐ’์˜ ์ง‘ํ•ฉ์„ ์ด๋ฃจ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ์—ฌ๊ธฐ์„œ ‘๋ช…๋ช…๋˜๋‹ค.’๋ž€ ์–ด๋–ค ๋ฌผ๊ฑด์ด๋‚˜ ์ผ์— ์ด๋ฆ„์ด ์ง€์–ด์ ธ ๋ถ™์—ฌ์ง€๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. Enum์˜ ๋ฉค๋ฒ„๊ฐ€ ๋˜๋Š” ๋…€์„๋“ค์€ ์ฃผ๋กœ ์–ด๋–ค ๋ฌผ๊ฑด์ด๋‚˜ ์ผ์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์ˆ˜ ์—ญํ• ์„ ํ•œ๋‹ค.
2024.01.16
Language/Java
๋ชฐ๋ž๋˜ ๊ฒƒ
1. Intger ์ปฌ๋ž™์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ int ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๊ธฐ. int [] arr = map.keySet().stream().mapToInt(x->x).toArray(); maptoInt(x->x): ์ปฌ๋ž™์…˜ ํ”„๋ ˆ์ž„ ์›Œํฌ์—๋Š” ๊ฐ’๋“ค์„ Wrapper Class์ธ Integer๋กœ ๋‹ค ์ €์žฅ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์— ์ €์žฅํ• ๋ ค๋ฉด type์ด ์›์‹œํƒ€์ž…(int, double,...) ์—ฌ์•ผ ํ•œ๋‹ค ํ•ด๋‹น maptoInt๋Š” ์ปฌ๋ž™์…˜ ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ’์„ IntStream์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. (IntStream ์›์‹œ ํƒ€์ž… int์— ๋Œ€ํ•œ Stream ์ด๋‹ค.) toArray(): ์ปฌ๋ž™์…˜์„ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜. (์›์‹œ ํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ€ ๊ฑฐ๋ฉด, ์ธ์ˆ˜๋„ ์›์‹œ ํƒ€์ž…์ด์–ด์•ผ ํ•œ๋‹ค.) 2. String ArrayList๋ฅผ String ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ• String..
2023.05.21
Language/Java
thumbnail
์ฝœ๋ฐฑ (Call Back)
1. ์ฝœ๋ฐฑ์ด๋ž€? ํ•˜๋‚˜์˜ ์ฝ”๋“œ์— ์ธ์ˆ˜๋กœ ๋“ค์–ด๊ฐ€๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ Call back์ด๋ผ ํ•œ๋‹ค. ์–ด๋–ค ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜๋ฅผ Call back ํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. 2. ์ฝœ๋ฐฑ ์˜ˆ์ œ 3๊ฐ€์ง€ (1) ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ const a = (callback) => { console.log("A"); callback(); }; const b = () => { console.log("B"); }; a(b); ๋งจ ๋งˆ์ง€๋ง‰ ๋ฌธ์„ ๋ณด๋ฉด, a๋ผ๋Š” ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ b ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ๋„ฃ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด console.log(b) ํ–ˆ์„ ๋•Œ ์ฒ˜๋Ÿผ b ํ•จ์ˆ˜ ์ž์ฒด๊ฐ€ a์˜ ์ธ์ˆ˜๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  3๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด callback()์€ ์ธ์ˆ˜๋กœ ๋ฐ›์€ b() ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ์‹คํ–‰ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ถœ๋ ฅ์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (2) ์‘์šฉ // ..
2023.04.20
Language/JS
์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ (IIFE)
1. ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜ ํ•จ์ˆ˜๋Š” ์›๋ž˜ ์„ ์–ธ๋ถ€ (ํ˜น์€ ํ‘œํ˜„์‹)๊ณผ ํ˜ธ์ถœ๋ถ€๊ฐ€ ๋”ฐ๋กœ ํ•„์š”ํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„ ์–ธ๋ถ€๋Š” ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด ๊ธฐ์ˆ ๋งŒ ํ•˜์—ฌ ๋†“์€ ๊ณณ์ด๊ณ , ํ˜ธ์ถœ๋ถ€๋Š” ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์„ ์“ฐ๋Š” ๊ณณ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰์‹œ ์‹คํ–‰ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์„ ์–ธ๊ณผ ํ˜ธ์ถœ์„ ํ•œ๋ฒˆ์— ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ๋ฐ‘์— ์ฆ‰์‹œ ์‹คํ–‰ํ•จ์ˆ˜ ์‚ฌ์šฉ ํŒจํ„ด์„ ๋ฐฐ์šฐ๊ฒ ์ง€๋งŒ, ๋Œ€ํ‘œ์ ์ธ ํŒจํ„ด์œผ๋กœ ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜์˜ ๋ชจ์Šต์„ ์‚ดํŽด๋ณด๋ฉด, //(์‹คํ–‰ํ•  ํ•จ์ˆ˜)(์ธ์ˆ˜); // ์˜ˆ์‹œ ((a) => { console.log(a*2); })(7); ์ด์™€ ๊ฐ™๋‹ค. ()() ๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ํ˜•ํƒœ๋กœ, ์ฒซ๋ฒˆ์งธ ()์—๋Š” ์‹คํ–‰ํ•  ํ•จ์ˆ˜, ๋‘๋ฒˆ์งธ ()์—๋Š” ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐˆ ์ธ์ž๋ฅผ ๊ธฐ์ˆ ํ•˜๋ฉด ๋œ๋‹ค. 2. ํŒจํ„ด // ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํŒจํ„ด // 1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ์‚ฌ์šฉ ํŒจํ„ด -> ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด์€..
2023.04.20
Language/JS
thumbnail
ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
0. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ๋ณ€์ˆ˜์— ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ํ• ๋‹นํ•˜๋Š” ํ˜•์‹์ด๋ฏ€๋กœ ํ•จ์ˆ˜ ์„ ์–ธ์ด ์•„๋‹ˆ๋ผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹ ์ทจ๊ธ‰์„ ๋ฐ›๋Š”๋‹ค. (ํ˜ธ์ด์ŠคํŒ… ๋ถˆ๊ฐ€) 1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ํŒจํ„ด const a = () => {}; // ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ด๋ฉด ์†Œ๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ const b = x => {}; const c = (x, y) => {}; // ๋งŒ์•ฝ ํ•จ์ˆ˜ ๋™์ž‘๋ถ€๋ถ„์— ๋‹ค๋ฅธ ๋กœ์ง ์—†์ด return๋ฌธ๋งŒ ์žˆ๋‹ค๋ฉด {}์™€ return ํ‚ค์›Œ๋“œ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค. const d = (x) => {return x * x;}; const e = (x) => x * x; // ๋งŒ์•ฝ ํ•จ์ˆ˜ ๋™์ž‘๋ถ€๋ถ„ ๋‚ด์— return ๋ง๊ณ  ๋‹ค๋ฅธ ๋กœ์ง์ด ์žˆ๋‹ค๋ฉด { return} ํ˜•ํƒœ๋กœ ์ ์–ด์ค˜์•ผ ํ•จ. const f = (x) => { console.log(x * x); return x..
2023.04.19
Language/JS
thumbnail
๋งค๊ฐœ๋ณ€์ˆ˜ ํŒจํ„ด
0. ๊ธฐ๋ณธํ˜• function sum(a, b) { // ์—ฌ๊ธฐ๋Š” ์ธ์ˆ˜๋ฅผ ๋ฐ›๋Š” ๋งค๊ฐœ์ฒด ๋งค๊ฐœ๋ณ€์ˆ˜ return a + b; } console.log(sum(1, 2)); // ์—ฌ๊ธฐ๊ฐ€ ๋“ค์–ด์˜จ ๊ฐ’ ์ธ์ˆ˜ ์ธ์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋‘ ์šฉ์–ด๋ฅผ ํ—ท๊ฐˆ๋ ธ์—ˆ๋Š”๋ฐ, ์ธ์ˆ˜๋Š” ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜์–ด ์‹ค์ œ ๋“ค์–ด์˜ค๋Š” ๊ฐ’์„ ๋œปํ•˜๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ์— ์ ํžˆ๋Š” ์ธ์ˆ˜๋ฅผ ๋ฐ›๋Š” ๋งค๊ฐœ์ฒด๋ฅผ ๋œปํ•œ๋‹ค. 1. ๊ธฐ๋ณธ๊ฐ’ ์œ„์˜ ํ•จ์ˆ˜์—์„œ ๋งŒ์•ฝ์— ์‚ฌ์šฉ์ž๊ฐ€ sum ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ธ์ˆ˜๋ฅผ ํ•˜๋‚˜๋งŒ ์“ด ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? console.log(sum(7)); // 7๊ณผ undefined๋ฅผ ๋” ํ•ด์„œ not a number ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ๋Š” undefined๊ฐ€ ๋“ค์–ด๊ฐ€์„œ 7 + undefined๊ฐ€ ๋˜์–ด NaN์ด ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค. '..
2023.04.19
Language/JS
thumbnail
ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ณผ ์ข…๋ฃŒ
1. return (1) ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ญํ•  return ์˜†์— ์ ํžŒ ๋‚ด์šฉ์„ ๋ฐ˜ํ™˜ ๊ฐ’์ด๋ผ ํ•œ๋‹ค. ๋ฐ˜ํ™˜ ๊ฐ’์€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ, ํ˜ธ์ถœ๋ฌธ ์ž๋ฆฌ์— ๋Œ€์‹ ํ•ด์„œ ์ ํž ๊ฐ’์ด๋‹ค. function hello() { return "hello~"; } console.log(hello()); // console.log("hello~")์™€ ๊ฐ™์€ ๋ง์ด๋‹ค. ** return ์˜†์— ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์ ์–ด์คฌ์„ ์‹œ? ** return ๋’ค์— ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์ ์–ด์ฃผ๋ฉด undefined๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. function hello2() { return; } console.log(hello2()); (2) ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ์—ญํ•  ํ•จ์ˆ˜ ์ฝ”๋“œ๋ฅผ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ return ๋ฌธ์„ ๋งŒ๋‚˜๋ฉด ๊ทธ ์ž๋ฆฌ์—์„œ ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  return ๊ฐ’ ๋ฐ˜ํ™˜ ๋’ค, ํƒˆ์ถœํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ..
2023.04.18
Language/JS
thumbnail
ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„ ์‹์˜ ์ฐจ์ด ๊ทธ๋ฆฌ๊ณ  ํ˜ธ์ด์ŠคํŒ…
1. ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ ํ•จ์ˆ˜ ์„ ์–ธ Keyword๋กœ ์‹œ์ž‘ํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฌธ์žฅ. //ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ function hello () {} function ํ•จ์ˆ˜์ด๋ฆ„ (์ธ์ˆ˜ ๋„ฃ๋Š” ์ž๋ฆฌ) {๋™์ž‘ ๋กœ์ง} ํ˜•ํƒœ๋กœ ์ ํžŒ๋‹ค. 2. ํ•จ์ˆ˜ ํ‘œํ˜„์‹ ๋ณ€์ˆ˜์— ์ต๋ช…ํ•จ์ˆ˜๋‚˜ ๊ธฐ๋ช… ํ•จ์ˆ˜๋ฅผ ๋Œ€์ž…ํ•˜๋Š” ํ˜•ํƒœ์˜ ํ‘œํ˜„์‹์ด๋‹ค. // ํ‘œํ˜„์‹ 1. ๊ธฐ๋ช…ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž… const world = function hello () {} // ํ‘œํ˜„์‹ 2. ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž… const world2 = function () {} const world3 = () => {} ํ‘œํ˜„์‹ 1์ธ ๊ธฐ๋ช…ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•  ์‹œ ์›๋ž˜ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์œผ๋กœ ๋” ์ด์ƒ ํ˜ธ์ถœํ•˜์—ฌ ์“ฐ์ง€ ๋ชปํ•œ๋‹ค. ๋ฌด์กฐ๊ฑด ๋Œ€์ž…ํ•œ ๋ณ€์ˆ˜ ์ด๋ฆ„์œผ๋กœ๋งŒ ํ˜ธ์ถœํ•˜์—ฌ ์“ธ ์ˆ˜ ์žˆ๋‹ค. hello(); // error -> ์—ฅ..
2023.04.18
Language/JS
HTML์—์„œ JavaScript ์“ฐ๊ธฐ
1. HTML ๋‚ด๋ถ€์— JavaScript๋ฅผ ์“ฐ๋Š” ๊ฒƒ (CSS ์ธ๋ผ์ธ ํ˜•์‹๊ณผ ์œ ์‚ฌ) html ๋‚ด์—์„œ script๋ž€ ํƒœ๊ทธ๋ฅผ ์“ฐ๋ฉด ๊ทธ ํƒœ๊ทธ ์•ˆ ์ชฝ์— ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค. 2. ์™ธ๋ถ€ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ JavaScript ์ฝ”๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ ์‚ฌ์ด์— ์™ธ๋ถ€ ํŒŒ์ผ์˜ JS ์ฝ”๋“œ ์ „์ฒด๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค. ๋งŒ์•ฝ ์ด๋ ‡๊ฒŒ ์“ด๋‹ค๋ฉด? ํ•ด๋‹น ๊ฒฝ์šฐ, ์‚ฌ์ด์— ์“ฐ์ธ ์ฝ”๋“œ ๋‚ด์šฉ์€ ๋ฌด์‹œ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด scr์— ์ ํžŒ ๋‚ด์šฉ์ด ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
2023.04.17
Language/JS
thumbnail
While, do while
1. while break ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ๋Œ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ( ) ์•ˆ์ด๋“  { } ์•ˆ์ด๋“  ์ฆ๊ฐ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ๋‹ฌ์•„์ค˜์•ผ ํ•œ๋‹ค. 2. do while while ์กฐ๊ฑด์— ์ฒ˜์Œ ๋ถ€ํ„ฐ ์•ˆ ๋งž์•„์„œ ๋ช…๋ น ์‹คํ–‰ ๋ถ€๊ฐ€ ์•„์˜ˆ ์‹คํ–‰์ด ์•ˆ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์„ ๋ง‰๊ณ ์ž ์“ฐ๋Š” do while ๋ฌธ์€ ์ฒ˜์Œ ํ•œ๋ฒˆ์€ ๋ฌธ์žฅ์ด ์‹คํ–‰๋˜๋„๋ก ํ•ด์ค€๋‹ค. do {} while ()์€ ๋จผ์ € ๋ช…๋ น์–ด ๋ถ€๋ถ„์„ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•˜๊ณ , ๋ฃจํ”„์— ์ง„์ž…ํ•œ๋‹ค. 0์€ ๋Œ€ํ‘œ์ ์ธ falsey ๊ฐ’์ด๋ผ ์ฐธ์ด ์•ˆ๋œ๋‹ค. ์ด ๋ฌธ์žฅ์„ ๋งจ ์ฒ˜์Œ ํ•œ๋ฒˆ์€ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฌธ์žฅ์„ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•˜๊ณ  ๋ฃจํ”„์— ์ง„์ž…ํ•œ๋‹ค.
2023.04.14
Language/JS
thumbnail
For ๋ฐ˜๋ณต๋ฌธ, For of, For in
1. For ๋ฐ˜๋ณต๋ฌธ // ์„ ์–ธ๋ถ€ ; ์กฐ๊ฑด๋ถ€; ์ฆ๊ฐ์—ฐ์‚ฐ๋ถ€; // ์กฐ๊ฑด์— ๋งž๋Š”์ง€ ํ™•์ธ -> loop ๋Œ๋ฆด๋ ค๋Š” ๋ช…๋ น ์‹คํ–‰ -> ์ฆ๊ฐ ์—ฐ์‚ฐ -> ์กฐ๊ฑด์— ๋งž๋Š”์ง€ ํ™•์ธ (๋ฐ˜๋ณต) for (let i = 0; i < 10; i++) { console.log(i); } (1) break loop๋ฅผ ๋Œ๋‹ค๊ฐ€ break๋ฅผ ๋งŒ๋‚˜๋ฉด ๊ทธ ์ž๋ฆฌ์—์„œ ํƒˆ์ถœ i๊ฐ€ 9๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„ ํƒˆ์ถœ. (2) Continue continue๋ฅผ ๋งŒ๋‚˜๋ฉด, ํ•ด๋‹น ํ‚ค์›Œ๋“œ ๋ฐ‘์˜ ์ฝ”๋“œ๋“ค์€ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋‹ค์‹œ loop๋กœ ๋Œ์•„๊ฐ. if ์กฐ๊ฑด ๋งŒ์กฑํ•ด์„œ continue ๋งŒ๋‚˜๋ฉด ๋ฐ‘์˜ ๋ฌธ์žฅ๋“ค ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ , ๋ฐ”๋กœ loop๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ. if ์กฐ๊ฑด ๋งŒ์กฑ ๋ชปํ•ด์„œ ์ง€๋‚˜๊ฐˆ ๊ฒฝ์šฐ , ๊ทธ๋Œ€๋กœ console.log ์ฐํž˜. 2. For of ๋ฐ˜๋ณต๋ฌธ (๋ฐฐ์—ด์—์„œ ์“ฐ์ž„) java์—์„œ์˜ for ..
2023.04.14
Language/JS
thumbnail
If์™€ Switch ๋ฌธ
1. if 2. switch ๋ฌธ (1) ํ˜•ํƒœ let comment = ""; age = 14; switch (age) { case 14: comment = "์ค‘ํ•™๊ต 1ํ•™๋…„"; break; case 15: comment = "์ค‘ํ•™๊ต 2ํ•™๋…„"; break; case 16: comment = "์ค‘ํ•™๊ต 3ํ•™๋…„"; break; case 17: comment = "๊ณ ๋“ฑํ•™๊ต 1ํ•™๋…„"; break; case 18: comment = "๊ณ ๋“ฑํ•™๊ต 2ํ•™๋…„"; break; case 17: comment = "๊ณ ๋“ฑํ•™๊ต 3ํ•™๋…„"; break; default: comment = "์„ฑ์ธ์ด๊ฑฐ๋‚˜ ์ดˆ๋“ฑํ•™์ƒ์ž…๋‹ˆ๋‹ค."; } console.log(comment); ์ธ์ˆ˜๋กœ ๋ฐ›์€ ๊ฐ’์„ case ์— ์ ํ˜€์žˆ๋Š” ๊ฐ’๋“ค๊ณผ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•œ๋‹ค. ๊ทธ ์ค‘ ์ผ์น˜ํ•˜..
2023.04.14
Language/JS
thumbnail
์„ ํƒ์  ์ฒด์ด๋‹(Optional Chaining)
**์™„์ „ ์ž˜ ๋ณด๊ณ  ๋ฐฐ์šด ๊ณณ ** ์˜ต์…”๋„ ์ฒด์ด๋‹ '?.' (javascript.info) ์˜ต์…”๋„ ์ฒด์ด๋‹ '?.' ko.javascript.info 1. Optional Chaining ์ด ์ƒ๊ธด ์ด์œ  (1) ์ƒ๊ธด ์ด์œ  ๊ฐ์ฒด ์•ˆ์˜ ๋ฉค๋ฒ„์˜ ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ์  ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ–ˆ๋Š”๋ฐ, ๊ทธ ๋ฉค๋ฒ„๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ˆœ๊ฐ„์ด ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์›๋ž˜๋ผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค. const User {} console.log(user.adderess); // syntax error ์ด์™€ ๊ฐ™์ด ์šฐ๋ฆฌ๊ฐ€ ๊ฐ์ฒด ์•ˆ์˜ ํŠน์ • ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ, ๊ทธ ๋ฉค๋ฒ„๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ์— Error๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด OptionalChaing์ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋‹ค. (2) Optional Chaining ์—†์—ˆ์„ ๋• ์–ด๋–ป๊ฒŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‚˜์š”? && ์ด ..
2023.04.14
Language/JS
thumbnail
๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น
1. ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์ด๋ž€? ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์—ด์—์„œ ์›์†Œ๋ฅผ ์ผ์ผํžˆ ๋นผ์„œ ๋ณ€์ˆ˜์— ์ง‘์–ด ๋„ฃ๋Š”๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•  ๊ฒƒ์ด๋‹ค. const arr = [1,2,3] const a = arr[0] const b = arr[1] const c = arr[2] JS์—์„œ๋Š” ์œ„ ๊ณผ์ •์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ ์ค„์˜ ์ฝ”๋“œ๋กœ ์ ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ด๋ฅผ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์›์†Œ๋“ค์„ ์ฐข์–ด์„œ ๋ณ€์ˆ˜ ํ•˜๋‚˜ ํ•˜๋‚˜์— ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. 2. ๋ฐฐ์—ด์—์„œ์˜ ๊ตฌ์กฐ ๋ถ„ํ•ด (1) ๊ธฐ๋ณธํ˜• // ๋ฐฐ์—ด ์„ ์–ธ const arr = [1,2,3] // ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ์ด์šฉ: ๋ณ€์ˆ˜ a, b, c์— ๊ฐ๊ฐ 1, 2, 3์ด ์ฐจ๋ก€๋กœ ๋“ค์–ด๊ฐ„๋‹ค. const [a,b,c] = arr console.log(a,b,c) // 1 2 3์ด ..
2023.04.02
Language/JS
thumbnail
์ „๊ฐœ ์—ฐ์‚ฐ์ž
1. ์ •์˜ (1) ํ˜•ํƒœ const a = [1,2,3] console.log(a) // [1,2,3] console.log(...a) // 1,2,3 const b = {a:'apple', b: 'banana', c: 'car'} const c = {d:'digest', e: 'earth', f: 'fool\'s day'} const r = {...b,...c} console.log(r) // {a:'apple', b: 'banana', c: 'car', d:'digest', e: 'earth', f: 'fool\'s day'} (2) ์ •์˜ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์›์†Œ๋“ค์„ ์ฐจ๋ก€๋Œ€๋กœ ์ „๊ฐœํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. ๋ฐฐ์—ด์˜ ๋Œ€๊ด„ํ˜ธ๋‚˜, ๊ฐ์ฒด์˜ ์ค‘๊ด„ํ˜ธ๋ฅผ ๋ฒ—๊ธด๋‹ค. ** console.log() ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ data๋ฅผ ์ฐ๋Š” ๋ฒ• ,..
2023.04.02
Language/JS
thumbnail
Nullish ๋ณ‘ํ•ฉ ๊ณผ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž
1. Nullish๋ณ‘ํ•ฉ (1) ์ •์˜ const num = A ?? B ?? C ... // null ์ด๋‚˜ undefined๊ฐ€ ์•„๋‹Œ ๋งจ ์ฒ˜์Œ ๋งŒ๋‚œ data๋ฅผ ๋ฐ˜ํ™˜ // ๋งŒ์•ฝ ์—ฐ์‚ฐ์ž ์•ˆ์— ๋ชจ๋“  ๊ฐ’๋“ค์ด null ์ด๋‚˜ undefined ๋ผ๋ฉด ๋งจ ๋งˆ์ง€๋ง‰์˜ nullish ๊ฐ’์„ ๋ฐ˜ํ™˜ // (null , undifined ํ•ฉ์ณ์„œ nullish๋ผ๊ณ  ํ•œ๋‹ค.) OR์€ false๊ฐ€ ์•„๋‹Œ ๋งจ ์ฒ˜์Œ ๋งŒ๋‚œ data๋ฅผ ๋ฐ˜ํ™˜ ํ•˜๋Š” ์—ฐ์‚ฐ์ž์˜€๋‹ค. Nullish ๋ณ‘ํ•ฉ์€ OR ๋ณด๋‹ค ๊ฑฐ๋ฅด๋Š” ๋ฒ”์œ„๊ฐ€ ์ ์–ด์ง„ ์—ฐ์‚ฐ์ž์ด๋‹ค. (2) ์˜ˆ์‹œ๋“ค a. OR ๊ณผ Nullish์˜ ์ฐจ์ด 0์€ false ๊ฐ’์ด๊ณ , 7์ด ์ œ์ผ ๋จผ์ € ๋งŒ๋‚œ 0์ด ์•„๋‹Œ ๊ฐ’์ž„์œผ๋กœ 7์„ ๋ฐ˜ํ™˜ 0์€ ์ œ์ผ ์ฒ˜์Œ ๋งŒ๋‚œ nullish๊ฐ€ ์•„๋‹Œ ๊ฐ’์ž„์œผ๋กœ 0์„ ๋ฐ˜ํ™˜ b. ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ๋“ค 2. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž (..
2023.04.02
Language/JS