์น
- HTTP, HTTPS(TLS(SSL))
HTTP๋ ๋ฐ๋ก ์ํธํ ๊ณผ์ ์ ๊ฑฐ์น์ง ์๊ธฐ ๋๋ฌธ์ ์ค๊ฐ์ ํจํท์ ๊ฐ๋ก์ฑ ์ ์๊ณ , ์์ ํ ์ ์์ด ๋ณด์์ด ์ทจ์ฝํด์ง
HTTPS๋ ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค๊ฐ์ ์ํธํ ๊ณ์ธต์ ๊ฑฐ์ณ์ ํจํท์ ์ํธํํจ
- HTTP 1.1 2.0 3.0
- HTTP RESTFUL
- Representational State Transfer์ ์ฝ์
- ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ(๋๋ ์ ๋ณด)๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธ
- ์น์ ๊ธฐ์กด ๊ธฐ์ ๊ณผ HTTP ํ๋กํ ์ฝ์ ๊ทธ๋๋ก ํ์ฉ -> ์น์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ ์ ์๋ ์ํคํ ์ฒ ์คํ์ผ
- HTTP ์๋ต์ฝ๋
200๋ฒ๋: ํต์ ์ฑ๊ณต
300๋ฒ๋: ๋ฆฌ๋ค์ด๋ ํธ
400๋ฒ๋: ํด๋ผ์ด์ธํธ ์ค๋ฅ
500๋ฒ๋: ์๋ฒ ์ค๋ฅ
- ์น๋ธ๋ผ์ฐ์ ์ google.com ์น๋ฉด ์ผ์ด๋๋ ๊ณผ์
- ์ฃผ์์ฐฝ์ url์ ์ ๋ ฅํ๊ณ Enter๋ฅผ ๋๋ฅด๋ฉด, ์๋ฒ์ ์์ฒญ์ด ์ ์ก๋จ
- ํด๋น ํ์ด์ง์ ์กด์ฌํ๋ ์ฌ๋ฌ ์์๋ค(text, image ๋ฑ๋ฑ)์ด ๋ณด๋ด์ง
- ์ด์ ๋ธ๋ผ์ฐ์ ๋ ํด๋น ์์์ด ๋ด๊ธด html๊ณผ ์คํ์ผ์ด ๋ด๊ธด css๋ฅผ W3C ๋ช ์ธ์ ๋ฐ๋ผ ํด์ํ ๊ฒ์
- ์ด ์ญํ ์ ํ๋ ๊ฒ์ด '๋ ๋๋ง ์์ง'
- ๋ ๋๋ง ์์ง์ ์ฐ์ html ํ์ฑ ๊ณผ์ ์ ์์ํจ. html ํ์๊ฐ ๋ฌธ์์ ์กด์ฌํ๋ ์ดํ์ ๊ตฌ๋ฌธ์ ๋ถ์ํ๋ฉด์ DOM ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถ
- ๋ค์์ css ํ์ฑ ๊ณผ์ ์์. css ํ์๊ฐ ๋ชจ๋ css ์ ๋ณด๋ฅผ ์คํ์ผ ๊ตฌ์กฐ์ฒด๋ก ์์ฑ
- ์ด 2๊ฐ์ง๋ฅผ ์ฐ๊ฒฐ์์ผ ๋ ๋ ํธ๋ฆฌ๋ฅผ ๋ง๋ฌ. ๋ ๋ ํธ๋ฆฌ๋ฅผ ํตํด ๋ฌธ์๊ฐ ์๊ฐ์ ์์๋ฅผ ํฌํจํ ํํ๋ก ๊ตฌ์ฑ๋ ์ํ
- ํ๋ฉด์ ๋ฐฐ์น๋ฅผ ์์ํ๊ณ , UI ๋ฐฑ์๋๊ฐ ๋ ธ๋๋ฅผ ๋๋ฉฐ ํ์์ ๊ทธ๋ฆผ
- ์ด๋ ๋น ๋ฅธ ๋ธ๋ผ์ฐ์ ํ๋ฉด ํ์๋ฅผ ์ํด '๋ฐฐ์น์ ๊ทธ๋ฆฌ๋ ๊ณผ์ '์ ํ์ด์ง ์ ๋ณด๋ฅผ ๋ชจ๋ ๋ฐ๊ณ ํ๊บผ๋ฒ์ ์งํ๋์ง ์์. ์์์ ์ ์ก๋ฐ์ผ๋ฉด, ๊ธฐ๋ค๋ฆฌ๋ ๋์์ ์ผ๋ถ๋ถ ๋จผ์ ์งํํ๊ณ ํ๋ฉด์ ํ์ํจ
์ด์์ฒด์
- OS ์ค๋ ๋ , ํ๋ก์ธ์ค ์ฐจ์ด(๋ฉํฐ์ค๋ ๋์ ๋ฉํฐํ๋ก์ธ์ค์ฐจ์ด, PCB)
ํ๋ก์ธ์ค๋ง๋ค ์ต์ ํ๋์ ์ค๋ ๋ ์์
ํ๋ก์ธ์ค: ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์์์ ์คํ์ค์ธ ์์ , ๊ฐ๊ฐ ๋ณ๋์ ์ฃผ์ ๊ณต๊ฐ ํ ๋น๋ฐ์ ์ฌ์ฉ
์ค๋ ๋: ํ๋ก์ธ์ค ์์์ ์คํ๋๋ ์ฌ๋ฌ ํ๋ฆ ๋จ์, ๋ค๋ฅธ ์ค๋ ๋์ ๊ณต๊ฐ, ์์์ ๊ณต์
๋ฉํฐ ํ๋ก์ธ์ค: ํ๋์ ์ปดํจํฐ์ ์ฌ๋ฌ CPU๋ฅผ ์ฌ์ฉํด ์ฌ๋ฌ ํ๋ก์ธ์ค ๋ณ๋ ฌ ์ฒ๋ฆฌ
๋ฉํฐ ์ค๋ ๋: ํ๋์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ๋ฌ ์ค๋ ๋ ๊ตฌ์ฑํด ๊ฐ ์ค๋ ๋๊ฐ ํ๋์ ์์ ์ ์ฒ๋ฆฌ
PCB(Process Control Block)
ํ๋์ ํ๋ก์ธ์ค ๋ฉํ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ, interrupt๊ฐ ๋ฐ์ํด ์์ผ๋ก ๋ค์ ์ํํ ๋๊ธฐ์ค(waiting)์ธ ํ๋ก์ธ์ค์ ๊ดํ ๋ฐ์ดํฐ ์ ์ฅ
- OS ๋ฐ๋๋ฝ, ๋ฐ๋๋ฝ ์กฐ๊ฑด 4๊ฐ์ง
์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์๋ก ์ํ๋ ์์์ด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์์ด ๋ฌดํ wait์ํ์ ๋น ์ ธ ๋ค์ ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ๋ ์ํ
๋ฐ์ ์กฐ๊ฑด
- ์ํธ ๋ฐฐ์ : ์์์ ํ๋ฒ์ ํ ํ๋ก์ธ์ค๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- ์ ์ ๋๊ธฐ: ์ต์ํ ํ๋์ ์์์ ์ ์ ํ๊ณ ์์ผ๋ฉด์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์ฌ์ฉํ๊ณ ์๋ ์์์ ์ถ๊ฐ๋ก ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํด์ผ ํจ
- ๋น์ ์ : ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ๋นผ์์ ์ ์์
- ์ํ ๋๊ธฐ: ํ๋ก์ธ์ค์ ์งํฉ์์ ์ํ ํํ๋ก ์์์ ๋๊ธฐํ๊ณ ์์ด์ผ ํจ
- ๋๊ธฐํ( ๋ฎคํ ์ค, ์ธ๋งํฌ์ด, ๋ชจ๋ํฐ, ์คํ๋ฝ, ์ดํ ๋ฏน ์ค๋ช )
์ธ๋งํฌ์ด
๊ณต์ ๋ ์์์ ๋ฐ์ดํฐ์ ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผํ ์ ์๋๋ก ์ ํํ๋ ๋ฐฉ๋ฒ
์๊ณ ๊ตฌ์ญ(Critical Section)
์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ฉฐ ์ํ๋ ๋, ๊ฐ ํ๋ก์ธ์ค์์ ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ํ๋ก๊ทธ๋จ ์ฝ๋ ๋ถ๋ถ
ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ํํ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๊ทผ ๋ง์์ผ ํจ
๋ฎคํ ์ค (์ํธ ๋ฐฐ์ )
์๊ณ ๊ตฌ์ญ์ ๊ฐ์ง ์ค๋ ๋๋ค์ ์คํ์๊ฐ์ด ์๋ก ๊ฒน์น์ง ์๊ณ ๊ฐ๊ฐ ๋จ๋ ์ผ๋ก ์คํ๋๊ฒ ํ๋ ๊ธฐ์
- lock : ํ์ฌ ์๊ณ ๊ตฌ์ญ์ ๋ค์ด๊ฐ ๊ถํ์ ์ป์ด์ด ( ๋ง์ฝ ๋ค๋ฅธ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ ์๊ณ ๊ตฌ์ญ ์ํ ์ค์ด๋ฉด ์ข ๋ฃํ ๋๊น์ง ๋๊ธฐ )
- unlock : ํ์ฌ ์๊ณ ๊ตฌ์ญ์ ๋ชจ๋ ์ฌ์ฉํ์์ ์๋ฆผ. ( ๋๊ธฐ ์ค์ธ ๋ค๋ฅธ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ ์ ์์ )
- ์ธ๊ทธ๋ฉํ ์ด์ , ํ์ด์ง (๋ด๋ถ๋จํธํ ,์ธ๋ถ๋จํธํ)
ํ์ด์ง: ๊ณ ์ ์ฌ์ด์ฆ์ ์์ ํ๋ก์ธ์ค ์กฐ๊ฐ (๊ณ ์ ํฌ๊ธฐ)
ํ๋ ์: ํ์ด์ง ํฌ๊ธฐ์ ๊ฐ์ ์ฃผ๊ธฐ์ต์ฅ์น ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ
๋จํธํ: ๊ธฐ์ต์ฅ์น์ ๋น ๊ณต๊ฐ์ด ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋๋ ํ์
๋ด๋ถ ๋จํธํ: ๋ถํ ๋ ์์ญ์ด ํ ๋น๋ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ณด๋ค ์ปค ์ฌ์ฉ๋์ง ์๊ณ ๋จ์์๋ ๋น ๊ณต๊ฐ
์ธ๋ถ ๋จํธํ: ๋ถํ ๋ ์์ญ์ด ํ ๋น๋ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ณด๋ค ์์ ๋น ๊ณต๊ฐ์ผ๋ก ๋จ์์๋ ์ ์ฒด ์์ญ
์ธ๊ทธ๋จผํธ: ์๋ก๋ค๋ฅธ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ๋ ผ๋ฆฌ์ ๋ธ๋ก์ด ์ฐ์์ ๊ณต๊ฐ์ ๋ฐฐ์น๋๋ ๊ฒ (๊ฐ๋ณ ํฌ๊ธฐ)
- ํ์ด์ง: ๊ฐ ํ๋ก์ธ์ค๊ฐ ํ๋ ์๋ค๊ณผ ๊ฐ์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๊ท ๋ฑ ํ์ด์ง๋ก ๋๋จ, ์๋์ ๋ด๋ถ ๋จํธํ ์กด์ฌ
- ์ธ๊ทธ๋จผํ ์ด์ : ๊ฐ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ์ธ๊ทธ๋จผํธ๋ค๋ก ๋๋จ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจ์จ ๊ฐ์ , ๋์ ๋ถํ ๋ก ์ค๋ฒํค๋ ๊ฐ์, ์ธ๋ถ ๋จํธํ ์กด์ฌ
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง: ํ์ํ ํ์ด์ง๊ฐ ์์ ๋ ๋ถ๋ฌ์ด, ์ธ๋ถ ๋จํธํ X, ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ๋ก ์ค๋ฒํค๋ ๋ฐ์
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํ ์ด์ : ํ์ํ ์ธ๊ทธ๋จผํธ๊ฐ ์์ ๋ ๋ถ๋ฌ์ด, ๋ด๋ถ ๋จํธํ X, ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ๋ก ์ค๋ฒํค๋ ๋ฐ์
JAVA
- JVM
JVM์ ์๋ฐ ๊ฐ์ ๋จธ์ ์ผ๋ก, ์๋ฐ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ํด์ํ๊ณ ์คํํ๋ ์ญํ ์ ํฉ๋๋ค. ์๋ฐ ์ฝ๋๋ JVM์ ํตํด ์คํ๋๋ฏ๋ก Window, Linux์ ๊ฐ์ ๋ค๋ฅธ OS์์๋ ๋์ผํ๊ฒ ์คํํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
- GC (Garbage Collection)
GC๋ ํ ์์ญ์์ ์ฌ์ฉํ์ง ์๋ ๊ฐ์ฒด๋ค์ ์ ๊ฑฐํ๋ ์์ ์ ์ด์นญํฉ๋๋ค. ์ด ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๋ ์์ ์ด ํ์ํ ์ด์ ๋ ์๋ฐ๋ ๊ฐ๋ฐ์๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ ํด์ ํด์ค ์ ์๋ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ์ด ํ์ํ๊ฒ ๋ฉ๋๋ค.
- JAVA ๊ฐ์ฒด์งํฅ
๋ฐ๋ณต๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒ๋ค์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ํจ์(ํ๋ก์์ )๋ก ๋ง๋ค์ด ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์
- SOLID๋?
SRP(๋จ์ผ์ฑ ์์์น): ํ ํด๋์ค์ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํฉ๋๋ค.
OCP(๊ฐ๋ฐฉ-ํ์ ์์น): ํ์ฅ์๋ ์ด๋ ค ์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ฉฐ, ๋คํ์ฑ์ ํ์ฉํด์ผ ํฉ๋๋ค.
LSP(๋ฆฌ์ค์ฝํ ์นํ ์์น): ํ๋ก๊ทธ๋จ์ ๊ฐ์ฒด๋ ํ๋ก๊ทธ๋จ์ ์ ํ์ฑ์ ๊นจ๋จ๋ฆฌ์ง ์์ผ๋ฉด์ ํ์ ํ์ ์ ์ธ์คํด์ค๋ก ๋ฐ๊ฟ ์ ์์ด์ผํ๋ ์์น์ผ๋ก ์์ ํ์ ์ ์์ํด์ ์ฌ์ ์ ํ์ ๋ ํ๋ก๊ทธ๋จ์ด ๊นจ์ง์ง ์์์ผ ํฉ๋๋ค.
ISP(์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น): ํด๋ผ์ด์ธํธ๋ ์์ ์ด ์ฌ์ฉํ์ง ์๋ ๋ฉ์๋์ ์์กด ๊ด๊ณ๋ฅผ ๋งบ์ผ๋ฉด ์๋๋ ์์น์ ๋๋ค. ํน์ ํด๋ผ์ด์ธํธ๋ฅผ ์ํ ์ธํฐํ์ด์ค ์ฌ๋ฌ ๊ฐ๊ฐ ๋ฒ์ฉ ์ธํฐํ์ด์ค ํ๋๋ณด๋ค ๋ ๋ซ์ต๋๋ค. ์ฆ, ๋น๋ํ ์ธํฐํ์ด์ค๋ณด๋จ ๋ ์๊ณ ๊ตฌ์ฒด์ ์ธ ์ธํฐํ์ด์ค๋ก ๋ถ๋ฆฌํด์ผํฉ๋๋ค.
DIP(์์กด๊ด๊ณ ์ญ์ ์์น): ์ถ์์ ์ธ ๊ฒ์ ์์ ๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ๊ฒ์ ์์กดํ์ง ์๊ณ , ๋ณํํ๊ธฐ ์ฌ์ด ๊ฒ์ ์์กดํด์๋ ์๋๋ค๋ ์์น์ ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก ๊ตฌํ ํด๋์ค์ ์์กดํ์ง ๋ง๊ณ , ์ธํฐํ์ด์ค์ ์์กดํด์ผ ํ๋ ์์น์ ๋๋ค.
- ํ๋ก๊ทธ๋จ ์คํ์ ์ผ๋ จ๊ณผ์
- ์๋ฐ ์ปดํ์ผ๋ฌ(javac)๊ฐ ์๋ฐ ์์ค์ฝ๋(.java)๋ฅผ ์ฝ์ด ์๋ฐ ๋ฐ์ดํธ์ฝ๋(.class)๋ก ๋ณํ์ํต๋๋ค.
- Class Loader๋ฅผ ํตํด class ํ์ผ๋ค์ JVM์ผ๋ก ๋ก๋ฉํฉ๋๋ค.
- ๋ก๋ฉ๋ classํ์ผ๋ค์ Execution engine์ ํตํด ํด์๋ฉ๋๋ค.
- ํด์๋ ๋ฐ์ดํธ์ฝ๋๋ Runtime Data Areas ์ ๋ฐฐ์น๋์ด ์ค์ง์ ์ธ ์ํ์ด ์ด๋ฃจ์ด์ง๋๋ค.
- JVM ๋ฉ๋ชจ๋ฆฌ๊ตฌ์กฐ
-Method Area: ํด๋์ค,์ธํฐํ์ด์ค์ ๋ํ ๋ฐํ์ ์์ํ, ๋ฉ์๋, ํ๋,์์ฑ์,ํ์ ์ ๋ณด, static ๋ณ์ ,static๋ฉ์๋ ,๋ฐ์ดํธ ์ฝ๋๋ฑ์ ๋ณด๊ดํ๋ค. ์ ์ฒด thread์์ ๊ณต์ ํ ์ ์๊ณ , ์์์์ ์์ฑ๋์ ์ข ๋ฃ๋ ๋ ๊น์ง ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์ ์ญ๋ณ์๋ฅผ ๋๋ฌด ๋ง์ด ์ฐ๊ฒ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ์ํ์ด ์๋ค.
-Heap Area: ๋ํผ๋ฐ์ค ํ์ ์ ๊ฐ๋ ๊ฐ์ฒด(์ธ์คํด์ค),๋ฐฐ์ด ๋ฑ์ด ๋์ ์ผ๋ก ์์ฑ๋์ ์ ์ฅ๋๋ ๊ณณ์ด๋ค. new ์ฐ์ฐ์๋ฅผ ํตํด heap์์ญ์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ถ์ฌ๋ฐ๊ณ stack์์ญ์ ์ฐธ์กฐ๋ณ์์ ์ค์ ๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค ๊ฐ์ ๋ฆฌํด๋ฐ๋๋ค. ์ด ๋ํผ๋ฐ์ค ๊ฐ์ ํตํด์๋ง ๊ฐ์ฒด๋ฅผ ๋ค๋ฃฐ ์ ์๋ค.
-Stack Area: ๊ฐ ์ค๋ ๋ ์์์์ ํ๋์ฉ ํ ๋น๋๊ณ ์ข ๋ฃ๋ ๋ ํด์ ๋๋ค.๋ฉ์๋ ํธ์ถ์์ ํ๋ ์์ ์ถ๊ฐํ๊ณ (push) ์ข ๋ฃ๋๋ฉด ์ ๊ฑฐํ๋ค(pop). ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฉ์๋ ์ ๋ณด๋ค์ ์์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค.
primitiveํ์ ๋ณ์๋ ์คํ ์์ญ์ ์ง์ ๊ฐ์ ๊ฐ์ง๋ค.reference ํ์ ์ ๋ณ์๋ ํ ์์ญ์ด๋ ๋ฉ์๋ ์์ญ์ ๊ฐ์ฒด ์ฃผ์๋ฅผ ๊ฐ์ง๋ค.
- ์ธํฐํ์ด์ค, ์ถ์ํด๋์ค
์ถ์ํด๋์ค : ํด๋์ค ๋ด์ ์ถ์ ๋ฉ์๋๊ฐ ํ๋ ์ด์ ํฌํจ๋๊ฑฐ๋ abstract๋ก ์ ์๋ ๊ฒฝ์ฐ. extends๋ฅผ ํตํด ๊ธฐ๋ฅ์ ์ด์ฉํ๊ณ ํ์ฅํ๋๋ก ํ๋ ํด๋์ค
์ธํฐํ์ด์ค : ๋ชจ๋ ๋ฉ์๋๊ฐ ์ถ์ ๋ฉ์๋์ธ ๊ฒฝ์ฐ (์ฌ๋ฌ implements๊ฐ ๊ฐ๋ฅํด ๋ค์ค ์์ ๊ตฌํ ๊ฐ๋ฅ) ๋ผ๋๋ง ์์ผ๋ฉฐ, ๊ตฌํํ๋ ๋ชจ๋ ํด๋์ค์ ๋ํด ๊ฐ์ ์ ์ผ๋ก ๋ฉ์๋๋ฅผ ๊ตฌํํ๋๋ก ๋ง๋ฌ
- ์ค๋ฒ๋ผ์ด๋ฉ๊ณผ ์ค๋ฒ๋ก๋ฉ
์ค๋ฒ๋ผ์ด๋ฉ: ์์ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ฌ์ ์ ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋, ๋ฐํ์ ๋คํ์ฑ์ด๊ธฐ๋ ํฉ๋๋ค.
์ค๋ฒ๋ก๋ฉ: ๊ฐ์ ํด๋์ค ๋ด์์ ๋์ผํ ๋ฉ์๋ ์ด๋ฆ์ ๊ฐ์ง์ง๋ง, ๋งค๊ฐ๋ณ์์ ํ์ , ๊ฐ์๊ฐ ๋ค๋ฅด๊ฒ ๊ตฌํํ ์ ์๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ ์ปดํ์ผ ํ์ ๋คํ์ฑ์ด๊ธฐ๋ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ค๋ฒ๋ผ์ด๋ฉ ๋ ์ ์์ต๋๋ค.
๋คํธ์ํฌ
- TCP vs UDP (TCP, UDP ํน์ฑ)
TCP
- ์ฐ๊ฒฐ ์งํฅํ ํ๋กํ ์ฝ
- ๊ฐ์ ํ์ ์ ๋ง๋ค์ด ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋๋ก(ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด, ์ค๋ฅ ์ ์ด) ํ๋ ํ๋กํ ์ฝ
- ํ์ผ์ ์ก๊ณผ ๊ฐ์ ์ ๋ขฐ์ฑ์ด ์ค์ํ ์๋น์ค์ ์ฌ์ฉ๋จ
UDP
- ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๊ทธ๋จ๋จ์๋ก ์ ์กํ๋ ํ๋กํ ์ฝ
- ๋ฐ๋ก ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ ์ฐจ๊ฐ ์์
- ์คํธ๋ฆฌ๋ฐ, RTP์ ๊ฐ์ด ์ฐ์์ฑ์ด ๋ ์ค์ํ ์๋น์ค์ ์ฌ์ฉ๋จ
+) ํ์ง๋ง UDP๋ ์ ๋ขฐ์ฑ์ UDP์์ฒด์์ ๋ณด์ฅํ์ง ์๋ ๊ฒ ๋ฟ์ด์ง, ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋๋ก ํ ์ ์์ต๋๋ค. ๊ทธ๋์ HTTP/3์ QUIC์ด๋ผ๋ ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋๋ฐ, QUIC์ UDP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ฆ, UDP ์์ฒด๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์ง๋ง, ์ถ๊ฐ์ ์ธ ์ ์๋ฅผ ํตํด ์ ๋ขฐ์ฑ์ ๋ณด์ฅ๋ฐ์ ์ ์์ต๋๋ค.
- OSI ๊ณ์ธต ๋งํ๊ธฐ(๊ฐ๊ฐ ์๋ ค์ง ์ ๋ช ํ๋กํ ์ฝ)
ํต์ ์ ์์์๋ถํฐ ์๋ฃ๊น์ง์ ๊ณผ์ ์ 7๋จ๊ณ๋ก ์ ์ํ ๊ตญ์ ํต์ ํ์ค ๊ท์ฝ
๋ฌผ๋ฆฌ : ์ ์กํ๋๋ฐ ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณต ( ํต์ ์ผ์ด๋ธ, ํ๋ธ )
๋ฐ์ดํฐ๋งํฌ : ์ก/์์ ํ์ธ. MAC ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ํต์ ํจ ( ๋ธ๋ฆฟ์ง, ์ค์์น )
๋คํธ์ํฌ : ํจํท์ ๋คํธ์ํฌ ๊ฐ์ IP๋ฅผ ํตํด ๋ฐ์ดํฐ ์ ๋ฌ ( ๋ผ์ฐํ )
์ ์ก : ๋ host ์์คํ ์ผ๋ก๋ถํฐ ๋ฐ์ํ๋ ๋ฐ์ดํฐ ํ๋ฆ ์ ๊ณต
์ธ์ : ํต์ ์์คํ ์ฌ์ฉ์๊ฐ์ ์ฐ๊ฒฐ์ ์ ์ง ๋ฐ ์ค์ ํจ
ํํ : ์ธ์ ๊ณ์ธต ๊ฐ์ ์ฃผ๊ณ ๋ฐ๋ ์ธํฐํ์ด์ค๋ฅผ ์ผ๊ด์ฑ์๊ฒ ์ ๊ณต
์์ฉ : ์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ์ ์ ๊ทผํ ์ ์๋๋ก ์๋น์ค ์ ๊ณต
์๋ฃ๊ตฌ์กฐ
- ๋งต vs ํด์ฌ๋งต / ๋ฆฌ์คํธ vs ๋ฐฐ์ด(์ด๋ ์ด) /์คํ vsํ ์ฐจ์ด
Map: ํค(Key)์ ๊ฐ(Value)์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ์ ์งํฉ, Map์ ํ๋์ ์ ์ํด๋์ ์ธํฐํ์ด์ค
HashMap: Map์ ๊ตฌํ์ฒด, put(), get(), containsKey(), remove(), keySet(), size() ๋ฉ์๋ ์ ๊ณต
์คํ: LIFO
ํ: FIFO
- ์ ๋ ฌ์ข ๋ฅ , ํต์ํธ
๋ฐ์ดํฐ๋ฒ ์ด์ค
- DB ์ธ๋ฑ์ค , ์ธ๋ฑ์ค ๊ฑฐ๋์ด์
- ๊ฒ์์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ์ฉ
- ํ์ง๋ง ๊ฒ์์ฑ๋ฅ์ ์ค์ง์ ์ผ๋ก ํฅ์์ํค๊ธฐ ์ํด์๋ ํด๋น ์ฟผ๋ฆฌ๊ฐ index๋ฅผ ์ฌ์ฉํ๋์ง, ์นด๋๋๋ฆฌํฐ, Selectivity ๊ฐ์ ์์๋ค์ด ๊ณ ๋ ค๋ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋์ด์ผ ํจ
- ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋น์ฉ ์ฆ, ์ถ๊ฐ, ์์ , ์ญ์ ์ฐ์ฐ์์ ์ธ๋ฑ์ค๋ฅผ ํ์ฑํ๊ธฐ ์ํ ์ถ๊ฐ์ ์ธ ์ฐ์ฐ์ด ์ํ๋จ
- ์ธ๋ฑ์ค์ ์ ํด์ฌ ๋ณด๋ค B Tree๋ฅผ ์ฐ๋์ง
- ๋ฃจํธ์ ๋ฆฌํ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ ์ผ์ ํ๊ฒ ์ ์งํ์ฌ ๊ท ํ์ด ์ ์กํ ๊ฒ์ ์ฑ๋ฅ์ด ์์ ์ (๋ฐ์ดํฐ ์์ด ์ฆ๊ฐํด๋ ๊ฒ์ ์๋๊ฐ ๊ฐ์๊ธฐ ์ ํ๋๋ ์ผ์ด ์์)
- ํธ๋ฆฌ์ ๊น์ด๋ 3-4 ์์ค์ผ๋ก ์ผ์ ํ๊ณ , ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ ์ํ๋ฅผ ์ ์งํ์ฌ ์ด๋ถ ํ์์ ํตํด ๊ฒ์ ๋น์ฉ ์ ๊ฐ ๊ฐ๋ฅ
- ์ง์ฝ ํจ์ ๋ฑ์์ ์๊ตฌ๋๋ ์ ๋ ฌ์ ํ์ง ์์ ์ฑ ์คํ ๊ฐ๋ฅ
- ๋ฑํธ์ ๋ถ๋ฑํธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ์กฐ๊ฑด์์ ์ฌ์ฉ ๊ฐ๋ฅ (ํด์ ์ธ๋ฑ์ค๋ ๋ฒ์ ๊ฒ์ ๋ถ๊ฐ๋ฅ)
- DB ์ ๊ทํ, ๋น์ ๊ทํ(์ญ์ ๊ทํ)
์ ๊ทํ: ์ค๋ณต์ ์ต๋ํ ์ค์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ๊ณ , ๋ถํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํด ๋ฐ์ดํฐ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ ์ฅํ๋ ๊ฒ
- DB ํธ๋์ญ์
- ํธ๋์ญ์ ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ์ธ ์์ ๋จ์
- ์ฌ๋ฌ๊ฐ์ ์ฐ์ฐ์ด ์ํ๋ ์ ์์ต๋๋ค.
- ํธ๋์ญ์ ์ ์ํ์ค์ ํ ์์ ์ด๋ผ๋ ์คํจํ๋ฉด ์ ๋ถ ์คํจํ๊ณ , ๋ชจ๋ ์ฑ๊ณตํด์ผ ์ฑ๊ณต์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
- ํธ๋์ญ์ ํน์ง 4๊ฐ์ง
ACID: ํธ๋์ญ์ ์ด ์์ ํ๊ฒ ์ํ๋๋ค๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ฑ์ง
- Atomicity(์์์ฑ): ํธ๋์ญ์ ์ ์ฐ์ฐ์ ๋ชจ๋ ์ฐ์ฐ์ด ์๋ฒฝํ ์ํ๋์ด์ผ ํ๋ฉฐ, ํ ์ฐ์ฐ์ด๋ผ๋ ์คํจํ๋ฉด ํธ๋์ญ์ ์ ์คํจํด์ผ ํฉ๋๋ค.
- Consistency(์ผ๊ด์ฑ): ํธ๋์ญ์ ์ ์ ํจํ ์ํ๋ก๋ง ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
- Isolation(๊ณ ๋ฆฝ์ฑ): ํธ๋์ญ์ ์ ๋์์ ์คํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ํธ๋์ญ์ ์ ์ํด ์ํฅ์ ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ๋์ด์ผ ํฉ๋๋ค.
- Durability(๋ด๊ตฌ์ฑ): ํธ๋์ญ์ ์ด ์ปค๋ฐ๋ ์ดํ์๋ ์์คํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ปค๋ฐ๋ ์ํ๋ก ์ ์ง๋๋ ๊ฒ์ ๋ณด์ฅํด์ผ ํฉ๋๋ค. (์ผ๋ฐ์ ์ผ๋ก ๋นํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ฒ์ ์๋ฏธ)
- DB ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค
๊ณ ๋ฆฝ๋์ ์ฑ๋ฅ์ ํธ๋ ์ด๋ ์คํ๋ฅผ ์กฐ์
- READ UNCOMMITTED: ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์ปค๋ฐ๋์ง ์์ ๋ด์ฉ๋ ์ฐธ์กฐํ ์ ์๋ค.
- READ COMMITTED: ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์ปค๋ฐ๋ ๋ด์ฉ๋ง ์ฐธ์กฐํ ์ ์๋ค.
- REPEATABLE READ: ํธ๋์ญ์ ์ ์ง์ ํ๊ธฐ ์ด์ ์ ์ปค๋ฐ๋ ๋ด์ฉ๋ง ์ฐธ์กฐํ ์ ์๋ค.
- SERIALIZABLE: ํธ๋์ญ์ ์ ์ง์ ํ๋ฉด ๋ฝ์ ๊ฑธ์ด ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ ๊ทผํ์ง ๋ชปํ๊ฒ ํ๋ค.(์ฑ๋ฅ ๋งค์ฐ ๋จ์ด์ง)
์ถ์ฒ
'Job > Interview' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ (0) | 2022.04.14 |
---|---|
์ด์์ฒด์ ๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ (0) | 2022.04.09 |
๋๊ธ