Seize your moment! ๐Ÿ‘พ

์•ˆ๋…•ํ•˜์„ธ์š”. Eric์ž…๋‹ˆ๋‹ค. ์ œ ๋ธ”๋กœ๊ทธ์— ๋ฐฉ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ๊ฐœ๋ฐœ๊ณต๋ถ€ 58

[Eric's Web] API๋ฅผ ํ†ตํ•ด์„œ Jira Webhook ๋“ฑ๋กํ•˜๊ธฐ. ( OAuth2.0 Token์–ป๊ธฐ ํฌํ•จ)

API๋ฅผ ํ†ตํ•ด์„œ Jira Webhook ๋“ฑ๋กํ•˜๊ธฐ. ( OAuth2.0 Token์–ป๊ธฐ ํฌํ•จ) ์•ˆ๋…•ํ•˜์„ธ์š”. Eric์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ œ๊ฐ€ ์ค€๋น„ํ•œ ๋‚ด์šฉ์€ Jira API๋ฅผ ํ†ตํ•œ Jira Webhook ๋“ฑ๋กํ•˜๊ธฐ ์ž…๋‹ˆ๋‹ค. ์›นํ›…(Webhook)์ด๋ž€? ์›นํ›…(Webhook)์€ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์œผ๋กœ ์ด๋ฒคํŠธ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ž๋™ํ™”๋œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์›นํ›…์€ ์ฃผ๋กœ ์›น ์„œ๋น„์Šค ๊ฐ„์˜ ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ ์ž‘์šฉ์— ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์›นํ›… ๊ฐœ๋…์€ ํ•˜๋‹จ์˜ ์ €์˜ ๊ฒŒ์‹œ๊ธ€ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”. https://just09.tistory.com/363 [Eric's CS] ์›นํ›…(WebHook) ? ๐ŸŽฃ โœ… Abstarct ์›นํ›…(Webhook)์€ ์›น ์„œ๋น„์Šค ๊ฐ„์˜ ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ž๋™ํ™”๋œ ๋ฐฉ๋ฒ•..

[Eric's API] Github Organizations API ๊ฐ€์ ธ์˜ค๊ธฐ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๐Ÿ‘จโ€๐Ÿ’ป

์–ผ๋งˆ์ „์˜ ๋‚˜๋Š” Github ์˜ API๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹นํ•˜๋Š” Github User์˜ Organizations ๋ฅผ ๊ฐ€์ ธ์˜ค๋ คํ•˜์˜€๋‹ค. ์ด๋•Œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ค‘ ๋‚˜๋Š” 2๊ฐ€์ง€ API๋ฅผ ํ†ตํ•ด์„œ User์˜ List organizations ๋ฅผ ํ•˜์˜€๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” GET /user/orgs ๋ฅผ ํ†ตํ•ด์„œ ๊ฐ€์ ธ์˜ค๋ ค ํ•˜์˜€๋‹ค. ๋ฌธ์ œ์ ๐Ÿ˜ก ํ•˜์ง€๋งŒ, ๋ถ„๋ช…ํžˆ ๋‚˜๋Š” ํ•˜๋‹จ์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ 2๊ฐœ์˜ ์กฐ์ง์„ ๊ฐ€์ง€๊ณ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ํ•˜๋‹จ์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ Postman์œผ๋กœ header์— ์•Œ๋งž์€ token๊ณผ X-Github-Api-Version์„ ์ž…๋ ฅํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  response๋กœ empty array๊ฐ€ ๋‚˜์™”๋‹ค. ์›ƒ๊ธด๊ฑด status code๊ฐ€ 200 ๋ฒˆ์œผ๋กœ ์ •์ƒ์ด๋ผ๋Š” ๊ฑฐ๋‹ค. ํ•ด๊ฒฐ์ฑ… ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์ด๋ฒˆ์—๋Š” ๋‹ค๋ฅธ API๋ฅผ ํ†ตํ•ด์„œ User์˜ List organizatio..

[Eric's JS] JavaScript๋กœ ๋‚˜์ด๊ณ„์‚ฐ, ๋  ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ โญ๏ธ

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜์€ JavaScript๋ฅผ ์ด์šฉํ•ด ๋‚˜์ด์™€ ๋ ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ƒ๋…„์›”์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๋‚˜์ด์™€ ๋ ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์ด๋ฅผ ์›น ํŽ˜์ด์ง€์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ €, HTML ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 'age'์™€ 'zodiac'๋ผ๋Š” id๋ฅผ ๊ฐ€์ง„ ๋‘ ๊ฐœ์˜ div ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ณณ์— JavaScript๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐ๋œ ๋‚˜์ด์™€ ๋  ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ... ๋‹ค์Œ์œผ๋กœ, JavaScript ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ €, ์‚ฌ์šฉ์ž์˜ ์ƒ๋…„์›”์ผ์„ 'birthDay' ๋ณ€์ˆ˜์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. let birthDay = "2001-02-21"; ๋งŒ๋‚˜์ด ๊ณ„์‚ฐํ•˜๊ธฐ ๊ทธ๋ฆฌ๊ณ  'calculateAge'๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ƒ๋…„์›”์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ์˜ค๋Š˜ ๋‚ ์งœ์™€ ๋น„๊ตํ•˜์—ฌ ..

[Eric's IDE] Visual Studio Code์—์„œ ์ •๊ทœ ํ‘œํ˜„์‹(Regex) ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ. โœ…

1. ์†Œ๊ฐœ Visual Studio Code(VSCode)๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์—๊ฒŒ ์ธ๊ธฐ ์žˆ๋Š” ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ทธ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ฒ€์ƒ‰ ๋ฐ ์น˜ํ™˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”, ํŠนํžˆ ์ •๊ทœ ํ‘œํ˜„์‹(Regex)์„ ํ™œ์šฉํ•˜๋ฉด ์ฝ”๋“œ์—์„œ ๋ณต์žกํ•œ ํŒจํ„ด์˜ ๋ฌธ์ž์—ด์„ ์‰ฝ๊ฒŒ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” VSCode์—์„œ ์ •๊ทœ ํ‘œํ˜„์‹์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 2. ์ •๊ทœ ํ‘œํ˜„์‹(Regex)์ด๋ž€? ์ •๊ทœ ํ‘œํ˜„์‹(Regex)๋Š” ํŠน์ •ํ•œ ๊ทœ์น™์„ ๊ฐ€์ง„ ๋ฌธ์ž์—ด์˜ ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ํŒจํ„ด์„ ์ฐพ๊ฑฐ๋‚˜ ์น˜ํ™˜ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. VSCode์—์„œ ์ •๊ทœ ํ‘œํ˜„์‹ ์‚ฌ์šฉํ•˜..

[Eric's JS] JavaScript ๋ชจ๋“  for๋ฌธ ์ดํ•ดํ•˜๊ธฐ ๐Ÿ™ƒ Enumerable๊ณผ Iterable ํ™œ์šฉ (feat. ES6)

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! Eric ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ JavaScript์—์„œ ์‚ฌ์šฉ๋˜๋Š” for ๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” enumerable๊ณผ iterable ๊ฐœ๋…์„ ํ•จ๊ป˜ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1๏ธโƒฃ for ๋ฌธ ๋จผ์ € ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ for ๋ฌธ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด for ๋ฌธ์€ ์ดˆ๊ธฐ์‹, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ๋ฒ”์œ„์˜ ๋ฐ˜๋ณต์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ: for (let i = 0; i < 5; i++) { console.log(i); } 2๏ธโƒฃ for...in ๋ฌธ for...in ๋ฌธ์€ ๊ฐ์ฒด์˜ ๋ชจ๋“  ์—ด๊ฑฐ ๊ฐ€๋Šฅํ•œ(enumerable) ์†์„ฑ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ๋ฐฐ์—ด์ด๋‚˜ ๋‹ค๋ฅธ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ(iterable) ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ: const person = { name..

[Eric's JS] ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop) ๋ž€? ๐Ÿ”„ JavaScript, ๋ธŒ๋ผ์šฐ์ €

์•ˆ๋…•ํ•˜์„ธ์š”! Eric์ž…๋‹ˆ๋‹ค ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์‹œ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์‹œ์ฃ ! โœ… ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop)๋ž€? ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๋ฌดํ•œ ๋ฃจํ”„์ด๋‹ค. JavaScript๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ์–ธ์–ด์ด๋ฏ€๋กœ, ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ”„ ์ด๋ฒคํŠธ ๋ฃจํ”„์˜ ์ž‘๋™ ์›๋ฆฌ ์˜ˆ์‹œ) ํ•˜๋‹จ์ฒ˜๋Ÿผ JavaScript ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด์žˆ์œผ๋ฉด, ์–ด๋– ํ•œ ์ˆœ์„œ๋Œ€๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ๊นŒ? console.log(..

[Eric's Vue] ref, $refs ์ด์šฉํ•ด์„œ DOM ์š”์†Œ ๋ฐ ์ž์‹ ์ปดํฌ๋„ŒํŠธ ์ ‘๊ทผ ๋ฐฉ๋ฒ• ๐Ÿ”—

Vue.js์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜์—ฌ DOM ์š”์†Œ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ, DOM ์š”์†Œ๋‚˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ์ง์ ‘ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ Vue.js์—์„œ ์ œ๊ณตํ•˜๋Š” ref $refs๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ์š”์†Œ์— ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โœ… ref ?ref๋Š” Vue ํ…œํ”Œ๋ฆฟ ์•ˆ์—์„œ ํŠน์ • DOM ์š”์†Œ๋‚˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ref ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ…œํ”Œ๋ฆฟ์˜ ํ•ด๋‹น ์š”์†Œ๋‚˜ ์ปดํฌ๋„ŒํŠธ์— ref๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•ด๋‹น ์š”์†Œ๋‚˜ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, Vue ์ธ์Šคํ„ด์Šค ๋‚ด์—์„œ ํ•ด๋‹น ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.โœ… $refs ?$refs๋Š” Vue ์ปดํฌ๋„ŒํŠธ์—์„œ ํŠน์ • DOM ์š”์†Œ๋‚˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ..

[Eric's CS] Sanity Test ๋ž€? ๐Ÿง

โœ… Sanity Test๋ž€? Sanity Test๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋กœ, ์ฃผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ํ…Œ์ŠคํŠธ๋Š” ๋ฆด๋ฆฌ์Šค ์ „์— ํ’ˆ์งˆ ๋ณด์ฆ(QA) ๋‹จ๊ณ„์—์„œ ์ง„ํ–‰๋˜๋ฉฐ, ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ์ค‘์— ๊ฐ€์žฅ ๋จผ์ € ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. Sanity Test์˜ ๋ชฉ์  Sanity Test์˜ ์ฃผ์š” ๋ชฉ์ ์€ - ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์˜ ์ž‘๋™ ์—ฌ๋ถ€ ํ™•์ธ - ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋”ฐ๋ฅธ ํฐ ๋ฌธ์ œ์  ํŒŒ์•… - ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ์ˆ˜์ •์ด ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ ํ™•์ธ Sanity Test ์˜ˆ์‹œ ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ, Sanity Test๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ: ์‚ฌ์šฉ์ž๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ ..

[Eric's IDE] VSCode - $event => ์ž๋™์™„์„ฑ ๋„๊ธฐ

๋ฌธ์ œ์ƒํ™ฉ ํ˜„์žฌ Vue.js ๋ฅผ VSCode ๋กœ ๊ณต๋ถ€ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, $event => volar.inlayHints.eventArgumentInInlineHanders":false to hide Event Argument in Inline Handers ์ด๊ฒŒ ๋œจ๋Š”๊ฑฐ์ž„!!! ๋‚˜๋„ event ์ธ์ค„ ์•ˆ๋‹ค๊ณ ! ๊ทธ๋ž˜์„œ ์ด๊ฑธ ๋„๊ธฐ์œ„ํ•ด์„œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• Mac ๊ธฐ์ค€์œผ๋กœ Perferences > Settting ๋“ค์–ด๊ฐ€๊ณ , (Window ๋„ ๋น„์Šทํ• ๊ฒจ) ๊ฒ€์ƒ‰์ฐฝ์— inlayHint ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•˜๋‹จ์˜ ๋…ธ๋ž€ ๋ฐ•์Šค ๋ถ€๋ถ„ off๋กœ ๋ฐ”๊พธ๋ฉด ๋! ํ•ด๊ฒฐ

[Eric's CS] OpenAPI vs Open API ? ๋‹ค๋ฅธ๊ฑฐ์•ผ? ๐Ÿง

โœ… Abstract ์š”์ฆ˜ API๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐ ํ˜‘์—…์— ์žˆ์–ด์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ์ข…์ข… "OpenAPI"์™€ "Open API"๋ผ๋Š” ์šฉ์–ด๋ฅผ ๋“ฃ๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋‘˜์€ ์„œ๋กœ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” OpenAPI์™€ Open API์˜ ์ฐจ์ด์ ์„ ์•Œ์•„๋ณด๊ณ , ๊ฐ๊ฐ์ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1๏ธโƒฃ OpenAPI OpenAPI๋Š” RESTful API ๋ช…์„ธ๋ฅผ ๊ธฐ์ˆ ํ•˜๊ณ  ๋ฌธ์„œํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. OpenAPI Specification(OAS)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ์ฒ˜์Œ์—๋Š” Swagger Specification์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…์„ธ๋Š” API์˜ ์—”๋“œํฌ์ธํŠธ, ์š”์ฒญ/์‘๋‹ต ํ˜•์‹, ์ธ์ฆ ๋ฐฉ์‹ ๋“ฑ API์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ JSON ๋˜๋Š” YAML ํ˜•์‹์œผ๋กœ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. Ope..