๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Web8

[OAuth 2.0] OAuth 2.0์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž! ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ค‘์— ์†Œ์…œ๋กœ๊ทธ์ธ ๊ตฌํ˜„์ด ํ•„์š”ํ•ด์„œ ์ด ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ฒ˜์Œ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.๊ทธ๋ƒฅ ๋ฌดํ„ฑ๋Œ€๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๋ณด๋‹ค, ์–˜๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ์ง€์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค. OAuth 2.0์€ ๋ฌด์—‡์ธ๊ฐ€?์ผ๋‹จ, ์–˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค.OAuth 2.0์˜ ๊ณต์‹๋ฌธ์„œ ์ฒซ ๋ฌธ๋‹จ์— ์†Œ๊ฐœ๊ฐ€ ๋‚˜์™€์žˆ๋‹ค.OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living ro.. 2022. 1. 4.
[VanillaJS] map๊ณผ forEach JS์—์„œ array์˜ ๊ฐ ์›์†Œ์— ๋Œ€ํ•ด ๊ฐ™์€ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ์„ ๋•Œ, for๋ฌธ ๋Œ€์‹ ์— Array.prototype.map()์ด๋‚˜ Array.prototype.forEach()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘ ํ•จ์ˆ˜์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? MDN ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด์ž. map() : ๋ฐฐ์—ด ๋‚ด์˜ ๋ชจ๋“  ์›์†Œ ๊ฐ๊ฐ์— ๋Œ€ํ•˜์—ฌ ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ * ๊ธฐ์กด ๋ฐฐ์—ด์˜ ์›์†Œ๋“ค๋กœ ์ž‘์—…์„ ์™„๋ฃŒํ•œ ๋’ค ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฌผ๋“ค์„ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ returnํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. * ๋”ฐ๋ผ์„œ map์˜ ์šฉ๋„๋ฅผ ์ œ๋Œ€๋กœ ์‚ด๋ฆฌ๋ ค๋ฉด callback ํ•จ์ˆ˜ ๋‚ด์— return ๊ตฌ๋ฌธ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. forEach() : ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์—ด ์š”์†Œ ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์‹คํ–‰ * forEach()๋Š” ๋ฐฐ์—ด์„ ๋ณ€ํ˜•ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ callbac.. 2021. 10. 1.
[Postman] request์† cookie undefined error ํ•ด๊ฒฐ login api ์—์„œ cookie๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ณ , ๋‹ค๋ฅธ api๋ฅผ ๋ณด๋‚ผ ๋•Œ ํ•ด๋‹น cookie ๊ฐ’์„ ์ฝ์–ด์„œ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. cookie๋ฅผ ์„ค์ •ํ•˜๋Š” api๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ response ๋˜์—ˆ์Œ์—๋„ cookie ํƒญ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ, cookie ์„ค์ •์ด ์•ˆ๋˜์—ˆ๋‚˜ ํ–ˆ๋Š”๋ฐ postman cookie๊ด€๋ จ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋‹ˆ๊นŒ ์•„๋ž˜ ์‚ฌ์ง„์—์„œ Cookie๋ฅผ ํด๋ฆญํ•˜๋ผ๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค! ์ฟ ํ‚ค๊ฐ€ ์„ค์ •์ด ๋˜์—ˆ๊ตฌ๋‚˜ ํ•˜๊ณ , ๋‹ค๋ฅธ api๋ฅผ ๋ณด๋ƒˆ๋Š”๋ฐ req.cookies๊ฐ€ undefined๋ผ์„œ error๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. [ํ•ด๊ฒฐ๋ฐฉ์•ˆ] ์•„๋ž˜ ์‚ฌ์ง„์—์„œ hidden ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ์ˆจ๊ฒจ์ ธ์žˆ๋˜ ์ •๋ณด๋“ค์ด ๋“ฑ์žฅํ•œ๋‹ค. ์—ฌ๊ธฐ ์•ˆ์— Cookie๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— req.cookies๊ฐ€ undefined์˜€๋˜ ๊ฒƒ์ด๋‹ค! postman์—.. 2021. 8. 27.
[VanillaJS] ๊ฐ์ฒด ์ •๋ ฌ ์–ด๋–ป๊ฒŒ ํ•˜์ง€? (feat. ๋ฌธ์ž์—ด) ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ๋Š”, Array.sort() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ •๋ ฌํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๊ฐ์ฒด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ sort()๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ, ๋‚ด๋ถ€์— compareFunction์„ ์ •์˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ageํ•„๋“œ๋ฅผ ๊ฐ€์ง„ ์•„๋ž˜ ๊ฐ์ฒด ๋ฐฐ์—ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค. let objs = [ {age: 13}, {age: 43}, {age: 9}, {age: 40} ]; objs.sort(function(a,b) { // ์˜ค๋ฆ„์ฐจ์ˆœ return a.age - b.age; }); objs.sort(function(a,b) { // ๋‚ด๋ฆผ์ฐจ์ˆœ return b.age - a.age; }); C++๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š”, compareFunction์„ ์ •์˜ํ•  ๋•Œ, booleanํ˜•์‹์œผ๋กœ .. 2021. 8. 23.
[nodejs-react]Server-Client ํ†ต์‹  ์‹œ ๋ฌดํ•œ ํ˜ธ์ถœ ํ•ด๊ฒฐ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ : client๊ฐ€ ํŽ˜์ด์ง€์— ์ ‘์†ํ–ˆ์„ ๋•Œ, server๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ (initial data) ์ฝ”๋“œ: server.js ์ผ๋ถ€ app.use('/api', (req, res)=> mdbConn.getToDoList() .then((rows) => { console.log("in server.js",rows); res.json({initialTodos:rows}); }) .catch((errMsg) => { console.log(errMsg); }) ); App.js ์ผ๋ถ€ (client) function App() { const [state, setState] = useState({ //username: null initalList: null }); useEffect(() => { fe.. 2021. 3. 1.
[Node.js] ์„œ๋ฒ„ ์ƒ์„ฑ ์ฐธ๊ณ ํ•œ ๋งํฌ www.zerocho.com/category/NodeJS/post/57774a8eacbd2e9803de0195 ๊ณผ์ • 1 * ์ด์ „์—, node.js๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•จ. 1. ์›ํ•˜๋Š” ํด๋”์— server.js ํŒŒ์ผ ์ƒ์„ฑ 2. ํŒŒ์ผ ์•ˆ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑ const http = require('http'); // ์„œ๋ฒ„ ๋งŒ๋“œ๋Š” ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ http.createServer((request, response) => { // ์„œ๋ฒ„ ์ƒ์„ฑ ๋ฉ”์†Œ๋“œ console.log('server start!'); }).listen(8080); 3. cmd ์‹คํ–‰ 4. server.js๊ฐ€ ์œ„์น˜ํ•œ ํด๋”๋กœ ์ด๋™ 5. node server.js ๋ช…๋ น์–ด ์ž…๋ ฅ 6. http://localhost:8080 ์ ‘์† ๊ฒฐ๊ณผ 1 server.. 2021. 1. 26.
[JavaScript] ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๊ธฐ์กด์— ์„ค์น˜๋˜์–ด ์žˆ๋˜ vs code๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค. html ์‹คํ–‰์€ chrome ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค. ์ด ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜์˜€๋‹ค. qzqz.tistory.com/422 [JavaScript] ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • (Visual Studio Code ์„ค์น˜ / ๋””๋ฒ„๊น… ์„ธํŒ…) ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์—๋””ํ„ฐ๋Š” Visual Studio Code๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์—๋””ํ„ฐ๊ฐ€ ์š”์ฆ˜ ๊ธ‰๋ถ€์ƒํ•˜๊ณ  ์žˆ๊ธฐ์— ์‚ฌ์šฉ์„ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. https://code.visualstudio.com Visual Studio Code - Code Editing. Redefined Visual.. qzqz.tistory.com ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์—์„œ html ์ž๋™์™„์„ฑ์ด ๋˜์ง€ ์•Š์•„ ์•„๋ž˜ ๋‘๊ฐœ์˜ ๊ณผ์ •์„ ๋” ๊ฑฐ์ณค๋‹ค. 'HTML Snippets' exten.. 2020. 12. 28.
[CSS] ๊ฐœ์š” CSS? Cascading Style Sheets์˜ ์•ฝ์ž๋กœ, HTML์—์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ๊พธ๋ฏธ๋Š” ๋ถ€๋ถ„์„ ์ •์˜ํ•˜๋Š” ์Šคํƒ€์ผ ์‹œํŠธ ์–ธ์–ด์ด๋ฉฐ, ์›น ํŽ˜์ด์ง€๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. HTML4๋ถ€ํ„ฐ ๋ชจ๋“  ์„œ์‹ ์„ค์ •์„ HTML ๋ฌธ์„œ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? HTML์„ ์ด์šฉํ•ด ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ, ๊ฐ ์„ธ๋ถ€ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์ผ์ผ์ด ๋”ฐ๋กœ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ถ”ํ›„ ์ˆ˜์ • ๋ฐ ์œ ์ง€๋ณด์ˆ˜๋„ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ๋”ฐ๋ผ์„œ ์›น ํŽ˜์ด์ง€์˜ ์Šคํƒ€์ผ์„ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์–ด ํŽธ๋ฆฌํ•˜๋‹ค. ์‚ฌ์šฉ๋ฒ• CSS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€์ด๋ฉฐ, ๋ฌธ๋ฒ•์€ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋œ๋‹ค. 1. HTML ํƒœ๊ทธ์˜ style ์†์„ฑ This is heading 2. HTML๋ฌธ์„œ ๋‚ด์˜ ํƒœ๊ทธ ํƒœ๊ทธ.. 2020. 12. 17.
๋ฐ˜์‘ํ˜•