์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 10. 22. 23:40

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต Reference https://d2.naver.com/helloworld/0315536

HTTP/1.1 vs HTTP/2
Backend 2021. 10. 21. 17:43

HTTP/1.1 ๊ธฐ๋ณธ ๋™์ž‘ ๋ฐฉ์‹ Connection๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„, ๋™์‹œ ์ „์†ก ๋ถˆ๊ฐ€ํ•˜๋ฉฐ ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ ๋‹ค์Œ ์ „์†ก ๋˜์–ด์•ผํ•  ํŒŒ์ผ์ด ๊ธฐ๋‹ค๋ ค์•ผํ•˜๋Š” ๋ ˆ์ดํ„ด์‹œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. HTTP 1.1์˜ ๋‹จ์  HOLB pipelining์ด๋ž€? ํ•œ๋ฒˆ์˜ Connection์—์„œ ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ฒ• ํŒŒ์ดํ”„๋ผ์ด๋‹์˜ ๋‹จ์ ์€ ํ•œ ์š”์ฒญ์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด, ๋‹ค์Œ ์š”์ฒญ์ด ์ง€์—ฐ๋œ๋‹ค. ์ด๊ฒƒ์„ Head of Line Blocking๋ผ๊ณ  ํ•œ๋‹ค. RTT ์ผ๋ฐ˜์ ์œผ๋กœ HTTP 1.1์€ ํ•œ๋ฒˆ์˜ ์ปค๋„ฅ์…˜์— ํ•œ๋ฒˆ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋‹ค๋ณด๋‹ˆ, HandShaking ๊ณผ์ •์ด ๋ฐ˜๋ณต๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ ๋ถˆํ•„์š”ํ•œ RTT๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋˜์–ด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค. RTT๋ž€? ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ณ  ๋‚˜์„œ ํ•ด๋‹น ํŒจํ‚ท์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์ถœ๋ฐœ์ง€..

SOLID
JAVA/์•Œ์•„๋‘๋ฉด ์ข‹์„ ์ง€์‹ 2021. 10. 8. 22:24

SOLID๋ž€? ํด๋ฆฐ์ฝ”๋“œ๋กœ ์œ ๋ช…ํ•œ ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด์ด ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ์›์น™์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค. SRP : ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ OCP : ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ LSP : ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ ISP : ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ DIP : ์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™ SRP(Single Responsibility Principle) ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ์ค‘์š”ํ•œ ๊ธฐ์ค€์€ ๋ณ€๊ฒฝ, ๋ณ€๊ฒฝ์ด ์žˆ์„ ๋•Œ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋งŒ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ต‰์žฅํžˆ ์ž˜ ์ง€ํ‚จ ๊ฒƒ์ด๋‹ค. → ํ•˜๋‚˜์˜ ํด๋ž˜์Šค ์•ˆ์— DB, SQL ์ฟผ๋ฆฌ๋ฌธ, View ๋กœ์ง ...... ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ์ตœ์•…์ด๋‹ค. OCP(Open/closed principle) ์†Œํ”„ํŠธ์›จ์–ด ์š”์†Œ๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค ์žˆ์œผ๋‚˜ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌํ˜„์ฒด..

Spring MVC ์›น ๊ณ„์ธต
Backend/SPRING 2021. 10. 8. 00:40

Web Layer 1. ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ์˜์—ญ 2. ํ•„ํ„ฐ, ์ธํ„ฐ์…‰ํ„ฐ, ์ปจํŠธ๋กค๋Ÿฌ ์–ด๋“œ๋ฐ”์ด์Šค ๋“ฑ ์™ธ๋ถ€ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์˜์—ญ์„ ์˜๋ฏธํ•œ๋‹ค. Service Layer 1. `@Service`์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ์˜์—ญ 2. ์ผ๋ฐ˜์ ์œผ๋กœ Controller์™€ Repository์˜ ์ค‘๊ฐ„ ์˜์—ญ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. 3. @Transactional์ด ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค. Repository Layer 1. Database์™€ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜๋Š” ์˜์—ญ 2. ์ด์ „์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋˜ Dao ์˜์—ญ์ด๋‹ค. DTOs 1. DTO๋Š” ๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 2. ๋ทฐ ํ…œํ”Œ๋ฆฟ ์—”์ง„์—์„œ ์‚ฌ์šฉ๋  ๊ฐ์ฒด๋‚˜ Repository๊ฐ€ ์‘๋‹ต์œผ๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ์ฒด ๋“ฑ์„ ๋งํ•œ๋‹ค. Domain Model 1. ๊ฐœ๋ฐœ ๋Œ€์ƒ(..

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ
Computer Science/์ž๋ฃŒ๊ตฌ์กฐ 2021. 10. 7. 23:22

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ž€? ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ €์žฅ๋˜์ง€ ์•Š๋Š” ์„ ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋ฉฐ, ๊ฐ ๋…ธ๋“œ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•ด ์„œ๋กœ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ ‘๊ทผํ•œ๋‹ค. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ํŠน์ง• ์žฅ์  ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ์š”์†Œ์˜ ์ˆ˜๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ณต๊ฐ„์„ ์ถ”๊ฐ€๋กœ ํ• ๋‹น๋ฐ›๊ฑฐ๋‚˜ ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋“ค์˜ ์œ„์น˜๋ฅผ ์ด๋™์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์—†์–ด์„œ ์‚ฝ์ž… ๋ฐ ์‚ญ์ œ๊ฐ€ ์šฉ์ดํ•˜๋‹ค. ๋‹จ์  ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ํŠน์ • ์ธ๋ฑ์Šค์˜ ์œ„์น˜์— O(1)์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ณ  ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผํ•œ๋‹ค. ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ๊ณต๊ฐ„๋„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค. ์ฝ”๋“œ๋กœ ๋ณด๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋…ธ๋“œ ๊ตฌํ˜„ class Node { private Node left; private Node right; private final int data; ..