«   2022/07   »
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Archives
Today
11
Total
14,025
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก2022/07 (10)

kingsubin

1์žฅ. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์•Œ์•„๋ณด๊ธฐ

1์žฅ. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์•Œ์•„๋ณด๊ธฐ ์•„์ดํ…œ 1~5 ์•„์ดํ…œ 1. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ด€๊ณ„ ์ดํ•ดํ•˜๊ธฐ ๋ชจ๋“  JS ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋ฏธ TS ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ, TS๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์œ ํšจํ•œ JSํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ์˜๋„๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํƒ€์ž… ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—๊ฒŒ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์˜ ๋™์ž‘๊ณผ ์˜๋„๊ฐ€ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. TS๋Š” JS ๋Ÿฐํƒ€์ž„ ๋™์ž‘์„ ๋ชจ๋ธ๋งํ•˜๋Š” ํƒ€์ž… ์‹œ์Šคํ…œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ์— ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ฝ”๋“œ๋ฅผ ์ฐพ์•„๋‚ด๋ ค๊ณ  ํ•œ๋‹ค. ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ผ ์ˆœ ์—†๋‹ค. ํƒ€์ž… ์ฒด์ปค๋ฅผ ํ†ต๊ณผํ•˜๋ฉด์„œ๋„ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ฝ”๋“œ๋Š” ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„์ดํ…œ 2. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์„ค์ • ์ดํ•ดํ•˜๊ธฐ cli ๊ฐ€ ์•„๋‹Œ ์„ค์ • ํŒŒ์ผ(tsconfig.json)์„ ์‚ฌ์šฉํ•˜์ž. ํŒ€์›๊ณผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•จ. ์—„๊ฒฉํ•œ ์ฒดํฌ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด s..

์ฑ…/misc 2022. 7. 17. 21:23
48์žฅ. ๋ชจ๋“ˆ

48์žฅ. ๋ชจ๋“ˆ 48-1. ๋ชจ๋“ˆ์˜ ์ผ๋ฐ˜์  ์˜๋ฏธ ๋ชจ๋“ˆ์ด๋ž€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐœ๋ณ„์  ์š”์†Œ๋กœ์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ์กฐ๊ฐ์„ ๋งํ•œ๋‹ค. ๋ชจ๋“ˆ์ด ์„ฑ๋ฆฝํ•˜๋ ค๋ฉด ๋ชจ๋“ˆ์€ ์ž์‹ ๋งŒ์˜ ํŒŒ์ผ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋ชจ๋“ˆ์€ ๊ฐœ๋ณ„์  ์กด์žฌ๋กœ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ถ„๋ฆฌ๋˜์–ด ์กด์žฌํ•œ๋‹ค. export ๋œ ๋ชจ๋“ˆ์˜ ์ž์‚ฐ์€ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ๊ณต๊ฐœ๋œ ๋ชจ๋“ˆ์˜ ์ž์‚ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ์„ module consumer๋ผ ํ•œ๋‹ค. 48-2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋ชจ๋“ˆ ์ด์ „์— JS๋Š” import, export๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ script ํƒœ๊ทธ๋กœ ๋กœ๋“œํ•ด๋„ ๋ถ„๋ฆฌ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋“ค์€ ๊ฒฐ๊ตญ ํ•˜๋‚˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๋‚ด์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์ œ์•ˆ๋œ ๊ฒƒ์ด CommonJS, Asynchronous Modul..

33์žฅ. 7๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ํƒ€์ž… Symbol

33์žฅ. 7๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ํƒ€์ž… Symbol 33-1. ์‹ฌ๋ฒŒ์ด๋ž€? Symbol์€ ES6์—์„œ ๋„์ž…๋œ 7๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์ด๋‹ค. Symbol ๊ฐ’์€ ๋‹ค๋ฅธ ๊ฐ’๊ณผ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์œ ์ผ๋ฌด์ดํ•œ ๊ฐ’์ด๋‹ค. ์ฃผ๋กœ ์ด๋ฆ„์˜ ์ถฉ๋Œ ์œ„ํ—˜์ด ์—†๋Š” ์œ ์ผํ•œ ํ”„๋กœํผํ‹ฐ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. 33-2. ์‹ฌ๋ฒŒ ๊ฐ’์˜ ์ƒ์„ฑ Symbol ํ•จ์ˆ˜ ๋‹ค๋ฅธ ์›์‹œ ๊ฐ’์€ ๋ฆฌํ„ฐ๋Ÿด ํ‘œ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ๊ฐ’์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ฌ๋ฒŒ ๊ฐ’์€ Symbol ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์‹ฌ๋ฒŒ ๊ฐ’์€ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ ํ™•์ธํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๋‹ค๋ฅธ ๊ฐ’๊ณผ ์ ˆ๋Œ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์œ ์ผ๋ฌด์ดํ•œ ๊ฐ’์ด๋‹ค. const mySymbol = Symbol(); console.log(typeof mySymbol); // symbol console.log(mySymb..

์•Œ๋ฆผ ์‹œ์Šคํ…œ ์„ค๊ณ„

์•Œ๋ฆผ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ๋‹จ์ˆœํžˆ ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ ์•Œ๋ฆผ(mobile push notification)์— ํ•œ์ •๋˜์ง€ ์•Š๊ณ  ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ ์•Œ๋ฆผ, SMS ๋ฉ”์‹œ์ง€, ์ด๋ฉ”์ผ ์„ธ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์•Œ๋ฆผ ์ง€์›ํ•  ๊ฒƒ์ธ์ง€? - ํ‘ธ์‹œ ์•Œ๋ฆผ, SMS ๋ฉ”์‹œ์ง€, ์ด๋ฉ”์ผ ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ(real-time) ์‹œ์Šคํ…œ์ธ๊ฐ€? - ์—ฐ์„ฑ ์‹ค์‹œ๊ฐ„(soft real-time) ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋‹จ๋ง ์ง€์›ํ•  ๊ฒƒ์ธ์ง€? - iOS, Android, desktop ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‚ผ ์•Œ๋ฆผ์€ ๋ˆ„๊ฐ€ ๋งŒ๋“œ๋Š”๊ฐ€? - ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์„œ๋ฒ„ ์ธก์—์„œ์˜ ์Šค์ผ€์ฅด๋ง ์•Œ๋ฆผ์„ ๋ฐ›์ง€ ์•Š๋„๋ก(opt-out) ์„ค์ • ๊ฐ€๋Šฅํ•œ๊ฐ€? - ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ. ํ•˜๋ฃจ์— ๋ช‡ ๊ฑด์˜ ์•Œ๋ฆผ์ด ํ•„์š”ํ•œ๊ฐ€? - 1,000๋งŒ ๊ฑด ๋ชจ๋ฐ”์ผ ํ‘ธ์‹œ, 100๋งŒ ๊ฑด SMS..

์ฑ…/misc 2022. 7. 9. 16:11
๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์œ ์ผ ID ์ƒ์„ฑ๊ธฐ ์„ค๊ณ„

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์œ ์ผ ID ์ƒ์„ฑ๊ธฐ ์„ค๊ณ„ โ€˜auto_incrementโ€™ ์†์„ฑ์ด ์„ค์ •๋œ RDB์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์“ฐ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ? ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์ด ์ ‘๊ทผ๋ฒ•์€ ํ†ตํ•˜์ง€ ์•Š๋Š”๋‹ค. DB ์„œ๋ฒ„ ํ•œ ๋Œ€๋กœ๋Š” ๊ทธ ์š”๊ตฌ๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋‹ค. ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋‚ฎ์ถ”๊ธฐ๊ฐ€ ๋ฌด์ฒ™ ํž˜๋“ค ๊ฒƒ์ด๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ ์ฑ…์—์„œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž์ถฐ ๊ตฌํ˜„ํ•ด๋ณด์ž. ID๋Š” ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค. ID๋Š” ์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค. ID๋Š” 64๋น„ํŠธ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค. ID๋Š” ๋ฐœ๊ธ‰ ๋‚ ์งœ์— ๋”ฐ๋ผ ์ •๋ ฌ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. ์ดˆ๋‹น 10,000๊ฐœ์˜ ID๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ฐœ๋žต์ ์ธ ์„ค๊ณ„์•ˆ ๋‹ค์ค‘ ๋งˆ์Šคํ„ฐ ๋ณต์ œ(multi-master replication) DB์˜ auto_increment ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ๋‹ค. ๋‹ค๋งŒ..

์ฑ…/misc 2022. 7. 9. 00:04
34์žฅ. ์ดํ„ฐ๋Ÿฌ๋ธ”

34์žฅ. ์ดํ„ฐ๋Ÿฌ๋ธ” 34-1. ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์€ ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ECMAScript ์‚ฌ์–‘์— ์ •์˜ํ•˜์—ฌ ๋ฏธ๋ฆฌ ์•ฝ์†ํ•œ ๊ทœ์น™์ด๋‹ค. ES6 ์ด์ „์˜ ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์€ ๋‚˜๋ฆ„์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ES6์—์„œ๋Š” ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์„ ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”๋กœ ํ†ต์ผํ•˜์—ฌ forโ€ฆof, spread, distructuring ์˜ ๋Œ€์ƒ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์›ํ™”ํ–ˆ๋‹ค. ์ดํ„ฐ๋Ÿฌ๋ธ” ํ”„๋กœํ† ์ฝœ (iterable protocol) Symbol.iterator๋ฅผ ํ”„๋กœํผํ‹ฐ ํ‚ค๋กœ ์‚ฌ์šฉํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์„ ํ†ตํ•ด ์ƒ์†๋ฐ›์€ Symbol.iterator ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ดํ„ฐ๋ ˆ์ดํ„ฐ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•œ ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜..