๋ชฉ๋กBackend๐Ÿงฑ (24)

๊ฐœ๋ฐœ์ผ์ง€

[๋„์ปค(Docker)] ๋„์ปค๋Š” ๋ญ๊ณ , ์™œ ๋ฐฐ์šฐ๋Š”๊ฑธ๊นŒ? ๋„์ปค, ์ปจํ…Œ์ด๋„ˆ, ์ด๋ฏธ์ง€

[์ฐธ๊ณ  ๊ฐ•์˜]https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84/dashboard ๋น„์ „๊ณต์ž๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” Docker ์ž…๋ฌธ/์‹ค์ „ ๊ฐ•์˜ | JSCODE ๋ฐ•์žฌ์„ฑ - ์ธํ”„๋ŸฐJSCODE ๋ฐ•์žฌ์„ฑ | , ๐Ÿคฌ ์—๋ผ์ด, ๋ชป ํ•ด๋จน๊ฒ ๋„ค!๋น„์ „๊ณต์ž๋กœ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•ด ์—ฌ๋Ÿฌ ํšŒ์‚ฌ์—์„œ CTO๋กœ ํ™œ๋™ํ•˜๋‹ค๊ฐ€, ํ˜„์žฌ๋Š” ๊ต์œก์ž๋กœ ํ™œ๋™ํ•˜๊ณ  ์žˆ๋Š” ๋ฐ•์žฌ์„ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ €๋„ ๋น„์ „๊ณต์ž๋กœ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•ด ์„œ๋ฒ„www.inflearn.com 1. ๋„์ปค๋Š” ์™œ ๋ฐฐ์šฐ๋Š” ๊ฑธ๊นŒ?์—ฌ๋Ÿฌ ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ํ•ต์‹ฌ ์žฅ์  ํ•œ ๊ฐ€์ง€๋งŒ ๊ผฝ์ž๋ฉด์ด์‹์„ฑ : ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์‰ฝ๊ฒŒ ์˜ฎ๊ฒจ์„œ ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ ..

[CS ๊ธฐ๋ณธ] - DB ์ธ๋ฑ์Šค(DB index)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ , ์ฃผ์˜ ์‚ฌํ•ญ

์ฐธ๊ณ  ์˜์ƒhttps://www.youtube.com/watch?v=IMDH4iAQ6zM  1. ์ธ๋ฑ์Šค ์“ฐ๋Š” ์ด์œ 2. ์ธ๋ฑ์Šค ์‚ฌ์šฉ๋ฒ•3. ์ธ๋ฑ์Šค ๋™์ž‘ ๋ฐฉ์‹4. ์ฃผ์˜์‚ฌํ•ญ  1. ์ธ๋ฑ์Šค ์“ฐ๋Š” ์ด์œ : ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ์„ ๋น ๋ฅด๊ฒŒ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด. ์กฐ์ธ๊ณผ ๊ทธ๋ฃนํ•‘์„ ๋” ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด. ์œ„ ์‚ฌ์ง„์—์„œ ๋ณด๋ฉด, ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด๋ฌธ์— ์žˆ๋Š” first_name์ปฌ๋Ÿผ์— index๊ฐ€ ์—†๋‹ค๋ฉด O(N)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.ํ•ด๋‹น ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ๋ฉด, O(logN)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. ์ด๋Š” ๋น„์•ฝ์ ์ธ ์‹œ๊ฐ„ ๊ฐ์†Œ์ด๋‹ค.  2. ์ธ๋ฑ์Šค ์‚ฌ์šฉ๋ฒ•2-1. ์ธ๋ฑ์Šค ์ƒ์„ฑ:1) ์ฟผ๋ฆฌ๋กœ ์ƒ์„ฑCREATE INDEX INDEX์ด๋ฆ„ ON ํ…Œ์ด๋ธ”์ด๋ฆ„(์ปฌ๋Ÿผ๋ช…)ex) CREATE INDEX idx_first_name ON CUSTOMER(first_name) 2) ํ…Œ์ด๋ธ” ์ƒ..

Backend๐Ÿงฑ/CS 2025. 3. 26. 23:53
[CS ๊ธฐ๋ณธ] - cpu bound, io bound์™€ ์Šค๋ ˆ๋“œ ๊ฐœ์ˆ˜

์ฐธ๊ณ  ์˜์ƒhttps://www.youtube.com/watch?v=qnVKEwjG_gM&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=8  ๊ธฐ๋ณธ ์šฉ์–ด์ •๋ฆฌCPU: ํ”„๋กœ์„ธ์Šค์˜ ๋ช…๋ น์–ด๋“ค์„ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์žฅ์น˜IO: ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ์˜ ์–ด๋”˜๊ฐ€์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ. ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ฑฐ๋‚˜ ๋ฐ›๋Š” ๊ฒƒ. ๋ฒ„์ŠคํŠธ: ์–ด๋–ค ํ˜„์ƒ์ด ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ์ง‘์ค‘์ ์œผ๋กœ ์ผ์–ด๋‚˜๋Š” ์ผ- CPU ๋ฒ„์ŠคํŠธ: ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU์—์„œ ํ•œ ๋ฒˆ์— ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์‹œ๊ฐ„- I/O ๋ฒ„์ŠคํŠธ: ํ”„๋กœ์„ธ์Šค๊ฐ€ IO์ž‘์—…์„ ์š”์ฒญํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„=> ํ”„๋กœ์„ธ์Šค ์ธ์ƒ์€ CPU ๋ฒ„์ŠคํŠธ์™€ IO๋ฒ„์ŠคํŠธ์˜ ์—ฐ์†์ด๋‹ค CPU๋ฐ”์šด๋“œ ํ”„๋กœ์„ธ์Šค: CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ๋งŽ์€ ํ”„๋กœ์„ธ์Šค. ex) ๋™์˜์ƒ ํŽธ์ง‘ ํ”„๋กœ๊ทธ๋žจ, ๋จธ์‹ ๋Ÿฌ๋‹..

Backend๐Ÿงฑ/CS 2025. 3. 25. 22:50
[CS ๊ธฐ๋ณธ] - ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ, ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ, ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ ์šฉ์–ด์ •

์ฐธ๊ณ ์˜์ƒ https://www.youtube.com/watch?v=QmtYKZC0lMU&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=6   ๊ธฐ๋ณธ ์šฉ์–ด์ •๋ฆฌํ”„๋กœ๊ทธ๋žจ: ์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋“ค์˜ ์ง‘ํ•ฉ ํ”„๋กœ์„ธ์Šค: ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ. ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์Œ. CPU: ๋ช…๋ น์–ด๋“ค์„ ์‹คํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์žฅ์น˜ ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ: ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU์—์„œ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ๊ณณ. ๋””์Šคํฌ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์˜ฌ๋ผ์˜ค๊ณ , ๋‚ด๋ ค๊ฐ„๋‹ค.IO: ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ์˜ ์–ด๋”˜๊ฐ€์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ. ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ฑฐ๋‚˜ ๋ฐ›๋Š” ๊ฒƒ. ์Šค๋ ˆ๋“œ: CPU์—์„œ ์‹คํ–‰๋˜๋Š” ๋‹จ์œ„  ํ”„๋กœ์„ธ์‹ฑ์˜ ๋ฐœ์ „ ๊ณผ์ •1. ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค: ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ๋งŒ ์‹คํ–‰ 2. ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ..

Backend๐Ÿงฑ/CS 2025. 3. 24. 23:45
[CS ๊ธฐ๋ณธ] - ๋ณ€์ˆ˜์™€ ๊ฐ์ฒด์™€ แ„†แ…ฆแ„†แ…ฉแ„…แ…ต์˜ ๊ด€๊ณ„(์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ, ํž™ ๋ฉ”๋ชจ๋ฆฌ)

์ฐธ๊ณ ์˜์ƒhttps://www.youtube.com/watch?v=GIsr_r8XztQ&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=4    ๋ฉ”๋ชจ๋ฆฌ ์ข…๋ฅ˜์—๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์™€ ํž™ ๋ฉ”๋ชจ๋ฆฌ. ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ•จ์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ์˜ ์ง€์—ญ๋ฒˆ์ˆ˜, ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์Šคํƒํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ Ctrl+z๋ฅผ ๋ˆŒ๋Ÿฌ ์‹คํ–‰์„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋„, ์Šคํƒ์— ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—…ํ•œ ๋‚ด์šฉ๋“ค์ด ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์—ฌ์žˆ๊ธฐ ๋Œ€๋ฌธ์ด๋‹ค. ํž™ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋œ๋‹ค. ์ ์–ด๋„ java์—์„œ๋Š” ๊ทธ๋ ‡๋‹ค. ์œ„์˜ ์ด๋ฏธ์ง€์—์„œ ๋ณด๋ฉด ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•จ์— ๋”ฐ๋ผ ๋ณ€์ˆ˜์™€ ๊ฐ์ฒด๋“ค์ด ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค. ๊ฐ์ฒด๋Š” heap๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค. ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋†“๊ณ  ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”..

Backend๐Ÿงฑ/CS 2025. 3. 23. 23:39
[Java] ArrayList ์ƒ์„ฑ์ž์™€ Map ์˜ Collection View

๊น€์˜ํ•œ ๊ฐ•์‚ฌ๋‹˜์˜ Spring ๊ฐ•์˜๋ฅผ ๋“ฃ๋‹ค๊ฐ€,@Overridepublic List findAll() { return new ArrayList(store.values());} ArrayList ์ƒ์„ฑ์ž ํŒŒ๋ผ๋ฏธํ„ฐ์— HashMap ์˜ค๋ธŒ์ ํŠธ์˜ values()๊ฐ€ ์žˆ๋‹ค. ์˜ˆ์ „๋ถ€ํ„ฐ ArrayList ์ƒ์„ฑ์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ด๊ฒƒ ์ €๊ฒƒ ๋„ฃ์–ด์คฌ์„ ๋•Œ ์•ˆ๋๋˜ ๊ธฐ์–ต์ด ๋งค์šฐ ๋งŽ๋‹ค.(ํŒŒ์ด์ฌ์„ ์“ฐ๋˜ ๋ฒ„๋ฆ‡ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ €๊ฒƒ ๋„ฃ์–ด๋ดค๋‹ค...) ๊ทธ๋Ÿฐ๋ฐ ์˜์™ธ๋กœ ํ•ด์‰ฌ๋งต์˜ values()๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„๋ณด๊ณ , ๊ทธ๊ฒŒ ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ๊ฑด์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ArrayList ์ƒ์„ฑ์ž ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค๋„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.  A. ๊ฒฐ๋ก ์€?ArrayList๋Š” ์ƒ์„ฑ ์‹œ Collection์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š”๋‹ค. ArrayListํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ๋ณด๋ฉด, ํŒŒ๋ผ..

Backend๐Ÿงฑ/Java 2024. 11. 24. 12:25