์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋น๊ต Reference https://d2.naver.com/helloworld/0315536
HTTP/1.1 ๊ธฐ๋ณธ ๋์ ๋ฐฉ์ Connection๋น ํ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ, ๋์ ์ ์ก ๋ถ๊ฐํ๋ฉฐ ์์ฒญ๊ณผ ์๋ต์ด ์์ฐจ์ ์ผ๋ก ์งํํ๋ค. ๊ทธ๋ ๋ค๋ณด๋ ๋ค์ ์ ์ก ๋์ด์ผํ ํ์ผ์ด ๊ธฐ๋ค๋ ค์ผํ๋ ๋ ์ดํด์๊ฐ ๋ฐ์ํ๋ค. HTTP 1.1์ ๋จ์ HOLB pipelining์ด๋? ํ๋ฒ์ Connection์์ ์ฌ๋ฌ ์์ฒญ์ด ๊ฐ๋ฅํ ๊ธฐ๋ฒ ํ์ดํ๋ผ์ด๋์ ๋จ์ ์ ํ ์์ฒญ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ฉด, ๋ค์ ์์ฒญ์ด ์ง์ฐ๋๋ค. ์ด๊ฒ์ Head of Line Blocking๋ผ๊ณ ํ๋ค. RTT ์ผ๋ฐ์ ์ผ๋ก HTTP 1.1์ ํ๋ฒ์ ์ปค๋ฅ์ ์ ํ๋ฒ์ ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ๋ค๋ณด๋, HandShaking ๊ณผ์ ์ด ๋ฐ๋ณต๋๋ค. ๊ทธ๋ ๋ค๋ณด๋ ๋ถํ์ํ RTT๊ฐ ์ฆ๊ฐํ๊ฒ ๋์ด ์ฑ๋ฅ์ด ์ ํ๋๋ค. RTT๋? ํจํท์ด ๋ชฉ์ ์ง์ ๋๋ฌํ๊ณ ๋์ ํด๋น ํจํท์ ๋ํ ์๋ต์ด ์ถ๋ฐ์ง..
SOLID๋? ํด๋ฆฐ์ฝ๋๋ก ์ ๋ช ํ ๋ก๋ฒํธ ๋งํด์ด ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น์ ์ ๋ฆฌํ ๊ฒ์ด๋ค. SRP : ๋จ์ผ ์ฑ ์ ์์น OCP : ๊ฐ๋ฐฉ-ํ์ ์์น LSP : ๋ฆฌ์ค์ฝํ ์นํ ์์น ISP : ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น DIP : ์์กด๊ด๊ณ ์ญ์ ์์น SRP(Single Responsibility Principle) ํ ํด๋์ค๋ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค. ์ค์ํ ๊ธฐ์ค์ ๋ณ๊ฒฝ, ๋ณ๊ฒฝ์ด ์์ ๋ ํ๋์ ํด๋์ค๋ง ๋ณ๊ฒฝ๋๋ฉด ๊ต์ฅํ ์ ์งํจ ๊ฒ์ด๋ค. → ํ๋์ ํด๋์ค ์์ DB, SQL ์ฟผ๋ฆฌ๋ฌธ, View ๋ก์ง ...... ์ ์ง๋ณด์ ์ธก๋ฉด์์ ์ต์ ์ด๋ค. OCP(Open/closed principle) ์ํํธ์จ์ด ์์๋ ํ์ฅ์๋ ์ด๋ ค ์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ค. ๋ง์ฝ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ตฌํ์ฒด..
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. ๊ฐ๋ฐ ๋์(..
์ฐ๊ฒฐ ๋ฆฌ์คํธ๋? ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ ์ฅ๋์ง ์๋ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ฉฐ, ๊ฐ ๋ ธ๋๋ ํฌ์ธํฐ๋ฅผ ์ด์ฉํด ์๋ก๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ ๊ทผํ๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ ํน์ง ์ฅ์ ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ์์์ ์๋งํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์ ํ์๊ฐ ์๋ค. ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ๊ณต๊ฐ์ ์ถ๊ฐ๋ก ํ ๋น๋ฐ๊ฑฐ๋ ๋๋จธ์ง ๋ฐ์ดํฐ๋ค์ ์์น๋ฅผ ์ด๋์ํฌ ํ์๊ฐ ์์ด์ ์ฝ์ ๋ฐ ์ญ์ ๊ฐ ์ฉ์ดํ๋ค. ๋จ์ ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ํน์ ์ธ๋ฑ์ค์ ์์น์ O(1)์ ์ ๊ทผํ์ง ๋ชปํ๊ณ ์์์๋ถํฐ ์์ฐจ์ ์ผ๋ก ์์๋ฅผ ํ์ํด์ผํ๋ค. ๊ฐ ๋ ธ๋๊ฐ ๋ฐ์ดํฐ๋ง ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด ์๋, ํฌ์ธํฐ ๋ณ์์ ๊ณต๊ฐ๋ ์ถ๊ฐ์ ์ผ๋ก ํ์ํ๋ค. ์ฝ๋๋ก ๋ณด๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ ธ๋ ๊ตฌํ class Node { private Node left; private Node right; private final int data; ..