๊ฐœ๋ฐœ ๊ณต๋ถ€ 145

[OS] ์šด์˜์ฒด์ œ(Operating System)๋ž€?

์šด์˜์ฒด์ œ๋ž€? ๐Ÿ’ก ์šด์˜์ฒด์ œ๋ž€? ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ•  ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ ์ œ๊ณต ์‹œ์Šคํ…œ์˜ ์ž์›๊ณผ ๋™์ž‘์„ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๐Ÿ’ก ์šด์˜์ฒด์ œ์™€ ๊ด€๋ จ๋œ ๊ธฐ๋ณธ ์šฉ์–ด ํ”„๋กœ๊ทธ๋žจ(Program) : ์ปดํ“จํ„ฐ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ์ผ๋ จ์˜ ๋ช…๋ น์–ด ๋ชจ์Œ ํ”„๋กœ์„ธ์Šค(Process) : ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ถ”์ƒํ™” ์ฃผ์†Œ ๊ณต๊ฐ„(Address Space) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ์„œ๋กœ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์€ ์นจ๋ฒ”ํ•  ์ˆ˜ ์—†์Œ(Protection Domain) ํŒŒ์ผ(File) : ํ”„๋กœ์„ธ์Šค์—์„œ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋Š” persistent storage ํฌํŠธ(Port) : ์ปดํ“จํ„ฐ ๊ฐ„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” communication e..

CS 2021.10.16

[OS] ํ”„๋กœ์„ธ์Šค(Process) vs ์Šค๋ ˆ๋“œ(Thread)

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด ๐Ÿ’ก ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด CPU์˜ ํ• ๋‹น์„ ๋ฐ›๋Š” ์ž‘์—…์˜ ๋‹จ์œ„ ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹น ๋ฐ›์Œ - CPU ์‹œ๊ฐ„, ์ฃผ์†Œ ๊ณต๊ฐ„, ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(์ฃผ์†Œ ๊ณต๊ฐ„)์€ [Code, Data, Stack, Heap]์œผ๋กœ ๊ตฌ์„ฑ๋จ - Code: ์ฝ”๋“œ ์ž์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น) - Data: ์ „์—ญ ๋ณ€์ˆ˜, ์ •์  ๋ณ€์ˆ˜ ๋“ฑ - Stack: ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฆฌํ„ด ๊ฐ’(์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ) - Heap: ๋™์  ํ• ๋‹น ์˜์—ญ(new(), mallloc() ๋“ฑ) ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๋ณ€์ˆ˜๋‚˜ ์ž๋ฃŒ๊ตฌ์กฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ -> IPC ํ†ต์‹ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•จ ex) ํŒŒ์ดํ”„, ํŒŒ์ผ, ์†Œ์ผ“ ๋“ฑ์„ ์ด์šฉ ๐Ÿ’ก ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก(Process Co..

CS 2021.10.12

[์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ(Tree) ์ž๋ฃŒ๊ตฌ์กฐ

๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ ๋“ฑ์€ ์ž๋ฃŒ๋“ค์ด ์ง์„ ๊ณผ ๊ฐ™์ด ๋‚˜์—ด๋˜์–ด ์žˆ๋Š” ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ(linear data structure)์ด๋‹ค. ์ด๋Ÿฐ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ์— ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค. ํŠธ๋ฆฌ(tree)๋Š” ์กฐ์ƒ๊ณผ ์ž์†, ์ „์ฒด์™€ ๋ถ€๋ถ„, ์ปดํ“จํ„ฐ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ ๋“ฑ์˜ ๊ณ„์ธต์ ์ธ ์ž๋ฃŒ๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ด์šฉ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํŠธ๋ฆฌ(Tree) ์ž๋ฃŒ๊ตฌ์กฐ ๐Ÿ’ก ํŠธ๋ฆฌ์™€ ๊ด€๋ จ๋œ ์šฉ์–ด ๋…ธ๋“œ(node): ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ ์š”์†Œ ๋ฃจํŠธ(root) ๋…ธ๋“œ: ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ ๊ฐ€์žฅ ๋†’์€ ๊ณณ์— ์žˆ๋Š” ๋…ธ๋“œ ์„œ๋ธŒ ํŠธ๋ฆฌ(subtree): ํŠธ๋ฆฌ์—์„œ ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋…ธ๋“œ๋“ค ๊ฐ„์„ (edge): ๋ฃจํŠธ์™€ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„  ๋‹จ๋ง ๋…ธ๋“œ(terminal node/leaf node): ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š” ๋…ธ๋“œ ๋น„๋‹จ๋ง ๋…ธ๋“œ(nonterminal node): ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ..

CS 2021.10.02

[์ž๋ฃŒ๊ตฌ์กฐ] ํž™(heap) ์ž๋ฃŒ๊ตฌ์กฐ

ํž™์€ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํž™์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์—, ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ •์˜์™€ ํŠน์ง•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ดค๋‹ค. ์šฐ์„ ์ˆœ์œ„์˜ ๊ฐœ๋…์„ ํ์— ๋„์ž…ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋“ค์ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ, ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด, OS์—์„œ ์ž‘์—…์˜ ์Šค์ผ€์ฅด๋ง ๋“ฑ์— ์‚ฌ์šฉ๋จ ๋ฐฐ์—ด, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ํž™์œผ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํž™์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ์œจ์  ์šฐ์„  ์ˆœ์œ„ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์‚ฝ์ž… ์‹œ๊ฐ„ ๋ณต์žก๋„ ์‚ญ์ œ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ˆœ์„œ ์—†๋Š” ๋ฐฐ์—ด O(1) O(N) ์ˆœ์„œ ์—†๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ O(1) O(N) ์ •๋ ฌ๋œ ๋ฐฐ์—ด O(N) O(1) ์ •๋ ฌ๋œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ O(N) O(1) ํž™(heap) O(logN) O(logN) ํž™(heap) ์ž๋ฃŒ๊ตฌ์กฐ ๐Ÿ’ก ํž™(heap)์ด๋ž€? ์™„์ „ ์ด์ง„ ..

CS 2021.09.30

[WEB] HTTP ์ƒํƒœ ์ฝ”๋“œ

HTTP ์ƒํƒœ ์ฝ”๋“œ ๐Ÿ’ก HTTP ์ƒํƒœ ์ฝ”๋“œ HTTP ์ƒํƒœ ์ฝ”๋“œ๋Š” 3์ž๋ฆฌ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ 5๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž์— ๋Œ€ํ•œ 5๊ฐ€์ง€ ๋ถ„๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1xx (์ •๋ณด): ์š”์ฒญ์„ ๋ฐ›์•˜์œผ๋ฉฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์†ํ•œ๋‹ค. 2xx (์„ฑ๊ณต): ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋ฐ›์•˜์œผ๋ฉฐ ์ธ์‹ํ–ˆ๊ณ  ์ˆ˜์šฉํ•˜์˜€๋‹ค. 3xx (๋ฆฌ๋‹ค์ด๋ ‰์…˜): ์š”์ฒญ ์™„๋ฃŒ๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€ ์ž‘์—… ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 4xx (ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜): ์š”์ฒญ์˜ ๋ฌธ๋ฒ•์ด ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค. 5xx (์„œ๋ฒ„ ์˜ค๋ฅ˜): ์„œ๋ฒ„๊ฐ€ ๋ช…๋ฐฑํžˆ ์œ ํšจํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์ถฉ์กฑ์„ ์‹คํŒจํ–ˆ๋‹ค. ๐Ÿ’ก 1xx (์กฐ๊ฑด๋ถ€ ์‘๋‹ต) ์š”์ฒญ์„ ๋ฐ›์•˜์œผ๋ฉฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์†ํ•œ๋‹ค. HTTP/1.0 ์ด๋ž˜๋กœ ์–ด๋– ํ•œ 1xx ์ƒํƒœ ์ฝ”๋“œ๋“ค๋„ ์ •์˜๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋งŒ๋‚  ์ผ์€..

CS 2021.09.28

[JPA] ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘(๋‹ค๋Œ€์ผ, ์ผ๋Œ€๋‹ค, ์ผ๋Œ€์ผ, ๋‹ค๋Œ€๋‹ค)

๊น€์˜ํ•œ๋‹˜์˜ ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. 1. ์—”ํ‹ฐํ‹ฐ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘ ๋‹ค์ค‘์„ฑ ๋‹ค๋Œ€์ผ(@ManyToOne) ์ผ๋Œ€๋‹ค(@OneToMany) ์ผ๋Œ€์ผ(@OneToOne) ๋‹ค๋Œ€๋‹ค(@ManyToMany) ๋‹จ๋ฐฉํ–ฅ, ์–‘๋ฐฉํ–ฅ ๋‹จ๋ฐฉํ–ฅ: ๊ฐ์ฒด ๊ด€๊ณ„์—์„œ ํ•œ์ชฝ๋งŒ ์ฐธ์กฐ ์–‘๋ฐฉํ–ฅ: ๊ฐ์ฒด ๊ด€๊ณ„์—์„œ ์–‘์ชฝ์ด ์„œ๋กœ ์ฐธ์กฐ ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฃผ์ธ ๋‘ ๊ฐ์ฒด ์—ฐ๊ด€๊ด€๊ณ„ ์ค‘ ์™ธ๋ž˜ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ชฝ์„ ์ฃผ์ธ์ด๋ผ ํ•จ ์™ธ๋ž˜ ํ‚ค๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘ํ•œ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ณดํ†ต ์—ฐ๊ด€๊ด€๊ณ„์˜ ์ฃผ์ธ์œผ๋กœ ์„ ํƒ ์ฃผ์ธ์ด ์•„๋‹Œ ๋ฐฉํ–ฅ์€ ์™ธ๋ž˜ ํ‚ค ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€, ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅ ์ฃผ์ธ์ด ์•„๋‹Œ ์ชฝ์€ mappedBy ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์ธ ํ•„๋“œ ์ด๋ฆ„์„ ๊ฐ’์œผ๋กœ ์ž…๋ ฅ 1. ๋‹ค๋Œ€์ผ(@ManyToOne) ๋‹ค๋Œ€์ผ ๋‹จ๋ฐฉํ–ฅ [N:1] ํšŒ์› ์—”ํ‹ฐํ‹ฐ @Entity public class Membe..

Server/SpringBoot 2021.08.25

[์ฑ… ๋ฆฌ๋ทฐ] ์˜ค๋Š˜, ๋˜ ์ผ์„ ๋ฏธ๋ฃจ๊ณ  ๋ง์•˜๋‹ค - ๋งˆ๊ฐ์ผ์„ ์ง€ํ‚ค๋ ค๊ณ  ํ•˜๋ฉด ์ง€ํ‚ฌ ์ˆ˜ ์—†๋‹ค

์ œ๋ชฉ๋ถ€ํ„ฐ ์—„์ฒญ๋‚œ ๊ณต๊ฐ์„ ์ผ์œผํ‚จ ์ฑ…์ด๋‹ค๐Ÿ˜ญ ํŠนํžˆ ๊ณ„ํš๋œ ์ผ์„ ๋‹ค ํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ŠคํŠธ๋ ˆ์Šค๋ฐ›๋Š” ๋‚˜์—๊ฒ ์ •๋ง ๋ผˆ๋ฅผ ๋•Œ๋ฆฌ๋Š” ์ œ๋ชฉ์ด๋‹ค. ์š”์ฆ˜ ๊ณ„ํš์„ ์„ธ์šฐ๋Š” ๋ฐ ์žˆ์–ด ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ•˜๋‹ค๊ฐ€ ์Šค์ผ€์ค„๋Ÿฌ ์“ฐ๋Š” ๋ฐฉ์‹์„ To-Do list์—์„œ Done list๋กœ ๋ฐ”๊พธ๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ, ๊ณผ์—ฐ ์ด ์ฑ…์„ ์“ด (๊ต‰์žฅํ•œ) ๊ฐœ๋ฐœ์ž๋‹˜์€ ์‹œ๊ฐ„ ๊ด€๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ด์„œ ์ฝ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ณ„ํš๋งŒ ์„ธ์šฐ์ง€ ๋ง๊ณ  ์‹คํ–‰์„ ํ•˜์ž! "์•„๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค. ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์˜์š•๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค. ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค. " ํœดํ•™ํ–ˆ์„ ์‹œ์ ˆ์— ๋‚˜์—๊ฒŒ ๋งค์šฐ ๋งค์šฐ ํ•ด์ฃผ๊ณ  ์‹ถ์€ ๋ง์ด๋‹ค. ํœดํ•™์„ ํ•˜๋ฉด ์‹œ๊ฐ„์ด ๋„˜์ณ๋‚  ๊ฑฐ๋ผ ์ƒ๊ฐํ•˜๊ณ (์‹ค์ œ๋กœ ์–ด๋Š ์ •๋„๋Š” ๋งž๋Š” ๊ฒƒ ๊ฐ™๋‹ค) ์ด๊ฒƒ์ €๊ฒƒ ํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ ๋นก์„ผ ๊ณ„ํš์„ ์„ธ์› ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ ๊ทธ์ค‘์— 50ํผ๋„ ์ œ๋Œ€๋กœ ๋ชปํ–ˆ๋‹ค. ์˜์š•๋งŒ ๋งŒ๋•…์ด์–ด..

Review/Book 2021.07.27

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / PythonํŒŒ์ด์ฌ] ์ž๋ฌผ์‡ ์™€ ์—ด์‡ 

๋ฌธ์ œ ๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/60059 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž๋ฌผ์‡ ์™€ ์—ด์‡  [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ๊ณ ๊ณ ํ•™์ž์ธ "ํŠœ๋ธŒ"๋Š” ๊ณ ๋Œ€ ์œ ์ ์ง€์—์„œ ๋ณด๋ฌผ๊ณผ ์œ ์ ์ด ๊ฐ€๋“ํ•  ๊ฒƒ์œผ๋กœ ์ถ”์ •๋˜๋Š” ๋น„๋ฐ€์˜ ๋ฌธ์„ ๋ฐœ๊ฒฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์„ ์—ด๋ ค๊ณ  ์‚ดํŽด๋ณด๋‹ˆ ํŠน์ดํ•œ ํ˜•ํƒœ์˜ ์ž๋ฌผ์‡ ๋กœ ์ž ๊ฒจ ์žˆ์—ˆ๊ณ  ๋ฌธ ์•ž์—๋Š” ํŠน์ดํ•œ ํ˜•ํƒœ์˜ ์—ด์‡ ์™€ ํ•จ๊ป˜ ์ž๋ฌผ์‡ ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ด ์ฃผ๋Š” ์ข…์ด๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ฒจ์žˆ๋Š” ์ž๋ฌผ์‡ ๋Š” ๊ฒฉ์ž ํ•œ ์นธ์˜ ํฌ๊ธฐ๊ฐ€ 1 x 1์ธ N x N ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž ํ˜•ํƒœ์ด๊ณ  ํŠน์ดํ•œ ๋ชจ์–‘์˜ ์—ด์‡ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / PythonํŒŒ์ด์ฌ] ๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒ

๋ฌธ์ œ ๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/42891 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒ programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… * ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์— ๋ถ€๋ถ„ ์ ์ˆ˜๊ฐ€ ์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํ‰์†Œ ์‹์š•์ด ์™•์„ฑํ•œ ๋ฌด์ง€๋Š” ์ž์‹ ์˜ ์žฌ๋Šฅ์„ ๋ฝ๋‚ด๊ณ  ์‹ถ์–ด ์กŒ๊ณ  ๊ณ ๋ฏผ ๋์— ์นด์นด์˜ค TV ๋ผ์ด๋ธŒ๋กœ ๋ฐฉ์†ก์„ ํ•˜๊ธฐ๋กœ ๋งˆ์Œ๋จน์—ˆ๋‹ค. ๊ทธ๋ƒฅ ๋จน๋ฐฉ์„ ํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฐฉ์†ก๊ณผ ์ฐจ๋ณ„์„ฑ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์ง€๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋…ํŠนํ•œ ๋ฐฉ์‹์„ ์ƒ๊ฐํ•ด๋ƒˆ๋‹ค. ํšŒ์ „ํŒ์— ๋จน์–ด์•ผ ํ•  N ๊ฐœ์˜ ์Œ์‹์ด ์žˆ๋‹ค. ๊ฐ ์Œ์‹์—๋Š” 1๋ถ€ํ„ฐ N ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด์žˆ์œผ๋ฉฐ, ๊ฐ ์Œ์‹์„ ์„ญ์ทจํ•˜๋Š”๋ฐ ์ผ์ • ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค. ๋ฌด์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์Œ์‹์„ ์„ญ์ทจํ•œ๋‹ค. ๋ฌด์ง€๋Š” 1๋ฒˆ ์Œ์‹๋ถ€ํ„ฐ ๋จน๊ธฐ ์‹œ์ž‘ํ•˜๋ฉฐ, ํšŒ์ „ํŒ์€ ๋ฒˆํ˜ธ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ..

[์›น๊ฐœ๋ฐœ์˜ ๋ด„, Spring] 5์ฃผ์ฐจ ๊ฐœ๋ฐœ์ผ์ง€ - AWS๋ฅผ ์ด์šฉํ•œ ๋ฐฐํฌ

๊ทธ๋™์•ˆ์˜ ๊ฐœ๋ฐœ์—์„œ๋Š” H2๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฅผ ์ค‘์ง€ํ•˜๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค. ๊ทธ๋ž˜์„œ AWS RDS์™€ ์„œ๋น„์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ผ์šฐ๋“œ์— ์ €์žฅํ•˜๋„๋ก ํ–ˆ๋‹ค. ๋˜ํ•œ AWS EC2๋ฅผ ์ด์šฉํ•˜์—ฌ ์ „ ์ฃผ์ฐจ์— ๋งŒ๋“ค์—ˆ๋˜ ์„ ๋ฐฐํฌํ–ˆ๋‹ค. AWS๋ฅผ ์ด์šฉํ•œ ๋ฐฐํฌ ๐Ÿ’ก RDS ์ƒ์„ฑํ•˜๊ธฐ Amazon Relational Database Service(RDS)๋ฅผ ์ด์šฉํ•˜์—ฌ ํด๋ผ์šฐ๋“œ์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์ •, ์šด์˜ํ•ด๋ณด์ž. RDS๋Š” ํ˜„์žฌ Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, SQL Server ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์„ ์ œ๊ณตํ•œ๋‹ค. ๋‚˜๋Š” ์ด์ค‘์— MySQL์„ ์„ ํƒํ–ˆ๋‹ค. AWS ์ ‘์† ํ›„ ๋กœ๊ทธ์ธํ•˜๊ธฐ RDS ์„œ๋น„์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ด ๋“ค์–ด๊ฐ€๊ธฐ "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ" ๋ฒ„ํŠผ ํด๋ฆญํ•˜๊ธฐ "ํ‘œ์ค€..

Server/SpringBoot 2021.07.20