๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โญ Personal_Study97

JPA: ์ง€์—ฐ๋กœ๋”ฉ๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ง€์—ฐ ๋กœ๋”ฉ๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ฃผ๋ฌธ์กฐํšŒ1: ์—”ํ‹ฐํ‹ฐ ์ง์ ‘ ๋…ธ์ถœ @GetMapping("/api/v1/simple-orders") public List ordersV1() { List all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); //Lazy ๊ฐ•์ œ ์ดˆ๊ธฐํ™” order.getDelivery().getAddress(); //Lazy ๊ฐ•์ œ ์ดˆ๊ธฐํ™” } return all; } โœ” ์—”ํ‹ฐํ‹ฐ ์ง์ ‘ ๋…ธ์ถœ ์ง€์–‘ โœ” order -> member ์™€ order -> address ๋Š” ์ง€์—ฐ ๋กœ๋”ฉ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์‹ค์ œ ์—”ํ‹ฐํ‹ฐ ๋Œ€์‹ ์— ํ”„๋ก์‹œ ์กด์žฌ โœ” ์–‘๋ฐฉํ–ฅ ๊ด€๊ณ„๋Š” @Jsonignore ์„ค์ •.. 2023. 3. 10.
AWS ๋ณด์•ˆ ์ •๋ณด ๋ณดํ˜ธ ๋ณด์•ˆ ์ •๋ณด ๋ณดํ˜ธ ๋ณด์•ˆ์˜ ๊ฐœ๋… ์ •๋ณด์˜ ์ˆ˜์ง‘, ๊ฐ€๊ณต, ์ €์žฅ, ๊ฒ€์ƒ‰, ์†ก์‹  ์ค‘์— ์ •๋ณด์˜ ํ›ผ์†, ๋ณ€์กฐ, ์œ ์ถœ ๋“ฑ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ด€๋ฆฌ์ , ๊ธฐ์ˆ ์  ์ˆ˜๋‹จ ๋˜๋Š” ๊ทธ๋Ÿฌํ•œ ์ˆ˜๋‹จ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ํ–‰์œ„ ๊ธฐ์—…์—์„œ ์ •๋ณด ๋ณดํ˜ธ์˜ ๋Œ€์ƒ โœ” ์ถœ์ž…ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ + ์œ ๋ฌดํ˜•์˜ ์ •๋ณด ์ž์‚ฐ ์ •๋ณด ๋ณดํ˜ธ ๋Œ€์ฑ… ๊ด€๋ฆฌ์  ๋ณดํ˜ธ ๋Œ€์ฑ…: ์ œ๋„, ๋ณด์•ˆ ๊ต์œก, ํ›ˆ๋ จ, ๋ณด์•ˆ ์ง๋ฌด ๋ฌผ๋ฆฌ์  ๋ณดํ˜ธ ๋Œ€์ฑ…: ์ถœ์ž…ํ†ต์ œ, ์žฌ๋‚œ ๋ฐฉ์ง€ ๊ธฐ์ˆ ์  ๋ณดํ˜ธ ๋Œ€์ฑ…: ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ํ†ต์ œ, ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด, ๋ฐฉํ™”๋ฒฝ ์‚ฌ์ดํŠธ ๋ณด์•ˆ โœ” ํŒŒ์ผ ์—…๋กœ๋“œ ์ทจ์•ฝ์  โœ” XSS (Cross Site Scripting) โœ” SQL Injection ํŒŒ์ผ ์—…๋กœ๋“œ ์ทจ์•ฝ์  โœ” ๊ฒŒ์‹œํŒ ๋“ฑ์˜ ์ฒจ๋ถ€ ํŒŒ์ผ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ํ—ˆ๊ฐ€ ๋˜์ง€ ์•Š์€ ํŒŒ์ผ๋“ค์„ ์›น์„œ๋ฒ„๋กœ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์  (php, jsp, asp, .. 2023. 3. 9.
ํ”„๋กœ์ ํŠธ ์‹œ DB ์„ค๊ณ„ ๋ฐฉ๋ฒ• Project DB ์„ค๊ณ„ 1. DB ์„ค๊ณ„์˜ ๋ชฉ์  โœ” ํ”„๋กœ์ ํŠธ, ๋ช…์„ธ์„œ ๋“ฑ์˜ ์ •๋ณด ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ดํ•ด โœ” ๋ถ„์„์ž, ๊ฐœ๋ฐœ์ž, ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์›ํ• ํ•œ ์˜์‚ฌ ์†Œํ†ต ์ˆ˜๋‹จ โœ” ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์˜ ๋ถ„์„ ๋ฐฉ๋ฒ• โœ” ํ˜„ํ–‰ ์‹œ์Šคํ…œ๋งŒ์ด ์•„๋‹Œ ์‹ ๊ทœ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์˜ ๊ธฐ์ดˆ ์ œ๊ณต โœ” ์„ค๊ณ„๋ฅผ ๋Œ€์ถฉํ•˜๋ฉด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๋•Œ๋งˆ๋‹ค DB์™€ ๊ด€๋ จ๋œ ์ด๋ฏธ ๊ฐœ๋ฐœ๋œ ํ”„๋กœ๊ทธ๋žจ๋„ ํ•จ๊ป˜ ๋œฏ์–ด๊ณ ์ณ์•ผํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ!! 2. ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ๋ถ„์„ โœ” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ถ„์„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์š”๊ตฌ์‚ฌํ•ญ (๊ธฐ๋Šฅ) ๋ช…์„ธ์„œ ์ž‘์„ฑ ์˜ˆ์‹œ: ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ ์ƒ˜ํ”Œ: ํ•ญ๊ณต์‚ฌ DB ํšŒ์›์œผ๋กœ ๊ฐ€์ž…ํ•˜๋ ค๋ฉด ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์„ฑ๋ช…, ์‹ ์šฉ์นด๋“œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ํšŒ์›์˜ ์‹ ์šฉ์นด๋“œ ์ •๋ณด๋Š” ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ ์šฉ์นด๋“œ ๋ฒˆํ˜ธ, ์œ ํšจ๊ธฐ๊ฐ„์„ ์ €์žฅํ•  ์ˆ˜.. 2023. 3. 8.
๋ฐ˜์ •๊ทœํ™” DB ๋ฐ˜์ •๊ทœํ™” 2. ๋ฐ˜์ •๊ทœํ™”(์—ญ์ •๊ทœํ™”)๋ž€? โœ” ์ •๊ทœํ™”๋œ ์—”ํ‹ฐํ‹ฐํƒ€์ž…, ์†์„ฑ, ๊ด€๊ณ„๋ฅผ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅํ–ฅ์ƒ, ๊ฐœ๋ฐœ๊ณผ ์šด์˜์˜ ๋‹จ์ˆœํ™”๋ฅผ ์œ„ํ•ด ๋ชจ๋ธ์„ ํ†ตํ•ฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ์ •๊ทœํ™” ๋ชจ๋ธ ์ด์ƒ์ ์ธ ๋…ผ๋ฆฌ ๋ชจ๋ธ์€ ๋ชจ๋“  ์—”ํ‹ฐํ‹ฐํƒ€์ž…, ์†์„ฑ ๊ด€๊ณ„๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•œ ๊ฐœ๋งŒ ์กด์žฌํ•˜๋ฉฐ, ๋”ฐ๋ผ์„œ ์ž…๋ ฅ, ์ˆ˜์ • , ์‚ญ์ œ๋„ ํ•œ ๊ตฐ๋Œ€์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋ฐ์ดํƒ€ ๊ฐ’์ด ๋ณ€์งˆ๋˜๊ฑฐ๋‚˜ ์ด์งˆํ™”๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค. ๋ฐ˜๋ฉด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ SQL์ž‘์„ฑ์ด ์šฉ์ดํ•˜์ง€ ์•Š๊ณ  ๊ณผ๋‹คํ•œ ํ…Œ์ด๋ธ” ์กฐ์ธ์ด ๋ฐœ์ƒํ•˜์—ฌ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. ๋ฐ˜์ •๊ทœํ™” ๋ชจ๋ธ ๋ฐ˜๋Œ€๋กœ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ๋‹จ์ˆœํ•ด์ง€๋ฏ€๋กœ SQLK ์ž‘์„ฑ์ด ์šฉ์ดํ•˜๊ณ  ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋งŽ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๊ฑธ์ณ ์กด์žฌํ•˜๋ฏ€๋กœ ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์งˆ ์šฐ๋ ค๊ฐ€ ์žˆ๋‹ค. โœ” ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ •ํ™•ํ•œ ๊ธฐ.. 2023. 3. 7.
CS ๋ฉด์ ‘ ์งˆ๋ฌธ ์ •๋ฆฌ - ์šด์˜์ฒด์ œ 2 ์šด์˜์ฒด์ œ 6. Virtual Memory (Paging / Segmentation) 7. Memory Fragmentation(๋‹จํŽธํ™”), Page Fault(ํŽ˜์ด์ง€ ๋ถ€์žฌ), Thrashing(์Šค๋ ˆ์‹ฑ) 8. Paging Algorithm (Fixed Allocation) 9. Caching (์บ์‹ฑ) 10. ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ตฌ์กฐ 11. Disk Scheduling (๋””์Šคํฌ ์Šค์ผ€์ค„๋ง) 12. RAID 6. Virtual Memory (Paging / Segmentation) Virtual Memory โœ” ๊ธฐ์กด์—๋Š” ํ”„๋กœ์„ธ์Šค ์ „์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•ด์•ผ ํ–ˆ์Œ ๋น„ํšจ์œจ์  ๋ฌผ๋ฆฌ์  ํ•œ๊ณ„(๋น„์šฉ ↑) โœ” ๊ธฐ์กด ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ! โœ” ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์‹œ ์ „์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ํ•„์š”ํ•œ block ์ ์žฌ ์‹œํ‚ค๊ณ  ๋‚˜๋จธ.. 2023. 3. 3.
CS ๋ฉด์ ‘ ์งˆ๋ฌธ ์ •๋ฆฌ - ์šด์˜์ฒด์ œ 1 ์šด์˜์ฒด์ œ 1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด 2. Deadlock (๋ฐ๋“œ๋ฝ) 3. ์„ธ๋งˆํฌ์–ด & ๋ฎคํ…์Šค 4. Context Switching 5. Proccess Scheduling 1. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด ํ”„๋กœ์„ธ์Šค (Process) โœ” ์‹คํ–‰์„ ์œ„ํ•ด ์‹œ์Šคํ…œ ์ปค๋„์— ๋“ฑ๋ก๋œ ์ž‘์—… ์ปค๋„์— ๋“ฑ๋ก๋˜๊ณ  ์ปค๋„์˜ ๊ด€๋ฆฌ ํ•˜์— ์žˆ๋Š” ์ž‘์—… ๊ฐ์ข… ์ž์›๋“ค์„ ์š”์ฒญํ•˜๊ณ  ํ• ๋‹น ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ฒด ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ๋ธ”๋ก (PCB)์„ ํ• ๋‹น ๋ฐ›์€ ๊ฐœ์ฒด ๋Šฅ๋™์ ์ธ ๊ฐœ์ฒด(active entity): ์‹คํ–‰ ์ค‘์— ๊ฐ์ข… ์ž์›์„ ์š”๊ตฌ, ํ• ๋‹น, ๋ฐ˜๋‚ฉํ•˜๋ฉฐ ์ง„ํ–‰ โœ” ์ž์›์„ ํ• ๋‹น ๋ฐ›๊ณ , ๋ชฉํ‘œ๋ฅผ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ํ• ๋‹น๋ฐ›์€ ์ž์›์„ ์ œ์–ด ํ•œ๋‹ค โœ” PCB (Process Control Block) ์ปค๋„ ๊ณต๊ฐ„ ๋‚ด์— ์กด์žฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„ ํ”„.. 2023. 3. 2.