๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (165)

Today, I will

[์Šคํ”„๋ง๋ถ€ํŠธ] ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ JPA๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹ค๋ฃจ๊ธฐ

*์ด๋™์šฑ ์ €, ์Šคํ”„๋ง๋ถ€ํŠธ์™€ aws๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น์„œ๋น„์Šค๋ฅผ ํ•™์Šตํ•˜๋ฉด์„œ ์ž‘์„ฑํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. 1. SQL ๋ณด๋‹ค ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋ฐœ : JPA ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋”์šฑ ์ง‘์ค‘ํ•˜๊ธฐ ์œ„ํ•ด JPA๋ผ๋Š” ์ž๋ฐ” ํ‘œ์ค€ ORM ๊ธฐ์ˆ ์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ์ฑ•ํ„ฐ์—์„œ๋Š” JPA๋ฅผ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณด๋„๋ก ํ•œ๋‹ค. ๋งŽ์€ ์ž์‚ฌ ์„œ๋น„์Šค ๊ธฐ์—…์ด SpringBoot & JPA๋ฅผ ์ „์‚ฌ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. 2. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„ ๋ถˆ์ผ์น˜ ํ˜„๋Œ€์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB, Relational Database)๋Š” ๋น ์งˆ ์ˆ˜ ์—†๋Š” ์š”์†Œ. ๊ฐ์ฒด๋ฅผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•˜๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ณ„์†ํ•ด์„œ ์›น ์„œ๋น„์Šค์˜ ์ค‘์‹ฌ์ด ๋˜๋ฉด์„œ ๋ชจ๋“ ..

[MySQL] ์›Œํฌ๋ฐด์น˜์—์„œ Schemas์™€ Table ๋งŒ๋“ค๊ธฐ

1. Schemas ๋งŒ๋“ค๊ธฐ Schemas๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ๋ถ„์ด๋‹ค. ๊ด€๋ จ์žˆ๋Š” ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ”(์—‘์…€์˜ ํ‘œ์™€ ๊ฐ™์€ ์—ญํ• )๋ผ๋ฆฌ ๋ฌถ์–ด๋†“์€ ๋‹จ์œ„์ด๋‹ค. ์ž๋ฐ”๋‚˜ ๋…ธ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผ์„ ํ•  ๋•Œ, ์Šคํ‚ค๋งˆ ๋ณ„๋กœ ๊ถŒํ•œ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ex ) '์–ด๋–ค ์ž๋ฐ”ํ”„๋กœ๊ทธ๋žจ(์‹œ์Šคํ…œ)์€ a๋ผ๋Š” ์Šคํ‚ค๋งˆ์—๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.' ์Šคํ‚ค๋งˆ๋Š” ํ•œ ๋งˆ๋””๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹œ์Šคํ…œ ๋ณ„๋กœ ๊ตฌ๋ถ„ ์ง“๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šคํ‚ค๋งˆ ๋ณ„๋กœ ๊ด€๋ จ์žˆ๋Š” ํ…Œ์ด๋ธ”๋“ค์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. utf8๋กœ ์„ค์ • : ๋ชจ๋“  ์–ธ์–ด๋ฅผ ๋‹ค ๋‹ด์„ ์ˆ˜ ์žˆ์Œ utf8_general_ci ๋ชจ๋‘ apply ํ•ด์ฃผ๋ฉด ์Šคํ‚ค๋งˆ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. 2. ๋ฐ์ดํƒ€๋ฒ ์ด์Šค์˜ Table ์–ด๋–ค ํ…Œ์ด๋ธ”์ด ๋จผ์ € ์ƒ์„ฑ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์ƒ๊ฐ์„ ํ•˜๊ณ , ์ˆœ์ฐจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ๊ฐ€๋ น, ์ œํ’ˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ธฐ ์ „์— ์ œ..

[์Šคํ”„๋ง๋ถ€ํŠธ] ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ, ๋กฌ๋ณต, Dto

*์ด๋™์šฑ ์ €, ์Šคํ”„๋ง๋ถ€ํŠธ์™€ aws๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น์„œ๋น„์Šค๋ฅผ ํ•™์Šตํ•˜๋ฉด์„œ ์ž‘์„ฑํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. 1. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ํฐ ๊ทœ๋ชจ์˜ ์„œ๋น„์Šค์—์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ž‘์„ฑ์€ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์ด์ž ์Šต๊ด€์ด๋‹ค. (1) TDD vs ๋‹จ์œ„ํ…Œ์ŠคํŠธ TDD๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์ฃผ๋„ํ•˜๋Š” ๊ฐœ๋ฐœ์ด๋ฏ€๋กœ, ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. red : ํ•ญ์ƒ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ  Green : ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š” ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Refactor : ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋ฉด ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋ง ๋ฐ˜๋ฉด, ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋Š” TDD์˜ ์ฒซ๋ฒˆ์จฐ ๋‹จ๊ณ„์ธ ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. TDD์™€ ๋‹ฌ๋ฆฌ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๊ผญ ๋จผ์ € ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ๊ณ , ๋ฆฌํŒฉํ† ๋ง๋„ ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ˆœ์ˆ˜ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ์ด์•ผ๊ธฐ ํ•œ๋‹ค...

[Node, Vue] ํด๋ก ์ฝ”๋”ฉ Zoom(4) socket.io๋ฅผ ์ด์šฉํ•œ ์ฑ„ํŒ…๋ฃธ ๋งŒ๋“ค๊ธฐ

* ๋…ธ๋งˆ๋“œ ์ฝ”๋”์˜ Do it! ํด๋ก ์ฝ”๋”ฉ ์คŒ ์ฑ…์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. 1. ๋“ค์–ด๊ฐ€๋ฉฐ(socket.io๋ฅผ ์ด์šฉํ•œ ์ฑ„ํŒ…๋ฃธ ๋งŒ๋“ค๊ธฐ) ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ์ด ๋ญ”์ง€ ์–ด๋А ์ •๋„ ๊ฐ์ด ์žกํ˜”์œผ๋‹ˆ, ์ด์ œ ์ด์™€ ๊ด€๋ จํ•ด ์ข€ ๋” ํŽธ๋ฆฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ ์šฉํ•ด ๋ณผ ์ฐจ๋ก€์ด๋‹ค. ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋งŽ๊ณ , ๋™์ž‘์ด ์•ˆ์ •๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ฐœ๋ฐœ ์†๋„์— ๋‚ ๊ฐœ๋ฅผ ๋‹ฌ์•„ ์ค€๋‹ค. ๋˜‘๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ ๋‹ค๊ณ  ํ•ด๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ฐ๋Š”์ง€ ์•ˆ ์“ฐ๋Š”์ง€์— ๋”ฐ๋ผ ๊ทธ ๊ณผ์ •์—์„œ ๊ฒช๋Š” ๊ฒฝํ—˜์€ ํฌ๊ฒŒ ๋‹ฌ๋ผ์งˆ ์ˆ˜๋ฐ–์— ์—†๋‹ค. socket.io๋Š” ๋“ฑ์žฅํ•œ ์ง€ ์˜ค๋ž˜๋˜์—ˆ๊ธฐ ๋–„๋ฌธ์— ์•ˆ์ •์ ์ด๊ณ  ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ์ œ๊ณตํ•œ๋‹ค. ์‹ค์‹œ๊ฐ„ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ , ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์›น์†Œ์ผ“๊ณผ ๋น„์Šทํ•œ ๋ฉด์ด ๋งŽ๊ณ , ๊ด€๋ จ์„ฑ ๋˜ํ•œ ์žˆ๋‹ค. 2. socket.io..

Node 2023. 5. 28. 04:57
[Node, Vue] ํด๋ก ์ฝ”๋”ฉ Zoom(3) ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์™„์„ฑํ•˜๊ธฐ

* ๋…ธ๋งˆ๋“œ ์ฝ”๋”์˜ Do it! ํด๋ก ์ฝ”๋”ฉ ์คŒ ์ฑ…์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. 1. ๋“ค์–ด๊ฐ€๋ฉฐ(์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์™„์„ฑํ•˜๊ธฐ) ๋‹จ์ˆœํžˆ ์„œ๋ฒ„์™€ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ฝํžˆ๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ๊ทธ๊ฒƒ์„ ์ฑ„ํŒ… ์•ฑ์ด๋ผ๊ณ  ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ์‹ค์ œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›์•„ ๊ฐ€๋ฉด์„œ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด๋„๋ก ํ•œ๋‹ค. ์‚ฌ์šฉ์ž ์—ฌ๋ ค ๋ช…์ด ๋ฉ”์‹œ์ง€๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•ด ๋ณด๋‚ด๊ฑฐ๋‚˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์‚ฌ๋žŒ์˜ ๋ณ„๋ช…์„ ์„ค์ •ํ•ด ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ๋Šฅ๊นŒ์ง€๋„ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•œ๋‹ค. 2. ์ฑ„ํŒ… ๊ธฐ๋Šฅ ์ค€๋น„ํ•˜๊ธฐ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— ์ž…๋ ฅ ํ•„๋“œ์™€ ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ๋ฐ”๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋ณธ๋‹ค. (1) ์›น ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋ทฐ ์—”์ง„ pug๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งŒ๋“  html๋ฌธ์„œ, home.pug๋ฅผ ์ˆ˜์ •ํ•ด ์ž…๋ ฅ ํผ(์–‘์‹)๊ณผ ๋ฉ”์‹œ..

Node 2023. 5. 26. 05:04
[Node, Vue] ํด๋ก ์ฝ”๋”ฉ Zoom(2) ์›น์†Œ์ผ“์„ ์ด์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๊ธฐ๋Šฅ ์„ธํŒ…

* ๋…ธ๋งˆ๋“œ ์ฝ”๋”์˜ Do it! ํด๋ก ์ฝ”๋”ฉ ์คŒ ์ฑ…์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. 1. ๋“ค์–ด๊ฐ€๋ฉฐ(์›น์†Œ์ผ“์„ ์ด์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ) Zoom์€ ํ™”์ƒ ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ์ด ํ•ต์‹ฌ์ด๋‹ค. ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์›น์†Œ์ผ“์ด๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์ฒ˜์Œ์—๋Š” ์ต๋ช…์œผ๋กœ ์ฑ„ํŒ…์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ , ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹‰๋„ค์ž„์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ฑ„ํŒ…๋ฃธ์˜ ์ปจ์…‰์„ ์žก๋Š” ์ˆœ์„œ๋กœ ์ž‘์—…์ด ์ง„ํ–‰๋  ๊ฒƒ์ด๋‹ค. 2. ์›น์†Œ์ผ“ ์„ค์น˜ํ•˜๊ณ  ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ (1) ws ํŒจํ‚ค์ง€ ์„ค์น˜ ์„œ๋ฒ„๊ฐ€ ์›น์†Œ์ผ“ ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ์›น์†Œ์ผ“ ๋ฐฉ์‹์˜ ๊ทœ์น™์ด๋‚˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๊ทธ ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•ด๊ฐ€๋ฉฐ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ํ•œ๋‹ค. ws๋Š” ์›น์†Œ์ผ“์˜ ๊ทœ์น™์— ๋งž๊ฒŒ ๊ตฌํ˜„ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ„ํŽธํ•˜๊ณ , ๋น ๋ฅด๊ณ , ์•ˆ..

Node 2023. 5. 26. 03:24
[Node, Vue] ํด๋ก ์ฝ”๋”ฉ Zoom(1) Node์™€ Vue ํ”„๋กœ์ ํŠธ ์„ธํŒ…

* ๋…ธ๋งˆ๋“œ ์ฝ”๋”์˜ Do it! ํด๋ก ์ฝ”๋”ฉ ์คŒ ์ฑ…์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. 1. ํ”„๋กœ์ ํŠธ ํด๋” ์ดˆ๊ธฐํ™” 1. package.json ํŒŒ์ผ ์ž๋™ ์ƒ์„ฑ npm init -y 2. package.json description ์ˆ˜์ • 3. README.md ํŒŒ์ผ ์ƒ์„ฑ 2. ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ์ค€๋น„ ์ž‘์—… 1. nodemon ์„ค์น˜ nodemon์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•ด์„œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ์‹œ์ž‘ํ•ด์ฃผ๋Š” ๋„๊ตฌ nodemon์€ ์ฝ”๋“œ๋ฅผ Node.js ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰ํ•ด์ฃผ๋Š” ๊ฒƒ์€ ๋ฌผ๋ก ์ด๊ณ  ๋ชจ๋‹ˆํ„ฐ๋ง๊นŒ์ง€ ํ•ด์ค€๋‹ค. npm i nodemon -D ๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋œ๋‹ค. -D ์˜ต์…˜์€ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์„ค์น˜ํ•˜๋Š” ํŒจํ‚ค์ง€๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. { "name": "noom", "version": "1.0.0", "descri..

Node 2023. 5. 24. 23:13
[์ž๋ฃŒ๊ตฌ์กฐ, ํŒŒ์ด์ฌ] Queue๊ณผ Stack์˜ ๊ฐœ๋…๊ณผ ๊ตฌํ˜„

1. Queue ๊ฐœ๋…๊ณผ ๊ตฌํ˜„ Queue๋Š” ์‹œ๊ฐ„ ์ˆœ์„œ์ƒ ๋จผ์ € ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์ถœ๋ ฅ๋˜๋Š” ์„ ์ž…์„ ์ถœ FIFO(First In First Out) ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. queue์˜ rear์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ enqueue๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ queue์˜ front์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ๊ฒƒ์„ dequeue๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋”๋ธ”๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ํŒŒ์ด์ฌ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.(์ง์ ‘ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ง€์  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.) Array list๋กœ ๊ตฌํ˜„ํ•œ ํ๋Š” ์„ ์ถœํ•  ๋•Œ, O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๊ฑธ๋ฆฌ๋ฏ€๋กœ(๋ฐฐ์—ด ๊ธธ์ด๋งŒํผ ํ•œ์นธ์”ฉ ์•ž์œผ๋กœ ๋•ก๊ฒจ์ฃผ์–ด์•ผ ํ•จ) O(1)๋กœ ์ฒ˜๋ฆฌ๊ฐ€๋Šฅํ•œ ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.(head ๊ฐ’๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋จ) class Node: def __init_..